Replaced some more whitespace
This commit is contained in:
parent
fd448bac87
commit
77e51c2e10
55 changed files with 2507 additions and 2507 deletions
|
@ -1,105 +1,105 @@
|
|||
.comment-form {
|
||||
margin: 1em 0 2em;
|
||||
margin: 1em 0 2em;
|
||||
}
|
||||
|
||||
.comment-form .preview {
|
||||
background: lemonchiffon;
|
||||
padding: 0.5em;
|
||||
margin-bottom: 1em;
|
||||
box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5) inset;
|
||||
display: none;
|
||||
background: lemonchiffon;
|
||||
padding: 0.5em;
|
||||
margin-bottom: 1em;
|
||||
box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5) inset;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.comments ul {
|
||||
list-style-type: none;
|
||||
margin: 1em 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
margin: 1em 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.comment {
|
||||
margin: 0 0 1em 0;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
margin: 0 0 1em 0;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.comment .avatar {
|
||||
margin-right: 0.5em;
|
||||
flex-shrink: 0;
|
||||
vertical-align: top;
|
||||
margin-right: 0.5em;
|
||||
flex-shrink: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.comment .content {
|
||||
margin-top: 0.25em;
|
||||
margin-top: 0.25em;
|
||||
}
|
||||
.comment .content p:first-child {
|
||||
margin-top: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.comment .header {
|
||||
line-height: 16pt;
|
||||
vertical-align: middle;
|
||||
line-height: 16pt;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.comment .score,
|
||||
.comment .date {
|
||||
color: silver;
|
||||
font-size: 90%;
|
||||
padding-left: 0.5em;
|
||||
color: silver;
|
||||
font-size: 90%;
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
.comment .score-up.active,
|
||||
.comment .score-down.active {
|
||||
font-weight: bold;
|
||||
font-weight: bold;
|
||||
}
|
||||
.comment .header .ops a {
|
||||
color: silver;
|
||||
font-size: 80%;
|
||||
color: silver;
|
||||
font-size: 80%;
|
||||
}
|
||||
.comment .header .ops a:first-of-type:before {
|
||||
margin-left: 0.5em;
|
||||
content: '[';
|
||||
margin-left: 0.5em;
|
||||
content: '[';
|
||||
}
|
||||
.comment .header .ops a:not(:first-of-type):before {
|
||||
content: '|';
|
||||
margin: 0 0.3em;
|
||||
content: '|';
|
||||
margin: 0 0.3em;
|
||||
}
|
||||
.comment .header .ops a:last-of-type:after {
|
||||
content: ']';
|
||||
content: ']';
|
||||
}
|
||||
|
||||
#global-comment-list {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
#global-comment-list .pagination-content {
|
||||
text-align: left;
|
||||
text-align: left;
|
||||
}
|
||||
#global-comment-list .comments>ul {
|
||||
margin-top: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
#global-comment-list ul.posts {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#global-comment-list ul.posts>li {
|
||||
margin-bottom: 2em;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
#global-comment-list .post-comment {
|
||||
display: flex;
|
||||
display: flex;
|
||||
}
|
||||
@media all and (max-width: 40em) {
|
||||
#global-comment-list .post-comment {
|
||||
flex-direction: column;
|
||||
}
|
||||
#global-comment-list .post-comment {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
#global-comment-list .post {
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
margin-right: 1em;
|
||||
margin-bottom: 1em;
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
margin-right: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
#global-comment-list .comment-add,
|
||||
#global-comment-list .comments>h1 {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
#global-comment-list .post-small .link {
|
||||
margin: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
|
|
@ -1,124 +1,124 @@
|
|||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
background: #fff;
|
||||
color: #555;
|
||||
font-family: 'Droid Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
overflow-y: scroll;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
background: #fff;
|
||||
color: #555;
|
||||
font-family: 'Droid Sans', sans-serif;
|
||||
font-size: 15px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
@media all and (max-width: 40em) {
|
||||
body {
|
||||
font-size: 13px;
|
||||
}
|
||||
body {
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-weight: normal;
|
||||
font-size: 160%;
|
||||
font-weight: normal;
|
||||
font-size: 160%;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-variant: small-caps;
|
||||
font-weight: normal;
|
||||
font-variant: small-caps;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-weight: normal;
|
||||
font-size: 120%;
|
||||
font-weight: normal;
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 87%;
|
||||
font-size: 87%;
|
||||
}
|
||||
|
||||
#middle {
|
||||
padding: 0 2em;
|
||||
position: relative;
|
||||
padding: 0 2em;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin: 1.5em 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
width: 100%;
|
||||
margin: 1.5em 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #24A2DD;
|
||||
text-decoration: none;
|
||||
cursor: pointer; /* for links without [href] */
|
||||
color: #24A2DD;
|
||||
text-decoration: none;
|
||||
cursor: pointer; /* for links without [href] */
|
||||
}
|
||||
a:focus {
|
||||
outline: 2px solid #64C2ED;
|
||||
outline: 2px solid #64C2ED;
|
||||
}
|
||||
a:hover {
|
||||
color: #34B2ED;
|
||||
color: #34B2ED;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 1.5em auto;
|
||||
height: 1px;
|
||||
border: 0;
|
||||
border-bottom: 1px solid #eee;
|
||||
border-top: 1px solid #eee;
|
||||
box-sizing: content-box;
|
||||
margin: 1.5em auto;
|
||||
height: 1px;
|
||||
border: 0;
|
||||
border-bottom: 1px solid #eee;
|
||||
border-top: 1px solid #eee;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.big-button {
|
||||
color: #aaa;
|
||||
color: #aaa;
|
||||
}
|
||||
.big-button.active {
|
||||
background: #f7fbfc;
|
||||
color: #24A2DD !important;
|
||||
background: #f7fbfc;
|
||||
color: #24A2DD !important;
|
||||
}
|
||||
|
||||
.big-button:focus,
|
||||
.big-button:hover {
|
||||
background: #f7fbfc;
|
||||
color: #34B2ED !important;
|
||||
outline: 0;
|
||||
background: #f7fbfc;
|
||||
color: #34B2ED !important;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
span.spoiler:before {
|
||||
content: '[';
|
||||
color: #000;
|
||||
content: '[';
|
||||
color: #000;
|
||||
}
|
||||
span.spoiler:after {
|
||||
content: ']';
|
||||
color: #000;
|
||||
content: ']';
|
||||
color: #000;
|
||||
}
|
||||
span.spoiler {
|
||||
background: #eee;
|
||||
color: #eee;
|
||||
background: #eee;
|
||||
color: #eee;
|
||||
}
|
||||
span.spoiler:hover {
|
||||
color: dimgray;
|
||||
color: dimgray;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 3px solid #eee;
|
||||
margin-left: 0;
|
||||
padding: 0.3em 0.3em 0.3em 0.7em;
|
||||
background: #fafafa;
|
||||
color: #444;
|
||||
border-left: 3px solid #eee;
|
||||
margin-left: 0;
|
||||
padding: 0.3em 0.3em 0.3em 0.7em;
|
||||
background: #fafafa;
|
||||
color: #444;
|
||||
}
|
||||
blockquote :last-child {
|
||||
margin-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.draggable {
|
||||
cursor: move;
|
||||
cursor: move;
|
||||
}
|
||||
.resizer {
|
||||
position: absolute;
|
||||
cursor: nwse-resize;
|
||||
border: 0.25em solid rgba(0, 0, 0, 0.3);
|
||||
border-top: 0.25em solid transparent;
|
||||
border-left: 0.25em solid transparent;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
cursor: nwse-resize;
|
||||
border: 0.25em solid rgba(0, 0, 0, 0.3);
|
||||
border-top: 0.25em solid transparent;
|
||||
border-left: 0.25em solid transparent;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
|
|
@ -1,260 +1,260 @@
|
|||
.form-wrapper {
|
||||
display: table;
|
||||
margin: 0 auto;
|
||||
text-align: left !important;
|
||||
width: 30em;
|
||||
display: table;
|
||||
margin: 0 auto;
|
||||
text-align: left !important;
|
||||
width: 30em;
|
||||
}
|
||||
|
||||
.form-row {
|
||||
display: table-row;
|
||||
display: table-row;
|
||||
}
|
||||
|
||||
.form-label {
|
||||
width: 1%;
|
||||
white-space: pre;
|
||||
width: 1%;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.form-label,
|
||||
.form-input {
|
||||
display: table-cell;
|
||||
line-height: 37px;
|
||||
vertical-align: text-bottom;
|
||||
display: table-cell;
|
||||
line-height: 37px;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
.form-input {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.form-row label {
|
||||
padding-right: 1em;
|
||||
text-align: right;
|
||||
padding-right: 1em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.tag-input,
|
||||
textarea,
|
||||
input[type=text],
|
||||
input[type=password] {
|
||||
padding: 3px 6px 4px 6px;
|
||||
border: 1px solid #eee;
|
||||
box-shadow: 0 1px 2px -1px #e0e0e0 inset;
|
||||
background: #fafafa;
|
||||
font-family: 'Inconsolata', monospace;
|
||||
font-size: 100%;
|
||||
text-overflow: ellipsis;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 3px 6px 4px 6px;
|
||||
border: 1px solid #eee;
|
||||
box-shadow: 0 1px 2px -1px #e0e0e0 inset;
|
||||
background: #fafafa;
|
||||
font-family: 'Inconsolata', monospace;
|
||||
font-size: 100%;
|
||||
text-overflow: ellipsis;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
/* remove chrome yellow background for inputs with autocompletion */
|
||||
input:-webkit-autofill {
|
||||
-webkit-box-shadow: 0 0 0px 1000px #fafafa inset;
|
||||
-webkit-box-shadow: 0 0 0px 1000px #fafafa inset;
|
||||
}
|
||||
|
||||
button::before,
|
||||
input[type=button]::before {
|
||||
z-index: -1;
|
||||
background: linear-gradient(#f5f5f5, #e5e5e5);
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
content: '\a0';
|
||||
z-index: -1;
|
||||
background: linear-gradient(#f5f5f5, #e5e5e5);
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
content: '\a0';
|
||||
}
|
||||
button,
|
||||
input[type=button] {
|
||||
vertical-align: middle;
|
||||
line-height: normal;
|
||||
background: transparent;
|
||||
position: relative;
|
||||
padding: 2px 15px 3px 15px;
|
||||
border: 0;
|
||||
box-shadow: 0 1px 1px 0 #e5e5e5,
|
||||
0 0 0 1px rgba(0, 0, 0, 0.15) inset,
|
||||
0 5px 1px -4px white inset;
|
||||
color: #444;
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 1px rgba(255, 255, 255, 0.5);
|
||||
font-family: 'Droid Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
vertical-align: middle;
|
||||
line-height: normal;
|
||||
background: transparent;
|
||||
position: relative;
|
||||
padding: 2px 15px 3px 15px;
|
||||
border: 0;
|
||||
box-shadow: 0 1px 1px 0 #e5e5e5,
|
||||
0 0 0 1px rgba(0, 0, 0, 0.15) inset,
|
||||
0 5px 1px -4px white inset;
|
||||
color: #444;
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 1px rgba(255, 255, 255, 0.5);
|
||||
font-family: 'Droid Sans', sans-serif;
|
||||
font-size: 17px;
|
||||
}
|
||||
button:not(:disabled),
|
||||
input[type=button]:not(:disabled) {
|
||||
cursor: pointer;
|
||||
cursor: pointer;
|
||||
}
|
||||
button:not(:disabled):hover::before,
|
||||
input[type=button]:not(:disabled):hover::before {
|
||||
opacity: .65;
|
||||
opacity: .65;
|
||||
}
|
||||
button:not(:disabled):active,
|
||||
input[type=button]:not(:disabled):active {
|
||||
padding: 3px 15px 2px 15px;
|
||||
padding: 3px 15px 2px 15px;
|
||||
}
|
||||
button:not(:disabled):active::before,
|
||||
input[type=button]:not(:disabled):active::before {
|
||||
transform: rotate(180deg);
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
button:not(:disabled):focus,
|
||||
input[type=button]:not(:disabled):focus {
|
||||
box-shadow: 0 1px 1px 0 #e5e5e5, 0 0 0 2px #64C2ED inset;
|
||||
box-shadow: 0 1px 1px 0 #e5e5e5, 0 0 0 2px #64C2ED inset;
|
||||
}
|
||||
button:disabled {
|
||||
color: gray;
|
||||
color: gray;
|
||||
}
|
||||
|
||||
button.highlight::before,
|
||||
input[type=button].highlight::before {
|
||||
background: linear-gradient(rgb(160, 221, 251), rgb(101, 188, 239));
|
||||
background: linear-gradient(rgb(160, 221, 251), rgb(101, 188, 239));
|
||||
}
|
||||
button.highlight-red::before,
|
||||
input[type=button].highlight-red::before {
|
||||
background: linear-gradient(rgba(255, 181, 143, 1), rgba(255, 148, 122, 1));
|
||||
background: linear-gradient(rgba(255, 181, 143, 1), rgba(255, 148, 122, 1));
|
||||
}
|
||||
|
||||
button:focus,
|
||||
textarea:focus,
|
||||
input:focus {
|
||||
outline: none;
|
||||
outline: none;
|
||||
}
|
||||
button::-moz-focus-inner,
|
||||
input::-moz-focus-inner {
|
||||
border: 0;
|
||||
border: 0;
|
||||
}
|
||||
.tag-input.focused,
|
||||
textarea:focus,
|
||||
input:not([type=button]):not(.tag-real-input):focus {
|
||||
box-shadow: 0 0 0 1px #64C2ED inset;
|
||||
border-color: #64C2ED;
|
||||
box-shadow: 0 0 0 1px #64C2ED inset;
|
||||
border-color: #64C2ED;
|
||||
}
|
||||
|
||||
input[type=radio],
|
||||
input[type=checkbox] {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
}
|
||||
input[type=radio] + label,
|
||||
input[type=checkbox] + label {
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
input[type=radio] + label::before,
|
||||
input[type=checkbox] + label::before {
|
||||
font-family: 'FontAwesome';
|
||||
display: inline-block;
|
||||
width: 1em;
|
||||
text-align: left;
|
||||
font-family: 'FontAwesome';
|
||||
display: inline-block;
|
||||
width: 1em;
|
||||
text-align: left;
|
||||
}
|
||||
input[type=radio] + label::before {
|
||||
content: "\f1db";
|
||||
content: "\f1db";
|
||||
}
|
||||
input[type=radio]:checked + label::before {
|
||||
content: "\f192";
|
||||
content: "\f192";
|
||||
}
|
||||
input[type=checkbox] + label::before {
|
||||
content: "\f096";
|
||||
content: "\f096";
|
||||
}
|
||||
input[type=checkbox]:checked + label::before {
|
||||
content: "\f046";
|
||||
content: "\f046";
|
||||
}
|
||||
input[type=radio]:focus + label,
|
||||
input[type=checkbox]:focus + label {
|
||||
color: #64C2ED;
|
||||
color: #64C2ED;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.file-handler::before {
|
||||
background: none;
|
||||
background: none;
|
||||
}
|
||||
.file-handler {
|
||||
box-shadow: none !important;
|
||||
outline: none !important;
|
||||
border: 3px dashed #eee !important;
|
||||
padding: 0.3em 0.5em !Important;
|
||||
line-height: 140% !important;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
box-shadow: none !important;
|
||||
outline: none !important;
|
||||
border: 3px dashed #eee !important;
|
||||
padding: 0.3em 0.5em !Important;
|
||||
line-height: 140% !important;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
.file-handler.active {
|
||||
border-color: #64C2ED !important;
|
||||
background-color: #eeffcc;
|
||||
border-color: #64C2ED !important;
|
||||
background-color: #eeffcc;
|
||||
}
|
||||
|
||||
.tag-input {
|
||||
padding: 1px;
|
||||
line-height: normal !important;
|
||||
cursor: text;
|
||||
padding: 1px;
|
||||
line-height: normal !important;
|
||||
cursor: text;
|
||||
}
|
||||
.tag-input ul {
|
||||
list-style-type: none;
|
||||
display: inline;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
display: inline;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.tag-input li {
|
||||
background: #ddd;
|
||||
display: inline-block;
|
||||
font-family: 'Droid Sans', sans-serif;
|
||||
margin: 1px;
|
||||
padding: 2px 4px;
|
||||
background: #ddd;
|
||||
display: inline-block;
|
||||
font-family: 'Droid Sans', sans-serif;
|
||||
margin: 1px;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
.tag-input input {
|
||||
border: none;
|
||||
width: auto;
|
||||
border: none;
|
||||
width: auto;
|
||||
}
|
||||
.tag-input li a {
|
||||
color: black;
|
||||
color: black;
|
||||
}
|
||||
.tag-input li a.close {
|
||||
font-size: 85%;
|
||||
margin-left: 0.5em;
|
||||
font-size: 85%;
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
|
||||
.related-tags {
|
||||
line-height: 200%;
|
||||
font-size: 95%;
|
||||
display: none;
|
||||
margin: 0.5em 0.5em 1em 0.5em;
|
||||
line-height: 200%;
|
||||
font-size: 95%;
|
||||
display: none;
|
||||
margin: 0.5em 0.5em 1em 0.5em;
|
||||
}
|
||||
.related-tags span {
|
||||
float: left;
|
||||
float: left;
|
||||
}
|
||||
.related-tags ul {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
.related-tags li {
|
||||
display: inline-block;
|
||||
margin: 0 0.5em;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
margin: 0 0.5em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.autocomplete {
|
||||
position: absolute;
|
||||
display: none;
|
||||
z-index: 10;
|
||||
position: absolute;
|
||||
display: none;
|
||||
z-index: 10;
|
||||
}
|
||||
.autocomplete ul {
|
||||
list-style-type: none;
|
||||
padding: 0 0 !important;
|
||||
margin: 0 !important;
|
||||
border: 2px solid #64C2ED;
|
||||
background: white;
|
||||
display: block !important;
|
||||
text-align: left;
|
||||
list-style-type: none;
|
||||
padding: 0 0 !important;
|
||||
margin: 0 !important;
|
||||
border: 2px solid #64C2ED;
|
||||
background: white;
|
||||
display: block !important;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.autocomplete li {
|
||||
margin: 0;
|
||||
padding: 0.1em 0.5em !important;
|
||||
cursor: pointer;
|
||||
margin: 0;
|
||||
padding: 0.1em 0.5em !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.autocomplete li.active {
|
||||
background: #64C2ED;
|
||||
background: #64C2ED;
|
||||
}
|
||||
|
|
|
@ -1,32 +1,32 @@
|
|||
#help-view {
|
||||
max-width: 40em;
|
||||
margin: 0 auto;
|
||||
max-width: 40em;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#help-view div[data-tab] {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#help-view ul.tabs {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#help-view ul.tabs {
|
||||
margin: -0.5em -0.5em 0.5em -0.5em;
|
||||
margin: -0.5em -0.5em 0.5em -0.5em;
|
||||
}
|
||||
#help-view ul.tabs li {
|
||||
display: inline-block;
|
||||
margin: 0 0.5em;
|
||||
display: inline-block;
|
||||
margin: 0 0.5em;
|
||||
}
|
||||
|
||||
#help-view ul.tabs a {
|
||||
display: inline-block;
|
||||
padding: 0.2em 0.5em;
|
||||
display: inline-block;
|
||||
padding: 0.2em 0.5em;
|
||||
}
|
||||
|
||||
#help-view table td,
|
||||
#help-view table th {
|
||||
padding-right: 1.5em;
|
||||
padding-right: 1.5em;
|
||||
}
|
||||
|
|
|
@ -1,78 +1,78 @@
|
|||
table.history {
|
||||
font-size: 80%;
|
||||
border-spacing: 0;
|
||||
font-size: 80%;
|
||||
border-spacing: 0;
|
||||
}
|
||||
table.history .addition {
|
||||
color: #228022;
|
||||
color: #228022;
|
||||
}
|
||||
table.history .addition:before {
|
||||
content: '+';
|
||||
content: '+';
|
||||
}
|
||||
|
||||
table.history .removal {
|
||||
color: #e02222;
|
||||
color: #e02222;
|
||||
}
|
||||
table.history .removal:before {
|
||||
content: '-';
|
||||
content: '-';
|
||||
}
|
||||
|
||||
table.history .user img {
|
||||
vertical-align: middle;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
table.history .time,
|
||||
table.history .user,
|
||||
table.history .subject {
|
||||
white-space: nowrap;
|
||||
white-space: nowrap;
|
||||
}
|
||||
table.history .difference {
|
||||
word-break: break-all;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
table.history td {
|
||||
padding: 0.3em 0.5em 0.3em 0.25em;
|
||||
word-break: break-word;
|
||||
word-wrap: break-word;
|
||||
vertical-align: top;
|
||||
padding: 0.3em 0.5em 0.3em 0.25em;
|
||||
word-break: break-word;
|
||||
word-wrap: break-word;
|
||||
vertical-align: top;
|
||||
}
|
||||
table.history tr:nth-child(2n+1) td {
|
||||
background: #fafafa;
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
table.history ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
display: inline;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
display: inline;
|
||||
}
|
||||
table.history ul:before {
|
||||
content: ' (';
|
||||
content: ' (';
|
||||
}
|
||||
table.history ul:after {
|
||||
content: ')';
|
||||
content: ')';
|
||||
}
|
||||
|
||||
table.history li {
|
||||
display: inline;
|
||||
display: inline;
|
||||
}
|
||||
table.history li:not(:last-of-type):after {
|
||||
content: ', ';
|
||||
content: ', ';
|
||||
}
|
||||
|
||||
#history-wrapper {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
#history-wrapper table {
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
}
|
||||
@media all and (min-width: 77em) {
|
||||
#history-wrapper table {
|
||||
width: 70em;
|
||||
}
|
||||
#history-wrapper table {
|
||||
width: 70em;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 77em) {
|
||||
#history-wrapper table {
|
||||
width: 100%;
|
||||
}
|
||||
#history-wrapper table {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,44 +1,44 @@
|
|||
#home {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
#home h1 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
#home h1+p {
|
||||
margin-top: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#home .post {
|
||||
text-align: center;
|
||||
margin: 0 auto;
|
||||
display: inline-block;
|
||||
max-width: 60%;
|
||||
min-width: 40em;
|
||||
text-align: center;
|
||||
margin: 0 auto;
|
||||
display: inline-block;
|
||||
max-width: 60%;
|
||||
min-width: 40em;
|
||||
}
|
||||
#home .post .left {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
margin-right: 0.5em;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
#home .post .right {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
margin-left: 0.5em;
|
||||
display: inline-block;
|
||||
float: right;
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
|
||||
#home .post-footer,
|
||||
#home .post-footer img {
|
||||
vertical-align: middle;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#home .post-footer img {
|
||||
margin-left: 0.5em;
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
|
||||
#home .version {
|
||||
opacity: .4;
|
||||
opacity: .4;
|
||||
}
|
||||
#home .subheader, #home .post-footer {
|
||||
font-size: 85%;
|
||||
font-size: 85%;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.http-error {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
.http-error img {
|
||||
margin: 0 auto;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
#login-form p {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
#login-form form {
|
||||
width: 22.5em;
|
||||
width: 22.5em;
|
||||
}
|
||||
|
||||
#login-form .help {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
#login-form .help ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
list-style-position: inside;
|
||||
white-space: nowrap;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
list-style-position: inside;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#login-form .messages {
|
||||
margin: 0 auto;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
.message {
|
||||
margin: 0 auto 0.2em auto;
|
||||
padding: 0.4em 0.5em;
|
||||
text-align: center;
|
||||
max-width: 40em;
|
||||
margin: 0 auto 0.2em auto;
|
||||
padding: 0.4em 0.5em;
|
||||
text-align: center;
|
||||
max-width: 40em;
|
||||
}
|
||||
|
||||
.message.error {
|
||||
background: #fdd;
|
||||
box-shadow: 0 0 0 1px #fcc inset;
|
||||
background: #fdd;
|
||||
box-shadow: 0 0 0 1px #fcc inset;
|
||||
}
|
||||
|
||||
.message.info {
|
||||
background: #def;
|
||||
box-shadow: 0 0 0 1px #cdf inset;
|
||||
background: #def;
|
||||
box-shadow: 0 0 0 1px #cdf inset;
|
||||
}
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
.page-list {
|
||||
text-align: center;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 1em auto 0 auto;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 1em auto 0 auto;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.page-list li {
|
||||
display: inline-block;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.page-list li a {
|
||||
display: inline-block;
|
||||
padding: 0.4em 1.2em;
|
||||
display: inline-block;
|
||||
padding: 0.4em 1.2em;
|
||||
}
|
||||
|
|
|
@ -1,48 +1,48 @@
|
|||
.post-list {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.post-list .search {
|
||||
margin: 0 auto 1em auto;
|
||||
text-align: left;
|
||||
margin: 0 auto 1em auto;
|
||||
text-align: left;
|
||||
}
|
||||
@media all and (min-width: 57em) {
|
||||
.post-list .search {
|
||||
min-width: 50em;
|
||||
}
|
||||
.post-list .search {
|
||||
min-width: 50em;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 57em) {
|
||||
.post-list .search {
|
||||
min-width: 100%;
|
||||
}
|
||||
.post-list .search {
|
||||
min-width: 100%;
|
||||
}
|
||||
}
|
||||
.post-list .search:after {
|
||||
display: block;
|
||||
content: '';
|
||||
clear: both;
|
||||
display: block;
|
||||
content: '';
|
||||
clear: both;
|
||||
}
|
||||
.post-list .search input {
|
||||
max-width: 20em;
|
||||
max-width: 20em;
|
||||
}
|
||||
.post-list .search button {
|
||||
margin-left: 0.25em;
|
||||
margin-left: 0.25em;
|
||||
}
|
||||
.post-list .search .mass-tag-wrapper {
|
||||
float: right;
|
||||
float: right;
|
||||
}
|
||||
.post-list .search .mass-tag-wrapper p {
|
||||
display: inline;
|
||||
margin-right: 1em;
|
||||
display: inline;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
.post-list ul.safety {
|
||||
display: inline-block;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.post-list ul.safety li {
|
||||
display: inline-block;
|
||||
display: inline-block;
|
||||
}
|
||||
.post-list ul.safety .safety-safe:before { background: linear-gradient(rgb(224, 248, 218), rgb(213, 233, 208)); }
|
||||
.post-list ul.safety .safety-sketchy:before { background: linear-gradient(rgb(252, 252, 230), rgb(245, 236, 194)); }
|
||||
|
@ -52,158 +52,158 @@
|
|||
.post-list ul.safety .safety-unsafe.disabled:before { background: linear-gradient(#DDB7B7, #C9A195); }
|
||||
|
||||
.post-list ul.posts {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-content: center;
|
||||
flex-wrap: wrap;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-content: center;
|
||||
flex-wrap: wrap;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.post-list ul.posts .post-small {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.post-small {
|
||||
position: relative;
|
||||
position: relative;
|
||||
}
|
||||
.post-small .link {
|
||||
display: block;
|
||||
margin: 0.3em;
|
||||
border: 1px solid #999;
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
display: block;
|
||||
margin: 0.3em;
|
||||
border: 1px solid #999;
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
}
|
||||
.post-small img {
|
||||
display: block;
|
||||
border: 0;
|
||||
background: white;
|
||||
display: block;
|
||||
border: 0;
|
||||
background: white;
|
||||
}
|
||||
|
||||
|
||||
.post-small .link:focus,
|
||||
.post-small .link:hover {
|
||||
background: #64C2ED;
|
||||
border-color: #64C2ED;
|
||||
box-shadow: 0 0 0 2px #64C2ED;
|
||||
outline: 0;
|
||||
background: #64C2ED;
|
||||
border-color: #64C2ED;
|
||||
box-shadow: 0 0 0 2px #64C2ED;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.post-small .link:focus img:not(.loading),
|
||||
.post-small .link:hover img:not(.loading) {
|
||||
opacity: .8 !important;
|
||||
opacity: .8 !important;
|
||||
}
|
||||
|
||||
.post-small .link .info {
|
||||
display: none;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: #64C2ED;
|
||||
color: black;
|
||||
display: none;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: #64C2ED;
|
||||
color: black;
|
||||
}
|
||||
.post-small .link .info ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.post-small .link .info li {
|
||||
display: inline-block;
|
||||
margin: 0.1em 0.5em;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
margin: 0.1em 0.5em;
|
||||
padding: 0;
|
||||
}
|
||||
.post-small .link:focus .info,
|
||||
.post-small .link:hover .info {
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.post-small:not(.post-type-image) .link::before {
|
||||
display: block;
|
||||
content: '';
|
||||
z-index: 2;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-top: 50px solid red;
|
||||
border-left: 50px solid transparent;
|
||||
display: block;
|
||||
content: '';
|
||||
z-index: 2;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-top: 50px solid red;
|
||||
border-left: 50px solid transparent;
|
||||
}
|
||||
|
||||
.post-small:not(.post-type-image) .link::after {
|
||||
pointer-events: none;
|
||||
display: block;
|
||||
content: '...';
|
||||
z-index: 3;
|
||||
position: absolute;
|
||||
top: -35px; /* 50 * sqrt(2) / 2 */
|
||||
right: -35px;
|
||||
width: 71px; /* 50 * sqrt(2) */
|
||||
height: 71px;
|
||||
line-height: 122px; /* 71 * 2 - 11 (font-size) - padding */
|
||||
transform: rotate(45deg);
|
||||
text-align: center;
|
||||
color: white;
|
||||
font-size: 15px;
|
||||
pointer-events: none;
|
||||
display: block;
|
||||
content: '...';
|
||||
z-index: 3;
|
||||
position: absolute;
|
||||
top: -35px; /* 50 * sqrt(2) / 2 */
|
||||
right: -35px;
|
||||
width: 71px; /* 50 * sqrt(2) */
|
||||
height: 71px;
|
||||
line-height: 122px; /* 71 * 2 - 11 (font-size) - padding */
|
||||
transform: rotate(45deg);
|
||||
text-align: center;
|
||||
color: white;
|
||||
font-size: 15px;
|
||||
}
|
||||
.post-small.post-type-youtube .link::after {
|
||||
font-size: 13px;
|
||||
content: 'youtube';
|
||||
font-size: 13px;
|
||||
content: 'youtube';
|
||||
}
|
||||
.post-small.post-type-video .link::after {
|
||||
content: 'video';
|
||||
content: 'video';
|
||||
}
|
||||
.post-small.post-type-flash .link::after {
|
||||
content: 'flash';
|
||||
content: 'flash';
|
||||
}
|
||||
.post-small.post-type-animation .link::after {
|
||||
content: 'anim';
|
||||
content: 'anim';
|
||||
}
|
||||
|
||||
.post-small .action {
|
||||
display: none;
|
||||
position: absolute;
|
||||
z-index: 3;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
bottom: 0;
|
||||
pointer-events: none;
|
||||
display: none;
|
||||
position: absolute;
|
||||
z-index: 3;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
bottom: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.post-small .action button {
|
||||
padding: 0.5em 1em;
|
||||
height: 1em;
|
||||
line-height: 1em;
|
||||
display: block;
|
||||
margin: -1em auto 0 auto;
|
||||
box-sizing: content-box;
|
||||
opacity: .7;
|
||||
box-shadow: none;
|
||||
pointer-events: auto;
|
||||
padding: 0.5em 1em;
|
||||
height: 1em;
|
||||
line-height: 1em;
|
||||
display: block;
|
||||
margin: -1em auto 0 auto;
|
||||
box-sizing: content-box;
|
||||
opacity: .7;
|
||||
box-shadow: none;
|
||||
pointer-events: auto;
|
||||
}
|
||||
.post-small .action button:focus {
|
||||
box-shadow: 0 0 0 2px #64C2ED inset !important;
|
||||
box-shadow: 0 0 0 2px #64C2ED inset !important;
|
||||
}
|
||||
|
||||
.tagged .action button,
|
||||
.untagged .action button {
|
||||
border: 1px solid black;
|
||||
font-weight: bold;
|
||||
text-shadow: none;
|
||||
border: 1px solid black;
|
||||
font-weight: bold;
|
||||
text-shadow: none;
|
||||
}
|
||||
.untagged .action button::before {
|
||||
background: red;
|
||||
background: red;
|
||||
}
|
||||
.untagged .action button {
|
||||
color: white;
|
||||
color: white;
|
||||
}
|
||||
.tagged .action button::before {
|
||||
background: lime;
|
||||
background: lime;
|
||||
}
|
||||
.tagged .action button {
|
||||
color: black;
|
||||
color: black;
|
||||
}
|
||||
|
|
|
@ -1,146 +1,146 @@
|
|||
#post-upload-step1 {
|
||||
display: table;
|
||||
width: 30em;
|
||||
margin: 0 auto;
|
||||
display: table;
|
||||
width: 30em;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#post-upload-step1 .file-handler {
|
||||
padding: 3.5em !important;
|
||||
width: 100%;
|
||||
padding: 3.5em !important;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#post-upload-step1 .url-handler {
|
||||
margin-top: 0.5em;
|
||||
position: relative;
|
||||
margin-top: 0.5em;
|
||||
position: relative;
|
||||
}
|
||||
#post-upload-step1 .url-handler .input-wrapper {
|
||||
margin-right: 9.5em;
|
||||
margin-right: 9.5em;
|
||||
}
|
||||
#post-upload-step1 .url-handler button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 8em;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 8em;
|
||||
}
|
||||
|
||||
#post-upload-step2 .hybrid-view {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
@media all and (min-width: 62.5em) {
|
||||
#post-upload-step2 .hybrid-window:first-child {
|
||||
width: 40%;
|
||||
margin-right: 1em;
|
||||
float: left;
|
||||
}
|
||||
#post-upload-step2 .hybrid-window:last-child {
|
||||
display: inline-block;
|
||||
width: 57.5%;
|
||||
}
|
||||
#post-upload-step2 .hybrid-window:first-child {
|
||||
width: 40%;
|
||||
margin-right: 1em;
|
||||
float: left;
|
||||
}
|
||||
#post-upload-step2 .hybrid-window:last-child {
|
||||
display: inline-block;
|
||||
width: 57.5%;
|
||||
}
|
||||
}
|
||||
|
||||
#post-upload-step2 .thumbnail img {
|
||||
border: 1px solid black;
|
||||
vertical-align: middle;
|
||||
display: block;
|
||||
border: 1px solid black;
|
||||
vertical-align: middle;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#post-upload-step2 table {
|
||||
border-spacing: 0;
|
||||
table-layout: fixed;
|
||||
width: 100%;
|
||||
border-spacing: 0;
|
||||
table-layout: fixed;
|
||||
width: 100%;
|
||||
}
|
||||
#post-upload-step2 table td,
|
||||
#post-upload-step2 table th {
|
||||
padding: 0.2em 0.5em;
|
||||
text-align: center;
|
||||
padding: 0.2em 0.5em;
|
||||
text-align: center;
|
||||
}
|
||||
#post-upload-step2 table th {
|
||||
font-weight: normal;
|
||||
font-weight: normal;
|
||||
}
|
||||
#post-upload-step2 table tr.selected {
|
||||
background: #f7fbfc;
|
||||
background: #f7fbfc;
|
||||
}
|
||||
#post-upload-step2 table .checkbox {
|
||||
width: 30px;
|
||||
padding: 0.2em 0;
|
||||
width: 30px;
|
||||
padding: 0.2em 0;
|
||||
}
|
||||
#post-upload-step2 table .checkbox input {
|
||||
margin: 0 auto;
|
||||
margin: 0 auto;
|
||||
}
|
||||
#post-upload-step2 table .thumbnail {
|
||||
width: 40px;
|
||||
padding: 0.2em 0;
|
||||
width: 40px;
|
||||
padding: 0.2em 0;
|
||||
}
|
||||
#post-upload-step2 table .safety {
|
||||
width: 60px;
|
||||
padding: 0.2em 0;
|
||||
width: 60px;
|
||||
padding: 0.2em 0;
|
||||
}
|
||||
#post-upload-step2 table .tags {
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
#post-upload-step2 table .safety {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
#post-upload-step2 table .safety [class^=safety-] {
|
||||
box-shadow: inset 0 0 0 3px rgba(0,0,0,0.1);
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
margin: 0 auto;
|
||||
box-shadow: inset 0 0 0 3px rgba(0,0,0,0.1);
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
#post-upload-step2 table .safety-safe { background: #b2efa2; }
|
||||
#post-upload-step2 table .safety-sketchy { background: #f0e4a8; }
|
||||
#post-upload-step2 table .safety-unsafe { background: #fbc6b6; }
|
||||
#post-upload-step2 table .thumbnail img {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
display: inline-block;
|
||||
background-size: 30px 30px;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
display: inline-block;
|
||||
background-size: 30px 30px;
|
||||
}
|
||||
#post-upload-step2 .operations {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#post-upload-step2 .operations li {
|
||||
display: inline-block;
|
||||
margin: 0.3em 0.3em 0 0;
|
||||
display: inline-block;
|
||||
margin: 0.3em 0.3em 0 0;
|
||||
}
|
||||
#post-upload-step2 .operations .stop {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#post-upload-step2 form {
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
overflow: hidden;
|
||||
text-align: left;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
overflow: hidden;
|
||||
text-align: left;
|
||||
}
|
||||
#post-upload-step2 .messages {
|
||||
margin: 1em 0;
|
||||
margin: 1em 0;
|
||||
}
|
||||
#post-upload-step2 .form-slider {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
#post-upload-step2 .form-slider .thumbnail img {
|
||||
max-width: 100%;
|
||||
max-height: 450px;
|
||||
margin: 0 auto 1em auto;
|
||||
max-width: 100%;
|
||||
max-height: 450px;
|
||||
margin: 0 auto 1em auto;
|
||||
}
|
||||
|
||||
#post-upload-step2 .file-name .form-input {
|
||||
word-break: break-all;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#post-upload-step2,
|
||||
.template {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#uploading-alert {
|
||||
display: none;
|
||||
text-align: left;
|
||||
display: none;
|
||||
text-align: left;
|
||||
}
|
||||
|
|
|
@ -1,262 +1,262 @@
|
|||
#post-current-search-wrapper {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
#post-current-search {
|
||||
margin: 0 auto 1em auto;
|
||||
display: inline-block;
|
||||
margin: 0 auto 1em auto;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#post-current-search a {
|
||||
margin: 0 2em;
|
||||
margin: 0 2em;
|
||||
}
|
||||
#post-current-search a,
|
||||
#post-current-search div {
|
||||
display: inline-block;
|
||||
display: inline-block;
|
||||
}
|
||||
#post-current-search a:not(.enabled) {
|
||||
color: silver;
|
||||
cursor: text;
|
||||
color: silver;
|
||||
cursor: text;
|
||||
}
|
||||
|
||||
#post-view-wrapper #sidebar {
|
||||
line-height: 1.33em;
|
||||
line-height: 1.33em;
|
||||
}
|
||||
|
||||
#post-view-wrapper #sidebar h1 {
|
||||
margin-top: 1.5em;
|
||||
margin-top: 1.5em;
|
||||
}
|
||||
|
||||
#post-view-wrapper #sidebar h1:first-of-type {
|
||||
margin-top: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
@media all and (min-width: 62.5em) {
|
||||
#post-view-wrapper {
|
||||
display: flex;
|
||||
}
|
||||
#post-view-wrapper {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#post-view-wrapper #sidebar {
|
||||
min-width: 15em;
|
||||
margin-right: 1em;
|
||||
flex: 1;
|
||||
}
|
||||
#post-view-wrapper #sidebar {
|
||||
min-width: 15em;
|
||||
margin-right: 1em;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
#post-view-wrapper #post-view {
|
||||
flex: 5;
|
||||
}
|
||||
#post-view-wrapper #post-view {
|
||||
flex: 5;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 62.5em) {
|
||||
#post-view-wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
#post-view-wrapper #sidebar {
|
||||
order: 2;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
#post-view-wrapper #post-view {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
order: 1;
|
||||
}
|
||||
#post-view-wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
#post-view-wrapper #sidebar {
|
||||
order: 2;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
#post-view-wrapper #post-view {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
order: 1;
|
||||
}
|
||||
}
|
||||
|
||||
#post-view-wrapper .favorites li {
|
||||
display: inline-block;
|
||||
margin: 0 0.25em 0.25em 0;
|
||||
display: inline-block;
|
||||
margin: 0 0.25em 0.25em 0;
|
||||
}
|
||||
|
||||
#sidebar ul {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#sidebar .other-info li {
|
||||
display: block;
|
||||
word-break: break-all;
|
||||
padding-left: 1em;
|
||||
text-indent: -1em;
|
||||
display: block;
|
||||
word-break: break-all;
|
||||
padding-left: 1em;
|
||||
text-indent: -1em;
|
||||
}
|
||||
|
||||
#sidebar .tags li {
|
||||
display: block;
|
||||
word-break: break-all;
|
||||
padding-left: 20px;
|
||||
text-indent: -20px;
|
||||
display: block;
|
||||
word-break: break-all;
|
||||
padding-left: 20px;
|
||||
text-indent: -20px;
|
||||
}
|
||||
#sidebar .tags .tag-wrapper {
|
||||
max-width: 100%;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
max-width: 100%;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
#sidebar .tags li a.tag-edit {
|
||||
margin-left: 20px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
#sidebar .tags li .tag-name {
|
||||
margin-right: 0.8em;
|
||||
margin-right: 0.8em;
|
||||
}
|
||||
#sidebar .tags li .usages {
|
||||
color: silver;
|
||||
color: silver;
|
||||
}
|
||||
|
||||
#sidebar .author-box img {
|
||||
float: left;
|
||||
margin-right: 0.5em;
|
||||
float: left;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
#sidebar .author-box .author-name {
|
||||
font-weight: bold;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#sidebar .other-info {
|
||||
margin-top: 1em;
|
||||
line-height: 150%;
|
||||
margin-top: 1em;
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
#sidebar .essential {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
margin-bottom: 2em;
|
||||
max-width: 30em;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
margin-bottom: 2em;
|
||||
max-width: 30em;
|
||||
}
|
||||
#sidebar .essential li {
|
||||
display: block;
|
||||
margin: 0 0.25em;
|
||||
vertical-align: top;
|
||||
display: block;
|
||||
margin: 0 0.25em;
|
||||
vertical-align: top;
|
||||
}
|
||||
#sidebar .essential li i.fa {
|
||||
font-size: 200%;
|
||||
font-size: 200%;
|
||||
}
|
||||
#sidebar .essential li a {
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 87%;
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 87%;
|
||||
}
|
||||
|
||||
#post-view #post-edit-target {
|
||||
padding: 1em;
|
||||
width: 50%;
|
||||
min-width: 30em;
|
||||
position: absolute;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
box-shadow: 0 0 1em 0.5em rgba(255, 255, 255, 0.8);
|
||||
z-index: 2;
|
||||
display: none;
|
||||
padding: 1em;
|
||||
width: 50%;
|
||||
min-width: 30em;
|
||||
position: absolute;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
box-shadow: 0 0 1em 0.5em rgba(255, 255, 255, 0.8);
|
||||
z-index: 2;
|
||||
display: none;
|
||||
}
|
||||
#post-edit-target .form-wrapper {
|
||||
min-width: 100%;
|
||||
min-width: 100%;
|
||||
}
|
||||
#post-view>* {
|
||||
z-index: -1;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
#post-edit-target .file-handler {
|
||||
margin: 0.5em 0;
|
||||
margin: 0.5em 0;
|
||||
}
|
||||
|
||||
#post-view-wrapper .post-history-wrapper {
|
||||
padding: 1em 0;
|
||||
display: none;
|
||||
word-break: break-all;
|
||||
padding: 1em 0;
|
||||
display: none;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.post-content {
|
||||
position: relative;
|
||||
margin-bottom: 0.5em;
|
||||
position: relative;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.post-content .object-wrapper {
|
||||
max-width: 100%;
|
||||
position: relative;
|
||||
max-width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
.post-content .object-wrapper img,
|
||||
.post-content .object-wrapper object,
|
||||
.post-content .object-wrapper iframe,
|
||||
.post-content .object-wrapper video {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
border: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
border: 0;
|
||||
}
|
||||
.post-content .object-wrapper video {
|
||||
background: black;
|
||||
background: black;
|
||||
}
|
||||
|
||||
.post-notes-target {
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
}
|
||||
.post-notes {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.post-note-edit {
|
||||
pointer-events: auto;
|
||||
display: none;
|
||||
position: fixed;
|
||||
z-index: 3;
|
||||
background: white;
|
||||
border: 1px solid black;
|
||||
padding: 1em;
|
||||
left: 30%;
|
||||
top: 20%;
|
||||
pointer-events: auto;
|
||||
display: none;
|
||||
position: fixed;
|
||||
z-index: 3;
|
||||
background: white;
|
||||
border: 1px solid black;
|
||||
padding: 1em;
|
||||
left: 30%;
|
||||
top: 20%;
|
||||
}
|
||||
.post-note-edit textarea {
|
||||
width: 25em;
|
||||
height: 5em;
|
||||
display: block;
|
||||
width: 25em;
|
||||
height: 5em;
|
||||
display: block;
|
||||
}
|
||||
.post-note-edit .actions {
|
||||
pointer-events: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
.post-note-edit button {
|
||||
pointer-events: auto;
|
||||
margin-top: 0.5em;
|
||||
pointer-events: auto;
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
.post-note-edit .actions button:not(:last-child) {
|
||||
margin-right: 0.5em;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
.post-note {
|
||||
outline: 0;
|
||||
pointer-events: auto;
|
||||
position: absolute;
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
border: 1px solid rgba(0, 0, 0, 0.3);
|
||||
font-size: 12pt;
|
||||
outline: 0;
|
||||
pointer-events: auto;
|
||||
position: absolute;
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
border: 1px solid rgba(0, 0, 0, 0.3);
|
||||
font-size: 12pt;
|
||||
}
|
||||
.post-note:focus {
|
||||
border-color: rgba(255, 0, 0, 0.3);
|
||||
background-color: rgba(255, 225, 225, 0.3);
|
||||
border-color: rgba(255, 0, 0, 0.3);
|
||||
background-color: rgba(255, 225, 225, 0.3);
|
||||
}
|
||||
.post-note .text-wrapper {
|
||||
position: absolute;
|
||||
display: none;
|
||||
z-index: 1;
|
||||
top: calc(100%);
|
||||
left: -1px;
|
||||
padding-top: 0.5em;
|
||||
cursor: pointer;
|
||||
width: -webkit-max-content;
|
||||
width: -moz-max-content;
|
||||
width: max-content;
|
||||
position: absolute;
|
||||
display: none;
|
||||
z-index: 1;
|
||||
top: calc(100%);
|
||||
left: -1px;
|
||||
padding-top: 0.5em;
|
||||
cursor: pointer;
|
||||
width: -webkit-max-content;
|
||||
width: -moz-max-content;
|
||||
width: max-content;
|
||||
}
|
||||
.post-note .text {
|
||||
padding: 0.5em;
|
||||
background: lemonchiffon;
|
||||
border: 1px solid black;
|
||||
padding: 0.5em;
|
||||
background: lemonchiffon;
|
||||
border: 1px solid black;
|
||||
}
|
||||
.post-note:hover .text-wrapper {
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.post-note .text p:first-of-type {
|
||||
margin-top: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
.post-note .text p:last-of-type {
|
||||
margin-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#registration-form p {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
#registration-form form {
|
||||
width: 25em;
|
||||
width: 25em;
|
||||
}
|
||||
|
||||
#registration-form .messages {
|
||||
margin: 0 auto;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
|
|
@ -1,96 +1,96 @@
|
|||
#tag-list-wrapper {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
#tag-list {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
@media all and (min-width: 67em) {
|
||||
#tag-list {
|
||||
width: 60em;
|
||||
}
|
||||
#tag-list {
|
||||
width: 60em;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 40em) {
|
||||
#tag-list .implications,
|
||||
#tag-list .suggestions {
|
||||
display: none;
|
||||
}
|
||||
#tag-list .implications,
|
||||
#tag-list .suggestions {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#tag-list form {
|
||||
float: left;
|
||||
white-space: nowrap;
|
||||
float: left;
|
||||
white-space: nowrap;
|
||||
}
|
||||
#tag-list form input {
|
||||
width: 15em;
|
||||
width: 15em;
|
||||
}
|
||||
#tag-list ul.order {
|
||||
float: right;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0 -0.5em 0 0;
|
||||
float: right;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0 -0.5em 0 0;
|
||||
}
|
||||
#tag-list .search:after {
|
||||
display: block;
|
||||
content: '';
|
||||
clear: both;
|
||||
display: block;
|
||||
content: '';
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#ta-list ul.order {
|
||||
margin: -0.5em -0.5em 0.5em -0.5em;
|
||||
margin: -0.5em -0.5em 0.5em -0.5em;
|
||||
}
|
||||
#tag-list ul.order li {
|
||||
display: inline-block;
|
||||
margin: 0 0.5em;
|
||||
display: inline-block;
|
||||
margin: 0 0.5em;
|
||||
}
|
||||
#tag-list ul.order a {
|
||||
display: inline-block;
|
||||
padding: 0.2em 0.5em;
|
||||
display: inline-block;
|
||||
padding: 0.2em 0.5em;
|
||||
}
|
||||
|
||||
#tag-list table {
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
margin: 1em auto;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
margin: 1em auto;
|
||||
}
|
||||
|
||||
#tag-list th:not(:last-child),
|
||||
#tag-list td:not(:last-child) {
|
||||
padding-right: 1.5em;
|
||||
padding-right: 1.5em;
|
||||
}
|
||||
|
||||
#tag-list th {
|
||||
font-weight: normal;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#tag-list .fa-check {
|
||||
opacity: .2;
|
||||
opacity: .2;
|
||||
}
|
||||
|
||||
#tag-list .banned,
|
||||
#tag-list .usages {
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#tag-list .implications,
|
||||
#tag-list .suggestions {
|
||||
word-break: break-all;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.tag-category-character,
|
||||
.tag-category-character a {
|
||||
color: #0a0;
|
||||
color: #0a0;
|
||||
}
|
||||
.tag-category-copyright,
|
||||
.tag-category-copyright a {
|
||||
color: #a0a;
|
||||
color: #a0a;
|
||||
}
|
||||
.tag-category-artist,
|
||||
.tag-category-artist a {
|
||||
color: #a00;
|
||||
color: #a00;
|
||||
}
|
||||
.tag-category-meta,
|
||||
.tag-category-meta a {
|
||||
color: #aaa;
|
||||
color: #aaa;
|
||||
}
|
||||
|
|
|
@ -1,43 +1,43 @@
|
|||
#tag-view {
|
||||
margin: 0 auto;
|
||||
max-width: 45em;
|
||||
text-align: center;
|
||||
margin: 0 auto;
|
||||
max-width: 45em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#tav-view .header {
|
||||
text-align: left;
|
||||
display: inline-block;
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
display: inline-block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#tag-view .header h1 {
|
||||
margin-top: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#tag-view h3 {
|
||||
margin-bottom: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
#tag-view form {
|
||||
text-align: left;
|
||||
max-width: 30em;
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
max-width: 30em;
|
||||
margin: 0 auto;
|
||||
}
|
||||
#tag-view p {
|
||||
margin: 0 0 0.5em 0;
|
||||
line-height: normal;
|
||||
margin: 0 0 0.5em 0;
|
||||
line-height: normal;
|
||||
}
|
||||
#tag-view small {
|
||||
font-size: 0.85em;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
#tag-view .siblings ul {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#tag-view .siblings ul li {
|
||||
display: inline-block;
|
||||
margin: 0em 0.5em;
|
||||
line-height: normal;
|
||||
display: inline-block;
|
||||
margin: 0em 0.5em;
|
||||
line-height: normal;
|
||||
}
|
||||
|
|
|
@ -1,54 +1,54 @@
|
|||
#top-navigation {
|
||||
width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#top-navigation ul {
|
||||
list-style-type: none;
|
||||
padding: 0 2em;
|
||||
margin: 0;
|
||||
list-style-type: none;
|
||||
padding: 0 2em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#top-navigation li {
|
||||
display: inline-block;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#top-navigation li a {
|
||||
display: inline-block;
|
||||
text-transform: lowercase;
|
||||
font-variant: small-caps;
|
||||
padding: 0.5em 1em;
|
||||
font-size: 0.9em;
|
||||
display: inline-block;
|
||||
text-transform: lowercase;
|
||||
font-variant: small-caps;
|
||||
padding: 0.5em 1em;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
#top-navigation li a:focus,
|
||||
#top-navigation li a:hover {
|
||||
outline: 0;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
#top-navigation li:first-child a {
|
||||
margin-left: -1em;
|
||||
margin-left: -1em;
|
||||
}
|
||||
|
||||
#top-navigation li:last-child a {
|
||||
margin-right: -1em;
|
||||
margin-right: -1em;
|
||||
}
|
||||
|
||||
#top-navigation i {
|
||||
font-size: 3em;
|
||||
margin: 0 10px 5px;
|
||||
font-size: 3em;
|
||||
margin: 0 10px 5px;
|
||||
}
|
||||
|
||||
#top-navigation .accesskey:before {
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
right: 0;
|
||||
left: 0;
|
||||
content: '\a0';
|
||||
border-bottom: 1px solid;
|
||||
opacity: .35;
|
||||
height: 90%;
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
right: 0;
|
||||
left: 0;
|
||||
content: '\a0';
|
||||
border-bottom: 1px solid;
|
||||
opacity: .35;
|
||||
height: 90%;
|
||||
}
|
||||
#top-navigation .accesskey {
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
|
|
@ -1,60 +1,60 @@
|
|||
#user-list {
|
||||
min-width: 20em;
|
||||
text-align: center;
|
||||
min-width: 20em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#user-list ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#user-list ul.order {
|
||||
margin: -0.5em -0.5em 0.5em -0.5em;
|
||||
margin: -0.5em -0.5em 0.5em -0.5em;
|
||||
}
|
||||
#user-list ul.order li {
|
||||
display: inline-block;
|
||||
margin: 0 0.5em;
|
||||
display: inline-block;
|
||||
margin: 0 0.5em;
|
||||
}
|
||||
|
||||
#user-list ul.order a {
|
||||
display: inline-block;
|
||||
padding: 0.2em 0.5em;
|
||||
display: inline-block;
|
||||
padding: 0.2em 0.5em;
|
||||
}
|
||||
|
||||
#user-list .users {
|
||||
display: inline-block;
|
||||
margin: 0 auto;
|
||||
display: inline-block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
#user-list .users li {
|
||||
text-align: left;
|
||||
margin: 0.5em 0;
|
||||
text-align: left;
|
||||
margin: 0.5em 0;
|
||||
}
|
||||
|
||||
#user-list li:after {
|
||||
clear: left;
|
||||
content: '';
|
||||
display: block;
|
||||
clear: left;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
|
||||
#user-list .user img {
|
||||
vertical-align: top;
|
||||
display: block;
|
||||
vertical-align: top;
|
||||
display: block;
|
||||
}
|
||||
#user-list .user .avatar {
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
}
|
||||
#user-list .user .avatar a {
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
#user-list .user .details {
|
||||
float: left;
|
||||
vertical-align: top;
|
||||
float: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
#user-list .user h1 {
|
||||
margin-top: 0;
|
||||
font-weight: normal;
|
||||
font-size: 1.25em;
|
||||
margin-top: 0;
|
||||
font-weight: normal;
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
|
|
@ -1,57 +1,57 @@
|
|||
#user-view {
|
||||
min-width: 30em;
|
||||
text-align: center;
|
||||
min-width: 30em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#user-view .side {
|
||||
text-align: center;
|
||||
width: 150px;
|
||||
float: left;
|
||||
text-align: center;
|
||||
width: 150px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#user-view .top {
|
||||
display: inline-block;
|
||||
margin: 0 auto;
|
||||
display: inline-block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#user-view ul {
|
||||
display: inline-block;
|
||||
list-style-type: none;
|
||||
text-align: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
list-style-type: none;
|
||||
text-align: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#user-view ul.links {
|
||||
list-style-type: disc;
|
||||
list-style-position: inside;
|
||||
white-space: nowrap;
|
||||
list-style-type: disc;
|
||||
list-style-position: inside;
|
||||
white-space: nowrap;
|
||||
}
|
||||
#user-view ul.links li a {
|
||||
padding-left: 0;
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
#user-view ul a {
|
||||
display: inline-block;
|
||||
padding: 0.2em 0.5em;
|
||||
display: inline-block;
|
||||
padding: 0.2em 0.5em;
|
||||
}
|
||||
|
||||
#user-view .tab {
|
||||
display: none;
|
||||
margin-top: 1.5em;
|
||||
clear: both;
|
||||
display: none;
|
||||
margin-top: 1.5em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#user-view .tab.active {
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#user-view .tab.basic-info table {
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
}
|
||||
#user-view .tab.basic-info td {
|
||||
padding: 0.2em 0.5em;
|
||||
vertical-align: top;
|
||||
padding: 0.2em 0.5em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div class="http-error">
|
||||
<img src="/img/404.png" alt="404 Not found"/>
|
||||
<br/>
|
||||
<a href="#/">Back to main page</a>
|
||||
<img src="/img/404.png" alt="404 Not found"/>
|
||||
<br/>
|
||||
<a href="#/">Back to main page</a>
|
||||
</div>
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
<div class="messages"></div>
|
||||
|
||||
<form class="form-wrapper account-removal">
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-removal-confirmation">Confirmation:</label>
|
||||
<div class="form-input">
|
||||
<input type="checkbox" id="account-removal-confirmation" name="confirmation"/>
|
||||
<label for="account-removal-confirmation">
|
||||
I confirm that I want to delete this account.
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-removal-confirmation">Confirmation:</label>
|
||||
<div class="form-input">
|
||||
<input type="checkbox" id="account-removal-confirmation" name="confirmation"/>
|
||||
<label for="account-removal-confirmation">
|
||||
I confirm that I want to delete this account.
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Delete account</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Delete account</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -1,114 +1,114 @@
|
|||
<div class="messages"></div>
|
||||
|
||||
<form class="form-wrapper account-settings">
|
||||
<% if (canChangeAvatarStyle) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label">User picture:</label>
|
||||
<div class="form-input">
|
||||
<%
|
||||
var avatarStyles = {
|
||||
gravatar: 'Gravatar',
|
||||
manual: 'Custom',
|
||||
blank: 'Blank',
|
||||
};
|
||||
%>
|
||||
<% _.each(avatarStyles, function(v, k) { %>
|
||||
<input <% print(user.avatarStyle == k ? 'checked="checked"' : '') %> type="radio" name="avatar-style" id="account-settings-avatar-<%= k %>" value="<%= k %>"/>
|
||||
<label for="account-settings-avatar-<%= k %>">
|
||||
<%= v %>
|
||||
</label>
|
||||
<% }) %>
|
||||
</div>
|
||||
</div>
|
||||
<% if (canChangeAvatarStyle) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label">User picture:</label>
|
||||
<div class="form-input">
|
||||
<%
|
||||
var avatarStyles = {
|
||||
gravatar: 'Gravatar',
|
||||
manual: 'Custom',
|
||||
blank: 'Blank',
|
||||
};
|
||||
%>
|
||||
<% _.each(avatarStyles, function(v, k) { %>
|
||||
<input <% print(user.avatarStyle == k ? 'checked="checked"' : '') %> type="radio" name="avatar-style" id="account-settings-avatar-<%= k %>" value="<%= k %>"/>
|
||||
<label for="account-settings-avatar-<%= k %>">
|
||||
<%= v %>
|
||||
</label>
|
||||
<% }) %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row avatar-content">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<input type="file" name="avatar-content" id="account-settings-avatar-content"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<div class="form-row avatar-content">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<input type="file" name="avatar-content" id="account-settings-avatar-content"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (canChangeName) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-name">Name:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="userName" id="account-settings-name" placeholder="New name…" value="<%= user.name %>"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (canChangeName) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-name">Name:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="userName" id="account-settings-name" placeholder="New name…" value="<%= user.name %>"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (canChangeEmailAddress) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-email">E-mail:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="email" id="account-settings-email" placeholder="New e-mail…" value="<%= user.email %>"/>
|
||||
<% if (user.emailUnconfirmed) { %>
|
||||
<br/>
|
||||
<span class="account-settings-email-unconfirmed">(unconfirmed) <%= user.emailUnconfirmed %></span>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (canChangeEmailAddress) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-email">E-mail:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="email" id="account-settings-email" placeholder="New e-mail…" value="<%= user.email %>"/>
|
||||
<% if (user.emailUnconfirmed) { %>
|
||||
<br/>
|
||||
<span class="account-settings-email-unconfirmed">(unconfirmed) <%= user.emailUnconfirmed %></span>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (canChangePassword) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-password">New password:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="password" name="password" id="account-settings-password" placeholder="New password…" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
<% if (canChangePassword) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-password">New password:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="password" name="password" id="account-settings-password" placeholder="New password…" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-password-confirmation"></label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="password" name="passwordConfirmation" id="account-settings-password-confirmation" placeholder="New password… (repeat)" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-password-confirmation"></label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="password" name="passwordConfirmation" id="account-settings-password-confirmation" placeholder="New password… (repeat)" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (canBan) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-ban">Ban:</label>
|
||||
<div class="form-input">
|
||||
<input name="ban" type="checkbox" id="ban" <% print(user.banned ? 'checked="checked"' : '') %>>
|
||||
<label for="ban">
|
||||
Enabled
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (canBan) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-ban">Ban:</label>
|
||||
<div class="form-input">
|
||||
<input name="ban" type="checkbox" id="ban" <% print(user.banned ? 'checked="checked"' : '') %>>
|
||||
<label for="ban">
|
||||
Enabled
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
|
||||
<% if (canChangeAccessRank) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-access-rank">Access rank:</label>
|
||||
<div class="form-input">
|
||||
<%
|
||||
var accessRanks = {
|
||||
anonymous: 'Anonymous',
|
||||
restrictedUser: 'Restricted user',
|
||||
regularUser: 'Regular user',
|
||||
powerUser: 'Power user',
|
||||
moderator: 'Moderator',
|
||||
administrator: 'Administrator'
|
||||
};
|
||||
%>
|
||||
<% _.each(accessRanks, function(v, k) { %>
|
||||
<input name="access-rank" type="radio" value="<%= k %>" id="access-rank-<%= k %>" <% print(user.accessRank == k ? 'checked="checked"' : '') %>>
|
||||
<label for="access-rank-<%= k %>">
|
||||
<% print(user.accessRank == k ? v + ' (current)' : v) %>
|
||||
</label>
|
||||
<br/>
|
||||
<% }) %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (canChangeAccessRank) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="account-settings-access-rank">Access rank:</label>
|
||||
<div class="form-input">
|
||||
<%
|
||||
var accessRanks = {
|
||||
anonymous: 'Anonymous',
|
||||
restrictedUser: 'Restricted user',
|
||||
regularUser: 'Regular user',
|
||||
powerUser: 'Power user',
|
||||
moderator: 'Moderator',
|
||||
administrator: 'Administrator'
|
||||
};
|
||||
%>
|
||||
<% _.each(accessRanks, function(v, k) { %>
|
||||
<input name="access-rank" type="radio" value="<%= k %>" id="access-rank-<%= k %>" <% print(user.accessRank == k ? 'checked="checked"' : '') %>>
|
||||
<label for="access-rank-<%= k %>">
|
||||
<% print(user.accessRank == k ? v + ' (current)' : v) %>
|
||||
</label>
|
||||
<br/>
|
||||
<% }) %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Update settings</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Update settings</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -1,62 +1,62 @@
|
|||
<div class="messages"></div>
|
||||
|
||||
<form class="form-wrapper browsing-settings">
|
||||
<div class="form-row">
|
||||
<label class="form-label">Safety:</label>
|
||||
<div class="form-input">
|
||||
<input <% print(settings.listPosts.safe ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-safety-safe" name="listSafePosts" value="safe"/>
|
||||
<label for="browsing-settings-safety-safe">
|
||||
Safe
|
||||
</label>
|
||||
<div class="form-row">
|
||||
<label class="form-label">Safety:</label>
|
||||
<div class="form-input">
|
||||
<input <% print(settings.listPosts.safe ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-safety-safe" name="listSafePosts" value="safe"/>
|
||||
<label for="browsing-settings-safety-safe">
|
||||
Safe
|
||||
</label>
|
||||
|
||||
<input <% print(settings.listPosts.sketchy ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-safety-sketchy" name="listSketchyPosts" value="sketchy"/>
|
||||
<label for="browsing-settings-safety-sketchy">
|
||||
Sketchy
|
||||
</label>
|
||||
<input <% print(settings.listPosts.sketchy ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-safety-sketchy" name="listSketchyPosts" value="sketchy"/>
|
||||
<label for="browsing-settings-safety-sketchy">
|
||||
Sketchy
|
||||
</label>
|
||||
|
||||
<input <% print(settings.listPosts.unsafe ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-safety-unsafe" name="listUnsafePosts" value="unsafe"/>
|
||||
<label for="browsing-settings-safety-unsafe">
|
||||
Unsafe
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<input <% print(settings.listPosts.unsafe ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-safety-unsafe" name="listUnsafePosts" value="unsafe"/>
|
||||
<label for="browsing-settings-safety-unsafe">
|
||||
Unsafe
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="browsing-settings-endless-scroll">Endless scroll:</label>
|
||||
<div class="form-input">
|
||||
<input <% print(settings.endlessScroll ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-endless-scroll" name="endlessScroll"/>
|
||||
<label for="browsing-settings-endless-scroll">
|
||||
Enabled
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="browsing-settings-endless-scroll">Endless scroll:</label>
|
||||
<div class="form-input">
|
||||
<input <% print(settings.endlessScroll ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-endless-scroll" name="endlessScroll"/>
|
||||
<label for="browsing-settings-endless-scroll">
|
||||
Enabled
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="browsing-settings-hide-downvoted">Hide down-voted:</label>
|
||||
<div class="form-input">
|
||||
<input <% print(settings.hideDownvoted ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-hide-downvoted" name="hideDownvoted"/>
|
||||
<label for="browsing-settings-hide-downvoted">
|
||||
Enabled
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="browsing-settings-hide-downvoted">Hide down-voted:</label>
|
||||
<div class="form-input">
|
||||
<input <% print(settings.hideDownvoted ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-hide-downvoted" name="hideDownvoted"/>
|
||||
<label for="browsing-settings-hide-downvoted">
|
||||
Enabled
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="browsing-settings-keyboard-shortcuts">Keyboard shortcuts:</label>
|
||||
<div class="form-input">
|
||||
<input <% print(settings.keyboardShortcuts ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-keyboard-shortcuts" name="keyboardShortcuts"/>
|
||||
<label for="browsing-settings-keyboard-shortcuts">
|
||||
Enabled
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="browsing-settings-keyboard-shortcuts">Keyboard shortcuts:</label>
|
||||
<div class="form-input">
|
||||
<input <% print(settings.keyboardShortcuts ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-keyboard-shortcuts" name="keyboardShortcuts"/>
|
||||
<label for="browsing-settings-keyboard-shortcuts">
|
||||
Enabled
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Update settings</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Update settings</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
<form class="comment-form">
|
||||
|
||||
<h1><%= title %></h1>
|
||||
<h1><%= title %></h1>
|
||||
|
||||
<div class="preview"></div>
|
||||
<div class="preview"></div>
|
||||
|
||||
<div class="form-row text">
|
||||
<div class="input-wrapper">
|
||||
<textarea name="text" cols="50" rows="3"><% if (typeof(text) !== 'undefined') { print(text) } %></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row text">
|
||||
<div class="input-wrapper">
|
||||
<textarea name="text" cols="50" rows="3"><% if (typeof(text) !== 'undefined') { print(text) } %></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<button type="submit" name="sender" value="preview">Preview</button>
|
||||
<button type="submit" name="sender" value="submit">Submit</button>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<button type="submit" name="sender" value="preview">Preview</button>
|
||||
<button type="submit" name="sender" value="submit">Submit</button>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -1,66 +1,66 @@
|
|||
<div class="comment">
|
||||
<div class="avatar">
|
||||
<% if (comment.user.name && canViewUsers) { %>
|
||||
<a href="#/user/<%= comment.user.name %>">
|
||||
<% } %>
|
||||
<div class="avatar">
|
||||
<% if (comment.user.name && canViewUsers) { %>
|
||||
<a href="#/user/<%= comment.user.name %>">
|
||||
<% } %>
|
||||
|
||||
<img width="40" height="40" class="author-avatar"
|
||||
src="/data/thumbnails/40x40/avatars/<%= comment.user.name || '!' %>"
|
||||
alt="<%= comment.user.name || 'Anonymous user' %>"/>
|
||||
<img width="40" height="40" class="author-avatar"
|
||||
src="/data/thumbnails/40x40/avatars/<%= comment.user.name || '!' %>"
|
||||
alt="<%= comment.user.name || 'Anonymous user' %>"/>
|
||||
|
||||
<% if (comment.user.name && canViewUsers) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
</div>
|
||||
<% if (comment.user.name && canViewUsers) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
</div>
|
||||
|
||||
<div class="body">
|
||||
<div class="header">
|
||||
<span class="nickname">
|
||||
<% if (comment.user.name && canViewUsers) { %>
|
||||
<a href="#/user/<%= comment.user.name %>">
|
||||
<% } %>
|
||||
<div class="body">
|
||||
<div class="header">
|
||||
<span class="nickname">
|
||||
<% if (comment.user.name && canViewUsers) { %>
|
||||
<a href="#/user/<%= comment.user.name %>">
|
||||
<% } %>
|
||||
|
||||
<%= comment.user.name || 'Anonymous user' %>
|
||||
<%= comment.user.name || 'Anonymous user' %>
|
||||
|
||||
<% if (comment.user.name && canViewUsers) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
</span>
|
||||
<% if (comment.user.name && canViewUsers) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
</span>
|
||||
|
||||
<span class="date" title="<%= util.formatAbsoluteTime(comment.creationTime) %>">
|
||||
<%= util.formatRelativeTime(comment.creationTime) %>
|
||||
</span>
|
||||
<span class="date" title="<%= util.formatAbsoluteTime(comment.creationTime) %>">
|
||||
<%= util.formatRelativeTime(comment.creationTime) %>
|
||||
</span>
|
||||
|
||||
<span class="score">
|
||||
Score: <%= comment.score %>
|
||||
</span>
|
||||
<span class="score">
|
||||
Score: <%= comment.score %>
|
||||
</span>
|
||||
|
||||
<span class="ops"><!--
|
||||
--><% if (canVote) { %><!--
|
||||
--><a href="#" class="score-up <% print(comment.ownScore === 1 ? 'active' : '') %>"><!--
|
||||
-->vote up<!--
|
||||
--></a><!--
|
||||
--><a href="#" class="score-down <% print(comment.ownScore === -1 ? 'active' : '') %>"><!--
|
||||
-->vote down<!--
|
||||
--></a><!--
|
||||
--><% } %><!--
|
||||
<span class="ops"><!--
|
||||
--><% if (canVote) { %><!--
|
||||
--><a href="#" class="score-up <% print(comment.ownScore === 1 ? 'active' : '') %>"><!--
|
||||
-->vote up<!--
|
||||
--></a><!--
|
||||
--><a href="#" class="score-down <% print(comment.ownScore === -1 ? 'active' : '') %>"><!--
|
||||
-->vote down<!--
|
||||
--></a><!--
|
||||
--><% } %><!--
|
||||
|
||||
--><% if (canEditComment) { %><!--
|
||||
--><a href="#" class="edit"><!--
|
||||
-->edit<!--
|
||||
--></a><!--
|
||||
--><% } %><!--
|
||||
--><% if (canEditComment) { %><!--
|
||||
--><a href="#" class="edit"><!--
|
||||
-->edit<!--
|
||||
--></a><!--
|
||||
--><% } %><!--
|
||||
|
||||
--><% if (canDeleteComment) { %><!--
|
||||
--><a href="#" class="delete"><!--
|
||||
-->delete<!--
|
||||
--></a><!--
|
||||
--><% } %><!--
|
||||
--></span>
|
||||
</div>
|
||||
--><% if (canDeleteComment) { %><!--
|
||||
--><a href="#" class="delete"><!--
|
||||
-->delete<!--
|
||||
--></a><!--
|
||||
--><% } %><!--
|
||||
--></span>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<%= util.formatMarkdown(comment.text) %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<%= util.formatMarkdown(comment.text) %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<% if (canListComments && comments.length) { %>
|
||||
<div class="comments">
|
||||
<h1>Comments</h1>
|
||||
<ul class="comments">
|
||||
</ul>
|
||||
</div>
|
||||
<div class="comments">
|
||||
<h1>Comments</h1>
|
||||
<ul class="comments">
|
||||
</ul>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (canAddComments) { %>
|
||||
<div class="comment-add">
|
||||
<%= commentFormTemplate({title: 'Add comment'}) %>
|
||||
</div>
|
||||
<div class="comment-add">
|
||||
<%= commentFormTemplate({title: 'Add comment'}) %>
|
||||
</div>
|
||||
<% } %>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<div class="post-comment">
|
||||
<div class="post">
|
||||
<%= postTemplate({post: post, util: util, canViewPosts: canViewPosts}) %>
|
||||
</div>
|
||||
<div class="post">
|
||||
<%= postTemplate({post: post, util: util, canViewPosts: canViewPosts}) %>
|
||||
</div>
|
||||
|
||||
<div class="post-comments-target">
|
||||
</div>
|
||||
<div class="post-comments-target">
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<div id="global-comment-list">
|
||||
<div class="pagination-target">
|
||||
<ul class="posts">
|
||||
</ul>
|
||||
</div>
|
||||
<div class="pagination-target">
|
||||
<ul class="posts">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div id="history-wrapper">
|
||||
<div class="pagination-target">
|
||||
</div>
|
||||
<div class="pagination-target">
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,279 +1,279 @@
|
|||
<div id="help-view">
|
||||
|
||||
<ul class="tabs">
|
||||
<li>
|
||||
<a class="big-button" href="#/help/about">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/help/keyboard">Keyboard</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/help/search-syntax">Search syntax</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/help/comments">Comments</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/help/tos">Terms of service</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/help/about">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/help/keyboard">Keyboard</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/help/search-syntax">Search syntax</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/help/comments">Comments</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/help/tos">Terms of service</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div data-tab="about">
|
||||
<h1>About</h1>
|
||||
<h1>About</h1>
|
||||
|
||||
<p>Szurubooru is an image board engine inspired by services such as
|
||||
Danbooru, Gelbooru and Moebooru. Its name <a
|
||||
href="http://sjp.pwn.pl/sjp/;2527372">has its roots in Polish language and
|
||||
has onomatopeic meaning of scraping or scrubbing</a>. It is pronounced as
|
||||
<em>shoorubooru</em>.</p>
|
||||
<p>Szurubooru is an image board engine inspired by services such as
|
||||
Danbooru, Gelbooru and Moebooru. Its name <a
|
||||
href="http://sjp.pwn.pl/sjp/;2527372">has its roots in Polish language and
|
||||
has onomatopeic meaning of scraping or scrubbing</a>. It is pronounced as
|
||||
<em>shoorubooru</em>.</p>
|
||||
|
||||
<h1>Registration</h1>
|
||||
<h1>Registration</h1>
|
||||
|
||||
<p>By default, szurubooru is shipped as an invite-only app. In other words,
|
||||
in order to use the service, you need to register and have someone inside
|
||||
accept your registration. The e-mail you enter during account creation is
|
||||
only used to retrieve your Gravatar and activate your account. Only you can
|
||||
see it (well, except the database staff… we won’t spam your
|
||||
mailbox anyway).</p>
|
||||
<p>By default, szurubooru is shipped as an invite-only app. In other words,
|
||||
in order to use the service, you need to register and have someone inside
|
||||
accept your registration. The e-mail you enter during account creation is
|
||||
only used to retrieve your Gravatar and activate your account. Only you can
|
||||
see it (well, except the database staff… we won’t spam your
|
||||
mailbox anyway).</p>
|
||||
|
||||
<p>Oh, and you can delete your account at any time. Posts you uploaded will
|
||||
stay, unless some angry admin removes them.</p>
|
||||
<p>Oh, and you can delete your account at any time. Posts you uploaded will
|
||||
stay, unless some angry admin removes them.</p>
|
||||
</div>
|
||||
|
||||
<div data-tab="keyboard">
|
||||
<h1>Keyboard shortcuts</h1>
|
||||
<h1>Keyboard shortcuts</h1>
|
||||
|
||||
<p>You can use your keyboard to navigate around the site. There are a few
|
||||
shortcuts:</p>
|
||||
<p>You can use your keyboard to navigate around the site. There are a few
|
||||
shortcuts:</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Hotkey</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>[Q]</code></td>
|
||||
<td>Focus search field, if available</td>
|
||||
</tr>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Hotkey</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>[Q]</code></td>
|
||||
<td>Focus search field, if available</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><code>[A]</code> and <code>[D]</code></td>
|
||||
<td>Go to newer/older page or post</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>[A]</code> and <code>[D]</code></td>
|
||||
<td>Go to newer/older page or post</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><code>[F]</code></td>
|
||||
<td>Toggle full post size</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>[F]</code></td>
|
||||
<td>Toggle full post size</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><code>[E]</code></td>
|
||||
<td>Edit post</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>[E]</code></td>
|
||||
<td>Edit post</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><code>[P]</code></td>
|
||||
<td>Focus first post in post list</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<tr>
|
||||
<td><code>[P]</code></td>
|
||||
<td>Focus first post in post list</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>Additionally, each item in top navigation can be accessed using feature
|
||||
called “access keys”. Pressing underlined letter while holding
|
||||
Shfit or Alt+Shift (depending on your browser) will go to the desired page
|
||||
(most browsers) or focus the link (IE).</p>
|
||||
<p>Additionally, each item in top navigation can be accessed using feature
|
||||
called “access keys”. Pressing underlined letter while holding
|
||||
Shfit or Alt+Shift (depending on your browser) will go to the desired page
|
||||
(most browsers) or focus the link (IE).</p>
|
||||
</div>
|
||||
|
||||
<div data-tab="search-syntax">
|
||||
<h1>Search syntax</h1>
|
||||
<h1>Search syntax</h1>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Command</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Command</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<%
|
||||
var table = [
|
||||
{search: 'Haruhi', description: 'containing tag “Haruhi”'},
|
||||
{search: '-Kyon', description: 'not containing tag “Kyon”'},
|
||||
{search: 'uploader:David', description: 'uploaded by user David'},
|
||||
{search: 'comment:David', description: 'commented by David'},
|
||||
{search: 'fav:David', description: 'favorited by David'},
|
||||
{search: 'fav_count:4', description: 'favorited by exactly four users'},
|
||||
{search: 'fav_count:4,5', description: 'favorited by four or five users'},
|
||||
{search: 'fav_count:4..', description: 'favorited by at least four users'},
|
||||
{search: 'fav_count:..4', description: 'favorited by at most four users'},
|
||||
{search: 'fav_count:4..6', description: 'favorited by at least four, but no more than six users'},
|
||||
{search: 'comment_count:3', description: 'having exactly three comments'},
|
||||
{search: 'score:4', description: 'having score of 4'},
|
||||
{search: 'tag_count:7', description: 'tagged with exactly seven tags'},
|
||||
{search: 'date:today', description: 'posted today'},
|
||||
{search: 'date:yesterday', description: 'posted yesterday'},
|
||||
{search: 'date:2000', description: 'posted in year 2000'},
|
||||
{search: 'date:2000-01', description: 'posted in January, 2000'},
|
||||
{search: 'date:2000-01-01', description: 'posted on January 1st, 2000'},
|
||||
{search: 'id:1', description: 'having specific post ID'},
|
||||
{search: 'name:<em>hash</em>', description: 'having specific post name (hash in full URLs)'},
|
||||
{search: 'type:image', description: 'only image posts'},
|
||||
{search: 'type:flash', description: 'only Flash posts'},
|
||||
{search: 'type:youtube', description: 'only Youtube posts'},
|
||||
{search: 'type:video', description: 'only video posts'},
|
||||
{search: 'special:liked', description: 'posts liked by currently logged in user'},
|
||||
{search: 'special:disliked', description: 'posts disliked by currently logged in user'},
|
||||
{search: 'special:fav', description: 'posts added to favorites by currently logged in user'},
|
||||
];
|
||||
_.each(table, function(row) { %>
|
||||
<tr>
|
||||
<td><a href="#/posts/query=<%= row.search %>"><code><%= row.search %></code></a></td>
|
||||
<td><%= row.description %></td>
|
||||
</tr>
|
||||
<% }) %>
|
||||
</tbody>
|
||||
</table>
|
||||
<tbody>
|
||||
<%
|
||||
var table = [
|
||||
{search: 'Haruhi', description: 'containing tag “Haruhi”'},
|
||||
{search: '-Kyon', description: 'not containing tag “Kyon”'},
|
||||
{search: 'uploader:David', description: 'uploaded by user David'},
|
||||
{search: 'comment:David', description: 'commented by David'},
|
||||
{search: 'fav:David', description: 'favorited by David'},
|
||||
{search: 'fav_count:4', description: 'favorited by exactly four users'},
|
||||
{search: 'fav_count:4,5', description: 'favorited by four or five users'},
|
||||
{search: 'fav_count:4..', description: 'favorited by at least four users'},
|
||||
{search: 'fav_count:..4', description: 'favorited by at most four users'},
|
||||
{search: 'fav_count:4..6', description: 'favorited by at least four, but no more than six users'},
|
||||
{search: 'comment_count:3', description: 'having exactly three comments'},
|
||||
{search: 'score:4', description: 'having score of 4'},
|
||||
{search: 'tag_count:7', description: 'tagged with exactly seven tags'},
|
||||
{search: 'date:today', description: 'posted today'},
|
||||
{search: 'date:yesterday', description: 'posted yesterday'},
|
||||
{search: 'date:2000', description: 'posted in year 2000'},
|
||||
{search: 'date:2000-01', description: 'posted in January, 2000'},
|
||||
{search: 'date:2000-01-01', description: 'posted on January 1st, 2000'},
|
||||
{search: 'id:1', description: 'having specific post ID'},
|
||||
{search: 'name:<em>hash</em>', description: 'having specific post name (hash in full URLs)'},
|
||||
{search: 'type:image', description: 'only image posts'},
|
||||
{search: 'type:flash', description: 'only Flash posts'},
|
||||
{search: 'type:youtube', description: 'only Youtube posts'},
|
||||
{search: 'type:video', description: 'only video posts'},
|
||||
{search: 'special:liked', description: 'posts liked by currently logged in user'},
|
||||
{search: 'special:disliked', description: 'posts disliked by currently logged in user'},
|
||||
{search: 'special:fav', description: 'posts added to favorites by currently logged in user'},
|
||||
];
|
||||
_.each(table, function(row) { %>
|
||||
<tr>
|
||||
<td><a href="#/posts/query=<%= row.search %>"><code><%= row.search %></code></a></td>
|
||||
<td><%= row.description %></td>
|
||||
</tr>
|
||||
<% }) %>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>Most of the commands support ranged and composites values, e.g.
|
||||
<code>id:<em>number</em></code> operator supports respectively <a
|
||||
href="#/posts/query=id:5..7"><code>id:5..7</code></a> and <a
|
||||
href="#/posts/query=id:5,10,15"><code>id:5,10,15</code></a>. You can
|
||||
combine tags and negate any of them for interesting results. <a
|
||||
href="#/posts/query=sea -fav_count:..8 type:flash
|
||||
uploader:Pirate"><code>sea -fav_count:8.. type:swf
|
||||
uploader:Pirate</code></a> will show you flash files tagged as sea, that
|
||||
were liked by seven people at most, uploaded by user Pirate.</p>
|
||||
<p>Most of the commands support ranged and composites values, e.g.
|
||||
<code>id:<em>number</em></code> operator supports respectively <a
|
||||
href="#/posts/query=id:5..7"><code>id:5..7</code></a> and <a
|
||||
href="#/posts/query=id:5,10,15"><code>id:5,10,15</code></a>. You can
|
||||
combine tags and negate any of them for interesting results. <a
|
||||
href="#/posts/query=sea -fav_count:..8 type:flash
|
||||
uploader:Pirate"><code>sea -fav_count:8.. type:swf
|
||||
uploader:Pirate</code></a> will show you flash files tagged as sea, that
|
||||
were liked by seven people at most, uploaded by user Pirate.</p>
|
||||
|
||||
<p>All of the above can be sorted using additional tag in form of
|
||||
<code>order:<em>keyword</em></code>:</p>
|
||||
<p>All of the above can be sorted using additional tag in form of
|
||||
<code>order:<em>keyword</em></code>:</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Command</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Command</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<%
|
||||
var table = [
|
||||
{search: 'order:random', description: 'as random as it can get'},
|
||||
{search: 'order:id', description: 'highest to lowest post ID (default browse view)'},
|
||||
{search: 'order:date', description: 'newest to oldest (pretty much same as above)'},
|
||||
{search: '-order:date', description: 'oldest to newest'},
|
||||
{search: 'order:date,asc', description: 'oldest to newest (ascending order, default = descending)'},
|
||||
{search: 'order:score', description: 'highest scored'},
|
||||
{search: 'order:file_size', description: 'largest files first'},
|
||||
{search: 'order:tag_count', description: 'with most tags'},
|
||||
{search: 'order:fav_count', description: 'loved by most'},
|
||||
{search: 'order:comment_count', description: 'most commented first'},
|
||||
{search: 'order:fav_date', description: 'recently added to favorites'},
|
||||
{search: 'order:comment_date', description: 'recently commented'},
|
||||
{search: 'order:feature_date', description: 'recently featured'},
|
||||
];
|
||||
_.each(table, function(row) { %>
|
||||
<tr>
|
||||
<td><a href="#/posts/query=<%= row.search %>"><code><%= row.search %></code></a></td>
|
||||
<td><%= row.description %></td>
|
||||
</tr>
|
||||
<% }) %>
|
||||
</tbody>
|
||||
</table>
|
||||
<tbody>
|
||||
<%
|
||||
var table = [
|
||||
{search: 'order:random', description: 'as random as it can get'},
|
||||
{search: 'order:id', description: 'highest to lowest post ID (default browse view)'},
|
||||
{search: 'order:date', description: 'newest to oldest (pretty much same as above)'},
|
||||
{search: '-order:date', description: 'oldest to newest'},
|
||||
{search: 'order:date,asc', description: 'oldest to newest (ascending order, default = descending)'},
|
||||
{search: 'order:score', description: 'highest scored'},
|
||||
{search: 'order:file_size', description: 'largest files first'},
|
||||
{search: 'order:tag_count', description: 'with most tags'},
|
||||
{search: 'order:fav_count', description: 'loved by most'},
|
||||
{search: 'order:comment_count', description: 'most commented first'},
|
||||
{search: 'order:fav_date', description: 'recently added to favorites'},
|
||||
{search: 'order:comment_date', description: 'recently commented'},
|
||||
{search: 'order:feature_date', description: 'recently featured'},
|
||||
];
|
||||
_.each(table, function(row) { %>
|
||||
<tr>
|
||||
<td><a href="#/posts/query=<%= row.search %>"><code><%= row.search %></code></a></td>
|
||||
<td><%= row.description %></td>
|
||||
</tr>
|
||||
<% }) %>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>As shown with <a
|
||||
href="#/posts/query=-order:date"><code>-order:date</code></a>, any of them
|
||||
can be reversed in the same way as negating other tags: by placing a dash
|
||||
before the tag.</p>
|
||||
<p>As shown with <a
|
||||
href="#/posts/query=-order:date"><code>-order:date</code></a>, any of them
|
||||
can be reversed in the same way as negating other tags: by placing a dash
|
||||
before the tag.</p>
|
||||
</div>
|
||||
|
||||
<div data-tab="comments">
|
||||
<h1>Comments</h1>
|
||||
<p>Comments support Markdown syntax, extended by some handy tags:</p>
|
||||
<h1>Comments</h1>
|
||||
<p>Comments support Markdown syntax, extended by some handy tags:</p>
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>@426</code></td>
|
||||
<td>links to post number 426</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>#Dragon_Ball</code></td>
|
||||
<td>links to tag “Dragon_Ball”</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>+Pirate</code></td>
|
||||
<td>links to user “Pirate”</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>~~new~~</code></td>
|
||||
<td>adds strike-through</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>[spoiler]Lelouch survives[/spoiler]</td>
|
||||
<td>marks text as spoiler and hides it</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>@426</code></td>
|
||||
<td>links to post number 426</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>#Dragon_Ball</code></td>
|
||||
<td>links to tag “Dragon_Ball”</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>+Pirate</code></td>
|
||||
<td>links to user “Pirate”</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>~~new~~</code></td>
|
||||
<td>adds strike-through</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>[spoiler]Lelouch survives[/spoiler]</td>
|
||||
<td>marks text as spoiler and hides it</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div data-tab="tos">
|
||||
<h1>Terms of service</h1>
|
||||
<h1>Terms of service</h1>
|
||||
|
||||
<p>By accessing <%= title %> (“Site”) you agree to the
|
||||
following Terms of Service. If you do not agree to these terms, then please
|
||||
do not access the Site.</p>
|
||||
<p>By accessing <%= title %> (“Site”) you agree to the
|
||||
following Terms of Service. If you do not agree to these terms, then please
|
||||
do not access the Site.</p>
|
||||
|
||||
<ul>
|
||||
<li>The Site is presented to you AS IS, without any warranty, express
|
||||
or implied. You will not hold the Site or its staff members liable for
|
||||
damages caused by the use of the site.</li>
|
||||
<li>The Site reserves the right to delete or modify your account, or
|
||||
any content you have posted to the site.</li>
|
||||
<li>The Site reserves the right to change these Terms of Service
|
||||
without prior notice.</li>
|
||||
<li>If you are a minor, then you will not use the Site.</li>
|
||||
<li>You are using the Site only for personal use.</li>
|
||||
<li>You will not spam, troll or offend anyone.</li>
|
||||
<li>You accept that the Site is not liable for any content that you may stumble upon.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>The Site is presented to you AS IS, without any warranty, express
|
||||
or implied. You will not hold the Site or its staff members liable for
|
||||
damages caused by the use of the site.</li>
|
||||
<li>The Site reserves the right to delete or modify your account, or
|
||||
any content you have posted to the site.</li>
|
||||
<li>The Site reserves the right to change these Terms of Service
|
||||
without prior notice.</li>
|
||||
<li>If you are a minor, then you will not use the Site.</li>
|
||||
<li>You are using the Site only for personal use.</li>
|
||||
<li>You will not spam, troll or offend anyone.</li>
|
||||
<li>You accept that the Site is not liable for any content that you may stumble upon.</li>
|
||||
</ul>
|
||||
|
||||
<p><strong>Prohibited content</strong></p>
|
||||
<p><strong>Prohibited content</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>Child pornography: any photograph or photorealistic drawing or
|
||||
movie that depicts children in a sexual manner. This includes nudity,
|
||||
explicit sex, implied sex, or sexually persuasive positions.</li>
|
||||
<ul>
|
||||
<li>Child pornography: any photograph or photorealistic drawing or
|
||||
movie that depicts children in a sexual manner. This includes nudity,
|
||||
explicit sex, implied sex, or sexually persuasive positions.</li>
|
||||
|
||||
<li>Bestiality: any photograph or photorealistic drawing or movie that
|
||||
depicts humans having sex (either explicit or implied) with other
|
||||
non-human animals.</li>
|
||||
<li>Bestiality: any photograph or photorealistic drawing or movie that
|
||||
depicts humans having sex (either explicit or implied) with other
|
||||
non-human animals.</li>
|
||||
|
||||
<li>Any depiction of extreme mutilation, extreme bodily distension,
|
||||
feces.</li>
|
||||
<li>Any depiction of extreme mutilation, extreme bodily distension,
|
||||
feces.</li>
|
||||
|
||||
<li>Personal images: any image that is suspected to be uploaded for
|
||||
personal use. This includes, but is not limited to, avatars and forum
|
||||
signatures.</li>
|
||||
</ul>
|
||||
<li>Personal images: any image that is suspected to be uploaded for
|
||||
personal use. This includes, but is not limited to, avatars and forum
|
||||
signatures.</li>
|
||||
</ul>
|
||||
|
||||
<h1>Privacy policy</h1>
|
||||
<h1>Privacy policy</h1>
|
||||
|
||||
<p>The Site will not disclose the IP address or email address of any user
|
||||
except to the staff.</p>
|
||||
<p>The Site will not disclose the IP address or email address of any user
|
||||
except to the staff.</p>
|
||||
|
||||
Posts, comments, favorites, ratings and other actions linked to your
|
||||
account will be stored in the Site’s database. The “Upload
|
||||
anonymously” option allows you to post content without linking it to
|
||||
your account – meaning your nickname will not be stored in the
|
||||
database nor shown in the “Uploader” field.</p>
|
||||
Posts, comments, favorites, ratings and other actions linked to your
|
||||
account will be stored in the Site’s database. The “Upload
|
||||
anonymously” option allows you to post content without linking it to
|
||||
your account – meaning your nickname will not be stored in the
|
||||
database nor shown in the “Uploader” field.</p>
|
||||
|
||||
<p>Cookies are used to store your session data in order to keep you logged
|
||||
in and personalize your web experience.</p>
|
||||
<p>Cookies are used to store your session data in order to keep you logged
|
||||
in and personalize your web experience.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,82 +1,82 @@
|
|||
<%
|
||||
var reprValue = function(value) {
|
||||
if (typeof(value) === 'string' || value instanceof String) {
|
||||
return value;
|
||||
}
|
||||
return JSON.stringify(value);
|
||||
if (typeof(value) === 'string' || value instanceof String) {
|
||||
return value;
|
||||
}
|
||||
return JSON.stringify(value);
|
||||
};
|
||||
|
||||
var showDifference = function(className, difference) {
|
||||
_.each(difference, function(value, key) {
|
||||
if (!Array.isArray(value)) {
|
||||
value = [value];
|
||||
}
|
||||
_.each(value, function(v) {
|
||||
%><li class="<%= className %> difference-<%= key %>"><%= key + ':' + reprValue(v) %></li><%
|
||||
});
|
||||
});
|
||||
_.each(difference, function(value, key) {
|
||||
if (!Array.isArray(value)) {
|
||||
value = [value];
|
||||
}
|
||||
_.each(value, function(v) {
|
||||
%><li class="<%= className %> difference-<%= key %>"><%= key + ':' + reprValue(v) %></li><%
|
||||
});
|
||||
});
|
||||
};
|
||||
%>
|
||||
|
||||
<table class="history">
|
||||
<tbody>
|
||||
<% _.each(history, function( historyEntry) { %>
|
||||
<tr>
|
||||
<td class="time" title="<%= util.formatAbsoluteTime(historyEntry.time) %>">
|
||||
<%= util.formatRelativeTime(historyEntry.time) %>
|
||||
</td>
|
||||
<tbody>
|
||||
<% _.each(history, function( historyEntry) { %>
|
||||
<tr>
|
||||
<td class="time" title="<%= util.formatAbsoluteTime(historyEntry.time) %>">
|
||||
<%= util.formatRelativeTime(historyEntry.time) %>
|
||||
</td>
|
||||
|
||||
<td class="user">
|
||||
<% var userName = historyEntry.user && historyEntry.user.name || '' %>
|
||||
<td class="user">
|
||||
<% var userName = historyEntry.user && historyEntry.user.name || '' %>
|
||||
|
||||
<% if (userName) { %>
|
||||
<a href="#/user/<%= userName %>">
|
||||
<% } %>
|
||||
<% if (userName) { %>
|
||||
<a href="#/user/<%= userName %>">
|
||||
<% } %>
|
||||
|
||||
<img width="20" height="20" class="author-avatar"
|
||||
src="/data/thumbnails/20x20/avatars/<%= userName || '!' %>"
|
||||
alt="<%= userName || 'Anonymous user' %>"/>
|
||||
<img width="20" height="20" class="author-avatar"
|
||||
src="/data/thumbnails/20x20/avatars/<%= userName || '!' %>"
|
||||
alt="<%= userName || 'Anonymous user' %>"/>
|
||||
|
||||
<%= userName || 'Anonymous user' %>
|
||||
<%= userName || 'Anonymous user' %>
|
||||
|
||||
<% if (userName) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
</td>
|
||||
<% if (userName) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
</td>
|
||||
|
||||
<td class="subject">
|
||||
<% if (historyEntry.type === 0) { %>
|
||||
<a href="#/post/<%= historyEntry.primaryKey %>">
|
||||
@<%= historyEntry.primaryKey %>
|
||||
</a>
|
||||
<% } else if (historyEntry.type === 1) { %>
|
||||
<a href="#/tag/<%= historyEntry.data.name %>">
|
||||
#<%= historyEntry.data.name %>
|
||||
</a>
|
||||
<% } else { %>
|
||||
?
|
||||
<% } %>
|
||||
</td>
|
||||
<td class="subject">
|
||||
<% if (historyEntry.type === 0) { %>
|
||||
<a href="#/post/<%= historyEntry.primaryKey %>">
|
||||
@<%= historyEntry.primaryKey %>
|
||||
</a>
|
||||
<% } else if (historyEntry.type === 1) { %>
|
||||
<a href="#/tag/<%= historyEntry.data.name %>">
|
||||
#<%= historyEntry.data.name %>
|
||||
</a>
|
||||
<% } else { %>
|
||||
?
|
||||
<% } %>
|
||||
</td>
|
||||
|
||||
<td class="difference">
|
||||
<% if (historyEntry.operation == 2) { %>
|
||||
deleted
|
||||
<% } else { %>
|
||||
<% if (historyEntry.operation == 0) { %>
|
||||
added
|
||||
<% } else { %>
|
||||
changed
|
||||
<% } %>
|
||||
<td class="difference">
|
||||
<% if (historyEntry.operation == 2) { %>
|
||||
deleted
|
||||
<% } else { %>
|
||||
<% if (historyEntry.operation == 0) { %>
|
||||
added
|
||||
<% } else { %>
|
||||
changed
|
||||
<% } %>
|
||||
|
||||
<% if (historyEntry.dataDifference) { %>
|
||||
<ul><!--
|
||||
--><% showDifference('addition', historyEntry.dataDifference['+']) %><!--
|
||||
--><% showDifference('removal', historyEntry.dataDifference['-']) %><!--
|
||||
--></ul>
|
||||
<% } %>
|
||||
<% } %>
|
||||
</td>
|
||||
</tr>
|
||||
<% }) %>
|
||||
</tbody>
|
||||
<% if (historyEntry.dataDifference) { %>
|
||||
<ul><!--
|
||||
--><% showDifference('addition', historyEntry.dataDifference['+']) %><!--
|
||||
--><% showDifference('removal', historyEntry.dataDifference['-']) %><!--
|
||||
--></ul>
|
||||
<% } %>
|
||||
<% } %>
|
||||
</td>
|
||||
</tr>
|
||||
<% }) %>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -1,69 +1,69 @@
|
|||
<% function showUser(name) { %>
|
||||
<% var showLink = typeof(canViewUsers) !== 'undefined' && canViewUsers && name %>
|
||||
<% var showLink = typeof(canViewUsers) !== 'undefined' && canViewUsers && name %>
|
||||
|
||||
<% if (showLink) { %>
|
||||
<a href="#/user/<%= name %>">
|
||||
<% } %>
|
||||
<% if (showLink) { %>
|
||||
<a href="#/user/<%= name %>">
|
||||
<% } %>
|
||||
|
||||
<img width="25" height="25" class="author-avatar"
|
||||
src="/data/thumbnails/25x25/avatars/<%= name || '!' %>"
|
||||
alt="<%= name || 'Anonymous user' %>"/>
|
||||
<img width="25" height="25" class="author-avatar"
|
||||
src="/data/thumbnails/25x25/avatars/<%= name || '!' %>"
|
||||
alt="<%= name || 'Anonymous user' %>"/>
|
||||
|
||||
<%= name || 'Anonymous user' %>
|
||||
<%= name || 'Anonymous user' %>
|
||||
|
||||
<% if (showLink) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
<% if (showLink) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
<% } %>
|
||||
|
||||
<div id="home">
|
||||
<h1><%= title %></h1>
|
||||
<p class="subheader">
|
||||
Serving <%= globals.postCount || 0 %> posts (<%= util.formatFileSize(globals.postSize || 0) %>)
|
||||
</p>
|
||||
<h1><%= title %></h1>
|
||||
<p class="subheader">
|
||||
Serving <%= globals.postCount || 0 %> posts (<%= util.formatFileSize(globals.postSize || 0) %>)
|
||||
</p>
|
||||
|
||||
<% if (post && post.id) { %>
|
||||
<div class="post" style="width: <%= post.imageWidth || 800 %>px">
|
||||
<div id="post-content-target">
|
||||
</div>
|
||||
<% if (post && post.id) { %>
|
||||
<div class="post" style="width: <%= post.imageWidth || 800 %>px">
|
||||
<div id="post-content-target">
|
||||
</div>
|
||||
|
||||
<div class="post-footer">
|
||||
<div class="post-footer">
|
||||
|
||||
<span class="left">
|
||||
<% var showLink = canViewPosts %>
|
||||
<span class="left">
|
||||
<% var showLink = canViewPosts %>
|
||||
|
||||
<% if (showLink) { %>
|
||||
<a href="#/post/<%= post.id %>">
|
||||
<% } %>
|
||||
<% if (showLink) { %>
|
||||
<a href="#/post/<%= post.id %>">
|
||||
<% } %>
|
||||
|
||||
<%= post.idMarkdown %>
|
||||
<%= post.idMarkdown %>
|
||||
|
||||
<% if (showLink) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
<% if (showLink) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
|
||||
uploaded
|
||||
<%= util.formatRelativeTime(post.uploadTime) %>
|
||||
by
|
||||
<% showUser(post.user.name) %>
|
||||
</span>
|
||||
uploaded
|
||||
<%= util.formatRelativeTime(post.uploadTime) %>
|
||||
by
|
||||
<% showUser(post.user.name) %>
|
||||
</span>
|
||||
|
||||
<span class="right">
|
||||
featured
|
||||
<%= util.formatRelativeTime(post.lastFeatureTime) %>
|
||||
by
|
||||
<% showUser(user.name) %>
|
||||
</span>
|
||||
<span class="right">
|
||||
featured
|
||||
<%= util.formatRelativeTime(post.lastFeatureTime) %>
|
||||
by
|
||||
<% showUser(user.name) %>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<p>
|
||||
<small class="version">
|
||||
Version: <a href="//github.com/rr-/szurubooru/commits/master"><%= version %></a> (built <%= util.formatRelativeTime(buildTime) %>)
|
||||
|
|
||||
<a href="#/history">Recent tag and post edits</a>
|
||||
</small>
|
||||
</p>
|
||||
<p>
|
||||
<small class="version">
|
||||
Version: <a href="//github.com/rr-/szurubooru/commits/master"><%= version %></a> (built <%= util.formatRelativeTime(buildTime) %>)
|
||||
|
|
||||
<a href="#/history">Recent tag and post edits</a>
|
||||
</small>
|
||||
</p>
|
||||
</div>
|
||||
|
|
|
@ -1,45 +1,45 @@
|
|||
<div id="login-form">
|
||||
<p>
|
||||
If you don't have an account yet,<br/>
|
||||
<a href="#/register">click here</a> to create a new one.
|
||||
</p>
|
||||
<p>
|
||||
If you don't have an account yet,<br/>
|
||||
<a href="#/register">click here</a> to create a new one.
|
||||
</p>
|
||||
|
||||
<div class="messages"></div>
|
||||
<div class="messages"></div>
|
||||
|
||||
<form class="form-wrapper">
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="login-user">User name:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="user" id="login-user"/>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-wrapper">
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="login-user">User name:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="user" id="login-user"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="login-password">Password:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="password" name="password" id="login-password"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="login-password">Password:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="password" name="password" id="login-password"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Log in</button>
|
||||
|
||||
<input type="checkbox" name="remember" id="login-remember"/>
|
||||
<label for="login-remember">
|
||||
Remember me
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Log in</button>
|
||||
|
||||
<input type="checkbox" name="remember" id="login-remember"/>
|
||||
<label for="login-remember">
|
||||
Remember me
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="help">
|
||||
<p>Problems logging in?</p>
|
||||
<ul>
|
||||
<li><a href="#/password-reset">I don't remember my password</a></li>
|
||||
<li><a href="#/activate">I haven't received activation e-mail</a></li>
|
||||
<li><a href="#/register">I don't have an account</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="help">
|
||||
<p>Problems logging in?</p>
|
||||
<ul>
|
||||
<li><a href="#/password-reset">I don't remember my password</a></li>
|
||||
<li><a href="#/activate">I haven't received activation e-mail</a></li>
|
||||
<li><a href="#/register">I don't have an account</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
</div>
|
||||
|
||||
<ul class="page-list">
|
||||
<li class="prev"><a href="#">Prev</a></li>
|
||||
<li class="next"><a href="#">Next</a></li>
|
||||
<li class="prev"><a href="#">Prev</a></li>
|
||||
<li class="next"><a href="#">Next</a></li>
|
||||
</ul>
|
||||
|
|
|
@ -1,61 +1,61 @@
|
|||
<%
|
||||
var postContentUrl = '/data/posts/' + post.name + '?' + Math.round(Math.random() * 1000) /* reset gif animations */
|
||||
var width;
|
||||
var height;
|
||||
if (post.contentType === 'image' || post.contentType === 'animation' || post.contentType === 'flash') {
|
||||
width = post.imageWidth;
|
||||
height = post.imageHeight;
|
||||
} else {
|
||||
width = 800;
|
||||
height = 600;
|
||||
}
|
||||
var postContentUrl = '/data/posts/' + post.name + '?' + Math.round(Math.random() * 1000) /* reset gif animations */
|
||||
var width;
|
||||
var height;
|
||||
if (post.contentType === 'image' || post.contentType === 'animation' || post.contentType === 'flash') {
|
||||
width = post.imageWidth;
|
||||
height = post.imageHeight;
|
||||
} else {
|
||||
width = 800;
|
||||
height = 600;
|
||||
}
|
||||
%>
|
||||
|
||||
<div class="post-content post-type-<%= post.contentType %>">
|
||||
<div class="post-notes-target">
|
||||
</div>
|
||||
<div class="post-notes-target">
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="object-wrapper"
|
||||
data-width="<%= width %>"
|
||||
data-height="<%= height %>"
|
||||
style="max-width: <%= width %>px">
|
||||
<div
|
||||
class="object-wrapper"
|
||||
data-width="<%= width %>"
|
||||
data-height="<%= height %>"
|
||||
style="max-width: <%= width %>px">
|
||||
|
||||
<% if (post.contentType === 'image' || post.contentType === 'animation') { %>
|
||||
<% if (post.contentType === 'image' || post.contentType === 'animation') { %>
|
||||
|
||||
<img alt="<%= post.name %>" src="<%= postContentUrl %>"/>
|
||||
<img alt="<%= post.name %>" src="<%= postContentUrl %>"/>
|
||||
|
||||
<% } else if (post.contentType === 'youtube') { %>
|
||||
<% } else if (post.contentType === 'youtube') { %>
|
||||
|
||||
<iframe src="//www.youtube.com/embed/<%= post.contentChecksum %>?wmode=opaque" allowfullscreen></iframe>
|
||||
<iframe src="//www.youtube.com/embed/<%= post.contentChecksum %>?wmode=opaque" allowfullscreen></iframe>
|
||||
|
||||
<% } else if (post.contentType === 'flash') { %>
|
||||
<% } else if (post.contentType === 'flash') { %>
|
||||
|
||||
<object
|
||||
type="<%= post.contentMimeType %>"
|
||||
width="<%= width %>"
|
||||
height="<%= height %>"
|
||||
data="<%= postContentUrl %>">
|
||||
<param name="wmode" value="opaque"/>
|
||||
<param name="movie" value="<%= postContentUrl %>"/>
|
||||
</object>
|
||||
<object
|
||||
type="<%= post.contentMimeType %>"
|
||||
width="<%= width %>"
|
||||
height="<%= height %>"
|
||||
data="<%= postContentUrl %>">
|
||||
<param name="wmode" value="opaque"/>
|
||||
<param name="movie" value="<%= postContentUrl %>"/>
|
||||
</object>
|
||||
|
||||
<% } else if (post.contentType === 'video') { %>
|
||||
<% } else if (post.contentType === 'video') { %>
|
||||
|
||||
<% if (post.flags.loop) { %>
|
||||
<video id="video" controls loop="loop">
|
||||
<% } else { %>
|
||||
<video id="video" controls>
|
||||
<% } %>
|
||||
<% if (post.flags.loop) { %>
|
||||
<video id="video" controls loop="loop">
|
||||
<% } else { %>
|
||||
<video id="video" controls>
|
||||
<% } %>
|
||||
|
||||
<source type="<%= post.contentMimeType %>" src="<%= postContentUrl %>"/>
|
||||
<source type="<%= post.contentMimeType %>" src="<%= postContentUrl %>"/>
|
||||
|
||||
Your browser doesn't support HTML5 videos.
|
||||
</video>
|
||||
Your browser doesn't support HTML5 videos.
|
||||
</video>
|
||||
|
||||
<% } else { console.log(new Error('Unknown post type')) } %>
|
||||
<% } else { console.log(new Error('Unknown post type')) } %>
|
||||
|
||||
<div class="padding-fix" style="padding-bottom: calc(100% * <%= height %> / <%= width %>)"></div>
|
||||
</div>
|
||||
<div class="padding-fix" style="padding-bottom: calc(100% * <%= height %> / <%= width %>)"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,87 +1,87 @@
|
|||
<form class="form-wrapper post-edit">
|
||||
<% if (privileges.canChangeSafety) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label">Safety:</label>
|
||||
<div class="form-input">
|
||||
<input type="radio" id="post-safety-safe" name="safety" value="safe" <%= post.safety === 'safe' ? 'checked="checked"' : '' %>/>
|
||||
<label for="post-safety-safe">
|
||||
Safe
|
||||
</label>
|
||||
<% if (privileges.canChangeSafety) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label">Safety:</label>
|
||||
<div class="form-input">
|
||||
<input type="radio" id="post-safety-safe" name="safety" value="safe" <%= post.safety === 'safe' ? 'checked="checked"' : '' %>/>
|
||||
<label for="post-safety-safe">
|
||||
Safe
|
||||
</label>
|
||||
|
||||
<input type="radio" id="post-safety-sketchy" name="safety" value="sketchy" <%= post.safety === 'sketchy' ? 'checked="checked"' : '' %>/>
|
||||
<label for="post-safety-sketchy">
|
||||
Sketchy
|
||||
</label>
|
||||
<input type="radio" id="post-safety-sketchy" name="safety" value="sketchy" <%= post.safety === 'sketchy' ? 'checked="checked"' : '' %>/>
|
||||
<label for="post-safety-sketchy">
|
||||
Sketchy
|
||||
</label>
|
||||
|
||||
<input type="radio" id="post-safety-unsafe" name="safety" value="unsafe" <%= post.safety === 'unsafe' ? 'checked="checked"' : '' %>/>
|
||||
<label for="post-safety-unsafe">
|
||||
Unsafe
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<input type="radio" id="post-safety-unsafe" name="safety" value="unsafe" <%= post.safety === 'unsafe' ? 'checked="checked"' : '' %>/>
|
||||
<label for="post-safety-unsafe">
|
||||
Unsafe
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (privileges.canChangeTags) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-tags">Tags:</label>
|
||||
<div class="form-input">
|
||||
<input type="text" name="tags" id="post-tags" placeholder="Enter some tags…" value="<%= _.pluck(post.tags, 'name').join(' ') %>"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (privileges.canChangeTags) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-tags">Tags:</label>
|
||||
<div class="form-input">
|
||||
<input type="text" name="tags" id="post-tags" placeholder="Enter some tags…" value="<%= _.pluck(post.tags, 'name').join(' ') %>"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (privileges.canChangeSource) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-source">Source:</label>
|
||||
<div class="form-input">
|
||||
<input maxlength="200" type="text" name="source" id="post-source" placeholder="Where did you get this? (optional)" value="<%= post.source %>"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (privileges.canChangeSource) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-source">Source:</label>
|
||||
<div class="form-input">
|
||||
<input maxlength="200" type="text" name="source" id="post-source" placeholder="Where did you get this? (optional)" value="<%= post.source %>"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (privileges.canChangeRelations) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-relations">Relations:</label>
|
||||
<div class="form-input">
|
||||
<input maxlength="200" type="text" name="relations" id="post-relations" placeholder="Post ids, separated with space" value="<%= _.pluck(post.relations, 'id').join(' ') %>"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (privileges.canChangeRelations) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-relations">Relations:</label>
|
||||
<div class="form-input">
|
||||
<input maxlength="200" type="text" name="relations" id="post-relations" placeholder="Post ids, separated with space" value="<%= _.pluck(post.relations, 'id').join(' ') %>"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (privileges.canChangeFlags && post.contentType === 'video') { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label">Loop:</label>
|
||||
<div class="form-input">
|
||||
<input type="checkbox" id="post-loop" name="loop" value="loop" <%= post.flags.loop ? 'checked="checked"' : '' %>/>
|
||||
<label for="post-loop">
|
||||
Automatically repeat video after playback
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (privileges.canChangeFlags && post.contentType === 'video') { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label">Loop:</label>
|
||||
<div class="form-input">
|
||||
<input type="checkbox" id="post-loop" name="loop" value="loop" <%= post.flags.loop ? 'checked="checked"' : '' %>/>
|
||||
<label for="post-loop">
|
||||
Automatically repeat video after playback
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (privileges.canChangeContent) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-content">Content:</label>
|
||||
<div class="form-input">
|
||||
<input type="file" id="post-content" name="content"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (privileges.canChangeContent) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-content">Content:</label>
|
||||
<div class="form-input">
|
||||
<input type="file" id="post-content" name="content"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (privileges.canChangeThumbnail) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-thumbnail">Thumbnail:</label>
|
||||
<div class="form-input">
|
||||
<input type="file" id="post-thumbnail" name="thumbnail"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (privileges.canChangeThumbnail) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-thumbnail">Thumbnail:</label>
|
||||
<div class="form-input">
|
||||
<input type="file" id="post-thumbnail" name="thumbnail"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Update</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Update</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -1,49 +1,49 @@
|
|||
<div class="post-small post-type-<%= post.contentType %> ">
|
||||
|
||||
<% if (canViewPosts) { %>
|
||||
<a class="link"
|
||||
href="<%= util.appendComplexRouteParam('#/post/' + post.id, util.simplifySearchQuery(typeof(query) !== 'undefined' ? query : {})) %>"
|
||||
title="<%= _.map(post.tags, function(tag) { return '#' + tag.name; }).join(', ') %>">
|
||||
<% } else { %>
|
||||
<span class="link">
|
||||
<% } %>
|
||||
<% if (canViewPosts) { %>
|
||||
<a class="link"
|
||||
href="<%= util.appendComplexRouteParam('#/post/' + post.id, util.simplifySearchQuery(typeof(query) !== 'undefined' ? query : {})) %>"
|
||||
title="<%= _.map(post.tags, function(tag) { return '#' + tag.name; }).join(', ') %>">
|
||||
<% } else { %>
|
||||
<span class="link">
|
||||
<% } %>
|
||||
|
||||
<img width="160" height="160" class="thumb" src="/data/thumbnails/160x160/posts/<%= post.name %>" alt="<%= post.idMarkdown %>"/>
|
||||
<img width="160" height="160" class="thumb" src="/data/thumbnails/160x160/posts/<%= post.name %>" alt="<%= post.idMarkdown %>"/>
|
||||
|
||||
<% if (post.favoriteCount || post.score || post.commentCount) { %>
|
||||
<div class="info">
|
||||
<ul>
|
||||
<% if (post.favoriteCount) { %>
|
||||
<li>
|
||||
<i class="fa fa-heart"></i>
|
||||
<%= post.favoriteCount %>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (post.favoriteCount || post.score || post.commentCount) { %>
|
||||
<div class="info">
|
||||
<ul>
|
||||
<% if (post.favoriteCount) { %>
|
||||
<li>
|
||||
<i class="fa fa-heart"></i>
|
||||
<%= post.favoriteCount %>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (post.score) { %>
|
||||
<li>
|
||||
<i class="fa fa-thumbs-up"></i>
|
||||
<%= post.score %>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (post.score) { %>
|
||||
<li>
|
||||
<i class="fa fa-thumbs-up"></i>
|
||||
<%= post.score %>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (post.commentCount) { %>
|
||||
<li>
|
||||
<i class="fa fa-comments"></i>
|
||||
<%= post.commentCount %>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (post.commentCount) { %>
|
||||
<li>
|
||||
<i class="fa fa-comments"></i>
|
||||
<%= post.commentCount %>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (canViewPosts) { %>
|
||||
</a>
|
||||
<% } else { %>
|
||||
</span>
|
||||
<% } %>
|
||||
<% if (canViewPosts) { %>
|
||||
</a>
|
||||
<% } else { %>
|
||||
</span>
|
||||
<% } %>
|
||||
|
||||
<div class="action">
|
||||
<button>Action</button>
|
||||
</div>
|
||||
<div class="action">
|
||||
<button>Action</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,32 +1,32 @@
|
|||
<div class="post-list">
|
||||
<form class="search">
|
||||
<input type="text" name="query" placeholder="Search query..."/>
|
||||
<button type="submit" name="search">Search</button>
|
||||
<form class="search">
|
||||
<input type="text" name="query" placeholder="Search query..."/>
|
||||
<button type="submit" name="search">Search</button>
|
||||
|
||||
<ul class="safety">
|
||||
<li>
|
||||
<button class="safety-safe <%= browsingSettings.listPosts.safe ? '' : 'disabled' %>"> </button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="safety-sketchy <%= browsingSettings.listPosts.sketchy ? '' : 'disabled' %>"> </button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="safety-unsafe <%= browsingSettings.listPosts.unsafe ? '' : 'disabled' %>"> </button>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="safety">
|
||||
<li>
|
||||
<button class="safety-safe <%= browsingSettings.listPosts.safe ? '' : 'disabled' %>"> </button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="safety-sketchy <%= browsingSettings.listPosts.sketchy ? '' : 'disabled' %>"> </button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="safety-unsafe <%= browsingSettings.listPosts.unsafe ? '' : 'disabled' %>"> </button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<% if (privileges.canMassTag) { %>
|
||||
<div class="mass-tag-wrapper">
|
||||
<p class="mass-tag-info">Tagging with <span class="mass-tag"><%= massTag %></span></p><!--
|
||||
--><button name="mass-tag">Mass tag</button>
|
||||
</div>
|
||||
<% } %>
|
||||
</form>
|
||||
<% if (privileges.canMassTag) { %>
|
||||
<div class="mass-tag-wrapper">
|
||||
<p class="mass-tag-info">Tagging with <span class="mass-tag"><%= massTag %></span></p><!--
|
||||
--><button name="mass-tag">Mass tag</button>
|
||||
</div>
|
||||
<% } %>
|
||||
</form>
|
||||
|
||||
<div class="pagination-target">
|
||||
<div class="wrapper">
|
||||
<ul class="posts">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pagination-target">
|
||||
<div class="wrapper">
|
||||
<ul class="posts">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,31 +1,31 @@
|
|||
<div class="post-notes">
|
||||
<% _.each(notes, function(note) { %>
|
||||
<div tabindex="0" class="post-note"
|
||||
style="left: <%= note.left %>%;
|
||||
top: <%= note.top %>%;
|
||||
width: <%= note.width %>%;
|
||||
height: <%= note.height %>%">
|
||||
<% _.each(notes, function(note) { %>
|
||||
<div tabindex="0" class="post-note"
|
||||
style="left: <%= note.left %>%;
|
||||
top: <%= note.top %>%;
|
||||
width: <%= note.width %>%;
|
||||
height: <%= note.height %>%">
|
||||
|
||||
<div class="text-wrapper">
|
||||
<div class="text">
|
||||
<%= util.formatMarkdown(note.text) %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-wrapper">
|
||||
<div class="text">
|
||||
<%= util.formatMarkdown(note.text) %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<% }) %>
|
||||
</div>
|
||||
<% }) %>
|
||||
</div>
|
||||
|
||||
<form class="post-note-edit">
|
||||
<textarea></textarea>
|
||||
<div class="actions"><!--
|
||||
--><% if (privileges.canEditPostNotes) { %><!--
|
||||
--><button type="submit" name="sender" value="save">Save</button><!--
|
||||
--><button type="submit" name="sender" value="preview">Preview</button><!--
|
||||
--><% } %><!--
|
||||
--><button type="submit" name="sender" value="cancel">Cancel</button><!--
|
||||
--><% if (privileges.canDeletePostNotes) { %><!--
|
||||
--><button type="submit" name="sender" value="remove">Remove</button><!--
|
||||
--><% } %><!--
|
||||
--></div>
|
||||
<textarea></textarea>
|
||||
<div class="actions"><!--
|
||||
--><% if (privileges.canEditPostNotes) { %><!--
|
||||
--><button type="submit" name="sender" value="save">Save</button><!--
|
||||
--><button type="submit" name="sender" value="preview">Preview</button><!--
|
||||
--><% } %><!--
|
||||
--><button type="submit" name="sender" value="cancel">Cancel</button><!--
|
||||
--><% if (privileges.canDeletePostNotes) { %><!--
|
||||
--><button type="submit" name="sender" value="remove">Remove</button><!--
|
||||
--><% } %><!--
|
||||
--></div>
|
||||
</form>
|
||||
|
|
|
@ -1,146 +1,146 @@
|
|||
<div id="post-upload-step1">
|
||||
<input name="post-content" multiple type="file"/>
|
||||
<input name="post-content" multiple type="file"/>
|
||||
|
||||
<div class="url-handler">
|
||||
<div class="input-wrapper">
|
||||
<input type="text" placeholder="Alternatively, paste an URL here." name="url"/>
|
||||
</div>
|
||||
<button type="submit">Add URL</button>
|
||||
</div>
|
||||
<div class="url-handler">
|
||||
<div class="input-wrapper">
|
||||
<input type="text" placeholder="Alternatively, paste an URL here." name="url"/>
|
||||
</div>
|
||||
<button type="submit">Add URL</button>
|
||||
</div>
|
||||
|
||||
<div class="clear"></div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
<div id="post-upload-step2">
|
||||
<hr>
|
||||
<hr>
|
||||
|
||||
<div class="hybrid-view">
|
||||
<div class="hybrid-window">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="checkbox">
|
||||
<input id="post-upload-select-all" type="checkbox" name="select-all"/>
|
||||
<label for="post-upload-select-all"></label>
|
||||
</th>
|
||||
<th class="thumbnail"></th>
|
||||
<th class="tags">Tags</th>
|
||||
<th class="safety">Safety</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<div class="hybrid-view">
|
||||
<div class="hybrid-window">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="checkbox">
|
||||
<input id="post-upload-select-all" type="checkbox" name="select-all"/>
|
||||
<label for="post-upload-select-all"></label>
|
||||
</th>
|
||||
<th class="thumbnail"></th>
|
||||
<th class="tags">Tags</th>
|
||||
<th class="safety">Safety</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
</tbody>
|
||||
<tbody>
|
||||
</tbody>
|
||||
|
||||
<tfoot>
|
||||
<tr class="template">
|
||||
<td class="checkbox">
|
||||
<input type="checkbox"/>
|
||||
<label></label>
|
||||
</td>
|
||||
<td class="thumbnail">
|
||||
<a href="#"/>
|
||||
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="Thumbnail"/>
|
||||
</a>
|
||||
</td>
|
||||
<td class="tags"></td>
|
||||
<td class="safety"><div class="safety-template"></div></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
<tfoot>
|
||||
<tr class="template">
|
||||
<td class="checkbox">
|
||||
<input type="checkbox"/>
|
||||
<label></label>
|
||||
</td>
|
||||
<td class="thumbnail">
|
||||
<a href="#"/>
|
||||
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="Thumbnail"/>
|
||||
</a>
|
||||
</td>
|
||||
<td class="tags"></td>
|
||||
<td class="safety"><div class="safety-template"></div></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
<ul class="operations"><!--
|
||||
--><li>
|
||||
<button class="post-table-op remove"><i class="fa fa-remove"></i> Remove</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="post-table-op previous"><i class="fa fa-chevron-up"></i> Previous</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="post-table-op next"><i class="fa fa-chevron-down"></i> Next</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="post-table-op move-up"><i class="fa fa-arrow-up"></i> Move up</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="post-table-op move-down"><i class="fa fa-arrow-down"></i> Move down</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="upload highlight" type="submit"><i class="fa fa-upload"></i> Submit</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="stop highlight-red" type="submit"><i class="fa fa-times-circle"></i> Stop</button>
|
||||
</li><!--
|
||||
--></ul>
|
||||
<ul class="operations"><!--
|
||||
--><li>
|
||||
<button class="post-table-op remove"><i class="fa fa-remove"></i> Remove</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="post-table-op previous"><i class="fa fa-chevron-up"></i> Previous</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="post-table-op next"><i class="fa fa-chevron-down"></i> Next</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="post-table-op move-up"><i class="fa fa-arrow-up"></i> Move up</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="post-table-op move-down"><i class="fa fa-arrow-down"></i> Move down</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="upload highlight" type="submit"><i class="fa fa-upload"></i> Submit</button>
|
||||
</li><!--
|
||||
--><li>
|
||||
<button class="stop highlight-red" type="submit"><i class="fa fa-times-circle"></i> Stop</button>
|
||||
</li><!--
|
||||
--></ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hybrid-window">
|
||||
<div class="messages"></div>
|
||||
<div class="hybrid-window">
|
||||
<div class="messages"></div>
|
||||
|
||||
<div class="form-slider">
|
||||
<div class="thumbnail">
|
||||
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="Thumbnail"/>
|
||||
<a href="#" target="_blank">Open preview in a new tab</a>
|
||||
</div>
|
||||
<div class="form-slider">
|
||||
<div class="thumbnail">
|
||||
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="Thumbnail"/>
|
||||
<a href="#" target="_blank">Open preview in a new tab</a>
|
||||
</div>
|
||||
|
||||
<form class="form-wrapper">
|
||||
<div class="form-row file-name">
|
||||
<label class="form-label">File:</label>
|
||||
<div class="form-input">
|
||||
<strong>filename.jpg</strong>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-wrapper">
|
||||
<div class="form-row file-name">
|
||||
<label class="form-label">File:</label>
|
||||
<div class="form-input">
|
||||
<strong>filename.jpg</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label">Safety:</label>
|
||||
<div class="form-input">
|
||||
<input type="radio" id="post-safety-safe" name="safety" value="safe"/>
|
||||
<label for="post-safety-safe">
|
||||
Safe
|
||||
</label>
|
||||
<div class="form-row">
|
||||
<label class="form-label">Safety:</label>
|
||||
<div class="form-input">
|
||||
<input type="radio" id="post-safety-safe" name="safety" value="safe"/>
|
||||
<label for="post-safety-safe">
|
||||
Safe
|
||||
</label>
|
||||
|
||||
<input type="radio" id="post-safety-sketchy" name="safety" value="sketchy"/>
|
||||
<label for="post-safety-sketchy">
|
||||
Sketchy
|
||||
</label>
|
||||
<input type="radio" id="post-safety-sketchy" name="safety" value="sketchy"/>
|
||||
<label for="post-safety-sketchy">
|
||||
Sketchy
|
||||
</label>
|
||||
|
||||
<input type="radio" id="post-safety-unsafe" name="safety" value="unsafe"/>
|
||||
<label for="post-safety-unsafe">
|
||||
Unsafe
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<input type="radio" id="post-safety-unsafe" name="safety" value="unsafe"/>
|
||||
<label for="post-safety-unsafe">
|
||||
Unsafe
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-tags">Tags:</label>
|
||||
<div class="form-input">
|
||||
<input type="text" name="tags" id="post-tags" placeholder="Enter some tags…" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-tags">Tags:</label>
|
||||
<div class="form-input">
|
||||
<input type="text" name="tags" id="post-tags" placeholder="Enter some tags…" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-source">Source:</label>
|
||||
<div class="form-input">
|
||||
<input maxlength="200" type="text" name="source" id="post-source" placeholder="Where did you get this? (optional)" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-source">Source:</label>
|
||||
<div class="form-input">
|
||||
<input maxlength="200" type="text" name="source" id="post-source" placeholder="Where did you get this? (optional)" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% if (canUploadPostsAnonymously) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-anonymous">Anonymity:</label>
|
||||
<div class="form-input">
|
||||
<input type="checkbox" id="post-anonymous" name="anonymous"/>
|
||||
<label for="post-anonymous">
|
||||
Don't show my name in this post
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (canUploadPostsAnonymously) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="post-anonymous">Anonymity:</label>
|
||||
<div class="form-input">
|
||||
<input type="checkbox" id="post-anonymous" name="anonymous"/>
|
||||
<label for="post-anonymous">
|
||||
Don't show my name in this post
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,288 +1,288 @@
|
|||
<% var permaLink = (window.location.origin + '/' + window.location.pathname + '/data/posts/' + post.name).replace(/([^:])\/+/g, '$1/') %>
|
||||
|
||||
<div id="post-current-search-wrapper">
|
||||
<div id="post-current-search">
|
||||
<div class="left">
|
||||
<a class="enabled">
|
||||
<i class="fa fa-chevron-left"></i>
|
||||
Next
|
||||
</a>
|
||||
</div>
|
||||
<div id="post-current-search">
|
||||
<div class="left">
|
||||
<a class="enabled">
|
||||
<i class="fa fa-chevron-left"></i>
|
||||
Next
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="search">
|
||||
<a class="enabled" href="<%= util.appendComplexRouteParam('#/posts', util.simplifySearchQuery({query: query.query, order: query.order})) %>">
|
||||
Current search: <%= query.query || '-' %>
|
||||
</a>
|
||||
</div>
|
||||
<div class="search">
|
||||
<a class="enabled" href="<%= util.appendComplexRouteParam('#/posts', util.simplifySearchQuery({query: query.query, order: query.order})) %>">
|
||||
Current search: <%= query.query || '-' %>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="right">
|
||||
<a class="enabled">
|
||||
Previous
|
||||
<i class="fa fa-chevron-right"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<a class="enabled">
|
||||
Previous
|
||||
<i class="fa fa-chevron-right"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="post-view-wrapper">
|
||||
<div id="sidebar">
|
||||
<ul class="essential">
|
||||
<% if (post.contentType !== 'youtube') { %>
|
||||
<li>
|
||||
<a class="download" href="<%= permaLink %>">
|
||||
<i class="fa fa-download"></i>
|
||||
<br/>
|
||||
<%= post.contentExtension + ', ' + util.formatFileSize(post.originalFileSize) %>
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<div id="sidebar">
|
||||
<ul class="essential">
|
||||
<% if (post.contentType !== 'youtube') { %>
|
||||
<li>
|
||||
<a class="download" href="<%= permaLink %>">
|
||||
<i class="fa fa-download"></i>
|
||||
<br/>
|
||||
<%= post.contentExtension + ', ' + util.formatFileSize(post.originalFileSize) %>
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (isLoggedIn) { %>
|
||||
<li>
|
||||
<% if (hasFav) { %>
|
||||
<a class="delete-favorite" href="#">
|
||||
<i class="fa fa-heart"></i>
|
||||
</a>
|
||||
<% } else { %>
|
||||
<a class="add-favorite" href="#">
|
||||
<i class="fa fa-heart-o"></i>
|
||||
</a>
|
||||
<% } %>
|
||||
</li>
|
||||
<% if (isLoggedIn) { %>
|
||||
<li>
|
||||
<% if (hasFav) { %>
|
||||
<a class="delete-favorite" href="#">
|
||||
<i class="fa fa-heart"></i>
|
||||
</a>
|
||||
<% } else { %>
|
||||
<a class="add-favorite" href="#">
|
||||
<i class="fa fa-heart-o"></i>
|
||||
</a>
|
||||
<% } %>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="score-up <% print(ownScore === 1 ? 'active' : '') %>" href="#">
|
||||
<% if (ownScore === 1) { %>
|
||||
<i class="fa fa-thumbs-up"></i>
|
||||
<% } else { %>
|
||||
<i class="fa fa-thumbs-o-up"></i>
|
||||
<% } %>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="score-up <% print(ownScore === 1 ? 'active' : '') %>" href="#">
|
||||
<% if (ownScore === 1) { %>
|
||||
<i class="fa fa-thumbs-up"></i>
|
||||
<% } else { %>
|
||||
<i class="fa fa-thumbs-o-up"></i>
|
||||
<% } %>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="score-down <% print(ownScore === -1 ? 'active' : '') %>" href="#">
|
||||
<% if (ownScore === -1) { %>
|
||||
<i class="fa fa-thumbs-down"></i>
|
||||
<% } else { %>
|
||||
<i class="fa fa-thumbs-o-down"></i>
|
||||
<% } %>
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
<li>
|
||||
<a class="score-down <% print(ownScore === -1 ? 'active' : '') %>" href="#">
|
||||
<% if (ownScore === -1) { %>
|
||||
<i class="fa fa-thumbs-down"></i>
|
||||
<% } else { %>
|
||||
<i class="fa fa-thumbs-o-down"></i>
|
||||
<% } %>
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
|
||||
<h1>Tags (<%= _.size(post.tags) %>)</h1>
|
||||
<ul class="tags">
|
||||
<% _.each(post.tags, function(tag) { %>
|
||||
<li class="tag-category-<%= tag.category %>"><!--
|
||||
--><a class="tag-edit" href="#/tag/<%= tag.name %>"><!--
|
||||
--><i class="fa fa-tag"></i><!--
|
||||
--></a><!--
|
||||
<h1>Tags (<%= _.size(post.tags) %>)</h1>
|
||||
<ul class="tags">
|
||||
<% _.each(post.tags, function(tag) { %>
|
||||
<li class="tag-category-<%= tag.category %>"><!--
|
||||
--><a class="tag-edit" href="#/tag/<%= tag.name %>"><!--
|
||||
--><i class="fa fa-tag"></i><!--
|
||||
--></a><!--
|
||||
|
||||
--><a class="post-search" href="#/posts/query=<%= tag.name %>"><!--
|
||||
--><span class="tag-name"><%= tag.name %></span><!--
|
||||
--><span class="usages"><%= (tag.usages) %></span>
|
||||
</a>
|
||||
</li>
|
||||
<% }) %>
|
||||
</ul>
|
||||
--><a class="post-search" href="#/posts/query=<%= tag.name %>"><!--
|
||||
--><span class="tag-name"><%= tag.name %></span><!--
|
||||
--><span class="usages"><%= (tag.usages) %></span>
|
||||
</a>
|
||||
</li>
|
||||
<% }) %>
|
||||
</ul>
|
||||
|
||||
<h1>Details</h1>
|
||||
<h1>Details</h1>
|
||||
|
||||
<div class="author-box">
|
||||
<% if (post.user.name) { %>
|
||||
<a href="#/user/<%= post.user.name %>">
|
||||
<% } %>
|
||||
<div class="author-box">
|
||||
<% if (post.user.name) { %>
|
||||
<a href="#/user/<%= post.user.name %>">
|
||||
<% } %>
|
||||
|
||||
<img width="40" height="40" class="author-avatar"
|
||||
src="/data/thumbnails/40x40/avatars/<%= post.user.name || '!' %>"
|
||||
alt="<%= post.user.name || 'Anonymous user' %>"/>
|
||||
<img width="40" height="40" class="author-avatar"
|
||||
src="/data/thumbnails/40x40/avatars/<%= post.user.name || '!' %>"
|
||||
alt="<%= post.user.name || 'Anonymous user' %>"/>
|
||||
|
||||
<span class="author-name">
|
||||
<%= post.user.name || 'Anonymous user' %>
|
||||
</span>
|
||||
<span class="author-name">
|
||||
<%= post.user.name || 'Anonymous user' %>
|
||||
</span>
|
||||
|
||||
<% if (post.user.name) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
<% if (post.user.name) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<span class="date" title="<%= util.formatAbsoluteTime(post.uploadTime) %>">
|
||||
<%= util.formatRelativeTime(post.uploadTime) %>
|
||||
</span>
|
||||
</div>
|
||||
<span class="date" title="<%= util.formatAbsoluteTime(post.uploadTime) %>">
|
||||
<%= util.formatRelativeTime(post.uploadTime) %>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<ul class="other-info">
|
||||
<ul class="other-info">
|
||||
|
||||
<li>
|
||||
Rating:
|
||||
<span class="safety-<%= post.safety %>">
|
||||
<%= post.safety %>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
Rating:
|
||||
<span class="safety-<%= post.safety %>">
|
||||
<%= post.safety %>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<% if (post.originalFileSize) { %>
|
||||
<li>
|
||||
File size:
|
||||
<%= util.formatFileSize(post.originalFileSize) %>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (post.originalFileSize) { %>
|
||||
<li>
|
||||
File size:
|
||||
<%= util.formatFileSize(post.originalFileSize) %>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (post.contentType == 'image') { %>
|
||||
<li>
|
||||
Image size:
|
||||
<%= post.imageWidth + 'x' + post.imageHeight %>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (post.contentType == 'image') { %>
|
||||
<li>
|
||||
Image size:
|
||||
<%= post.imageWidth + 'x' + post.imageHeight %>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (post.lastEditTime !== post.uploadTime) { %>
|
||||
<li>
|
||||
Edited:
|
||||
<span title="<%= util.formatAbsoluteTime(post.lastEditTime) %>">
|
||||
<%= util.formatRelativeTime(post.lastEditTime) %>
|
||||
</span>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (post.lastEditTime !== post.uploadTime) { %>
|
||||
<li>
|
||||
Edited:
|
||||
<span title="<%= util.formatAbsoluteTime(post.lastEditTime) %>">
|
||||
<%= util.formatRelativeTime(post.lastEditTime) %>
|
||||
</span>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (post.featureCount > 0) { %>
|
||||
<li>
|
||||
Featured: <%= post.featureCount %> <%= post.featureCount < 2 ? 'time' : 'times' %>
|
||||
<small>(<%= util.formatRelativeTime(post.lastFeatureTime) %>)</small>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (post.featureCount > 0) { %>
|
||||
<li>
|
||||
Featured: <%= post.featureCount %> <%= post.featureCount < 2 ? 'time' : 'times' %>
|
||||
<small>(<%= util.formatRelativeTime(post.lastFeatureTime) %>)</small>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (post.source) { %>
|
||||
<li><!--
|
||||
--><% var link = post.source.match(/^(\/\/|https?:\/\/)/); %><!--
|
||||
-->Source: <!--
|
||||
--><% if (link) { %><!--
|
||||
--><a href="<%= post.source %>"><!--
|
||||
--><% } %><!--
|
||||
--><%= post.source.trim() %><!--
|
||||
--><% if (link) { %><!--
|
||||
--></a><!--
|
||||
--><% } %><!--
|
||||
--></li>
|
||||
<% } %>
|
||||
<% if (post.source) { %>
|
||||
<li><!--
|
||||
--><% var link = post.source.match(/^(\/\/|https?:\/\/)/); %><!--
|
||||
-->Source: <!--
|
||||
--><% if (link) { %><!--
|
||||
--><a href="<%= post.source %>"><!--
|
||||
--><% } %><!--
|
||||
--><%= post.source.trim() %><!--
|
||||
--><% if (link) { %><!--
|
||||
--></a><!--
|
||||
--><% } %><!--
|
||||
--></li>
|
||||
<% } %>
|
||||
|
||||
<li>
|
||||
Score: <%= post.score %>
|
||||
</li>
|
||||
</ul>
|
||||
<li>
|
||||
Score: <%= post.score %>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<% if (_.any(postFavorites)) { %>
|
||||
<p>Favorites:</p>
|
||||
<% if (_.any(postFavorites)) { %>
|
||||
<p>Favorites:</p>
|
||||
|
||||
<ul class="favorites">
|
||||
<% _.each(postFavorites, function(user) { %>
|
||||
<li>
|
||||
<a href="#/user/<%= user.name %>">
|
||||
<img class="fav-avatar"
|
||||
src="/data/thumbnails/25x25/avatars/<%= user.name || '!' %>"
|
||||
alt="<%= user.name || 'Anonymous user' %>"/>
|
||||
</a>
|
||||
</li>
|
||||
<% }) %>
|
||||
</ul>
|
||||
<% } %>
|
||||
<ul class="favorites">
|
||||
<% _.each(postFavorites, function(user) { %>
|
||||
<li>
|
||||
<a href="#/user/<%= user.name %>">
|
||||
<img class="fav-avatar"
|
||||
src="/data/thumbnails/25x25/avatars/<%= user.name || '!' %>"
|
||||
alt="<%= user.name || 'Anonymous user' %>"/>
|
||||
</a>
|
||||
</li>
|
||||
<% }) %>
|
||||
</ul>
|
||||
<% } %>
|
||||
|
||||
<% if (_.any(post.relations)) { %>
|
||||
<h1>Related posts</h1>
|
||||
<ul class="related">
|
||||
<% _.each(post.relations, function(relatedPost) { %>
|
||||
<li>
|
||||
<a href="#/post/<%= relatedPost.id %>">
|
||||
<%= relatedPost.idMarkdown %>
|
||||
</a>
|
||||
</li>
|
||||
<% }) %>
|
||||
</ul>
|
||||
<% } %>
|
||||
<% if (_.any(post.relations)) { %>
|
||||
<h1>Related posts</h1>
|
||||
<ul class="related">
|
||||
<% _.each(post.relations, function(relatedPost) { %>
|
||||
<li>
|
||||
<a href="#/post/<%= relatedPost.id %>">
|
||||
<%= relatedPost.idMarkdown %>
|
||||
</a>
|
||||
</li>
|
||||
<% }) %>
|
||||
</ul>
|
||||
<% } %>
|
||||
|
||||
<% if (_.any(privileges) || _.any(editPrivileges) || post.contentType === 'image') { %>
|
||||
<h1>Options</h1>
|
||||
<% if (_.any(privileges) || _.any(editPrivileges) || post.contentType === 'image') { %>
|
||||
<h1>Options</h1>
|
||||
|
||||
<ul class="operations">
|
||||
<% if (_.any(editPrivileges)) { %>
|
||||
<li>
|
||||
<a class="edit" href="#">
|
||||
Edit
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<ul class="operations">
|
||||
<% if (_.any(editPrivileges)) { %>
|
||||
<li>
|
||||
<a class="edit" href="#">
|
||||
Edit
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (privileges.canAddPostNotes) { %>
|
||||
<li>
|
||||
<a class="add-note" href="#">
|
||||
Add new note
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (privileges.canAddPostNotes) { %>
|
||||
<li>
|
||||
<a class="add-note" href="#">
|
||||
Add new note
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (privileges.canDeletePosts) { %>
|
||||
<li>
|
||||
<a class="delete" href="#">
|
||||
Delete
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (privileges.canDeletePosts) { %>
|
||||
<li>
|
||||
<a class="delete" href="#">
|
||||
Delete
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (privileges.canFeaturePosts) { %>
|
||||
<li>
|
||||
<a class="feature" href="#">
|
||||
Feature
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (privileges.canFeaturePosts) { %>
|
||||
<li>
|
||||
<a class="feature" href="#">
|
||||
Feature
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (privileges.canViewHistory) { %>
|
||||
<li>
|
||||
<a class="history" href="#">
|
||||
History
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (privileges.canViewHistory) { %>
|
||||
<li>
|
||||
<a class="history" href="#">
|
||||
History
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (post.contentType === 'image') { %>
|
||||
<li>
|
||||
<a href="http://iqdb.org/?url=<%= permaLink %>">
|
||||
Search on IQDB
|
||||
</a>
|
||||
</li>
|
||||
<% if (post.contentType === 'image') { %>
|
||||
<li>
|
||||
<a href="http://iqdb.org/?url=<%= permaLink %>">
|
||||
Search on IQDB
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://www.google.com/searchbyimage?&image_url=<%= permaLink %>">
|
||||
Search on Google Images
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
<% } %>
|
||||
<li>
|
||||
<a href="https://www.google.com/searchbyimage?&image_url=<%= permaLink %>">
|
||||
Search on Google Images
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
<% } %>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="post-view">
|
||||
<div class="messages"></div>
|
||||
<div id="post-view">
|
||||
<div class="messages"></div>
|
||||
|
||||
<div id="post-edit-target">
|
||||
</div>
|
||||
<div id="post-edit-target">
|
||||
</div>
|
||||
|
||||
<div id="post-content-target">
|
||||
</div>
|
||||
<div id="post-content-target">
|
||||
</div>
|
||||
|
||||
<% if (privileges.canViewHistory) { %>
|
||||
<div class="post-history-wrapper">
|
||||
<h1>History</h1>
|
||||
<%= historyTemplate({
|
||||
history: postHistory,
|
||||
util: util,
|
||||
}) %>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (privileges.canViewHistory) { %>
|
||||
<div class="post-history-wrapper">
|
||||
<h1>History</h1>
|
||||
<%= historyTemplate({
|
||||
history: postHistory,
|
||||
util: util,
|
||||
}) %>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<div id="post-comments-target">
|
||||
</div>
|
||||
</div>
|
||||
<div id="post-comments-target">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,50 +1,50 @@
|
|||
<div id="registration-form">
|
||||
<p>
|
||||
Registered users can view more content,<br/>
|
||||
upload files and add posts to favorites.
|
||||
</p>
|
||||
<p>
|
||||
Registered users can view more content,<br/>
|
||||
upload files and add posts to favorites.
|
||||
</p>
|
||||
|
||||
<div class="messages"></div>
|
||||
<div class="messages"></div>
|
||||
|
||||
<form class="form-wrapper">
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="registration-user">User name:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="userName" id="registration-user" placeholder="e.g. darth_vader" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-wrapper">
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="registration-user">User name:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="userName" id="registration-user" placeholder="e.g. darth_vader" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="registration-password">Password:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="password" name="password" id="registration-password" placeholder="e.g. ●●●●●●●●" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="registration-password">Password:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="password" name="password" id="registration-password" placeholder="e.g. ●●●●●●●●" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="registration-password-confirmation">Password (repeat):</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="password" name="passwordConfirmation" id="registration-password-confirmation" placeholder="e.g. ●●●●●●●●" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="registration-password-confirmation">Password (repeat):</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="password" name="passwordConfirmation" id="registration-password-confirmation" placeholder="e.g. ●●●●●●●●" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="registration-email">E-mail address:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="email" id="registration-email" placeholder="e.g. vader@empire.gov" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="registration-email">E-mail address:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="email" id="registration-email" placeholder="e.g. vader@empire.gov" value=""/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Register</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Register</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<p id="email-info">
|
||||
Your e-mail will be used to show your <a href="http://gravatar.com/">Gravatar</a>.<br/>
|
||||
Leave blank for random Gravatar.
|
||||
</p>
|
||||
<p id="email-info">
|
||||
Your e-mail will be used to show your <a href="http://gravatar.com/">Gravatar</a>.<br/>
|
||||
Leave blank for random Gravatar.
|
||||
</p>
|
||||
</div>
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
<tr class="tag">
|
||||
<td class="name tag-category-<%= tag.category %>">
|
||||
<a href="#/tag/<%= tag.name %>"><%= tag.name %></a>
|
||||
</td>
|
||||
<td class="implications">
|
||||
<%= _.pluck(tag.implications, 'name').join(' ') || '-' %>
|
||||
</td>
|
||||
<td class="suggestions">
|
||||
<%= _.pluck(tag.suggestions, 'name').join(' ') || '-' %>
|
||||
</td>
|
||||
<td class="usages">
|
||||
<%= tag.usages %>
|
||||
</td>
|
||||
<td class="banned">
|
||||
<% if (tag.banned) { %>
|
||||
<i class="fa fa-times"></i>
|
||||
<% } else { %>
|
||||
<i class="fa fa-check"></i>
|
||||
<% } %>
|
||||
</td>
|
||||
<td class="name tag-category-<%= tag.category %>">
|
||||
<a href="#/tag/<%= tag.name %>"><%= tag.name %></a>
|
||||
</td>
|
||||
<td class="implications">
|
||||
<%= _.pluck(tag.implications, 'name').join(' ') || '-' %>
|
||||
</td>
|
||||
<td class="suggestions">
|
||||
<%= _.pluck(tag.suggestions, 'name').join(' ') || '-' %>
|
||||
</td>
|
||||
<td class="usages">
|
||||
<%= tag.usages %>
|
||||
</td>
|
||||
<td class="banned">
|
||||
<% if (tag.banned) { %>
|
||||
<i class="fa fa-times"></i>
|
||||
<% } else { %>
|
||||
<i class="fa fa-check"></i>
|
||||
<% } %>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -1,36 +1,36 @@
|
|||
<div id="tag-list-wrapper">
|
||||
<div id="tag-list">
|
||||
<div class="search">
|
||||
<form>
|
||||
<input type="text" name="query" placeholder="Search tags..."/>
|
||||
<button type="submit" name="search">Search</button>
|
||||
</form>
|
||||
<div id="tag-list">
|
||||
<div class="search">
|
||||
<form>
|
||||
<input type="text" name="query" placeholder="Search tags..."/>
|
||||
<button type="submit" name="search">Search</button>
|
||||
</form>
|
||||
|
||||
<ul class="order">
|
||||
<li>
|
||||
<a class="big-button" href="#/tags/order=name,asc">Tags</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/tags/order=creation_time,desc">Recent</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/tags/order=usage_count,desc">Popular</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="order">
|
||||
<li>
|
||||
<a class="big-button" href="#/tags/order=name,asc">Tags</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/tags/order=creation_time,desc">Recent</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/tags/order=usage_count,desc">Popular</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="pagination-target">
|
||||
<table class="tags">
|
||||
<thead>
|
||||
<th class="name">Tag name</th>
|
||||
<th class="implications">Implications</th>
|
||||
<th class="suggestions">Suggestions</th>
|
||||
<th class="usages">Usages</th>
|
||||
<th class="banned">Usable?</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pagination-target">
|
||||
<table class="tags">
|
||||
<thead>
|
||||
<th class="name">Tag name</th>
|
||||
<th class="implications">Implications</th>
|
||||
<th class="suggestions">Suggestions</th>
|
||||
<th class="usages">Usages</th>
|
||||
<th class="banned">Usable?</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,119 +1,119 @@
|
|||
<div id="tag-view">
|
||||
<div class="header">
|
||||
<h1><%= tag.name %></h1>
|
||||
</div>
|
||||
<div class="header">
|
||||
<h1><%= tag.name %></h1>
|
||||
</div>
|
||||
|
||||
<form class="edit">
|
||||
<% if (privileges.canChangeName) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="tag-name">Name:</label>
|
||||
<div class="form-input">
|
||||
<input maxlength="200" type="text" name="name" id="tag-name" placeholder="New tag name" value="<%= tag.name %>"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<form class="edit">
|
||||
<% if (privileges.canChangeName) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="tag-name">Name:</label>
|
||||
<div class="form-input">
|
||||
<input maxlength="200" type="text" name="name" id="tag-name" placeholder="New tag name" value="<%= tag.name %>"/>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="tag-implications">Implications:</label>
|
||||
<div class="form-input">
|
||||
<% if (privileges.canChangeImplications) { %>
|
||||
<input maxlength="200" type="text" name="implications" id="tag-implications" placeholder="some tag…" value="<%= _.pluck(tag.implications, 'name').join(' ') %>"/>
|
||||
<p><small>Added automatically when tagging with <strong><%= tag.name %></strong>.</small></p>
|
||||
<% } else { %>
|
||||
<%= _.pluck(tag.implications, 'name').join(' ') || '-' %></p>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="tag-implications">Implications:</label>
|
||||
<div class="form-input">
|
||||
<% if (privileges.canChangeImplications) { %>
|
||||
<input maxlength="200" type="text" name="implications" id="tag-implications" placeholder="some tag…" value="<%= _.pluck(tag.implications, 'name').join(' ') %>"/>
|
||||
<p><small>Added automatically when tagging with <strong><%= tag.name %></strong>.</small></p>
|
||||
<% } else { %>
|
||||
<%= _.pluck(tag.implications, 'name').join(' ') || '-' %></p>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="tag-suggestions">Suggestions:</label>
|
||||
<div class="form-input">
|
||||
<% if (privileges.canChangeSuggestions) { %>
|
||||
<input maxlength="200" type="text" name="suggestions" id="tag-suggestions" placeholder="some tag…" value="<%= _.pluck(tag.suggestions, 'name').join(' ') %>"/>
|
||||
<p><small>Suggested when tagging with <strong><%= tag.name %></strong>.</small></p>
|
||||
<% } else { %>
|
||||
<%= _.pluck(tag.suggestions, 'name').join(' ') || '-' %>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="tag-suggestions">Suggestions:</label>
|
||||
<div class="form-input">
|
||||
<% if (privileges.canChangeSuggestions) { %>
|
||||
<input maxlength="200" type="text" name="suggestions" id="tag-suggestions" placeholder="some tag…" value="<%= _.pluck(tag.suggestions, 'name').join(' ') %>"/>
|
||||
<p><small>Suggested when tagging with <strong><%= tag.name %></strong>.</small></p>
|
||||
<% } else { %>
|
||||
<%= _.pluck(tag.suggestions, 'name').join(' ') || '-' %>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% if (privileges.canChangeCategory) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="tag-category">Category:</label>
|
||||
<div class="form-input">
|
||||
<% _.each(_.extend({'default': 'default'}, _.object(tagCategories, tagCategories)), function(v, k) { %>
|
||||
<input name="category" type="radio" value="<%= k %>" id="category-<%= k %>" <% print(tag.category === k ? 'checked="checked"' : '') %>>
|
||||
<label for="category-<%= k %>">
|
||||
<% print(tag.category === k ? v + ' (current)' : v) %>
|
||||
</label>
|
||||
<br/>
|
||||
<% }) %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (privileges.canChangeCategory) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="tag-category">Category:</label>
|
||||
<div class="form-input">
|
||||
<% _.each(_.extend({'default': 'default'}, _.object(tagCategories, tagCategories)), function(v, k) { %>
|
||||
<input name="category" type="radio" value="<%= k %>" id="category-<%= k %>" <% print(tag.category === k ? 'checked="checked"' : '') %>>
|
||||
<label for="category-<%= k %>">
|
||||
<% print(tag.category === k ? v + ' (current)' : v) %>
|
||||
</label>
|
||||
<br/>
|
||||
<% }) %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="tag-ban">Ban:</label>
|
||||
<div class="form-input">
|
||||
<% if (privileges.canBan) { %>
|
||||
<input name="ban" type="checkbox" id="ban" <% print(tag.banned ? 'checked="checked"' : '') %>>
|
||||
<label for="ban">
|
||||
Prevent tag from being used
|
||||
</label>
|
||||
<% } else { %>
|
||||
<%= tag.banned ? 'This is banned and cannot cannot be used in posts.' : 'This tag is not banned and can be used in posts.' %>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="tag-ban">Ban:</label>
|
||||
<div class="form-input">
|
||||
<% if (privileges.canBan) { %>
|
||||
<input name="ban" type="checkbox" id="ban" <% print(tag.banned ? 'checked="checked"' : '') %>>
|
||||
<label for="ban">
|
||||
Prevent tag from being used
|
||||
</label>
|
||||
<% } else { %>
|
||||
<%= tag.banned ? 'This is banned and cannot cannot be used in posts.' : 'This tag is not banned and can be used in posts.' %>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% if (_.any(privileges)) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit" name="update">Update</button>
|
||||
<% if (privileges.canDelete) { %>
|
||||
<button type="submit" name="delete">Delete</button>
|
||||
<% } %>
|
||||
<% if (privileges.canMerge) { %>
|
||||
<button type="submit" name="merge">Merge with…</button>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
</form>
|
||||
<% if (_.any(privileges)) { %>
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit" name="update">Update</button>
|
||||
<% if (privileges.canDelete) { %>
|
||||
<button type="submit" name="delete">Delete</button>
|
||||
<% } %>
|
||||
<% if (privileges.canMerge) { %>
|
||||
<button type="submit" name="merge">Merge with…</button>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
</form>
|
||||
|
||||
<% if (siblings.length) { %>
|
||||
<div class="siblings">
|
||||
<h3>Siblings</h3>
|
||||
<% if (siblings.length) { %>
|
||||
<div class="siblings">
|
||||
<h3>Siblings</h3>
|
||||
|
||||
<ul>
|
||||
<% _.each(siblings.slice(0, 50), function(tag) { %>
|
||||
<li class="tag-category-<%= tag.category %>">
|
||||
<a href="#/tag/<%= tag.name %>
|
||||
"><%= tag.name %>
|
||||
</a>
|
||||
</li>
|
||||
<% }) %>
|
||||
</ul>
|
||||
</div>
|
||||
<% } %>
|
||||
<ul>
|
||||
<% _.each(siblings.slice(0, 50), function(tag) { %>
|
||||
<li class="tag-category-<%= tag.category %>">
|
||||
<a href="#/tag/<%= tag.name %>
|
||||
"><%= tag.name %>
|
||||
</a>
|
||||
</li>
|
||||
<% }) %>
|
||||
</ul>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (privileges.canViewHistory) { %>
|
||||
<div class="post-history-wrapper">
|
||||
<h3>History</h3>
|
||||
<%= historyTemplate({
|
||||
history: tag.history,
|
||||
util: util,
|
||||
}) %>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (privileges.canViewHistory) { %>
|
||||
<div class="post-history-wrapper">
|
||||
<h3>History</h3>
|
||||
<%= historyTemplate({
|
||||
history: tag.history,
|
||||
util: util,
|
||||
}) %>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<div class="post-list">
|
||||
<h3>Example usages</h3>
|
||||
<div class="post-list">
|
||||
<h3>Example usages</h3>
|
||||
|
||||
<ul class="posts">
|
||||
</ul>
|
||||
<ul class="posts">
|
||||
</ul>
|
||||
|
||||
<a href="#/posts/query=<%= tag.name %>">Search for more</a>
|
||||
</div>
|
||||
<a href="#/posts/query=<%= tag.name %>">Search for more</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,101 +1,101 @@
|
|||
<ul>
|
||||
<%
|
||||
var links = [];
|
||||
links.push({
|
||||
target: '#/home',
|
||||
title: 'Home',
|
||||
icon: 'fa-home'});
|
||||
<%
|
||||
var links = [];
|
||||
links.push({
|
||||
target: '#/home',
|
||||
title: 'Home',
|
||||
icon: 'fa-home'});
|
||||
|
||||
if (canListPosts) {
|
||||
links.push({
|
||||
target: '#/posts',
|
||||
title: 'Posts',
|
||||
icon: 'fa-th'});
|
||||
if (canListPosts) {
|
||||
links.push({
|
||||
target: '#/posts',
|
||||
title: 'Posts',
|
||||
icon: 'fa-th'});
|
||||
|
||||
if (canUploadPosts) {
|
||||
links.push({
|
||||
target: '#/upload',
|
||||
title: 'Upload',
|
||||
icon: 'fa-upload'});
|
||||
}
|
||||
}
|
||||
if (canUploadPosts) {
|
||||
links.push({
|
||||
target: '#/upload',
|
||||
title: 'Upload',
|
||||
icon: 'fa-upload'});
|
||||
}
|
||||
}
|
||||
|
||||
if (canListComments) {
|
||||
links.push({
|
||||
target: '#/comments',
|
||||
title: 'Comments',
|
||||
icon: 'fa-comments'});
|
||||
}
|
||||
if (canListComments) {
|
||||
links.push({
|
||||
target: '#/comments',
|
||||
title: 'Comments',
|
||||
icon: 'fa-comments'});
|
||||
}
|
||||
|
||||
if (canListTags) {
|
||||
links.push({
|
||||
target: '#/tags',
|
||||
title: 'Tags',
|
||||
icon: 'fa-tags'});
|
||||
}
|
||||
if (canListTags) {
|
||||
links.push({
|
||||
target: '#/tags',
|
||||
title: 'Tags',
|
||||
icon: 'fa-tags'});
|
||||
}
|
||||
|
||||
if (canListUsers) {
|
||||
links.push({
|
||||
target: '#/users',
|
||||
title: 'Users',
|
||||
icon: 'fa-users'});
|
||||
}
|
||||
if (canListUsers) {
|
||||
links.push({
|
||||
target: '#/users',
|
||||
title: 'Users',
|
||||
icon: 'fa-users'});
|
||||
}
|
||||
|
||||
if (!loggedIn) {
|
||||
links.push({
|
||||
target: '#/login',
|
||||
title: 'Login',
|
||||
icon: 'fa-sign-in'});
|
||||
if (!loggedIn) {
|
||||
links.push({
|
||||
target: '#/login',
|
||||
title: 'Login',
|
||||
icon: 'fa-sign-in'});
|
||||
|
||||
links.push({
|
||||
target: '#/register',
|
||||
title: 'Register',
|
||||
icon: 'fa-file-text-o'});
|
||||
links.push({
|
||||
target: '#/register',
|
||||
title: 'Register',
|
||||
icon: 'fa-file-text-o'});
|
||||
|
||||
} else {
|
||||
links.push({
|
||||
className: 'my-account',
|
||||
target: '#/user/' + user.name,
|
||||
title: 'Account',
|
||||
icon: 'fa-user'});
|
||||
} else {
|
||||
links.push({
|
||||
className: 'my-account',
|
||||
target: '#/user/' + user.name,
|
||||
title: 'Account',
|
||||
icon: 'fa-user'});
|
||||
|
||||
links.push({
|
||||
target: '#/logout',
|
||||
title: 'Logout',
|
||||
icon: 'fa-sign-out'});
|
||||
}
|
||||
links.push({
|
||||
target: '#/logout',
|
||||
title: 'Logout',
|
||||
icon: 'fa-sign-out'});
|
||||
}
|
||||
|
||||
links.push({
|
||||
target: '#/help',
|
||||
title: 'Help',
|
||||
icon: 'fa-question-circle'});
|
||||
links.push({
|
||||
target: '#/help',
|
||||
title: 'Help',
|
||||
icon: 'fa-question-circle'});
|
||||
|
||||
var takenAccessKeys = [];
|
||||
links = _.map(links, function(link) {
|
||||
if (typeof(link.className) === 'undefined') {
|
||||
link.className = link.title.toLowerCase();
|
||||
}
|
||||
if (typeof(link.accessKey) === 'undefined') {
|
||||
for (var i = 0; i < link.title.length; i ++) {
|
||||
var accessKey = link.title.charAt(i);
|
||||
if (!_.contains(takenAccessKeys, accessKey)) {
|
||||
link.accessKey = accessKey;
|
||||
takenAccessKeys.push(accessKey);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return link;
|
||||
});
|
||||
%>
|
||||
var takenAccessKeys = [];
|
||||
links = _.map(links, function(link) {
|
||||
if (typeof(link.className) === 'undefined') {
|
||||
link.className = link.title.toLowerCase();
|
||||
}
|
||||
if (typeof(link.accessKey) === 'undefined') {
|
||||
for (var i = 0; i < link.title.length; i ++) {
|
||||
var accessKey = link.title.charAt(i);
|
||||
if (!_.contains(takenAccessKeys, accessKey)) {
|
||||
link.accessKey = accessKey;
|
||||
takenAccessKeys.push(accessKey);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return link;
|
||||
});
|
||||
%>
|
||||
|
||||
<% _.each(links, function(link) { %><!--
|
||||
--><li class="<%= link.className %>">
|
||||
<a class="big-button" href="<%= link.target %>" <%= link.accessKey ? 'accessKey="' + link.accessKey + '"' : '' %>>
|
||||
<i class="fa <%= link.icon %>"></i><br/>
|
||||
<% var pos = link.title.indexOf(link.accessKey) %>
|
||||
<%= pos === -1 ? link.title : link.title.substring(0, pos) + '<span class="accesskey">' + link.accessKey + '</span>' + link.title.substring(pos + 1) %>
|
||||
</a>
|
||||
</li><!--
|
||||
--><% }) %>
|
||||
<% _.each(links, function(link) { %><!--
|
||||
--><li class="<%= link.className %>">
|
||||
<a class="big-button" href="<%= link.target %>" <%= link.accessKey ? 'accessKey="' + link.accessKey + '"' : '' %>>
|
||||
<i class="fa <%= link.icon %>"></i><br/>
|
||||
<% var pos = link.title.indexOf(link.accessKey) %>
|
||||
<%= pos === -1 ? link.title : link.title.substring(0, pos) + '<span class="accesskey">' + link.accessKey + '</span>' + link.title.substring(pos + 1) %>
|
||||
</a>
|
||||
</li><!--
|
||||
--><% }) %>
|
||||
</ul>
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
<div class="user">
|
||||
<div class="avatar">
|
||||
<% if (canViewUsers) { %>
|
||||
<a href="#/user/<%= user.name %>">
|
||||
<% } %>
|
||||
<img width="80" height="80" src="/data/thumbnails/80x80/avatars/<%= user.name %>" alt="<%= user.name %>"/>
|
||||
<% if (canViewUsers) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
</div>
|
||||
<div class="avatar">
|
||||
<% if (canViewUsers) { %>
|
||||
<a href="#/user/<%= user.name %>">
|
||||
<% } %>
|
||||
<img width="80" height="80" src="/data/thumbnails/80x80/avatars/<%= user.name %>" alt="<%= user.name %>"/>
|
||||
<% if (canViewUsers) { %>
|
||||
</a>
|
||||
<% } %>
|
||||
</div>
|
||||
|
||||
<div class="details">
|
||||
<h1>
|
||||
<% if (canViewUsers) { %>
|
||||
<a href="#/user/<%= user.name %>">
|
||||
<%= user.name %>
|
||||
</a>
|
||||
<% } else { %>
|
||||
<%= user.name %>
|
||||
<% } %>
|
||||
</h1>
|
||||
<div class="date-joined" title="<%= util.formatAbsoluteTime(user.registrationTime) %>">
|
||||
Joined: <%= util.formatRelativeTime(user.registrationTime) %>
|
||||
</div>
|
||||
<div class="date-seen" title="<%= util.formatAbsoluteTime(user.lastLoginTime) %>">
|
||||
Last seen: <%= util.formatRelativeTime(user.lastLoginTime) %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="details">
|
||||
<h1>
|
||||
<% if (canViewUsers) { %>
|
||||
<a href="#/user/<%= user.name %>">
|
||||
<%= user.name %>
|
||||
</a>
|
||||
<% } else { %>
|
||||
<%= user.name %>
|
||||
<% } %>
|
||||
</h1>
|
||||
<div class="date-joined" title="<%= util.formatAbsoluteTime(user.registrationTime) %>">
|
||||
Joined: <%= util.formatRelativeTime(user.registrationTime) %>
|
||||
</div>
|
||||
<div class="date-seen" title="<%= util.formatAbsoluteTime(user.lastLoginTime) %>">
|
||||
Last seen: <%= util.formatRelativeTime(user.lastLoginTime) %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
<div id="user-list">
|
||||
<ul class="order">
|
||||
<li>
|
||||
<a class="big-button" href="#/users/order=name,asc">Sort A→Z</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/users/order=name,desc">Sort Z→A</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/users/order=registration_time,asc">Sort old→new</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/users/order=registration_time,desc">Sort new→old</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="order">
|
||||
<li>
|
||||
<a class="big-button" href="#/users/order=name,asc">Sort A→Z</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/users/order=name,desc">Sort Z→A</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/users/order=registration_time,asc">Sort old→new</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="big-button" href="#/users/order=registration_time,desc">Sort new→old</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="pagination-target">
|
||||
<ul class="users">
|
||||
</ul>
|
||||
</div>
|
||||
<div class="pagination-target">
|
||||
<ul class="users">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
<div class="messages"></div>
|
||||
|
||||
<div id="user-query-form">
|
||||
<form class="form-wrapper">
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="user-query-user">User name or e-mail:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="user" id="user-query-user"/>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-wrapper">
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="user-query-user">User name or e-mail:</label>
|
||||
<div class="form-input">
|
||||
<input autocomplete="off" type="text" name="user" id="user-query-user"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Continue</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="form-row">
|
||||
<label class="form-label"></label>
|
||||
<div class="form-input">
|
||||
<button type="submit">Continue</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,139 +1,139 @@
|
|||
<div id="user-view" class="tab-wrapper">
|
||||
<div class="messages"></div>
|
||||
<div class="messages"></div>
|
||||
|
||||
<div class="top">
|
||||
<div class="side">
|
||||
<img width="100" height="100" src="/data/thumbnails/100x100/avatars/<%= user.name %>" alt="Avatar"/>
|
||||
<br/>
|
||||
<%= user.name %>
|
||||
</div>
|
||||
<div class="top">
|
||||
<div class="side">
|
||||
<img width="100" height="100" src="/data/thumbnails/100x100/avatars/<%= user.name %>" alt="Avatar"/>
|
||||
<br/>
|
||||
<%= user.name %>
|
||||
</div>
|
||||
|
||||
<% if ((canChangeBrowsingSettings || canChangeAccountSettings || canDeleteAccount)) { %>
|
||||
<% if ((canChangeBrowsingSettings || canChangeAccountSettings || canDeleteAccount)) { %>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="big-button" href="#/user/<%= user.name %>" data-tab="basic-info">
|
||||
Basic information
|
||||
</a>
|
||||
</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a class="big-button" href="#/user/<%= user.name %>" data-tab="basic-info">
|
||||
Basic information
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<% if (canChangeBrowsingSettings) { %>
|
||||
<li>
|
||||
<a class="big-button" href="#/user/<%= user.name %>/browsing-settings" data-tab="browsing-settings">
|
||||
Browsing settings
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (canChangeBrowsingSettings) { %>
|
||||
<li>
|
||||
<a class="big-button" href="#/user/<%= user.name %>/browsing-settings" data-tab="browsing-settings">
|
||||
Browsing settings
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (canChangeAccountSettings) { %>
|
||||
<li>
|
||||
<a class="big-button" href="#/user/<%= user.name %>/account-settings" data-tab="account-settings">
|
||||
Account settings
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<% if (canChangeAccountSettings) { %>
|
||||
<li>
|
||||
<a class="big-button" href="#/user/<%= user.name %>/account-settings" data-tab="account-settings">
|
||||
Account settings
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
|
||||
<% if (canDeleteAccount) { %>
|
||||
<li>
|
||||
<a class="big-button" href="#/user/<%= user.name %>/account-removal" data-tab="account-removal">
|
||||
Account removal
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
<% if (canDeleteAccount) { %>
|
||||
<li>
|
||||
<a class="big-button" href="#/user/<%= user.name %>/account-removal" data-tab="account-removal">
|
||||
Account removal
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
|
||||
<% } %>
|
||||
</div>
|
||||
<% } %>
|
||||
</div>
|
||||
|
||||
<div class="tab basic-info" data-tab="basic-info">
|
||||
<h2>Basic information</h2>
|
||||
<div class="tab basic-info" data-tab="basic-info">
|
||||
<h2>Basic information</h2>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>Registered:</td>
|
||||
<td title="<%= util.formatAbsoluteTime(user.registrationTime) %>">
|
||||
<%= util.formatRelativeTime(user.registrationTime) %>
|
||||
</td>
|
||||
</tr>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Registered:</td>
|
||||
<td title="<%= util.formatAbsoluteTime(user.registrationTime) %>">
|
||||
<%= util.formatRelativeTime(user.registrationTime) %>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Seen:</td>
|
||||
<td title="<%= util.formatAbsoluteTime(user.lastLoginTime) %>">
|
||||
<%= util.formatRelativeTime(user.lastLoginTime) %>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Seen:</td>
|
||||
<td title="<%= util.formatAbsoluteTime(user.lastLoginTime) %>">
|
||||
<%= util.formatRelativeTime(user.lastLoginTime) %>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<% if (user.accessRank) { %>
|
||||
<tr>
|
||||
<td>Access rank:</td>
|
||||
<%
|
||||
var accessRanks = {
|
||||
anonymous: 'anonymous',
|
||||
restrictedUser: 'restricted user',
|
||||
regularUser: 'regular user',
|
||||
powerUser: 'power user',
|
||||
moderator: 'moderator',
|
||||
administrator: 'administrator'
|
||||
};
|
||||
%>
|
||||
<td><%= accessRanks[user.accessRank] %></td>
|
||||
</tr>
|
||||
<% } %>
|
||||
<% if (user.accessRank) { %>
|
||||
<tr>
|
||||
<td>Access rank:</td>
|
||||
<%
|
||||
var accessRanks = {
|
||||
anonymous: 'anonymous',
|
||||
restrictedUser: 'restricted user',
|
||||
regularUser: 'regular user',
|
||||
powerUser: 'power user',
|
||||
moderator: 'moderator',
|
||||
administrator: 'administrator'
|
||||
};
|
||||
%>
|
||||
<td><%= accessRanks[user.accessRank] %></td>
|
||||
</tr>
|
||||
<% } %>
|
||||
|
||||
<tr>
|
||||
<td>Quick links:</td>
|
||||
<td>
|
||||
<ul class="links">
|
||||
<li>
|
||||
<a href="#/posts/query=fav:<%= user.name %>">
|
||||
Favorites
|
||||
</a>
|
||||
</li>
|
||||
<tr>
|
||||
<td>Quick links:</td>
|
||||
<td>
|
||||
<ul class="links">
|
||||
<li>
|
||||
<a href="#/posts/query=fav:<%= user.name %>">
|
||||
Favorites
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#/posts/query=uploader:<%= user.name %>">
|
||||
Uploads
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#/posts/query=uploader:<%= user.name %>">
|
||||
Uploads
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<% if (isLoggedIn) { %>
|
||||
<li>
|
||||
<a href="#/posts/query=special:liked">
|
||||
Upvoted posts
|
||||
</a>
|
||||
</li>
|
||||
<% if (isLoggedIn) { %>
|
||||
<li>
|
||||
<a href="#/posts/query=special:liked">
|
||||
Upvoted posts
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#/posts/query=special:disliked">
|
||||
Downvoted posts
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<li>
|
||||
<a href="#/posts/query=special:disliked">
|
||||
Downvoted posts
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<% if (canChangeBrowsingSettings) { %>
|
||||
<div class="tab" data-tab="browsing-settings">
|
||||
<h2>Browsing settings</h2>
|
||||
<div id="browsing-settings-target"></div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (canChangeBrowsingSettings) { %>
|
||||
<div class="tab" data-tab="browsing-settings">
|
||||
<h2>Browsing settings</h2>
|
||||
<div id="browsing-settings-target"></div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (canChangeAccountSettings) { %>
|
||||
<div class="tab" data-tab="account-settings">
|
||||
<h2>Account settings</h2>
|
||||
<div id="account-settings-target"></div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (canChangeAccountSettings) { %>
|
||||
<div class="tab" data-tab="account-settings">
|
||||
<h2>Account settings</h2>
|
||||
<div id="account-settings-target"></div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<% if (canDeleteAccount) { %>
|
||||
<div class="tab" data-tab="account-removal">
|
||||
<h2>Account removal</h2>
|
||||
<div id="account-removal-target"></div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% if (canDeleteAccount) { %>
|
||||
<div class="tab" data-tab="account-removal">
|
||||
<h2>Account removal</h2>
|
||||
<div id="account-removal-target"></div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?php
|
||||
require_once(__DIR__
|
||||
. DIRECTORY_SEPARATOR . '..'
|
||||
. DIRECTORY_SEPARATOR . 'src'
|
||||
. DIRECTORY_SEPARATOR . 'Bootstrap.php');
|
||||
. DIRECTORY_SEPARATOR . '..'
|
||||
. DIRECTORY_SEPARATOR . 'src'
|
||||
. DIRECTORY_SEPARATOR . 'Bootstrap.php');
|
||||
|
||||
use \Szurubooru\Services\PostService;
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?php
|
||||
require_once(__DIR__
|
||||
. DIRECTORY_SEPARATOR . '..'
|
||||
. DIRECTORY_SEPARATOR . 'src'
|
||||
. DIRECTORY_SEPARATOR . 'Bootstrap.php');
|
||||
. DIRECTORY_SEPARATOR . '..'
|
||||
. DIRECTORY_SEPARATOR . 'src'
|
||||
. DIRECTORY_SEPARATOR . 'Bootstrap.php');
|
||||
|
||||
// Why this exists:
|
||||
// 1. Some entities store a few basic stats in special columns for performance reasons. The benefit of such
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?php
|
||||
require_once(__DIR__
|
||||
. DIRECTORY_SEPARATOR . '..'
|
||||
. DIRECTORY_SEPARATOR . 'src'
|
||||
. DIRECTORY_SEPARATOR . 'Bootstrap.php');
|
||||
. DIRECTORY_SEPARATOR . '..'
|
||||
. DIRECTORY_SEPARATOR . 'src'
|
||||
. DIRECTORY_SEPARATOR . 'Bootstrap.php');
|
||||
|
||||
use Szurubooru\Injector;
|
||||
use Szurubooru\Dao\PublicFileDao;
|
||||
|
@ -14,18 +14,18 @@ $postDao = Injector::get(PostDao::class);
|
|||
$paths = [];
|
||||
foreach ($postDao->findAll() as $post)
|
||||
{
|
||||
$paths[] = $post->getContentPath();
|
||||
$paths[] = $post->getThumbnailSourceContentPath();
|
||||
$paths[] = $post->getContentPath();
|
||||
$paths[] = $post->getThumbnailSourceContentPath();
|
||||
}
|
||||
|
||||
$paths = array_flip($paths);
|
||||
foreach ($publicFileDao->listAll() as $path)
|
||||
{
|
||||
if (dirname($path) !== 'posts')
|
||||
continue;
|
||||
if (!isset($paths[$path]))
|
||||
{
|
||||
echo $path . PHP_EOL;
|
||||
flush();
|
||||
}
|
||||
if (dirname($path) !== 'posts')
|
||||
continue;
|
||||
if (!isset($paths[$path]))
|
||||
{
|
||||
echo $path . PHP_EOL;
|
||||
flush();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?php
|
||||
require_once(__DIR__
|
||||
. DIRECTORY_SEPARATOR . '..'
|
||||
. DIRECTORY_SEPARATOR . 'src'
|
||||
. DIRECTORY_SEPARATOR . 'Bootstrap.php');
|
||||
. DIRECTORY_SEPARATOR . '..'
|
||||
. DIRECTORY_SEPARATOR . 'src'
|
||||
. DIRECTORY_SEPARATOR . 'Bootstrap.php');
|
||||
|
||||
use Szurubooru\Injector;
|
||||
use Szurubooru\Dao\PublicFileDao;
|
||||
|
@ -16,14 +16,14 @@ $postThumbnailService = Injector::get(PostThumbnailService::class);
|
|||
|
||||
foreach (array_reverse($postDao->findAll()) as $post)
|
||||
{
|
||||
try
|
||||
{
|
||||
$thumbnailName = $postThumbnailService->generateIfNeeded($post, $size, $size);
|
||||
echo '.';
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
echo PHP_EOL . $post->getId() . ': ' . $e->getMessage() . PHP_EOL;
|
||||
}
|
||||
try
|
||||
{
|
||||
$thumbnailName = $postThumbnailService->generateIfNeeded($post, $size, $size);
|
||||
echo '.';
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
echo PHP_EOL . $post->getId() . ': ' . $e->getMessage() . PHP_EOL;
|
||||
}
|
||||
}
|
||||
echo PHP_EOL;
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
<?php
|
||||
require_once(__DIR__
|
||||
. DIRECTORY_SEPARATOR . '..'
|
||||
. DIRECTORY_SEPARATOR . 'src'
|
||||
. DIRECTORY_SEPARATOR . 'Bootstrap.php');
|
||||
. DIRECTORY_SEPARATOR . '..'
|
||||
. DIRECTORY_SEPARATOR . 'src'
|
||||
. DIRECTORY_SEPARATOR . 'Bootstrap.php');
|
||||
|
||||
$testMode = false;
|
||||
|
||||
if (isset($argv))
|
||||
{
|
||||
foreach ($argv as $arg)
|
||||
{
|
||||
if ($arg === '--test')
|
||||
$testMode = true;
|
||||
}
|
||||
foreach ($argv as $arg)
|
||||
{
|
||||
if ($arg === '--test')
|
||||
$testMode = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($testMode)
|
||||
{
|
||||
$config = \Szurubooru\Injector::get(\Szurubooru\Config::class);
|
||||
$config->database->dsn = $config->database->tests->dsn;
|
||||
$config->database->user = $config->database->tests->user;
|
||||
$config->database->password = $config->database->tests->password;
|
||||
\Szurubooru\Injector::set(\Szurubooru\Config::class, $config);
|
||||
$config = \Szurubooru\Injector::get(\Szurubooru\Config::class);
|
||||
$config->database->dsn = $config->database->tests->dsn;
|
||||
$config->database->user = $config->database->tests->user;
|
||||
$config->database->password = $config->database->tests->password;
|
||||
\Szurubooru\Injector::set(\Szurubooru\Config::class, $config);
|
||||
|
||||
$databaseConnection = \Szurubooru\Injector::get(\Szurubooru\DatabaseConnection::class);
|
||||
$pdo = $databaseConnection->getPDO();
|
||||
$pdo->exec('DROP DATABASE IF EXISTS szuru_test');
|
||||
$pdo->exec('CREATE DATABASE szuru_test');
|
||||
$pdo->exec('USE szuru_test');
|
||||
$databaseConnection = \Szurubooru\Injector::get(\Szurubooru\DatabaseConnection::class);
|
||||
$pdo = $databaseConnection->getPDO();
|
||||
$pdo->exec('DROP DATABASE IF EXISTS szuru_test');
|
||||
$pdo->exec('CREATE DATABASE szuru_test');
|
||||
$pdo->exec('USE szuru_test');
|
||||
}
|
||||
|
||||
$upgradeService = \Szurubooru\Injector::get(\Szurubooru\Services\UpgradeService::class);
|
||||
|
|
Loading…
Reference in a new issue