Start redesign using Bootstrap 4
This commit is contained in:
parent
92be101d3c
commit
caf6ab8915
@ -1,4 +1,4 @@
|
||||
<div class="tos">
|
||||
<div>
|
||||
<h1>Privacy Policy</h1>
|
||||
<span class="last-modified">Last modified: Friday, 13 Oct 2017</span>
|
||||
<p>By using Services of Icy Network, you acknowledge and agree to these policies.</p>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div class="tos">
|
||||
<div>
|
||||
<h1>Terms of Service</h1>
|
||||
<span class="last-modified">Last modified: Wednesday, 03 Jan 2018</span>
|
||||
<p>Please read the following Terms and Conditions carefully. By using Icy Network services, you signify that you have read, understood and agreed to be bound by these Terms and Conditions. Icy Network reserves the right to modify, replace or remove any of the Terms and Conditions written in this document at any given time without restrictions. We will try to notify you of any such amendments. If you do not agree to these Terms and Conditions, you may not use any of the services provided by Icy Network.</p>
|
||||
|
12
package-lock.json
generated
12
package-lock.json
generated
@ -962,6 +962,12 @@
|
||||
"hoek": "4.2.0"
|
||||
}
|
||||
},
|
||||
"bootstrap": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0.tgz",
|
||||
"integrity": "sha512-gulJE5dGFo6Q61V/whS6VM4WIyrlydXfCgkE+Gxe5hjrJ8rXLLZlALq7zq2RPhOc45PSwQpJkrTnc2KgD6cvmA==",
|
||||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
|
||||
@ -5690,6 +5696,12 @@
|
||||
"integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=",
|
||||
"dev": true
|
||||
},
|
||||
"popper.js": {
|
||||
"version": "1.12.9",
|
||||
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.12.9.tgz",
|
||||
"integrity": "sha1-DfvC3/lsRRuzMu3Pz6r1ZtMx1bM=",
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "6.0.14",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz",
|
||||
|
@ -62,11 +62,13 @@
|
||||
"devDependencies": {
|
||||
"babel-loader": "^7.1.2",
|
||||
"babel-preset-env": "^1.6.1",
|
||||
"bootstrap": "^4.0.0",
|
||||
"concurrently": "^3.5.1",
|
||||
"eslint-plugin-import": "^2.8.0",
|
||||
"jquery": "^3.2.1",
|
||||
"morgan": "^1.9.0",
|
||||
"mustache": "^2.3.0",
|
||||
"popper.js": "^1.12.9",
|
||||
"standard": "^10.0.3",
|
||||
"uglifyjs-webpack-plugin": "^1.1.2",
|
||||
"vue-clickaway": "^2.1.0",
|
||||
|
@ -1,4 +1,6 @@
|
||||
window.$ = require('jquery')
|
||||
window.Popper = require('popper.js')
|
||||
require('bootstrap')
|
||||
|
||||
$(document).ready(function () {
|
||||
function pwcheck (e) {
|
||||
@ -201,11 +203,10 @@ $(document).ready(function () {
|
||||
var html = ''
|
||||
for (var i in data) {
|
||||
var article = data[i]
|
||||
html += '<div class="prvarticle">'
|
||||
html += '<a class="title" href="/news/' + article.id + '-' + article.slug + '">' + article.title + '</a>'
|
||||
html += '<span class="timestamp">Published at ' + new Date(article.created_at) + '</span>'
|
||||
html += '<div class="prvcontent">' + article.description + '</div>'
|
||||
html += '<a href="/news/' + article.id + '-' + article.slug + '">Read More</a>'
|
||||
html += '<div class="news-article">'
|
||||
html += '<h2 class="news-title"><a href="/news/' + article.id + '-' + article.slug + '">' + article.title + '</a></h2>'
|
||||
html += '<p class="news-meta">Published at ' + new Date(article.created_at) + '</p>'
|
||||
html += '<div class="news-content">' + article.content + '</div>'
|
||||
html += '</div>'
|
||||
}
|
||||
$('.newsfeed').html(html)
|
||||
@ -303,7 +304,7 @@ $(document).ready(function () {
|
||||
})
|
||||
}
|
||||
|
||||
$('.loginDiag').click(function (e) {
|
||||
$('.login-dialog-pop').click(function (e) {
|
||||
e.preventDefault()
|
||||
var url = $(this).attr('href')
|
||||
var popup = PopupCenter(url, '_blank', 800, 620)
|
||||
|
@ -1,22 +1,6 @@
|
||||
body
|
||||
margin: 0
|
||||
color: black
|
||||
font-family: sans-serif
|
||||
/*background-color: #82fff4;
|
||||
background-image: linear-gradient(-45deg, #80d7ff 25%, transparent 25.5%, transparent 50%,
|
||||
#80d7ff 50.5%, #80d7ff 75%, transparent 75.5%, transparent)
|
||||
height: 100vh;
|
||||
background-size: 50px 50px;*/
|
||||
background: #6fefff
|
||||
background: -moz-linear-gradient(top, #6fefff 0%, #53cbf1 51%, #05abe0 100%)
|
||||
background: -webkit-linear-gradient(top, #6fefff 0%,#53cbf1 51%,#05abe0 100%)
|
||||
background: linear-gradient(to bottom, #6fefff 0%,#53cbf1 51%,#05abe0 100%)
|
||||
|
||||
a
|
||||
color: green
|
||||
text-decoration: none
|
||||
&:hover
|
||||
text-decoration: underline
|
||||
|
||||
.logo
|
||||
font-size: 8vw
|
||||
@ -109,30 +93,44 @@ a
|
||||
&:checked ~ .list
|
||||
max-height: 500px
|
||||
|
||||
section
|
||||
font-family: "Open Sans"
|
||||
position: relative
|
||||
min-height: 100vh
|
||||
.content
|
||||
.carousel
|
||||
margin-bottom: 4rem
|
||||
|
||||
.carousel-item
|
||||
height: 40rem
|
||||
background-color: #777
|
||||
|
||||
& > img
|
||||
position: absolute
|
||||
left: 0
|
||||
right: 0
|
||||
top: 0
|
||||
bottom: 40%
|
||||
overflow: auto
|
||||
background-color: #ffffff
|
||||
padding: 20px
|
||||
&#home
|
||||
h1
|
||||
font-size: 300%
|
||||
left: 0
|
||||
min-width: 100%
|
||||
height: 40rem
|
||||
|
||||
.marketing .col-lg-4
|
||||
margin-bottom: 1.5rem
|
||||
text-align: center
|
||||
color: green
|
||||
margin-bottom: 0
|
||||
p
|
||||
text-align: center;
|
||||
font-size: 200%
|
||||
color: #0074d0;
|
||||
font-weight: bold;
|
||||
|
||||
.circular-header
|
||||
width: 140px
|
||||
height: 140px
|
||||
vertical-align: middle
|
||||
display: inline-block
|
||||
border-radius: 50% !important
|
||||
line-height: 9rem
|
||||
font-size: 5rem
|
||||
color: #fff
|
||||
|
||||
.news-article
|
||||
margin-bottom: 4rem
|
||||
|
||||
.news-title
|
||||
margin-bottom: .25rem
|
||||
font-size: 2.5rem
|
||||
|
||||
.news-meta
|
||||
margin-bottom: 1.25rem
|
||||
color: #999
|
||||
|
||||
.divboxes
|
||||
text-align: center
|
||||
@ -178,35 +176,6 @@ section
|
||||
code
|
||||
white-space: pre
|
||||
|
||||
label
|
||||
display: block
|
||||
margin-top: 20px
|
||||
|
||||
input:not([type="submit"])
|
||||
padding: 5px
|
||||
font-size: 120%
|
||||
border-radius: 5px
|
||||
border: 1px solid #c1c1c1
|
||||
background-color: #f5f5f5
|
||||
color: #000
|
||||
box-shadow: inset 2px 2px 5px #ddd
|
||||
transition: border 0.1s linear
|
||||
|
||||
button, .button, input[type="submit"]
|
||||
display: block
|
||||
padding: 5px 10px
|
||||
background-color: #fbfbfb
|
||||
color: #000
|
||||
border: 1px solid #c1c1c1
|
||||
border-radius: 5px
|
||||
font-size: 120%
|
||||
margin: 10px 0
|
||||
cursor: pointer
|
||||
&.active
|
||||
background-color: #ddd
|
||||
|
||||
input[disabled]
|
||||
color: #959595
|
||||
|
||||
.button
|
||||
display: inline-block
|
||||
@ -260,8 +229,8 @@ input[disabled]
|
||||
color: #a9a9a9
|
||||
font-style: italic
|
||||
|
||||
.dlbtn
|
||||
display: block
|
||||
.app-button
|
||||
display: inline-block
|
||||
img
|
||||
width: 200px
|
||||
&.apple
|
||||
@ -269,15 +238,21 @@ input[disabled]
|
||||
width: 175px
|
||||
padding: 0 12px
|
||||
|
||||
.twitterLogin
|
||||
.login-btn
|
||||
display: block
|
||||
padding: 10px
|
||||
width: 215px
|
||||
text-decoration: none
|
||||
border-radius: 5px
|
||||
margin-top: 5px
|
||||
padding: 5px 5px
|
||||
width: 215px
|
||||
height: 50px
|
||||
cursor: pointer
|
||||
|
||||
&.twitter-login
|
||||
background-color: #fff
|
||||
border: 1px solid #ddd
|
||||
border-radius: 5px
|
||||
text-decoration: none
|
||||
line-height: 2.2rem
|
||||
|
||||
i
|
||||
color: #03A9F4
|
||||
font-size: 22px
|
||||
@ -285,38 +260,26 @@ input[disabled]
|
||||
color: #000
|
||||
display: inline-block
|
||||
vertical-align: top
|
||||
margin-top: 3px
|
||||
margin-left: 12px
|
||||
|
||||
.discordLogin
|
||||
display: block
|
||||
background-color: #99AAB5
|
||||
width: 225px
|
||||
height: 40px
|
||||
margin-top: 5px
|
||||
padding: 5px 5px
|
||||
border-radius: 5px
|
||||
text-decoration: none
|
||||
&.discord-login
|
||||
background-color: #99aab5
|
||||
line-height: 2.4rem
|
||||
|
||||
span
|
||||
color: white
|
||||
vertical-align: top
|
||||
margin-top: 11px
|
||||
margin-left: 3px
|
||||
display: inline-block
|
||||
img
|
||||
width: 45px
|
||||
display: inline-block
|
||||
|
||||
.googleLogin
|
||||
padding: 10px
|
||||
width: 215px
|
||||
margin-top: 5px
|
||||
&.google-login
|
||||
background-color: #4285f4
|
||||
border: 1px solid #ddd
|
||||
border-radius: 5px
|
||||
text-decoration: none
|
||||
display: block
|
||||
cursor: pointer
|
||||
line-height: 2.2rem
|
||||
|
||||
i
|
||||
color: #fff
|
||||
font-size: 22px
|
||||
@ -324,7 +287,6 @@ input[disabled]
|
||||
color: #fff
|
||||
display: inline-block
|
||||
vertical-align: top
|
||||
margin-top: 3px
|
||||
margin-left: 12px
|
||||
|
||||
.accdisconnect
|
||||
@ -462,9 +424,6 @@ span.load
|
||||
.prvcontent
|
||||
margin: 10px 0
|
||||
|
||||
.return
|
||||
margin-top: 40px
|
||||
|
||||
.content
|
||||
hr
|
||||
border-color: #ffffff
|
||||
|
@ -4,5 +4,5 @@ block title
|
||||
|Icy Network
|
||||
|
||||
block body
|
||||
.document
|
||||
.container.mt-4
|
||||
.content !{doc}
|
||||
|
@ -3,11 +3,9 @@ block title
|
||||
|Icy Network - Donate
|
||||
|
||||
block body
|
||||
.wrapper
|
||||
.boxcont
|
||||
.box#donate
|
||||
.container.mb-4.mt-4
|
||||
h1 Donate
|
||||
p Donations help us pay for the services required to keep Icy Network running. Donating any amount would be highly appreciated!
|
||||
p Donations help us pay for the servers required to keep Icy Network running. Donating any amount would be highly appreciated!
|
||||
|
||||
- var formurl = "https://www.paypal.com/cgi-bin/webscr"
|
||||
if sandbox
|
||||
@ -23,8 +21,11 @@ block body
|
||||
input(type="hidden" name="tax" value="0")
|
||||
input(type="hidden" name="notify_url" value=ipn_url)
|
||||
label(for="amount") Amount
|
||||
input(type="number", name="amount" value="1.00")
|
||||
select(name="currency_code")
|
||||
.row.form-group
|
||||
.col-10
|
||||
input.form-control(type="number", name="amount" value="1.00")
|
||||
.col
|
||||
select.form-control(name="currency_code")
|
||||
option(value="EUR") EUR
|
||||
option(value="USD") USD
|
||||
if user
|
||||
@ -32,14 +33,13 @@ block body
|
||||
else
|
||||
input#custominfo(type="hidden", name="custom", value="")
|
||||
if minecraft
|
||||
.check
|
||||
label(for="mcinclude") Include Minecraft Username
|
||||
input(id="mcinclude" type="checkbox")
|
||||
.mcuname(style="display: none;")
|
||||
input(id="mcusername", autocomplete="off")
|
||||
.form-check.form-check-inline
|
||||
input.form-check-input(id="mcinclude" type="checkbox" checked="false")
|
||||
label.form-check-label(for="mcinclude") Include Minecraft Username
|
||||
.mcuname.form-group(style="display: none;")
|
||||
label(for="mcusername") Minecraft Username
|
||||
input.form-control(id="mcusername", autocomplete="off")
|
||||
.buttoncont
|
||||
a.button.donate(name="submit", onclick="$(this).closest('form').submit()")
|
||||
a.btn.btn-primary.text-light(name="submit", onclick="$(this).closest('form').submit()")
|
||||
i.fa.fa-fw.fa-paypal
|
||||
|Donate
|
||||
br
|
||||
b Currently you can only donate using PayPal.
|
||||
| Donate
|
||||
|
@ -22,7 +22,7 @@
|
||||
fb:login-button(scope="public_profile,email", onlogin="checkLoginState();" data-max-rows="1", data-size="large", data-button-type="login_with", data-show-faces="false", data-auto-logout-link="false", data-use-continue-as="false")
|
||||
if google_auth
|
||||
script(src="https://apis.google.com/js/api:client.js")
|
||||
a.googleLogin
|
||||
a.login-btn.google-login
|
||||
i.fa.fa-fw.fa-google
|
||||
span Log in With Google
|
||||
script.
|
||||
@ -35,7 +35,7 @@
|
||||
cookiepolicy: 'single_host_origin',
|
||||
fetch_basic_profile: true
|
||||
});
|
||||
attachSignin(document.querySelector('.googleLogin'));
|
||||
attachSignin(document.querySelector('.google-login'));
|
||||
});
|
||||
};
|
||||
|
||||
@ -60,10 +60,10 @@
|
||||
|
||||
startApp()
|
||||
if twitter_auth
|
||||
a.twitterLogin.loginDiag(href="/api/external/twitter/login")
|
||||
a.login-btn.twitter-login.login-dialog-pop(href="/api/external/twitter/login")
|
||||
i.fa.fa-fw.fa-twitter
|
||||
span Log in With Twitter
|
||||
if discord_auth
|
||||
a.discordLogin.loginDiag(href="/api/external/discord/login")
|
||||
a.login-btn.discord-login.login-dialog-pop(href="/api/external/discord/login")
|
||||
img(src="/static/image/Discord-Logo-White.svg")
|
||||
span Log in With Discord
|
||||
|
@ -3,25 +3,46 @@ block title
|
||||
|Icy Network
|
||||
|
||||
block body
|
||||
section#home
|
||||
.content
|
||||
h1 Welcome to Icy Network!
|
||||
.carousel.slide#myCarousel(data-ride="carousel")
|
||||
ol.carousel-indicators
|
||||
li.active(data-target="#myCarousel" data-slide-to="0")
|
||||
li(data-target="#myCarousel" data-slide-to="1")
|
||||
.carousel-inner
|
||||
.carousel-item.active
|
||||
img.first-slide(src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==", alt="First Slide")
|
||||
.container
|
||||
.carousel-caption.text-left
|
||||
h1 Welcome to Icy Network
|
||||
p Icy Network is a Global Network of Communities and Websites, United by a Single Login
|
||||
.divboxes
|
||||
.divbox#secure
|
||||
span.head
|
||||
i.fa.fa-lock.fa-fw
|
||||
span.text Secure Login
|
||||
span.text A secure login system with Two-Factor Authentication possibility
|
||||
.divbox#secure
|
||||
span.head
|
||||
i.fa.fa-github.fa-fw
|
||||
span.text Open Source
|
||||
span.text All of our platforms are Open Source Software hosted on our
|
||||
a(href="https://github.com/IcyNet", target="_blank") GitHub Organization
|
||||
section#news
|
||||
.content
|
||||
h1 Icy Network News
|
||||
.newsfeed
|
||||
p Please enable JavaScript to view this content.
|
||||
a.older(href="/news") View all articles
|
||||
a.btn.btn-lg.btn-primary(href="#" role="button") Learn More
|
||||
.carousel-item
|
||||
img.second-slide(src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==", alt="Second Slide")
|
||||
.container
|
||||
.carousel-caption.text-left
|
||||
h1 Join our Minecraft Server
|
||||
p We have a Minecraft Server up at mc.icynet.eu, join now!
|
||||
a.carousel-control-prev(href="#myCarousel" role="button" data-slide="prev")
|
||||
span.carousel-control-prev-icon(aria-hidden="true")
|
||||
span.sr-only Previous
|
||||
a.carousel-control-next(href="#myCarousel" role="button" data-slide="next")
|
||||
span.carousel-control-next-icon(aria-hidden="true")
|
||||
span.sr-only Next
|
||||
.container.marketing
|
||||
.row
|
||||
.col-lg-4
|
||||
span.circular-header.bg-warning
|
||||
i.fa.fa-fw.fa-lock
|
||||
h2 Secure Login
|
||||
p We have a secure login system with the possibility to even further secure your account with Two-Factor Authentication.
|
||||
.col-lg-4
|
||||
span.circular-header.bg-success
|
||||
i.fa.fa-fw.fa-github
|
||||
h2 Open Source
|
||||
p All of our services are Free and Open Source Software (FOSS) hosted on GitHub.
|
||||
p
|
||||
a.btn.btn-secondary(href="https://github.com/IcyNet", target="_blank") Browse Repositories
|
||||
.col-lg-4
|
||||
span.circular-header.bg-info
|
||||
i.fa.fa-fw.fa-users
|
||||
h2 Community-oriented
|
||||
p Our services are made to serve communities. We unite them all with a single login system with support for multiple authentication protocols.
|
||||
|
@ -2,7 +2,7 @@ doctype html
|
||||
html
|
||||
head
|
||||
meta(charset="utf8")
|
||||
meta(name="viewport", content="width=device-width, initial-scale=1")
|
||||
meta(name="viewport", content="width=device-width, initial-scale=1, shrink-to-fit=no")
|
||||
block meta
|
||||
meta(name="og:title", content="Icy Network")
|
||||
meta(name="og:description", content="Icy Network is a Global Network of Communities and Websites, United by a Single Login")
|
||||
@ -27,8 +27,8 @@ html
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
block links
|
||||
link(rel="stylesheet", type="text/css", href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css")
|
||||
link(rel="stylesheet", type="text/css", href="/style/main.css")
|
||||
link(rel="stylesheet", type="text/css", href="/style/footer.css")
|
||||
link(rel="stylesheet", type="text/css", href="//fonts.googleapis.com/css?family=Open+Sans")
|
||||
link(rel="stylesheet", type="text/css", href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css")
|
||||
script(src="/script/main.js")
|
||||
@ -59,69 +59,51 @@ html
|
||||
p Please consider enabling JavaScript for the full experience.
|
||||
if matomo
|
||||
p
|
||||
img(src="#{matomo.track_url}piwik.php?idsite=1&rec=1" style="border:0;" alt="")
|
||||
block banner
|
||||
.banner
|
||||
.logo
|
||||
.part1 Icy
|
||||
.part2 Network
|
||||
block dialog
|
||||
.dialog-drop#dialog
|
||||
.dialog
|
||||
.head
|
||||
#title
|
||||
#close
|
||||
i.fa.fa-fw.fa-times
|
||||
.content#content
|
||||
img.d-inline-block.align-top(src="#{matomo.track_url}piwik.php?idsite=1&rec=1" style="border:0;" alt="")
|
||||
|
||||
block nav
|
||||
.anchor
|
||||
nav.navigator
|
||||
li.hidden#navlogo
|
||||
a(href="/")
|
||||
.logo.small
|
||||
.part1 Icy
|
||||
.part2 Network
|
||||
.menu
|
||||
label.showButton(for="show-menu")
|
||||
i.fa.fa-fw.fa-bars
|
||||
input(type="checkbox" id="show-menu")
|
||||
.list
|
||||
ul
|
||||
li
|
||||
a.scroll(href="/#home") Home
|
||||
li
|
||||
a.scroll(href="/#news") News
|
||||
li
|
||||
a(href="https://forum.icynet.eu/") Forum
|
||||
ul.floating
|
||||
nav.navbar.navbar-expand-lg.navbar-light.bg-light.sticky-top
|
||||
a.navbar-brand(href="/")
|
||||
img(src="/static/image/icynet-icon.svg" width="30" heigth="30")
|
||||
|Icy Network
|
||||
|
||||
button.navbar-toggler(type="button" data-toggle="collapse" data-target="#navCollapse" aria-controls="navCollapse" aria-expanded="false" aria-label="Toggle navigation")
|
||||
span.navbar-toggler-icon
|
||||
|
||||
.navbar-collapse.collapse#navCollapse
|
||||
ul.mr-auto.navbar-nav
|
||||
li.nav-item
|
||||
a.nav-link(href="/") Home
|
||||
li.nav-item
|
||||
a.nav-link(href="/news") News
|
||||
li.nav-item
|
||||
a.nav-link(href="https://forum.icynet.eu/") Forum
|
||||
ul.navbar-nav.my-2.my-lg-0
|
||||
if user
|
||||
li#user
|
||||
a(href="/user/manage") #{user.display_name}
|
||||
li
|
||||
a(href="/logout") Log out
|
||||
li.nav-item
|
||||
a.nav-link(href="/user/manage") #{user.display_name}
|
||||
li.nav-item
|
||||
a.nav-link(href="/logout") Log out
|
||||
else
|
||||
li
|
||||
a(href="/login") Log in
|
||||
li.nav-item
|
||||
a.nav-link(href="/login") Log in
|
||||
main(role="main")
|
||||
block body
|
||||
block footer
|
||||
footer
|
||||
img.squeebot(src="/static/image/squeebot.svg")
|
||||
span.copyright
|
||||
.logo.small
|
||||
.part1 Icy
|
||||
.part2 Network
|
||||
.social
|
||||
//FOOTER
|
||||
footer.container
|
||||
p.float-right
|
||||
a.socialbtn#github(href="https://github.com/IcyNet/" target="_blank")
|
||||
i.fa.fa-fw.fa-github
|
||||
a.socialbtn#twitter(href="https://twitter.com/IcyNet" target="_blank")
|
||||
i.fa.fa-fw.fa-twitter
|
||||
a.socialbtn#discord(href="https://discord.gg/Xe7MKSx" target="_blank")
|
||||
span.discordlogo
|
||||
span © 2018 - Icy Network - Some Rights Reserved
|
||||
br
|
||||
span
|
||||
a(href="/docs/terms-of-service") Terms of Service
|
||||
span.divider |
|
||||
a(href="/docs/privacy-policy") Privacy Policy
|
||||
span.divider |
|
||||
p
|
||||
|© 2017-2018 Icy Network
|
||||
| ·
|
||||
a(href="/docs/terms-of-service") Terms
|
||||
| ·
|
||||
a(href="/docs/privacy-policy") Privacy
|
||||
| ·
|
||||
a(href="/donate") Donate
|
||||
|
@ -24,25 +24,31 @@ block title
|
||||
|Icy Network - News - 404
|
||||
|
||||
block body
|
||||
.document
|
||||
.content
|
||||
.container.mt-4
|
||||
if !article
|
||||
span.error No such article
|
||||
else
|
||||
.article
|
||||
nav(aria-label="breadcrumb")
|
||||
ol.breadcrumb
|
||||
li.breadcrumb-item
|
||||
a(href="/") Home
|
||||
li.breadcrumb-item
|
||||
a(href="/news") News
|
||||
li.breadcrumb-item.active(aria-current="page")= article.title
|
||||
|
||||
.news-article
|
||||
if user && user.privilege && user.privilege > 0 && !editing
|
||||
a.button(style="float: right;" href="?edit=1") Edit
|
||||
.title= article.title
|
||||
.author Published by
|
||||
a.btn.btn-primary.float-right(href="?edit=1") Edit
|
||||
h1.news-title= article.title
|
||||
p.news-meta Published by
|
||||
span #{article.author.display_name}
|
||||
|at
|
||||
.timestamp #{new Date(article.created_at)}
|
||||
|at #{new Date(article.created_at)}
|
||||
if editing
|
||||
.content(contenteditable="true" id="editor1")!= article.content
|
||||
else
|
||||
.content!= article.content
|
||||
if editing
|
||||
.button(id="done") Done editing
|
||||
.btn.btn-success(id="done") Done editing
|
||||
br
|
||||
script.
|
||||
CKEDITOR.disableAutoInline = true;
|
||||
@ -62,7 +68,3 @@ block body
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
.return
|
||||
a(href="/news") Back to the news archive
|
||||
|
||||
|
@ -7,25 +7,34 @@ block title
|
||||
|Icy Network - News - Compose
|
||||
|
||||
block body
|
||||
.document
|
||||
.content
|
||||
.container.mt-4.mb-4
|
||||
nav(aria-label="breadcrumb")
|
||||
ol.breadcrumb
|
||||
li.breadcrumb-item
|
||||
a(href="/") Home
|
||||
li.breadcrumb-item
|
||||
a(href="/news") News
|
||||
li.breadcrumb-item.active(aria-current="page") Compose
|
||||
if message.text
|
||||
if message.error
|
||||
.message.error
|
||||
.alert.alert-danger
|
||||
span #{message.text}
|
||||
else
|
||||
.message
|
||||
.alert.alert-warning
|
||||
span #{message.text}
|
||||
form(action="", method="post")
|
||||
input(type="hidden", name="csrf", value=csrf)
|
||||
.form-group
|
||||
label(for="title") Title
|
||||
input(type="text", name="title", id="title", value=formkeep.title)
|
||||
input.form-control(type="text", name="title", id="title", value=formkeep.title, aria-describedby="titleHelp")
|
||||
small.form-text.text-muted#titleHelp Describe your article in a short sentence
|
||||
.form-group
|
||||
label(for="composer1") Content
|
||||
textarea(name="content" id="composer1") #{formkeep.content}
|
||||
textarea.form-control(name="content" id="composer1") #{formkeep.content}
|
||||
.form-group
|
||||
label(for="tags") Tags
|
||||
input(type="text", name="tags", id="tags", value=formkeep.tags)
|
||||
input(type="submit", value="Submit")
|
||||
input.form-control(type="text", name="tags", id="tags", value=formkeep.tags)
|
||||
button.btn.btn-primary(type="submit") Submit
|
||||
script.
|
||||
CKEDITOR.replace('composer1')
|
||||
a(href="/news") Back to news directory
|
||||
|
||||
|
@ -7,33 +7,49 @@ block title
|
||||
|Icy Network - News
|
||||
|
||||
block body
|
||||
.document
|
||||
.content
|
||||
.container.mt-4
|
||||
nav(aria-label="breadcrumb")
|
||||
ol.breadcrumb
|
||||
li.breadcrumb-item
|
||||
a(href="/") Home
|
||||
li.breadcrumb-item.active(aria-current="page") News
|
||||
|
||||
if user && user.privilege && user.privilege > 0
|
||||
a.button(style="float: right;" href="/news/compose") New Article
|
||||
h1 Icy Network News Archive
|
||||
a.btn.btn-light.float-right(href="/news/compose") New Article
|
||||
h1.pb-3.mb-4.border-bottom Icy Network News
|
||||
if news.error
|
||||
span.error There are no articles to show.
|
||||
else
|
||||
if news.page
|
||||
span.pagenum
|
||||
|Page #{news.page.page} of #{news.page.pages}
|
||||
.pgn
|
||||
nav(aria-label="pagination")
|
||||
ul.pagination
|
||||
if news.page.page > 1
|
||||
a.button(href="/news/?page=" + (news.page.page - 1)) Previous
|
||||
li.page-item
|
||||
a.page-link(href="/news/?page=" + (news.page.page - 1)) Previous
|
||||
else
|
||||
li.page-item.disabled
|
||||
a.page-link(href="#" tabindex="-1") Previous
|
||||
- var n = 0
|
||||
while n < news.page.pages
|
||||
a.button(href="/news/?page=" + (n + 1))= n + 1
|
||||
- var current = n + 1 == news.page.page
|
||||
li.page-item(class=(current ? 'active' : ''))
|
||||
a.page-link(href="/news/?page=" + (n + 1))= n + 1
|
||||
if current
|
||||
span.sr-only (current)
|
||||
- n++
|
||||
if news.page.pages > news.page.page
|
||||
a.button(href="/news/?page=" + (news.page.page + 1)) Next
|
||||
li.page-item
|
||||
a.page-link(href="/news/?page=" + (news.page.page + 1)) Next
|
||||
else
|
||||
li.page-item.disabled
|
||||
a.page-link(href="#" tabindex="-1") Next
|
||||
each val in news.articles
|
||||
.article
|
||||
a.title(href="/news/" + val.id + "-" + val.slug)= val.title
|
||||
.author Published by
|
||||
.news-article
|
||||
h2.news-title
|
||||
a(href="/news/" + val.id + "-" + val.slug)= val.title
|
||||
p.news-meta Published by
|
||||
span #{val.author.display_name}
|
||||
|at
|
||||
.timestamp #{new Date(val.created_at)}
|
||||
|at #{new Date(val.created_at)}
|
||||
.content!= val.content
|
||||
hr
|
||||
|
||||
|
@ -3,21 +3,22 @@ block title
|
||||
|Icy Network - Banned Account
|
||||
|
||||
block body
|
||||
.wrapper
|
||||
.boxcont
|
||||
.box#login
|
||||
.container.mt-4.mb-4
|
||||
if ipban
|
||||
h1 This IP Address is BANNED!
|
||||
h1 This IP Address is banned from accessing Icy Network
|
||||
else
|
||||
h1 This User is BANNED!
|
||||
p This user currently has #{bans.length} ban(s) active
|
||||
h1 This user is banned from accessing Icy Network.
|
||||
p This user currently has #{bans.length} ban(s) active.
|
||||
each ban in bans
|
||||
.message.error.ban
|
||||
label Banned
|
||||
.ban.alert.alert-danger
|
||||
p
|
||||
b Banned at
|
||||
.date #{new Date(ban.banned)}
|
||||
label Reason
|
||||
p
|
||||
b Reason
|
||||
.reason #{ban.reason}
|
||||
label Expires at
|
||||
p
|
||||
b Expires at
|
||||
.expiry
|
||||
if !ban.expiry
|
||||
b This ban is permanent.
|
||||
|
@ -3,27 +3,34 @@ block title
|
||||
|Icy Network - Change User Email
|
||||
|
||||
block body
|
||||
.wrapper
|
||||
.boxcont
|
||||
.box#totpcheck
|
||||
h1 Change Your Email
|
||||
.container.mt-4.mb-4
|
||||
nav(aria-label="breadcrumb")
|
||||
ol.breadcrumb
|
||||
li.breadcrumb-item
|
||||
a(href="/") Home
|
||||
li.breadcrumb-item
|
||||
a(href="/user/manage") User Settings
|
||||
li.breadcrumb-item.active(aria-current="page") Change Email Address
|
||||
h1 Change Your Email Address
|
||||
if message.text
|
||||
if message.error
|
||||
.message.error
|
||||
.alert.alert-danger
|
||||
span #{message.text}
|
||||
else
|
||||
.message
|
||||
.alert.alert-success
|
||||
span #{message.text}
|
||||
form#loginForm(method="POST", action="")
|
||||
input(type="hidden", name="csrf", value=csrf)
|
||||
if email
|
||||
.form-group
|
||||
label(for="email") Current Email Address
|
||||
input.form-control(type="email", name="email", id="email")
|
||||
small Email Hint: #{email}
|
||||
br
|
||||
input(type="email", name="email", id="email")
|
||||
.form-group
|
||||
label(for="email_new") New Email Address
|
||||
input(type="email", name="email_new", id="email_new")
|
||||
input.form-control(type="email", name="email_new", id="email_new")
|
||||
if password
|
||||
.form-group
|
||||
label(for="password") Password
|
||||
input(type="password", name="password", id="password")
|
||||
input(type="submit", value="Change")
|
||||
input.form-control(type="password", name="password", id="password")
|
||||
button.btn.btn-primary(type="submit") Done
|
||||
|
@ -3,27 +3,28 @@ block title
|
||||
|Icy Network - Log In
|
||||
|
||||
block body
|
||||
.wrapper
|
||||
.boxcont
|
||||
.box#login
|
||||
.container.mb-4.mt-4
|
||||
h1 Log in
|
||||
.left
|
||||
.row
|
||||
.col
|
||||
if message.text
|
||||
if message.error
|
||||
.message.error
|
||||
.alert.alert-danger
|
||||
span #{message.text}
|
||||
else
|
||||
.message
|
||||
.alert.alert-success
|
||||
span #{message.text}
|
||||
form#loginForm(method="POST", action="")
|
||||
input(type="hidden", name="csrf", value=csrf)
|
||||
.form-group
|
||||
label(for="username") Username or Email Address
|
||||
input(type="text", name="username", id="username")
|
||||
input.form-control(type="text", name="username", id="username")
|
||||
.form-group
|
||||
label(for="password") Password
|
||||
input(type="password", name="password", id="password")
|
||||
input(type="submit", value="Log in")
|
||||
a#create(href="/register") Create an account
|
||||
span.divider ·
|
||||
a#create(href="/login/reset") Forgot password?
|
||||
.right
|
||||
input.form-control(type="password", name="password", id="password")
|
||||
button.btn.btn-primary(type="submit") Log in
|
||||
a(href="/register") Create an account
|
||||
| ·
|
||||
a(href="/login/reset") Forgot password?
|
||||
aside.col
|
||||
include ../includes/external.pug
|
||||
|
@ -3,20 +3,19 @@ block title
|
||||
|Icy Network - Password Required
|
||||
|
||||
block body
|
||||
.wrapper
|
||||
.boxcont
|
||||
.box#totpcheck
|
||||
.container.mt-4.mb-4
|
||||
h1 Enter your password
|
||||
small.descr This action requires your password to continue
|
||||
p This action requires your password to continue
|
||||
if message.text
|
||||
if message.error
|
||||
.message.error
|
||||
.alert.alert-danger
|
||||
span #{message.text}
|
||||
else
|
||||
.message
|
||||
.alert.alert-warning
|
||||
span #{message.text}
|
||||
form#loginForm(method="POST", action=post)
|
||||
input(type="hidden", name="csrf", value=csrf)
|
||||
.form-group
|
||||
label(for="password") Password
|
||||
input(type="password", name="password", id="password")
|
||||
input(type="submit", value="Continue")
|
||||
input.form-control#password(type="password", name="password")
|
||||
button.btn.btn-primary(type="submit") Continue
|
||||
|
@ -3,25 +3,34 @@ block title
|
||||
|Icy Network - Change User Password
|
||||
|
||||
block body
|
||||
.wrapper
|
||||
.boxcont
|
||||
.box#totpcheck
|
||||
.container.mt-4.mb-4
|
||||
if user
|
||||
nav(aria-label="breadcrumb")
|
||||
ol.breadcrumb
|
||||
li.breadcrumb-item
|
||||
a(href="/") Home
|
||||
li.breadcrumb-item
|
||||
a(href="/user/manage") User Settings
|
||||
li.breadcrumb-item.active(aria-current="page") Change Password
|
||||
h1 Change Your Password
|
||||
if message.text
|
||||
if message.error
|
||||
.message.error
|
||||
.alert.alert-danger
|
||||
span #{message.text}
|
||||
else
|
||||
.message
|
||||
.alert.alert-success
|
||||
span #{message.text}
|
||||
form#loginForm(method="POST", action="")
|
||||
input(type="hidden", name="csrf", value=csrf)
|
||||
if !token
|
||||
.form-group
|
||||
label(for="password_old") Current Password
|
||||
input(type="password", name="password_old", id="password_old")
|
||||
input.form-control#password_old(type="password", name="password_old")
|
||||
.form-group
|
||||
label(for="password") New Password
|
||||
input(type="password", name="password", id="password")
|
||||
input.form-control#password(type="password", name="password")
|
||||
.form-group
|
||||
label(for="password_repeat") Repeat New Password
|
||||
input(type="password", name="password_repeat", id="password_repeat", autocomplete="off")
|
||||
div#repeatcheck(style="display: none")
|
||||
input(type="submit", value="Change")
|
||||
input.form-control#password_repeat(type="password", name="password_repeat", autocomplete="off")
|
||||
small#repeatcheck(style="display: none")
|
||||
button.btn.btn-primary(type="submit") Change
|
||||
|
@ -3,35 +3,45 @@ block title
|
||||
|Icy Network - Register
|
||||
|
||||
block body
|
||||
.wrapper
|
||||
.boxcont
|
||||
.box#login
|
||||
.container.mb-4.mt-4
|
||||
h1 Create a new account
|
||||
.left
|
||||
.row
|
||||
.col
|
||||
if message.text
|
||||
if message.error
|
||||
.message.error
|
||||
.alert.alert-danger
|
||||
span #{message.text}
|
||||
else
|
||||
.message
|
||||
.alert.alert-success
|
||||
span #{message.text}
|
||||
form#loginForm(method="POST", action="")
|
||||
input(type="hidden", name="csrf", value=csrf)
|
||||
.form-group
|
||||
label(for="username") Username
|
||||
input(type="text", name="username", id="username", value=formkeep.username)
|
||||
input.form-control#username(type="text", name="username", value=formkeep.username, aria-labelledby="usernameText")
|
||||
small#usernameText English characters, numbers and -_ only.
|
||||
.form-group
|
||||
label(for="display_name") Display Name
|
||||
input(type="text", name="display_name", id="display_name", value=formkeep.display_name)
|
||||
input.form-control#display_name(type="text", name="display_name", value=formkeep.display_name, aria-labelledby="display_nameText")
|
||||
small#display_nameText The name displayed on your public profiles.
|
||||
.form-group
|
||||
label(for="email") Email Address
|
||||
input(type="email", name="email", id="email", value=formkeep.email)
|
||||
input.form-control#email(type="email", name="email", value=formkeep.email)
|
||||
.form-group
|
||||
label(for="password") Password
|
||||
input(type="password", name="password", id="password")
|
||||
input.form-control#password(type="password", name="password", aria-labelledby="passwordText")
|
||||
small#passwordText 8 characters minimum.
|
||||
.form-group
|
||||
label(for="password_repeat") Repeat Password
|
||||
input(type="password", name="password_repeat", id="password_repeat", autocomplete="off")
|
||||
div#repeatcheck(style="display: none")
|
||||
input.form-control#password_repeat(type="password", name="password_repeat", autocomplete="off")
|
||||
small#repeatcheck(style="display: none")
|
||||
if recaptcha
|
||||
.form-group
|
||||
label Captcha
|
||||
script(src='https://www.google.com/recaptcha/api.js')
|
||||
.g-recaptcha(data-sitekey=recaptcha)
|
||||
input(type="submit", value="Register")
|
||||
a#create(href="/login") Log in with an existing account
|
||||
.right
|
||||
button.btn.btn-primary(type="submit") Register
|
||||
| or
|
||||
a(href="/login") log in with an existing account
|
||||
aside.col
|
||||
include ../includes/external.pug
|
||||
|
@ -3,24 +3,39 @@ block title
|
||||
|Icy Network - User Settings
|
||||
|
||||
block body
|
||||
.wrapper
|
||||
.boxcont
|
||||
.box#settings
|
||||
.container.mt-4.mb-4
|
||||
nav(aria-label="breadcrumb")
|
||||
ol.breadcrumb
|
||||
li.breadcrumb-item
|
||||
a(href="/") Home
|
||||
li.breadcrumb-item.active(aria-current="page") User Settings
|
||||
h1 User Settings
|
||||
.left
|
||||
.row
|
||||
.col-3
|
||||
.nav.flex-column.nav-pills#v-pills-tab(role="tablist", aria-orientation="vertical")
|
||||
a.nav-link.active#v-pills-main-tab(data-toggle="tab", href="#v-pills-main", role="tab", aria-control="v-pills-main", aria-selected="true") General Settings
|
||||
a.nav-link#v-pills-social-tab(data-toggle="tab", href="#v-pills-social", role="tab", aria-control="v-pills-social", aria-selected="false") Social Accounts
|
||||
a.nav-link#v-pills-oauth2-tab(data-toggle="tab", href="#v-pills-oauth2", role="tab", aria-control="v-pills-oauth2", aria-selected="false") OAuth2 Authorizations
|
||||
a.nav-link#v-pills-actions-tab(data-toggle="tab", href="#v-pills-actions", role="tab", aria-control="v-pills-actions", aria-selected="false") Account Actions
|
||||
.col-9
|
||||
.tab-content#v-pills-tabContent
|
||||
.tab-pane.fade.show.active#v-pills-main(role="tabpanel", aria-labelledby="v-pills-main")
|
||||
h2 General Settings
|
||||
if message.text
|
||||
if message.error
|
||||
.message.error
|
||||
.alert.alert-danger
|
||||
span #{message.text}
|
||||
else
|
||||
.message
|
||||
.alert.alert-success
|
||||
span #{message.text}
|
||||
form#loginForm(method="POST", action="")
|
||||
input(type="hidden", name="csrf", value=csrf)
|
||||
.form-group
|
||||
label(for="username") Username
|
||||
input(type="text", name="username", id="username", value=user.username, disabled)
|
||||
input.form-control(type="text", name="username", id="username", value=user.username, disabled)
|
||||
.form-group
|
||||
label(for="display_name") Display Name
|
||||
input(type="text", name="display_name", id="display_name", value=user.display_name)
|
||||
input.form-control(type="text", name="display_name", id="display_name", value=user.display_name)
|
||||
label Avatar
|
||||
.avatarCont
|
||||
include ../includes/avatar.pug
|
||||
@ -28,10 +43,10 @@ block body
|
||||
a#newAvatar(href='#') Change Avatar
|
||||
if user.avatar_file
|
||||
a#removeAvatar(href='#') Remove Avatar
|
||||
input(type="submit", value="Save Settings")
|
||||
.right
|
||||
button.btn.btn-primary(type="submit") Save Settings
|
||||
.tab-pane.fade#v-pills-social(role="tabpanel", aria-labelledby="v-pills-social")
|
||||
h3 Social Media Accounts
|
||||
.specify(title="You can add social media accounts to your account for ease of login. Once added, logging in from linked sources logs you into this account automatically.") ?
|
||||
p You can add social media accounts to your account for ease of login. Once added, logging in from linked sources logs you into this account automatically.
|
||||
include ../includes/external.pug
|
||||
if google_auth == false
|
||||
a.option.accdisconnect(href="/api/external/google/remove")
|
||||
@ -49,7 +64,14 @@ block body
|
||||
a.option.accdisconnect(href="/api/external/discord/remove")
|
||||
i.fa.fa-fw.fa-times
|
||||
|Unlink Discord
|
||||
h3 Other Options
|
||||
.tab-pane.fade#v-pills-oauth2(role="tabpanel", aria-labelledby="v-pills-oauth2")
|
||||
.clients
|
||||
h2 Authorized Applications
|
||||
p Applications which have access to basic user information. You may restrict access at any time by pressing the red icon on the top right of the application card.
|
||||
.cl#clientlist
|
||||
p Please enable JavaScript to view this content.
|
||||
.tab-pane.fade#v-pills-actions(role="tabpanel", aria-labelledby="v-pills-actions")
|
||||
h3 Account Actions
|
||||
if password
|
||||
a.option(href="/user/manage/password")
|
||||
i.fa.fa-fw.fa-lock
|
||||
@ -65,8 +87,3 @@ block body
|
||||
a.option(href="/user/manage/email")
|
||||
i.fa.fa-fw.fa-envelope
|
||||
|Change Email Address
|
||||
.clients
|
||||
h2 Authorized Applications
|
||||
.specify(title="Applications which have access to basic user information. You may restrict access at any time by pressing the red icon on the top right of the application card.") ?
|
||||
.cl#clientlist
|
||||
p Please enable JavaScript to view this content.
|
||||
|
@ -3,20 +3,19 @@ block title
|
||||
|Icy Network - Log In - Verification Required
|
||||
|
||||
block body
|
||||
.wrapper
|
||||
.boxcont
|
||||
.box#totpcheck
|
||||
.container
|
||||
h1 Enter Code
|
||||
small.descr This user has Two Factor Authentication enabled. Enter the code to log in.
|
||||
p This user has Two Factor Authentication enabled. Enter the code to log in.
|
||||
if message.text
|
||||
if message.error
|
||||
.message.error
|
||||
.alert.alert-danger
|
||||
span #{message.text}
|
||||
else
|
||||
.message
|
||||
.alert.alert-success
|
||||
span #{message.text}
|
||||
form#loginForm(method="POST", action="")
|
||||
input(type="hidden", name="csrf", value=csrf)
|
||||
.form-group
|
||||
label(for="code") Code
|
||||
input(type="text", name="code", id="code", autocomplete="off")
|
||||
input(type="submit", value="Log in")
|
||||
input.form-control#code(type="text", name="code", autocomplete="off")
|
||||
button.btn.btn-primary(type="submit") Log in
|
||||
|
@ -3,33 +3,40 @@ block title
|
||||
|Icy Network - Activate Authenticator
|
||||
|
||||
block body
|
||||
.wrapper
|
||||
.boxcont
|
||||
.box#login
|
||||
.container.mt-5.mb-5
|
||||
nav(aria-label="breadcrumb")
|
||||
ol.breadcrumb
|
||||
li.breadcrumb-item
|
||||
a(href="/") Home
|
||||
li.breadcrumb-item
|
||||
a(href="/user/manage") User Settings
|
||||
li.breadcrumb-item.active(aria-current="page") Enable Two Factor Authentication
|
||||
h1 Two Factor Authentication
|
||||
.left
|
||||
.row
|
||||
.col
|
||||
if message.text
|
||||
if message.error
|
||||
.message.error
|
||||
.alert.alert-danger
|
||||
span #{message.text}
|
||||
else
|
||||
.message
|
||||
.alert.alert-warning
|
||||
span #{message.text}
|
||||
img.qr(src="//api.qrserver.com/v1/create-qr-code/?data=" + uri)
|
||||
form#totpForm(method="POST", action="")
|
||||
input(type="hidden", name="csrf", value=csrf)
|
||||
.form-group
|
||||
label(for="code") Enter the Code
|
||||
input(type="text", name="code", id="code", autocomplete="off")
|
||||
input(type="submit", value="Enable Now")
|
||||
.right
|
||||
input.form-control#code(type="text", name="code", autocomplete="off")
|
||||
button.btn.btn-primary(type="submit") Enable Now
|
||||
aside.col
|
||||
h3 How to use
|
||||
ol
|
||||
li Scan the QR Code with your authenticator app
|
||||
li Enter the one-time code given to you
|
||||
li You will now be asked for a code every time you log in
|
||||
h3 Authenticator app
|
||||
p We recommend using Google Authenticator
|
||||
a.dlbtn(href='https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1', target="_blank")
|
||||
p We recommend using Google Authenticator. You can download it below for your smartphone:
|
||||
a.app-button(href='https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1', target="_blank")
|
||||
img(alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png')
|
||||
a.dlbtn.apple(href='https://itunes.apple.com/us/app/google-authenticator/id388497605', target="_blank")
|
||||
a.app-button.apple(href='https://itunes.apple.com/us/app/google-authenticator/id388497605', target="_blank")
|
||||
img(alt='Download on the App Store' src='https://devimages-cdn.apple.com/app-store/marketing/guidelines/images/badge-download-on-the-app-store.svg')
|
||||
|
Reference in New Issue
Block a user