This commit is contained in:
Jabba 2020-11-04 20:10:55 +01:00 committed by GitHub
commit a9b5078598
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 3750 additions and 931 deletions

View File

@ -1,20 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<title>Settings - ZeroNet</title>
<meta charset="utf-8" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/all.css?rev={rev}" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Settings - ZeroNet</title>
<link rel="stylesheet" href="css/all.css?rev={rev}">
</head>
<body>
<h1>ZeroNet config</h1>
<h1>ZeroNet config</h1>
<div class="content" id="content"></div>
<div class="bottom" id="bottom-save"></div>
<div class="bottom" id="bottom-restart"></div>
<div class="content" id="content"></div>
<div class="bottom" id="bottom-save"></div>
<div class="bottom" id="bottom-restart"></div>
<script type="text/javascript" src="js/all.js?rev={rev}&lang={lang}"></script>
<script src="js/all.js?rev={rev}&lang={lang}"></script>
</body>
</html>

View File

@ -1,68 +1,292 @@
body { background-color: #EDF2F5; font-family: Roboto, 'Segoe UI', Arial, 'Helvetica Neue'; margin: 0px; padding: 0px; backface-visibility: hidden; }
h1, h2, h3, h4 { font-family: 'Roboto', Arial, sans-serif; font-weight: 200; font-size: 30px; margin: 0px; padding: 0px }
h1 { background: linear-gradient(33deg,#af3bff,#0d99c9); color: white; padding: 16px 30px; }
h2 { margin-top: 10px; }
h3 { font-weight: normal }
a { color: #9760F9 }
a:hover { text-decoration: none }
.link { background-color: transparent; outline: 5px solid transparent; transition: all 0.3s }
.link:active { background-color: #EFEFEF; outline: 5px solid #EFEFEF; transition: none }
.content { max-width: 800px; margin: auto; background-color: white; padding: 60px 20px; box-sizing: border-box; padding-bottom: 150px; }
.section { margin: 0px 10%; }
.config-items { font-size: 19px; margin-top: 25px; margin-bottom: 75px; }
.config-item { transition: all 0.8s cubic-bezier(0.86, 0, 0.07, 1); position: relative; padding-bottom: 20px; padding-top: 10px; }
.config-item.hidden { opacity: 0; height: 0px; padding: 0px; }
.config-item .title { display: inline-block; line-height: 36px; }
.config-item .title h3 { font-size: 20px; font-weight: lighter; margin-right: 100px; }
.config-item .description { font-size: 14px; color: #666; line-height: 24px; }
.config-item .value { display: inline-block; white-space: nowrap; }
.config-item .value-right { right: 0px; position: absolute; }
.config-item .value-fullwidth { width: 100% }
.config-item .marker {
font-weight: bold; text-decoration: none; font-size: 25px; position: absolute; padding: 2px 15px; line-height: 32px;
opacity: 0; pointer-events: none; transition: all 0.6s; transform: scale(2); color: #9760F9;
body {
background-color: #EDF2F5;
font-family: Roboto, 'Segoe UI', Arial, 'Helvetica Neue';
margin: 0px;
padding: 0px;
backface-visibility: hidden;
}
.config-item .marker.visible { opacity: 1; pointer-events: all; transform: scale(1); }
.config-item .marker.changed { color: #2ecc71; }
.config-item .marker.pending { color: #ffa200; }
h1, h2, h3, h4 {
font-family: 'Roboto', Arial, sans-serif;
font-weight: 200;
font-size: 30px;
margin: 0px;
padding: 0px
}
.input-text, .input-select { padding: 8px 18px; border: 1px solid #CCC; border-radius: 3px; font-size: 17px; box-sizing: border-box; }
.input-text:focus, .input-select:focus { border: 1px solid #3396ff; outline: none; }
.input-textarea { overflow-x: auto; overflow-y: hidden; white-space: pre; line-height: 22px; }
h1 {
background: linear-gradient(33deg, #af3bff, #0d99c9);
color: white;
padding: 16px 30px;
}
.input-select { width: initial; font-size: 14px; padding-right: 10px; padding-left: 10px; }
h2 {
margin-top: 10px;
}
.value-right .input-text { text-align: right; width: 100px; }
.value-fullwidth .input-text { width: 100%; font-size: 14px; font-family: 'Segoe UI', Arial, 'Helvetica Neue'; }
.value-fullwidth { margin-top: 10px; }
h3 {
font-weight: normal
}
a {
color: #9760F9
}
a:hover {
text-decoration: none
}
.link {
background-color: transparent;
outline: 5px solid transparent;
transition: all 0.3s
}
.link:active {
background-color: #EFEFEF;
outline: 5px solid #EFEFEF;
transition: none
}
.content {
max-width: 800px;
margin: auto;
background-color: white;
padding: 60px 20px;
box-sizing: border-box;
padding-bottom: 150px;
}
.section {
margin: 0px 10%;
}
.config-items {
font-size: 19px;
margin-top: 25px;
margin-bottom: 75px;
}
.config-item {
transition: all 0.8s cubic-bezier(0.86, 0, 0.07, 1);
position: relative;
padding-bottom: 20px;
padding-top: 10px;
}
.config-item.hidden {
opacity: 0;
height: 0px;
padding: 0px;
}
.config-item .title {
display: inline-block;
line-height: 36px;
}
.config-item .title h3 {
font-size: 20px;
font-weight: lighter;
margin-right: 100px;
}
.config-item .description {
font-size: 14px;
color: #666;
line-height: 24px;
}
.config-item .value {
display: inline-block;
white-space: nowrap;
}
.config-item .value-right {
right: 0px;
position: absolute;
}
.config-item .value-fullwidth {
width: 100%
}
.config-item .marker {
font-weight: bold;
text-decoration: none;
font-size: 25px;
position: absolute;
padding: 2px 15px;
line-height: 32px;
opacity: 0;
pointer-events: none;
transition: all 0.6s;
transform: scale(2);
color: #9760F9;
}
.config-item .marker.visible {
opacity: 1;
pointer-events: all;
transform: scale(1);
}
.config-item .marker.changed {
color: #2ecc71;
}
.config-item .marker.pending {
color: #ffa200;
}
.input-text, .input-select {
padding: 8px 18px;
border: 1px solid #CCC;
border-radius: 3px;
font-size: 17px;
box-sizing: border-box;
}
.input-text:focus, .input-select:focus {
border: 1px solid #3396ff;
outline: none;
}
.input-textarea {
overflow-x: auto;
overflow-y: hidden;
white-space: pre;
line-height: 22px;
}
.input-select {
width: initial;
font-size: 14px;
padding-right: 10px;
padding-left: 10px;
}
.value-right .input-text {
text-align: right;
width: 100px;
}
.value-fullwidth .input-text {
width: 100%;
font-size: 14px;
font-family: 'Segoe UI', Arial, 'Helvetica Neue';
}
.value-fullwidth {
margin-top: 10px;
}
/* Checkbox */
.checkbox-skin { background-color: #CCC; width: 50px; height: 24px; border-radius: 15px; transition: all 0.3s ease-in-out; display: inline-block; }
.checkbox-skin:before {
content: ""; position: relative; width: 20px; background-color: white; height: 20px; display: block; border-radius: 100%; margin-top: 2px; margin-left: 2px;
transition: all 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86);
.checkbox-skin {
background-color: #CCC;
width: 50px;
height: 24px;
border-radius: 15px;
transition: all 0.3s ease-in-out;
display: inline-block;
}
.checkbox-skin:before {
content: "";
position: relative;
width: 20px;
background-color: white;
height: 20px;
display: block;
border-radius: 100%;
margin-top: 2px;
margin-left: 2px;
transition: all 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
.checkbox {
font-size: 14px;
font-weight: normal;
display: inline-block;
cursor: pointer;
margin-top: 5px;
}
.checkbox .title {
display: inline;
line-height: 30px;
vertical-align: 4px;
margin-left: 11px
}
.checkbox.checked .checkbox-skin:before {
margin-left: 27px;
}
.checkbox.checked .checkbox-skin {
background-color: #2ECC71
}
.checkbox { font-size: 14px; font-weight: normal; display: inline-block; cursor: pointer; margin-top: 5px; }
.checkbox .title { display: inline; line-height: 30px; vertical-align: 4px; margin-left: 11px }
.checkbox.checked .checkbox-skin:before { margin-left: 27px; }
.checkbox.checked .checkbox-skin { background-color: #2ECC71 }
/* Bottom */
.bottom {
width: 100%; text-align: center; background-color: #ffffffde; padding: 25px; bottom: -120px; -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px);
transition: all 0.8s cubic-bezier(0.86, 0, 0.07, 1); position: fixed; backface-visibility: hidden; box-sizing: border-box;
width: 100%;
text-align: center;
background-color: #ffffffde;
padding: 25px;
bottom: -120px;
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px);
transition: all 0.8s cubic-bezier(0.86, 0, 0.07, 1);
position: fixed;
backface-visibility: hidden;
box-sizing: border-box;
}
.bottom-content { max-width: 750px; width: 100%; margin: 0px auto; }
.bottom .button { float: right; }
.bottom.visible { bottom: 0px; box-shadow: 0px 0px 35px #dcdcdc; }
.bottom .title { padding: 10px 10px; color: #363636; float: left; text-transform: uppercase; letter-spacing: 1px; }
.bottom .title:before { content: "•"; display: inline-block; color: #2ecc71; font-size: 31px; vertical-align: -7px; margin-right: 8px; line-height: 25px; }
.bottom-restart .title:before { color: #ffa200; }
.animate { transition: all 0.3s ease-out !important; }
.animate-back { transition: all 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important; }
.animate-inout { transition: all 0.6s cubic-bezier(0.77, 0, 0.175, 1) !important; }
.bottom-content {
max-width: 750px;
width: 100%;
margin: 0px auto;
}
.bottom .button {
float: right;
}
.bottom.visible {
bottom: 0px;
box-shadow: 0px 0px 35px #dcdcdc;
}
.bottom .title {
padding: 10px 10px;
color: #363636;
float: left;
text-transform: uppercase;
letter-spacing: 1px;
}
.bottom .title:before {
content: "•";
display: inline-block;
color: #2ecc71;
font-size: 31px;
vertical-align: -7px;
margin-right: 8px;
line-height: 25px;
}
.bottom-restart .title:before {
color: #ffa200;
}
.animate {
transition: all 0.3s ease-out !important;
}
.animate-back {
transition: all 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
}
.animate-inout {
transition: all 0.6s cubic-bezier(0.77, 0, 0.175, 1) !important;
}

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,39 @@
/* Button */
.button {
background-color: #FFDC00; color: black; padding: 10px 20px; display: inline-block; background-position: left center;
border-radius: 2px; border-bottom: 2px solid #E8BE29; transition: all 0.5s ease-out; text-decoration: none;
background-color: #FFDC00;
color: black;
padding: 10px 20px;
display: inline-block;
background-position: left center;
border-radius: 2px;
border-bottom: 2px solid #E8BE29;
transition: all 0.5s ease-out;
text-decoration: none;
}
.button:hover { border-color: white; border-bottom: 2px solid #BD960C; transition: none ; background-color: #FDEB07 }
.button:active { position: relative; top: 1px }
.button:hover {
border-color: white;
border-bottom: 2px solid #BD960C;
transition: none;
background-color: #FDEB07
}
.button:active {
position: relative;
top: 1px
}
.button.loading {
color: rgba(0,0,0,0); background: #999 url(../img/loading.gif) no-repeat center center;
transition: all 0.5s ease-out ; pointer-events: none; border-bottom: 2px solid #666
color: rgba(0, 0, 0, 0);
background: #999 url(../img/loading.gif) no-repeat center center;
transition: all 0.5s ease-out;
pointer-events: none;
border-bottom: 2px solid #666
}
.button.disabled {
color: #DDD;
background-color: #999;
pointer-events: none;
border-bottom: 2px solid #666
}
.button.disabled { color: #DDD; background-color: #999; pointer-events: none; border-bottom: 2px solid #666 }

File diff suppressed because one or more lines are too long

View File

@ -17366,7 +17366,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
var kw = keywords[word]
return ret(kw.type, kw.style, word)
}
if (word == "async" && stream.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/, false))
if (word == "async" && stream.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/, false))
return ret("async", "keyword", word)
}
return ret("variable", "variable", word)

View File

@ -126,7 +126,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
var kw = keywords[word]
return ret(kw.type, kw.style, word)
}
if (word == "async" && stream.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/, false))
if (word == "async" && stream.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/, false))
return ret("async", "keyword", word)
}
return ret("variable", "variable", word)

View File

@ -1,33 +1,116 @@
.menu {
background-color: white; padding: 10px 0px; position: absolute; top: 0px; max-height: 0px; overflow: hidden; transform: translate(-100%, -30px); pointer-events: none;
box-shadow: 0px 2px 8px rgba(0,0,0,0.3); border-radius: 2px; opacity: 0; transition: opacity 0.2s ease-out, transform 1s ease-out, max-height 0.2s ease-in-out; z-index: 99;
display: inline-block; z-index: 999; transform-style: preserve-3d;
background-color: white;
padding: 10px 0px;
position: absolute;
top: 0px;
max-height: 0px;
overflow: hidden;
transform: translate(-100%, -30px);
pointer-events: none;
box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.3);
border-radius: 2px;
opacity: 0;
transition: opacity 0.2s ease-out, transform 1s ease-out, max-height 0.2s ease-in-out;
z-index: 99;
display: inline-block;
z-index: 999;
transform-style: preserve-3d;
}
.menu.menu-left { transform: translate(0%, -30px); }
.menu.menu-left.visible { transform: translate(0%, 0px); }
.menu.menu-left {
transform: translate(0%, -30px);
}
.menu.menu-left.visible {
transform: translate(0%, 0px);
}
.menu.visible {
opacity: 1; transform: translate(-100%, 0px); pointer-events: all;
transition: opacity 0.1s ease-out, transform 0.3s ease-out, max-height 0.3s cubic-bezier(0.86, 0, 0.07, 1);
opacity: 1;
transform: translate(-100%, 0px);
pointer-events: all;
transition: opacity 0.1s ease-out, transform 0.3s ease-out, max-height 0.3s cubic-bezier(0.86, 0, 0.07, 1);
}
.menu-item {
display: block; text-decoration: none; color: black; padding: 6px 24px; transition: all 0.2s; border-bottom: none; font-weight: normal;
max-height: 150px; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 6; -webkit-box-orient: vertical; display: -webkit-box;
display: block;
text-decoration: none;
color: black;
padding: 6px 24px;
transition: all 0.2s;
border-bottom: none;
font-weight: normal;
max-height: 150px;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 6;
-webkit-box-orient: vertical;
display: -webkit-box;
}
.menu-item-separator {
margin-top: 3px;
margin-bottom: 3px;
border-top: 1px solid #eee
}
.menu-item.noaction {
cursor: default
}
.menu-item:hover:not(.noaction) {
background-color: #F6F6F6;
transition: none;
color: inherit;
cursor: pointer;
color: black
}
.menu-item:active:not(.noaction), .menu-item:focus:not(.noaction) {
background-color: #AF3BFF !important;
color: white !important;
transition: none
}
.menu-item-separator { margin-top: 3px; margin-bottom: 3px; border-top: 1px solid #eee }
.menu-item.noaction { cursor: default }
.menu-item:hover:not(.noaction) { background-color: #F6F6F6; transition: none; color: inherit; cursor: pointer; color: black }
.menu-item:active:not(.noaction), .menu-item:focus:not(.noaction) { background-color: #AF3BFF !important; color: white !important; transition: none }
.menu-item.selected:before {
content: "L"; display: inline-block; transform: rotateZ(45deg) scaleX(-1);
font-weight: bold; position: absolute; margin-left: -14px; font-size: 12px; margin-top: 2px;
content: "L";
display: inline-block;
transform: rotateZ(45deg) scaleX(-1);
font-weight: bold;
position: absolute;
margin-left: -14px;
font-size: 12px;
margin-top: 2px;
}
.menu-radio { white-space: normal; line-height: 26px }
.menu-radio a {
background-color: #EEE; width: 18.5%;; text-align: center; margin-top: 2px; margin-bottom: 2px; color: #666; font-weight: bold;
text-decoration: none; font-size: 13px; transition: all 0.3s; text-transform: uppercase; display: inline-block;
.menu-radio {
white-space: normal;
line-height: 26px
}
.menu-radio a {
background-color: #EEE;
width: 18.5%;
;
text-align: center;
margin-top: 2px;
margin-bottom: 2px;
color: #666;
font-weight: bold;
text-decoration: none;
font-size: 13px;
transition: all 0.3s;
text-transform: uppercase;
display: inline-block;
}
.menu-radio a:hover, .menu-radio a.selected {
transition: none;
background-color: #AF3BFF !important;
color: white !important
}
.menu-radio a.long {
font-size: 10px;
vertical-align: -1px;
}
.menu-radio a:hover, .menu-radio a.selected { transition: none; background-color: #AF3BFF !important; color: white !important }
.menu-radio a.long { font-size: 10px; vertical-align: -1px; }

View File

@ -1,17 +1,91 @@
.selectbar.visible { margin-top: 0px; visibility: visible }
.selectbar {
position: fixed; top: 0; left: 0; background-color: white; box-shadow: 0px 0px 25px rgba(22, 39, 97, 0.2); margin-top: -75px;
transition: all 0.3s; visibility: hidden; z-index: 9999; color: black; border-left: 5px solid #ede1f582; width: 100%;
padding: 13px; font-size: 13px; font-weight: lighter; backface-visibility: hidden;
.selectbar.visible {
margin-top: 0px;
visibility: visible
}
.selectbar .num { margin-left: 15px; min-width: 30px; text-align: right; display: inline-block; }
.selectbar .size { margin-left: 10px; color: #9f9ba2; min-width: 75px; display: inline-block; }
.selectbar .actions { display: inline-block; margin-left: 20px; font-size: 13px; text-transform: uppercase; line-height: 20px; }
.selectbar .action { padding: 5px 20px; border: 1px solid #edd4ff; margin-left: 10px; border-radius: 30px; color: #af3bff; text-decoration: none; transition: all 0.3s }
.selectbar .action:hover { border-color: #c788f3; transition: none; color: #9700ff }
.selectbar .delete { color: #AAA; border-color: #DDD; }
.selectbar .delete:hover { color: #333; border-color: #AAA }
.selectbar .action:active { background-color: #af3bff; color: white; border-color: #af3bff; transition: none }
.selectbar .cancel { margin: 20px; font-size: 10px; text-decoration: none; color: #999; text-transform: uppercase; }
.selectbar .cancel:hover { color: #333; transition: none }
.selectbar {
position: fixed;
top: 0;
left: 0;
background-color: white;
box-shadow: 0px 0px 25px rgba(22, 39, 97, 0.2);
margin-top: -75px;
transition: all 0.3s;
visibility: hidden;
z-index: 9999;
color: black;
border-left: 5px solid #ede1f582;
width: 100%;
padding: 13px;
font-size: 13px;
font-weight: lighter;
backface-visibility: hidden;
}
.selectbar .num {
margin-left: 15px;
min-width: 30px;
text-align: right;
display: inline-block;
}
.selectbar .size {
margin-left: 10px;
color: #9f9ba2;
min-width: 75px;
display: inline-block;
}
.selectbar .actions {
display: inline-block;
margin-left: 20px;
font-size: 13px;
text-transform: uppercase;
line-height: 20px;
}
.selectbar .action {
padding: 5px 20px;
border: 1px solid #edd4ff;
margin-left: 10px;
border-radius: 30px;
color: #af3bff;
text-decoration: none;
transition: all 0.3s
}
.selectbar .action:hover {
border-color: #c788f3;
transition: none;
color: #9700ff
}
.selectbar .delete {
color: #AAA;
border-color: #DDD;
}
.selectbar .delete:hover {
color: #333;
border-color: #AAA
}
.selectbar .action:active {
background-color: #af3bff;
color: white;
border-color: #af3bff;
transition: none
}
.selectbar .cancel {
margin: 20px;
font-size: 10px;
text-decoration: none;
color: #999;
text-transform: uppercase;
}
.selectbar .cancel:hover {
color: #333;
transition: none
}

View File

@ -1,148 +1,587 @@
body { background-color: #EEEEF5; font-family: "Segoe UI", Helvetica, Arial; height: 95000px; overflow: hidden; }
body.loaded { height: auto; overflow: auto }
h1 { font-weight: lighter; }
body {
background-color: #EEEEF5;
font-family: "Segoe UI", Helvetica, Arial;
height: 95000px;
overflow: hidden;
}
a { color: #333 }
a:hover { text-decoration: none }
input::placeholder { color: rgba(255, 255, 255, 0.3) }
body.loaded {
height: auto;
overflow: auto
}
h2 { font-weight: lighter; }
h1 {
font-weight: lighter;
}
.link { background-color: transparent; outline: 5px solid transparent; transition: all 0.3s }
.link:active { background-color: #fbf5ff; outline: 5px solid #fbf5ff; transition: none }
a {
color: #333
}
.manager.editing .files { float: left; width: 280px; }
a:hover {
text-decoration: none
}
input::placeholder {
color: rgba(255, 255, 255, 0.3)
}
h2 {
font-weight: lighter;
}
.link {
background-color: transparent;
outline: 5px solid transparent;
transition: all 0.3s
}
.link:active {
background-color: #fbf5ff;
outline: 5px solid #fbf5ff;
transition: none
}
.manager.editing .files {
float: left;
width: 280px;
}
.sidebar-button {
display: inline-block; padding: 25px 19px; text-decoration: none; position: absolute;
border-right: 1px solid #EEE; line-height: 10px; color: #7801F5; transition: all 0.3s
display: inline-block;
padding: 25px 19px;
text-decoration: none;
position: absolute;
border-right: 1px solid #EEE;
line-height: 10px;
color: #7801F5;
transition: all 0.3s
}
.sidebar-button:active { background-color: #f5e7ff; transition: none }
.sidebar-button:active {
background-color: #f5e7ff;
transition: none
}
/*.sidebar-button:hover { background-color: #fbf5ff; }*/
.sidebar-button span { transition: 1s all; transform-origin: 2.5px 7px; display: inline-block; }
.manager.sidebar_closed .sidebar-button span { transform: rotateZ(180deg); }
.manager.sidebar_closed .files { margin-left: -300px; }
.manager.sidebar_closed .editor { width: 100%; }
.sidebar-button span {
transition: 1s all;
transform-origin: 2.5px 7px;
display: inline-block;
}
.manager.sidebar_closed .sidebar-button span {
transform: rotateZ(180deg);
}
.manager.sidebar_closed .files {
margin-left: -300px;
}
.manager.sidebar_closed .editor {
width: 100%;
}
.button {
padding: 5px 10px; margin-left: 10px; background-color: #752ff2; border-bottom: 2px solid #caadff; background-position: -50px center;
border-radius: 2px; text-decoration: none; transition: all 0.5s ease-out; display: inline-block;
color: #333; font-size: 12px; vertical-align: 2px; text-transform: uppercase; color: white; max-width: 100px;
padding: 5px 10px;
margin-left: 10px;
background-color: #752ff2;
border-bottom: 2px solid #caadff;
background-position: -50px center;
border-radius: 2px;
text-decoration: none;
transition: all 0.5s ease-out;
display: inline-block;
color: #333;
font-size: 12px;
vertical-align: 2px;
text-transform: uppercase;
color: white;
max-width: 100px;
}
.button:hover {
background-color: #9e71ed;
transition: none;
}
.button:active {
position: relative;
top: 1px
}
.button.loading, .button.disabled {
color: rgba(255, 255, 255, 0.7);
;
pointer-events: none;
border-bottom: 2px solid #666;
background-color: #999;
}
.button.loading {
background: #999 url(../img/loading.gif) no-repeat center center;
transition: all 0.5s ease-out;
color: rgba(0, 0, 0, 0);
}
.button.done {
background-color: #4dc758;
transition: all 0.3s;
border-color: #4dc758;
pointer-events: none;
}
.button.hidden {
max-width: 0px;
display: inline-block;
padding-left: 0px;
padding-right: 0px;
margin: 0px;
}
.button:hover { background-color: #9e71ed; transition: none; }
.button:active { position: relative; top: 1px }
.button.loading, .button.disabled { color: rgba(255,255,255,0.7);; pointer-events: none; border-bottom: 2px solid #666; background-color: #999; }
.button.loading { background: #999 url(../img/loading.gif) no-repeat center center; transition: all 0.5s ease-out; color: rgba(0,0,0,0); }
.button.done { background-color: #4dc758; transition: all 0.3s; border-color: #4dc758; pointer-events: none; }
.button.hidden { max-width: 0px; display: inline-block; padding-left: 0px; padding-right: 0px; margin: 0px; }
/* List */
.files {
width: 97%; box-sizing: border-box; color: #555; position: relative; z-index: 1; transition: all 0.6s;
font-size: 14px; box-shadow: 0px 9px 20px -15px #a5cbec; max-width: 400px; border: 1px solid #EEEEF5;
width: 97%;
box-sizing: border-box;
color: #555;
position: relative;
z-index: 1;
transition: all 0.6s;
font-size: 14px;
box-shadow: 0px 9px 20px -15px #a5cbec;
max-width: 400px;
border: 1px solid #EEEEF5;
}
.files .tr { white-space: nowrap }
.files .td { display: inline-block; width: 60px }
.files .tbody .td { line-height: 18px; vertical-align: bottom; }
.files .td.name { min-width: 100px }
.files .td.size { width: 60px; text-align: right; padding-left: 5px; }
.files .td.status { text-align: right; }
.files .td.peer { width: 60px }
.files .td.uploaded { width: 130px; text-align: right; }
.files .td.added { width: 90px }
.files .orderby { color: inherit; text-decoration: none; transition: all 0.3s; outline: 5px solid transparent; }
.files .orderby:hover { text-decoration: underline; }
.files .orderby .icon-arrow-down { opacity: 0; transition: all 0.3s ease-in-out; }
.files .orderby.selected .icon-arrow-down { opacity: 0.3; }
.files .orderby:active { background-color: rgba(133, 239, 255, 0.09); outline: 5px solid rgba(133, 239, 255, 0.09); transition: none; }
.files .orderby:hover .icon-arrow-down { opacity: 0.5; }
.files .orderby:not(.desc) .icon-arrow-down { transform: rotateZ(180deg); }
.files .tr.editing .td { background-color: #ede1f582; border-top-color: #ece9ef; }
.files .thead { /*background: linear-gradient(358deg, #e7f1f7, #e9f2f72e);*/ }
.files .thead .td {
border-top: none; color: #8984c2; background-color: #f7f7fc;
font-size: 12px; /*text-transform: uppercase; background-color: transparent; font-weight: bold;*/
}
.files .thead .td a:last-of-type { font-weight: bold; }
.files .thead .td a { text-decoration: none; }
.files .thead .td a:hover { text-decoration: underline; }
.files .tbody { max-height: calc(100vh - 95px); overflow-y: auto; overflow-x: hidden; }
.files .tr { background-color: white; }
.files .td { padding: 10px 20px; border-top: 1px solid #EEE; font-size: 13px; white-space: nowrap; }
.files .td.full { width: 100%; box-sizing: border-box; white-space: pre-line; }
.files .td.pre { width: 0px; color: transparent; padding-left: 0px; border-left: 2px solid transparent; }
.files .tbody .td { height: 18px; }
.files .tbody .td.full { height: auto; }
.files .td.pre .checkbox-outer { opacity: 0.6; margin-left: -11px; margin-top: -15px; width: 18px; height: 12px; display: inline-block; }
.files .tr.modified .td.pre { border-left-color: #7801F5 }
.files .tr.added .td.pre { border-left-color: #00ec93 }
.files .tr.ignored .td.pre { border-left-color: #999; }
.files .tr.ignored { opacity: 0.5; }
.files .tr.optional { background: linear-gradient(90deg, #fff6dd, 30%, white, 10%, white); }
.files .tr.optional_empty { color: #999; font-style: italic; }
.files .td.error { background-color: #F44336; color: white; }
.files .td.site { width: 70px }
.files .td.site .link { color: inherit; text-decoration: none }
.files .td.status .percent {
transition: all 1s ease-in-out; display: inline-block; width: 80px; background-color: #EEE; font-size: 10px;
height: 15px; line-height: 15px; text-align: center; margin-right: 20px;
}
.files .td.name { padding-left: 10px; width: calc(100% - 167px); max-height: 18px; padding-right: 10px; }
.files .tr.nobuttons .td.name { width: calc(100% - 127px); }
.files .tr.nobuttons .td.buttons { width: 0px; }
.files .td.name .title { color: inherit; text-decoration: none }
.files .td.name .link { display: inline-block; overflow: hidden; text-overflow: ellipsis; vertical-align: -4px; max-width: 100%; }
.files .pinned .td.name .link { max-width: calc(100% - 40px); }
.files .thead .td.uploaded { text-align: left }
.files .thead .td.uploaded .title { padding-left: 7px; }
.files .peer .icon-profile { background: currentColor; color: #47d094; font-size: 10px; top: 1px; margin-right: 13px }
.files .peer .icon-profile:before { background: currentColor }
.files .peer .num { color: #969696; }
.files .uploaded .uploaded-text { display: inline-block; text-align: right; }
.files .uploaded .dots-container { display: inline-block; width: 0px; padding-right: 65px;; }
.files .td.buttons { width: 40px; padding-left: 0px; padding-right: 0px; }
.files .td.buttons .edit {
background-color: #2196f336; border-radius: 15px; padding: 1px 9px; font-size: 80%; text-decoration: none; color: #1976D2;
}
.files .checkbox-outer { padding: 15px; padding-left: 20px; padding-right: 0px; }
.files .checkbox {
display: inline-block; width: 12px; height: 12px; border: 2px solid #00000014;
border-radius: 3px; vertical-align: -3px; margin-right: 10px;
}
.files .selected .checkbox { border-color: #dedede }
.files .selected .checkbox:after {
background-color: #dedede; content: ""; text-decoration: none; display: block; width: 10px; height: 10px; margin-left: 1px; margin-top: 1px;
}
.files .tbody .td.size { font-size: 13px }
.files .tbody .td.added, #PageFiles .files .td.access { font-size: 12px; color: #999 }
.files .tr.type-dir .name { font-weight: bold; }
.files .tr.type-parent .name .link { display: inline-block; width: 100%; padding: 5px; margin-top: -5px; }
.files .foot .td { color: #a4a4a4; background-color: #f7f7fc; }
.files .foot .create { float: right; text-decoration: none; position: relative; }
.files .foot .create .link { color: #8c42ed; text-decoration: none; }
.files .foot .create .link:active { background-color: #8c42ed3b; outline: 5px solid #8c42ed3b; }
.files .foot .create .menu { top: 40px; }
.files .tr {
white-space: nowrap
}
.files .td {
display: inline-block;
width: 60px
}
.files .tbody .td {
line-height: 18px;
vertical-align: bottom;
}
.files .td.name {
min-width: 100px
}
.files .td.size {
width: 60px;
text-align: right;
padding-left: 5px;
}
.files .td.status {
text-align: right;
}
.files .td.peer {
width: 60px
}
.files .td.uploaded {
width: 130px;
text-align: right;
}
.files .td.added {
width: 90px
}
.files .orderby {
color: inherit;
text-decoration: none;
transition: all 0.3s;
outline: 5px solid transparent;
}
.files .orderby:hover {
text-decoration: underline;
}
.files .orderby .icon-arrow-down {
opacity: 0;
transition: all 0.3s ease-in-out;
}
.files .orderby.selected .icon-arrow-down {
opacity: 0.3;
}
.files .orderby:active {
background-color: rgba(133, 239, 255, 0.09);
outline: 5px solid rgba(133, 239, 255, 0.09);
transition: none;
}
.files .orderby:hover .icon-arrow-down {
opacity: 0.5;
}
.files .orderby:not(.desc) .icon-arrow-down {
transform: rotateZ(180deg);
}
.files .tr.editing .td {
background-color: #ede1f582;
border-top-color: #ece9ef;
}
.files .thead {
/*background: linear-gradient(358deg, #e7f1f7, #e9f2f72e);*/
}
.files .thead .td {
border-top: none;
color: #8984c2;
background-color: #f7f7fc;
font-size: 12px;
/*text-transform: uppercase; background-color: transparent; font-weight: bold;*/
}
.files .thead .td a:last-of-type {
font-weight: bold;
}
.files .thead .td a {
text-decoration: none;
}
.files .thead .td a:hover {
text-decoration: underline;
}
.files .tbody {
max-height: calc(100vh - 95px);
overflow-y: auto;
overflow-x: hidden;
}
.files .tr {
background-color: white;
}
.files .td {
padding: 10px 20px;
border-top: 1px solid #EEE;
font-size: 13px;
white-space: nowrap;
}
.files .td.full {
width: 100%;
box-sizing: border-box;
white-space: pre-line;
}
.files .td.pre {
width: 0px;
color: transparent;
padding-left: 0px;
border-left: 2px solid transparent;
}
.files .tbody .td {
height: 18px;
}
.files .tbody .td.full {
height: auto;
}
.files .td.pre .checkbox-outer {
opacity: 0.6;
margin-left: -11px;
margin-top: -15px;
width: 18px;
height: 12px;
display: inline-block;
}
.files .tr.modified .td.pre {
border-left-color: #7801F5
}
.files .tr.added .td.pre {
border-left-color: #00ec93
}
.files .tr.ignored .td.pre {
border-left-color: #999;
}
.files .tr.ignored {
opacity: 0.5;
}
.files .tr.optional {
background: linear-gradient(90deg, #fff6dd, 30%, white, 10%, white);
}
.files .tr.optional_empty {
color: #999;
font-style: italic;
}
.files .td.error {
background-color: #F44336;
color: white;
}
.files .td.site {
width: 70px
}
.files .td.site .link {
color: inherit;
text-decoration: none
}
.files .td.status .percent {
transition: all 1s ease-in-out;
display: inline-block;
width: 80px;
background-color: #EEE;
font-size: 10px;
height: 15px;
line-height: 15px;
text-align: center;
margin-right: 20px;
}
.files .td.name {
padding-left: 10px;
width: calc(100% - 167px);
max-height: 18px;
padding-right: 10px;
}
.files .tr.nobuttons .td.name {
width: calc(100% - 127px);
}
.files .tr.nobuttons .td.buttons {
width: 0px;
}
.files .td.name .title {
color: inherit;
text-decoration: none
}
.files .td.name .link {
display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: -4px;
max-width: 100%;
}
.files .pinned .td.name .link {
max-width: calc(100% - 40px);
}
.files .thead .td.uploaded {
text-align: left
}
.files .thead .td.uploaded .title {
padding-left: 7px;
}
.files .peer .icon-profile {
background: currentColor;
color: #47d094;
font-size: 10px;
top: 1px;
margin-right: 13px
}
.files .peer .icon-profile:before {
background: currentColor
}
.files .peer .num {
color: #969696;
}
.files .uploaded .uploaded-text {
display: inline-block;
text-align: right;
}
.files .uploaded .dots-container {
display: inline-block;
width: 0px;
padding-right: 65px;
;
}
.files .td.buttons {
width: 40px;
padding-left: 0px;
padding-right: 0px;
}
.files .td.buttons .edit {
background-color: #2196f336;
border-radius: 15px;
padding: 1px 9px;
font-size: 80%;
text-decoration: none;
color: #1976D2;
}
.files .checkbox-outer {
padding: 15px;
padding-left: 20px;
padding-right: 0px;
}
.files .checkbox {
display: inline-block;
width: 12px;
height: 12px;
border: 2px solid #00000014;
border-radius: 3px;
vertical-align: -3px;
margin-right: 10px;
}
.files .selected .checkbox {
border-color: #dedede
}
.files .selected .checkbox:after {
background-color: #dedede;
content: "";
text-decoration: none;
display: block;
width: 10px;
height: 10px;
margin-left: 1px;
margin-top: 1px;
}
.files .tbody .td.size {
font-size: 13px
}
.files .tbody .td.added, #PageFiles .files .td.access {
font-size: 12px;
color: #999
}
.files .tr.type-dir .name {
font-weight: bold;
}
.files .tr.type-parent .name .link {
display: inline-block;
width: 100%;
padding: 5px;
margin-top: -5px;
}
.files .foot .td {
color: #a4a4a4;
background-color: #f7f7fc;
}
.files .foot .create {
float: right;
text-decoration: none;
position: relative;
}
.files .foot .create .link {
color: #8c42ed;
text-decoration: none;
}
.files .foot .create .link:active {
background-color: #8c42ed3b;
outline: 5px solid #8c42ed3b;
}
.files .foot .create .menu {
top: 40px;
}
/* Editor */
.editor { background-color: #F7F7FC; float: left; width: calc(100% - 280px); box-sizing: border-box; transition: all 0.6s; }
.editor .CodeMirror { height: calc(100vh - 79px); visibility: hidden; }
.editor textarea { width: 100%; height: 800px; white-space: pre; }
.editor .title { margin-left: 20px; }
.editor .editor-head {
padding: 15px 20px; padding-left: 45px; font-size: 18px; font-weight: lighter; border: 1px solid #EEEEF5;
white-space: nowrap; overflow: hidden;
.editor {
background-color: #F7F7FC;
float: left;
width: calc(100% - 280px);
box-sizing: border-box;
transition: all 0.6s;
}
.editor .CodeMirror {
height: calc(100vh - 79px);
visibility: hidden;
}
.editor textarea {
width: 100%;
height: 800px;
white-space: pre;
}
.editor .title {
margin-left: 20px;
}
.editor .editor-head {
padding: 15px 20px;
padding-left: 45px;
font-size: 18px;
font-weight: lighter;
border: 1px solid #EEEEF5;
white-space: nowrap;
overflow: hidden;
}
.editor.loaded .CodeMirror {
visibility: inherit;
}
.editor.error .CodeMirror {
display: none;
}
.editor .button.save {
min-width: 30px;
text-align: center;
transition: all 0.3s;
}
.editor .button.save.done {
min-width: 80px;
}
.editor .error-message {
text-align: center;
padding: 50px;
}
.editor.loaded .CodeMirror { visibility: inherit; }
.editor.error .CodeMirror { display: none; }
.editor .button.save { min-width: 30px; text-align: center; transition: all 0.3s; }
.editor .button.save.done { min-width: 80px; }
.editor .error-message { text-align: center; padding: 50px; }
.editor .CodeMirror-foldmarker {
line-height: .3; cursor: pointer; background-color: #ffeb3b61; text-shadow: none; font-family: inherit;
color: #050505; border: 1px solid #ffdf7f; padding: 0px 5px;
line-height: .3;
cursor: pointer;
background-color: #ffeb3b61;
text-shadow: none;
font-family: inherit;
color: #050505;
border: 1px solid #ffdf7f;
padding: 0px 5px;
}
.editor .CodeMirror-activeline-background {
background-color: #F6F6F6 !important;
}
.editor .CodeMirror-activeline-background { background-color: #F6F6F6 !important; }

File diff suppressed because it is too large Load Diff

View File

@ -1,18 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<title>List - ZeroNet</title>
<meta charset="utf-8" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/all.css?site_modified={rev}" />
<base href="" target="_top" id="base">
<script>base.href = document.location.href.replace("/media", "").replace("index.html", "").replace(/[&?]wrapper=False/, "").replace(/[&?]wrapper_nonce=[A-Za-z0-9]+/, "")</script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>List - ZeroNet</title>
<link rel="stylesheet" href="css/all.css?site_modified={rev}">
<base href="" target="_top" id="base">
<script>
base.href = document.location.href.replace("/media", "").replace("index.html", "").replace(/[&?]wrapper=False/, "").replace(/[&?]wrapper_nonce=[A-Za-z0-9]+/, "")
</script>
</head>
<body class="{themeclass}">
<div class="content" id="content"></div>
<div class="content" id="content"></div>
<script type="text/javascript" src="js/all.js?rev={rev}&lang={lang}"></script>
<script src="js/all.js?rev={rev}&lang={lang}"></script>
</body>
</html>
</html>

View File

@ -1,75 +1,329 @@
body { background-color: #EDF2F5; font-family: Roboto, 'Segoe UI', Arial, 'Helvetica Neue'; margin: 0px; padding: 0px; backface-visibility: hidden; }
h1, h2, h3, h4 { font-family: 'Roboto', Arial, sans-serif; font-weight: 200; font-size: 30px; margin: 0px; padding: 0px }
h1 { background: linear-gradient(33deg,#af3bff,#0d99c9); color: white; padding: 16px 30px; }
h2 { margin-top: 10px; }
h3 { font-weight: normal }
h4 { font-size: 19px; font-weight: lighter; margin-right: 100px; margin-top: 30px; }
a { color: #9760F9 }
a:hover { text-decoration: none }
.link { background-color: transparent; outline: 5px solid transparent; transition: all 0.3s }
.link:active { background-color: #EFEFEF; outline: 5px solid #EFEFEF; transition: none }
.content { max-width: 800px; margin: auto; background-color: white; padding: 60px 20px; box-sizing: border-box; padding-bottom: 150px; }
.section { margin: 0px 10%; }
.plugins { font-size: 19px; margin-top: 25px; margin-bottom: 75px; }
.plugin { transition: all 0.8s cubic-bezier(0.86, 0, 0.07, 1); position: relative; padding-bottom: 20px; padding-top: 10px; }
.plugin.hidden { opacity: 0; height: 0px; padding: 0px; }
.plugin .title { display: inline-block; line-height: 36px; }
.plugin .title h3 { font-size: 20px; font-weight: lighter; margin-right: 100px; }
.plugin .title .version { font-size: 70%; margin-left: 5px; }
.plugin .title .version .version-latest { color: #2ecc71; font-weight: normal; }
.plugin .title .version .version-missing { color: #ffa200; font-weight: normal; }
.plugin .title .version .version-update { padding: 0px 15px; margin-left: 5px; line-height: 28px; }
.plugin .description { font-size: 14px; color: #666; line-height: 24px; }
.plugin .description .source { color: #999; font-size: 90%; }
.plugin .description .source a { color: #666; }
.plugin .value { display: inline-block; white-space: nowrap; }
.plugin .value-right { right: 0px; position: absolute; }
.plugin .value-fullwidth { width: 100% }
.plugin .marker {
font-weight: bold; text-decoration: none; font-size: 25px; position: absolute; padding: 2px 15px; line-height: 32px;
opacity: 0; pointer-events: none; transition: all 0.6s; transform: scale(2); color: #9760F9;
body {
background-color: #EDF2F5;
font-family: Roboto, 'Segoe UI', Arial, 'Helvetica Neue';
margin: 0px;
padding: 0px;
backface-visibility: hidden;
}
.plugin .marker.visible { opacity: 1; pointer-events: all; transform: scale(1); }
.plugin .marker.changed { color: #2ecc71; }
.plugin .marker.pending { color: #ffa200; }
h1, h2, h3, h4 {
font-family: 'Roboto', Arial, sans-serif;
font-weight: 200;
font-size: 30px;
margin: 0px;
padding: 0px
}
.input-text, .input-select { padding: 8px 18px; border: 1px solid #CCC; border-radius: 3px; font-size: 17px; box-sizing: border-box; }
.input-text:focus, .input-select:focus { border: 1px solid #3396ff; outline: none; }
.input-textarea { overflow-x: auto; overflow-y: hidden; white-space: pre; line-height: 22px; }
h1 {
background: linear-gradient(33deg, #af3bff, #0d99c9);
color: white;
padding: 16px 30px;
}
.input-select { width: initial; font-size: 14px; padding-right: 10px; padding-left: 10px; }
h2 {
margin-top: 10px;
}
.value-right .input-text { text-align: right; width: 100px; }
.value-fullwidth .input-text { width: 100%; font-size: 14px; font-family: 'Segoe UI', Arial, 'Helvetica Neue'; }
.value-fullwidth { margin-top: 10px; }
h3 {
font-weight: normal
}
h4 {
font-size: 19px;
font-weight: lighter;
margin-right: 100px;
margin-top: 30px;
}
a {
color: #9760F9
}
a:hover {
text-decoration: none
}
.link {
background-color: transparent;
outline: 5px solid transparent;
transition: all 0.3s
}
.link:active {
background-color: #EFEFEF;
outline: 5px solid #EFEFEF;
transition: none
}
.content {
max-width: 800px;
margin: auto;
background-color: white;
padding: 60px 20px;
box-sizing: border-box;
padding-bottom: 150px;
}
.section {
margin: 0px 10%;
}
.plugins {
font-size: 19px;
margin-top: 25px;
margin-bottom: 75px;
}
.plugin {
transition: all 0.8s cubic-bezier(0.86, 0, 0.07, 1);
position: relative;
padding-bottom: 20px;
padding-top: 10px;
}
.plugin.hidden {
opacity: 0;
height: 0px;
padding: 0px;
}
.plugin .title {
display: inline-block;
line-height: 36px;
}
.plugin .title h3 {
font-size: 20px;
font-weight: lighter;
margin-right: 100px;
}
.plugin .title .version {
font-size: 70%;
margin-left: 5px;
}
.plugin .title .version .version-latest {
color: #2ecc71;
font-weight: normal;
}
.plugin .title .version .version-missing {
color: #ffa200;
font-weight: normal;
}
.plugin .title .version .version-update {
padding: 0px 15px;
margin-left: 5px;
line-height: 28px;
}
.plugin .description {
font-size: 14px;
color: #666;
line-height: 24px;
}
.plugin .description .source {
color: #999;
font-size: 90%;
}
.plugin .description .source a {
color: #666;
}
.plugin .value {
display: inline-block;
white-space: nowrap;
}
.plugin .value-right {
right: 0px;
position: absolute;
}
.plugin .value-fullwidth {
width: 100%
}
.plugin .marker {
font-weight: bold;
text-decoration: none;
font-size: 25px;
position: absolute;
padding: 2px 15px;
line-height: 32px;
opacity: 0;
pointer-events: none;
transition: all 0.6s;
transform: scale(2);
color: #9760F9;
}
.plugin .marker.visible {
opacity: 1;
pointer-events: all;
transform: scale(1);
}
.plugin .marker.changed {
color: #2ecc71;
}
.plugin .marker.pending {
color: #ffa200;
}
.input-text, .input-select {
padding: 8px 18px;
border: 1px solid #CCC;
border-radius: 3px;
font-size: 17px;
box-sizing: border-box;
}
.input-text:focus, .input-select:focus {
border: 1px solid #3396ff;
outline: none;
}
.input-textarea {
overflow-x: auto;
overflow-y: hidden;
white-space: pre;
line-height: 22px;
}
.input-select {
width: initial;
font-size: 14px;
padding-right: 10px;
padding-left: 10px;
}
.value-right .input-text {
text-align: right;
width: 100px;
}
.value-fullwidth .input-text {
width: 100%;
font-size: 14px;
font-family: 'Segoe UI', Arial, 'Helvetica Neue';
}
.value-fullwidth {
margin-top: 10px;
}
/* Checkbox */
.checkbox-skin { background-color: #CCC; width: 50px; height: 24px; border-radius: 15px; transition: all 0.3s ease-in-out; display: inline-block; }
.checkbox-skin:before {
content: ""; position: relative; width: 20px; background-color: white; height: 20px; display: block; border-radius: 100%; margin-top: 2px; margin-left: 2px;
transition: all 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86);
.checkbox-skin {
background-color: #CCC;
width: 50px;
height: 24px;
border-radius: 15px;
transition: all 0.3s ease-in-out;
display: inline-block;
}
.checkbox-skin:before {
content: "";
position: relative;
width: 20px;
background-color: white;
height: 20px;
display: block;
border-radius: 100%;
margin-top: 2px;
margin-left: 2px;
transition: all 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
.checkbox {
font-size: 14px;
font-weight: normal;
display: inline-block;
cursor: pointer;
margin-top: 5px;
}
.checkbox .title {
display: inline;
line-height: 30px;
vertical-align: 4px;
margin-left: 11px
}
.checkbox.checked .checkbox-skin:before {
margin-left: 27px;
}
.checkbox.checked .checkbox-skin {
background-color: #2ECC71
}
.checkbox { font-size: 14px; font-weight: normal; display: inline-block; cursor: pointer; margin-top: 5px; }
.checkbox .title { display: inline; line-height: 30px; vertical-align: 4px; margin-left: 11px }
.checkbox.checked .checkbox-skin:before { margin-left: 27px; }
.checkbox.checked .checkbox-skin { background-color: #2ECC71 }
/* Bottom */
.bottom {
width: 100%; text-align: center; background-color: #ffffffde; padding: 25px; bottom: -120px; -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px);
transition: all 0.8s cubic-bezier(0.86, 0, 0.07, 1); position: fixed; backface-visibility: hidden; box-sizing: border-box;
width: 100%;
text-align: center;
background-color: #ffffffde;
padding: 25px;
bottom: -120px;
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px);
transition: all 0.8s cubic-bezier(0.86, 0, 0.07, 1);
position: fixed;
backface-visibility: hidden;
box-sizing: border-box;
}
.bottom-content { max-width: 750px; width: 100%; margin: 0px auto; }
.bottom .button { float: right; }
.bottom.visible { bottom: 0px; box-shadow: 0px 0px 35px #dcdcdc; }
.bottom .title { padding: 10px 10px; color: #363636; float: left; text-transform: uppercase; letter-spacing: 1px; }
.bottom .title:before { content: "•"; display: inline-block; color: #2ecc71; font-size: 31px; vertical-align: -7px; margin-right: 8px; line-height: 25px; }
.bottom-restart .title:before { color: #ffa200; }
.animate { transition: all 0.3s ease-out !important; }
.animate-back { transition: all 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important; }
.animate-inout { transition: all 0.6s cubic-bezier(0.77, 0, 0.175, 1) !important; }
.bottom-content {
max-width: 750px;
width: 100%;
margin: 0px auto;
}
.bottom .button {
float: right;
}
.bottom.visible {
bottom: 0px;
box-shadow: 0px 0px 35px #dcdcdc;
}
.bottom .title {
padding: 10px 10px;
color: #363636;
float: left;
text-transform: uppercase;
letter-spacing: 1px;
}
.bottom .title:before {
content: "•";
display: inline-block;
color: #2ecc71;
font-size: 31px;
vertical-align: -7px;
margin-right: 8px;
line-height: 25px;
}
.bottom-restart .title:before {
color: #ffa200;
}
.animate {
transition: all 0.3s ease-out !important;
}
.animate-back {
transition: all 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
}
.animate-inout {
transition: all 0.6s cubic-bezier(0.77, 0, 0.175, 1) !important;
}

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,39 @@
/* Button */
.button {
background-color: #FFDC00; color: black; padding: 10px 20px; display: inline-block; background-position: left center;
border-radius: 2px; border-bottom: 2px solid #E8BE29; transition: all 0.5s ease-out; text-decoration: none;
background-color: #FFDC00;
color: black;
padding: 10px 20px;
display: inline-block;
background-position: left center;
border-radius: 2px;
border-bottom: 2px solid #E8BE29;
transition: all 0.5s ease-out;
text-decoration: none;
}
.button:hover { border-color: white; border-bottom: 2px solid #BD960C; transition: none ; background-color: #FDEB07 }
.button:active { position: relative; top: 1px }
.button:hover {
border-color: white;
border-bottom: 2px solid #BD960C;
transition: none;
background-color: #FDEB07
}
.button:active {
position: relative;
top: 1px
}
.button.loading {
color: rgba(0,0,0,0); background: #999 url(../img/loading.gif) no-repeat center center;
transition: all 0.5s ease-out ; pointer-events: none; border-bottom: 2px solid #666
color: rgba(0, 0, 0, 0);
background: #999 url(../img/loading.gif) no-repeat center center;
transition: all 0.5s ease-out;
pointer-events: none;
border-bottom: 2px solid #666
}
.button.disabled {
color: #DDD;
background-color: #999;
pointer-events: none;
border-bottom: 2px solid #666
}
.button.disabled { color: #DDD; background-color: #999; pointer-events: none; border-bottom: 2px solid #666 }

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<title>Settings - ZeroNet</title>
<meta charset="utf-8" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/all.css?rev={rev}" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Settings - ZeroNet</title>
<link rel="stylesheet" href="css/all.css?rev={rev}">
</head>
<h1>ZeroNet plugin manager</h1>
<div class="content" id="content"></div>
<div class="bottom" id="bottom-restart"></div>
<script type="text/javascript" src="js/all.js?rev={rev}&lang={lang}"></script>
<body>
<h1>ZeroNet plugin manager</h1>
<div class="content" id="content"></div>
<div class="bottom" id="bottom-restart"></div>
<script src="js/all.js?rev={rev}&lang={lang}"></script>
</body>
</html>
</html>

View File

@ -1,116 +1,241 @@
<!DOCTYPE html>
<html>
<head>
<title>Log In</title>
<meta name="viewport" id="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Log In</title>
<style>
body {
background-color: #323C4D;
font-family: "Segoe UI", Helvetica, Arial;
font-weight: lighter;
font-size: 22px;
color: #333;
letter-spacing: 1px;
color: white;
overflow: hidden;
}
.login {
left: 50%;
position: absolute;
top: 50%;
transform: translateX(-50%) translateY(-50%);
-webkit-transform: translateX(-50%) translateY(-50%);
width: 100%;
max-width: 370px;
text-align: center;
}
*:focus {
outline: 0;
}
input[type=text],
input[type=password] {
padding: 10px 0px;
border: 0px;
display: block;
margin: 15px 0px;
width: 100%;
border-radius: 30px;
transition: 0.3s ease-out;
background-color: #DDD;
text-align: center;
font-family: "Segoe UI", Helvetica, Arial;
font-weight: lighter;
font-size: 28px;
border: 2px solid #323C4D;
}
input[type=text]:focus,
input[type=password]:focus {
border: 2px solid #FFF;
background-color: #FFF;
}
input[type=checkbox] {
opacity: 0;
}
input[type=checkbox]:checked+label {
color: white;
}
input[type=checkbox]:focus+label::before {
background-color: #435065;
}
input[type=checkbox]:checked+label::before {
box-shadow: inset 0px 0px 0px 5px white;
background-color: #4DCC6E;
}
input.error {
border: 2px solid #F44336 !important;
animation: shake 1s
}
label::before {
content: "";
width: 20px;
height: 20px;
background-color: #323C4D;
display: inline-block;
margin-left: -20px;
border-radius: 15px;
box-shadow: inset 0px 0px 0px 2px #9EA5B3;
transition: all 0.1s;
margin-right: 7px;
position: relative;
top: 2px;
}
label {
vertical-align: -1px;
color: #9EA5B3;
transition: all 0.3s;
}
.button {
padding: 13px;
display: inline-block;
margin: 15px 0px;
width: 100%;
border-radius: 30px;
text-align: center;
white-space: nowrap;
font-size: 28px;
color: #333;
background: linear-gradient(45deg, #6B14D3 0, #7A26E2 25%, #4962DD 90%);
box-sizing: border-box;
margin-top: 50px;
color: white;
text-decoration: none;
transition: 0.3s ease-out;
}
.button:hover,
.button:focus {
box-shadow: 0px 5px 30px rgba(0, 0, 0, 0.3);
}
.button:active {
transform: translateY(1px);
box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5);
transition: none;
}
#login_form_submit {
display: none;
}
.login-anim {
animation: login 1s cubic-bezier(0.785, 0.135, 0.15, 0.86) forwards;
}
@keyframes login {
0% {
width: 100%;
}
60% {
width: 63px;
transform: scale(1);
color: rgba(255, 255, 255, 0);
}
70% {
width: 63px;
transform: scale(1);
color: rgba(255, 255, 255, 0);
}
100% {
transform: scale(80);
width: 63px;
color: rgba(255, 255, 255, 0);
}
}
@keyframes shake {
0%,
100% {
transform: translateX(0);
}
10%,
30%,
50%,
70%,
90% {
transform: translateX(-10px);
}
20%,
40%,
60%,
80% {
transform: translateX(10px);
}
}
</style>
</head>
<style>
body {
background-color: #323C4D; font-family: "Segoe UI", Helvetica, Arial; font-weight: lighter;
font-size: 22px; color: #333; letter-spacing: 1px; color: white; overflow: hidden;
}
.login { left: 50%; position: absolute; top: 50%; transform: translateX(-50%) translateY(-50%); -webkit-transform: translateX(-50%) translateY(-50%); width: 100%; max-width: 370px; text-align: center; }
*:focus { outline: 0; }
input[type=text], input[type=password] {
padding: 10px 0px; border: 0px; display: block; margin: 15px 0px; width: 100%; border-radius: 30px; transition: 0.3s ease-out; background-color: #DDD;
text-align: center; font-family: "Segoe UI", Helvetica, Arial; font-weight: lighter; font-size: 28px; border: 2px solid #323C4D;
}
input[type=text]:focus, input[type=password]:focus {
border: 2px solid #FFF; background-color: #FFF;
}
input[type=checkbox] { opacity: 0; }
input[type=checkbox]:checked + label { color: white; }
input[type=checkbox]:focus + label::before { background-color: #435065; }
input[type=checkbox]:checked + label::before { box-shadow: inset 0px 0px 0px 5px white; background-color: #4DCC6E; }
input.error { border: 2px solid #F44336 !important; animation: shake 1s }
label::before {
content: ""; width: 20px; height: 20px; background-color: #323C4D;
display: inline-block; margin-left: -20px; border-radius: 15px; box-shadow: inset 0px 0px 0px 2px #9EA5B3;
transition: all 0.1s; margin-right: 7px; position: relative; top: 2px;
}
label { vertical-align: -1px; color: #9EA5B3; transition: all 0.3s; }
.button {
padding: 13px; display: inline-block; margin: 15px 0px; width: 100%; border-radius: 30px; text-align: center; white-space: nowrap;
font-size: 28px; color: #333; background: linear-gradient(45deg, #6B14D3 0, #7A26E2 25%, #4962DD 90%);
box-sizing: border-box; margin-top: 50px; color: white; text-decoration: none; transition: 0.3s ease-out;
}
.button:hover, .button:focus { box-shadow: 0px 5px 30px rgba(0,0,0,0.3); }
.button:active { transform: translateY(1px); box-shadow: 0px 0px 20px rgba(0,0,0,0.5); transition: none; }
#login_form_submit { display: none; }
.login-anim { animation: login 1s cubic-bezier(0.785, 0.135, 0.15, 0.86) forwards; }
@keyframes login {
0% { width: 100%; }
60% { width: 63px; transform: scale(1); color: rgba(255,255,255,0); }
70% { width: 63px; transform: scale(1); color: rgba(255,255,255,0); }
100% { transform: scale(80); width: 63px; color: rgba(255,255,255,0); }
}
@keyframes shake {
0%, 100% { transform: translateX(0); }
10%, 30%, 50%, 70%, 90% { transform: translateX(-10px); }
20%, 40%, 60%, 80% { transform: translateX(10px); }
}
</style>
<body>
<div class="login">
<form action="" method="post" id="login_form" onkeypress="return onFormKeypress(event)">
<!--<input type="text" name="username" placeholder="Username" required/>-->
<input type="password" name="password" placeholder="Password" required/>
<input type="checkbox" name="keep" id="keep"><label for="keep">Keep me logged in</label>
<div style="clear: both"></div>
<a href="#" class="button" onclick="return submit()" id="login_button"><span>Log In</span></a>
<input type="submit" id="login_form_submit"/>
</form>
</div>
<div class="login">
<form action="" method="post" id="login_form" onkeypress="return onFormKeypress(event)">
<!--<input type="text" name="username" placeholder="Username" required>-->
<input type="password" name="password" placeholder="Password" required>
<input type="checkbox" name="keep" id="keep"><label for="keep">Keep me logged in</label>
<div style="clear: both"></div>
<a href="#" class="button" onclick="return submit()" id="login_button"><span>Log In</span></a>
<input type="submit" id="login_form_submit">
</form>
</div>
<script>
<script>
function onFormKeypress(event) {
if (event.keyCode == 13) {
submit()
return false
}
}
function onFormKeypress(event) {
if (event.keyCode == 13) {
submit()
return false
}
}
function submit() {
var form = document.getElementById("login_form")
if (form.checkValidity()) {
document.getElementById("login_button").className = "button login-anim"
setTimeout(function() {
form.submit()
}, 1000)
} else {
form.submit()
}
return false
}
function submit() {
var form = document.getElementById("login_form")
if (form.checkValidity()) {
document.getElementById("login_button").className = "button login-anim"
setTimeout(function() {
form.submit()
}, 1000)
} else {
form.submit()
}
return false
}
function badPassword() {
var elem = document.getElementsByName("password")[0]
elem.className = "error"
elem.placeholder = "Wrong Password"
elem.focus()
elem.addEventListener('input', function() {
elem.className = ""
elem.placeholder = "Password"
})
}
function badPassword() {
var elem = document.getElementsByName("password")[0]
elem.className = "error"
elem.placeholder = "Wrong Password"
elem.focus()
elem.addEventListener('input', function() {
elem.className = ""
elem.placeholder = "Password"
})
}
result = "{result}"
result = "{result}"
if (result == "bad_password")
badPassword()
</script>
if (result == "bad_password")
badPassword()
</script>
</body>
</html>

View File

@ -1,40 +1,99 @@
<!DOCTYPE html>
<html>
<head>
<title>Add new site</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Add a new site</title>
<style>
.content {
line-height: 24px;
font-family: monospace;
font-size: 14px;
color: #636363;
text-transform: uppercase;
top: 38%;
position: relative;
text-align: center;
}
.content h1,
.content h2 {
font-weight: normal;
letter-spacing: 1px;
}
.content h2 {
font-size: 15px;
margin-bottom: 50px
}
.content #details {
text-align: left;
display: inline-block;
width: 350px;
background-color: white;
padding: 17px 27px;
border-radius: 0px;
box-shadow: 0px 2px 7px -1px #d8d8d8;
text-transform: none;
margin: 15px;
transform: scale(0) rotateX(90deg);
transition: all 0.6s cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
.content #details #added {
font-size: 12px;
text-align: right;
color: #a9a9a9;
}
.button {
padding: 8px 20px;
background-color: #FFF85F;
border-bottom: 2px solid #CDBD1E;
border-radius: 2px;
text-decoration: none;
transition: all 0.5s;
background-position: left center;
color: black;
border-left: 0px;
border-top: 0px;
border-right: 0px;
font-family: monospace;
font-size: 14px;
}
.button:hover {
background-color: #FFF400;
border-bottom: 2px solid #4D4D4C;
transition: none;
}
.button:active {
position: relative;
top: 1px;
}
.button:focus {
outline: none;
}
</style>
</head>
<body>
<style>
.content { line-height: 24px; font-family: monospace; font-size: 14px; color: #636363; text-transform: uppercase; top: 38%; position: relative; text-align: center; }
.content h1, .content h2 { font-weight: normal; letter-spacing: 1px; }
.content h2 { font-size: 15px; margin-bottom: 50px }
.content #details {
text-align: left; display: inline-block; width: 350px; background-color: white; padding: 17px 27px; border-radius: 0px;
box-shadow: 0px 2px 7px -1px #d8d8d8; text-transform: none; margin: 15px; transform: scale(0) rotateX(90deg); transition: all 0.6s cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
.content #details #added { font-size: 12px; text-align: right; color: #a9a9a9; }
.button {
padding: 8px 20px; background-color: #FFF85F; border-bottom: 2px solid #CDBD1E; border-radius: 2px;
text-decoration: none; transition: all 0.5s; background-position: left center; color: black;
border-left: 0px; border-top: 0px; border-right: 0px; font-family: monospace; font-size: 14px;
}
.button:hover { background-color: #FFF400; border-bottom: 2px solid #4D4D4C; transition: none; }
.button:active { position: relative; top: 1px; }
.button:focus { outline: none; }
</style>
<div class="content">
<h1>Add new site</h1>
<h2>Please confirm before adding a new site to the client</h2>
<form action="/add/" method="POST">
<input type="hidden" name="add_nonce" value="{add_nonce}">
<input type="hidden" name="address" value="{address}">
<input type="hidden" name="url" value="{url}">
<input type="submit" class="button button-submit" id="button" value="Load site"/>
</form>
</div>
<div class="content">
<h1>Add a new site</h1>
<h2>Please confirm before adding a new site to the client</h2>
<form action="/add/" method="POST">
<input type="hidden" name="add_nonce" value="{add_nonce}">
<input type="hidden" name="address" value="{address}">
<input type="hidden" name="url" value="{url}">
<input type="submit" class="button button-submit" id="button" value="Load site">
</form>
</div>
</body>
</html>

View File

@ -1,103 +1,113 @@
<!DOCTYPE html>
<html>
<head>
<title>{title} - ZeroNet</title>
<meta charset="utf-8" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="/uimedia/all.css?rev={rev}" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
{meta_tags}
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{title} - ZeroNet</title>
<link rel="stylesheet" href="/uimedia/all.css?rev={rev}">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
{meta_tags}
</head>
<body style="{body_style}" class="{themeclass}">
<div class="unsupported" id="unsupported">
<script nonce="{script_nonce}">document.getElementById('unsupported').style.display = "none"</script>
<h3>ZeroNet requires JavaScript support.</h3>If you use NoScript/Tor browser: Click on toolbar icon with the notification and choose "Temp. TRUSTED" for 127.0.0.1.
</div>
<script nonce="{script_nonce}">
// If we are inside iframe escape from it
if (window.self !== window.top) {
window.open(window.location.toString().replace(/([&?])wrapper=False/, "$1").replace(/&$/, "").replace(/[&?]wrapper_nonce=[A-Za-z0-9]+/, ""), "_top");
window.stop();
document.execCommand("Stop", false);
}
// We are opened as a parent-window
else if (window.opener && window.opener.location.toString()) {
document.write("Opened as child-window, stopping...");
window.stop();
document.execCommand("Stop", false);
}
</script>
<div class="progressbar">
<div class="peg"></div>
</div>
<!-- Fixed button -->
<div class='fixbutton'>
<div class='fixbutton-text'><img width=22 src='/uimedia/img/logo-white.png'/></div>
<div class='fixbutton-burger'>&#x2261;</div>
<a class='fixbutton-bg' href="{homepage}/"></a>
</div>
<!-- Notifications -->
<div class='notifications'>
<div class='notification template'><span class='notification-icon'>!</span> <span class='body'>Test notification</span><a class="close" href="#Close">&times;</a><div style="clear: both"></div></div>
</div>
<!-- Infopanel -->
<div class='infopanel-container'>
<div class='infopanel'>
<span class='closed-num'>8</span>
<div class="message">
<span class='line line-1'>8 modified files</span><br><span class='line line-2'>content.json, data.json</span>
<div class="unsupported" id="unsupported">
<script nonce="{script_nonce}">
document.getElementById('unsupported').style.display = "none"
</script>
<h3>ZeroNet requires JavaScript support.</h3>If you use the NoScript plugin: Click on toolbar icon with the notification and choose "Temp. TRUSTED" for 127.0.0.1.
</div>
<a href="#Publish" class="button button-submit">Sign & Publish</a>
<a href="#Close" class="close">&times;</a>
</div>
</div>
<!-- Loadingscreen -->
<div class='loadingscreen'>
<a href="/Config" class="loading-config">Config</a>
<div class='loading-text console'>
</div>
<div class="flipper-container">
<div class="flipper"> <div class="front"></div><div class="back"></div> </div>
</div>
</div>
<script nonce="{script_nonce}">
// If we are inside iframe escape from it
if (window.self !== window.top) {
window.open(window.location.toString().replace(/([&?])wrapper=False/, "$1").replace(/&$/, "").replace(/[&?]wrapper_nonce=[A-Za-z0-9]+/, ""), "_top");
window.stop();
document.execCommand("Stop", false);
}
// We are opened as a parent-window
else if (window.opener && window.opener.location.toString()) {
document.write("Opened as child-window, stopping...");
window.stop();
document.execCommand("Stop", false);
}
</script>
<!-- Site Iframe -->
<iframe src='about:blank' id='inner-iframe' sandbox="allow-forms allow-scripts allow-top-navigation allow-popups allow-modals allow-presentation allow-pointer-lock allow-popups-to-escape-sandbox {sandbox_permissions}" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" oallowfullscreen="true" msallowfullscreen="true"></iframe>
<div class="progressbar">
<div class="peg"></div>
</div>
<!-- Site info -->
<script id="script_init" nonce="{script_nonce}">
iframe_src = "{file_url}{query_string}"
console.log("Changing url from " + document.getElementById("inner-iframe").src + " to " + iframe_src)
document.getElementById("inner-iframe").src = document.getElementById("inner-iframe").src // Workaround for Firefox back button bug
document.getElementById("inner-iframe").src = iframe_src
address = "{address}"
wrapper_nonce = "{wrapper_nonce}"
wrapper_key = "{wrapper_key}"
ajax_key = "{ajax_key}"
postmessage_nonce_security = {postmessage_nonce_security}
file_inner_path = "{file_inner_path}"
permissions = {permissions}
show_loadingscreen = {show_loadingscreen}
server_url = '{server_url}'
script_nonce = '{script_nonce}'
<!-- Fixed button -->
<div class='fixbutton'>
<div class='fixbutton-text'><img width=22 src='/uimedia/img/logo-white.png'></div>
<div class='fixbutton-burger'>&#x2261;</div>
<a class='fixbutton-bg' href="{homepage}/"></a>
</div>
if (typeof WebSocket === "undefined") {
tag = document.createElement('div');
tag.innerHTML += "<div class='unsupported'>Your browser does not support <a href='https://caniuse.com/#search=websocket'>WebSocket connections</a>.<br>Please use the latest <a href='http://outdatedbrowser.com'>Chrome or Firefox</a> browser.</div>";
document.body.appendChild(tag)
}
</script>
<script type="text/javascript" src="/uimedia/all.js?rev={rev}&lang={lang}" nonce="{script_nonce}"></script>
<script nonce="{script_nonce}">setTimeout(window.wrapper.onWrapperLoad, 1)</script>
<!-- Notifications -->
<div class='notifications'>
<div class='notification template'><span class='notification-icon'>!</span> <span class='body'>Test notification</span><a class="close" href="#Close">&times;</a>
<div style="clear: both"></div>
</div>
</div>
<!-- Infopanel -->
<div class='infopanel-container'>
<div class='infopanel'>
<span class='closed-num'>8</span>
<div class="message">
<span class='line line-1'>8 modified files</span><br><span class='line line-2'>content.json, data.json</span>
</div>
<a href="#Publish" class="button button-submit">Sign & Publish</a>
<a href="#Close" class="close">&times;</a>
</div>
</div>
<!-- Loadingscreen -->
<div class='loadingscreen'>
<a href="/Config" class="loading-config">Config</a>
<div class='loading-text console'>
</div>
<div class="flipper-container">
<div class="flipper">
<div class="front"></div>
<div class="back"></div>
</div>
</div>
</div>
<!-- Site Iframe -->
<iframe src='about:blank' id='inner-iframe' sandbox="allow-forms allow-scripts allow-top-navigation allow-popups allow-modals allow-presentation allow-pointer-lock allow-popups-to-escape-sandbox {sandbox_permissions}" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" oallowfullscreen="true" msallowfullscreen="true"></iframe>
<!-- Site info -->
<script id="script_init" nonce="{script_nonce}">
iframe_src = "{file_url}{query_string}"
console.log("Changing url from " + document.getElementById("inner-iframe").src + " to " + iframe_src)
document.getElementById("inner-iframe").src = document.getElementById("inner-iframe").src // Workaround for Firefox back button bug
document.getElementById("inner-iframe").src = iframe_src
address = "{address}"
wrapper_nonce = "{wrapper_nonce}"
wrapper_key = "{wrapper_key}"
ajax_key = "{ajax_key}"
postmessage_nonce_security = {postmessage_nonce_security}
file_inner_path = "{file_inner_path}"
permissions = {permissions}
show_loadingscreen = {show_loadingscreen}
server_url = '{server_url}'
script_nonce = '{script_nonce}'
if (typeof WebSocket === "undefined") {
tag = document.createElement('div');
tag.innerHTML += "<div class='unsupported'>Your browser doesn't support <a href='https://caniuse.com/#search=websocket'>WebSocket connections</a>.<br>Please use the latest <a href='https://www.mozilla.org/firefox/new/'>Firefox</a> or <a href='https://www.google.com/chrome/'>Chrome</a> browser.</div>";
document.body.appendChild(tag)
}
</script>
<script src="/uimedia/all.js?rev={rev}&lang={lang}" nonce="{script_nonce}"></script>
<script nonce="{script_nonce}">
setTimeout(window.wrapper.onWrapperLoad, 1)
</script>
</body>
</html>