Guides: initial implementation

* a guide is a wrapper around an article providing management tools.
 * administration is limited to the review process. Needs to be expanded.
 * articles on DB pages are seperate. Editor will be added in the future.
This commit is contained in:
Sarjuuk
2022-03-02 18:19:50 +01:00
parent 33a870ef78
commit b890d6504e
63 changed files with 6734 additions and 338 deletions

View File

@@ -0,0 +1,63 @@
@media screen and (max-width: 999px) {
.adjacent-preview-controls {
display: none !important;
}
}
@media screen and (min-width: 1000px) {
.adjacent-preview-controls {
display: none;
margin: 10px 0;
}
.adjacent-preview-controls label {
background: #181818;
border-radius: 6px;
cursor: pointer;
float: left;
padding: 10px;
}
.adjacent-preview-controls label:hover {
color: #fff;
}
.adjacent-preview-controls input[type="checkbox"] {
position: relative;
top: 2px;
}
.adjacent-preview-controls:after {
clear: left;
content: " ";
display: block;
}
body[data-adjacent-preview="enabled"] {
overflow: hidden;
}
body[data-adjacent-preview="enabled"] .adjacent-preview {
background: #242424;
border-top: 2px solid #181818;
bottom: 0;
left: 0;
position: fixed;
right: 0;
top: 40px;
z-index: 100;
}
body[data-adjacent-preview="enabled"] .adjacent-preview .adjacent-preview-edit,
body[data-adjacent-preview="enabled"] .adjacent-preview .adjacent-preview-preview {
bottom: 0;
left: 0;
overflow: auto;
padding: 10px;
position: absolute;
right: 0;
top: 0;
}
body[data-adjacent-preview="enabled"] .adjacent-preview .adjacent-preview-edit > *:first-child,
body[data-adjacent-preview="enabled"] .adjacent-preview .adjacent-preview-preview > *:first-child {
margin-top: 0;
}
body[data-adjacent-preview="enabled"] .adjacent-preview .adjacent-preview-edit {
right: 50%;
}
body[data-adjacent-preview="enabled"] .adjacent-preview .adjacent-preview-preview {
left: 50%;
}
}

View File

@@ -4102,27 +4102,30 @@ a.progressbar:hover del {
width: 16px;
height: 16px;
background: url(../images/ui/misc/toolbar.png) no-repeat;
margin-top: 2px;
}
.toolbar img.toolbar-b { background-position: 0 0 !important; }
.toolbar img.toolbar-i { background-position: -16px 0 !important; }
.toolbar img.toolbar-u { background-position: -32px 0 !important; }
.toolbar img.toolbar-s { background-position: -48px 0 !important; }
.toolbar img.toolbar-url { background-position: -64px 0 !important; }
.toolbar img.toolbar-small { background-position: -80px 0 !important; }
.toolbar img.toolbar-quote { background-position: -96px 0 !important; }
.toolbar img.toolbar-code { background-position: -112px 0 !important; }
.toolbar img.toolbar-ul { background-position: -128px 0 !important; }
.toolbar img.toolbar-ol { background-position: -144px 0 !important; }
.toolbar img.toolbar-li { background-position: -160px 0 !important; }
.toolbar img.toolbar-img { background-position: -176px 0 !important; }
.toolbar img.toolbar-thumb { background-position: -192px 0 !important; }
.toolbar img.toolbar-title { background-position: -208px 0 !important; }
.toolbar img.toolbar-pad { background-position: -224px 0 !important; }
.toolbar img.toolbar-winners { background-position: -240px 0 !important; }
.toolbar img.toolbar-prizes { background-position: -256px 0 !important; }
.toolbar img.toolbar-entryform { background-position: -272px 0 !important; }
.toolbar img.toolbar-fromhtml { background-position: -288px 0 !important; }
.toolbar img.toolbar-b { background-position: 0 0 !important; }
.toolbar img.toolbar-i { background-position: -16px 0 !important; }
.toolbar img.toolbar-u { background-position: -32px 0 !important; }
.toolbar img.toolbar-s { background-position: -48px 0 !important; }
.toolbar img.toolbar-url { background-position: -64px 0 !important; }
.toolbar img.toolbar-small { background-position: -80px 0 !important; }
.toolbar img.toolbar-quote { background-position: -96px 0 !important; }
.toolbar img.toolbar-code { background-position: -112px 0 !important; }
.toolbar img.toolbar-ul { background-position: -128px 0 !important; }
.toolbar img.toolbar-ol { background-position: -144px 0 !important; }
.toolbar img.toolbar-li { background-position: -160px 0 !important; }
.toolbar img.toolbar-img { background-position: -176px 0 !important; }
.toolbar img.toolbar-thumb { background-position: -192px 0 !important; }
.toolbar img.toolbar-title { background-position: -208px 0 !important; }
.toolbar img.toolbar-pad { background-position: -224px 0 !important; }
.toolbar img.toolbar-winners { background-position: -240px 0 !important; }
.toolbar img.toolbar-prizes { background-position: -256px 0 !important; }
.toolbar img.toolbar-entryform { background-position: -272px 0 !important; }
.toolbar img.toolbar-fromhtml { background-position: -288px 0 !important; }
.toolbar img.toolbar-minor-heading { background-position: -304px 0 !important; }
.toolbar img.toolbar-major-heading { background-position: -320px 0 !important; }
/***********/
/* CAPTCHA */

View File

@@ -0,0 +1,25 @@
#editToolbar td {
padding-bottom: 5px;
}
.button {
vertical-align: middle;
font-family: Verdana, sans-serif;
padding: 1px 5px;
margin-right: 1px;
font-size: 12px;
width: auto !important;
}
#editBox, #qfBox {
margin: 0;
padding: 0;
width: 100%;
height: 500px;
font-size: 13px;
}
.menu-buttons a {
border-color: transparent;
_border-color: #000;
}

18
static/css/article.css Normal file
View File

@@ -0,0 +1,18 @@
.article-header {
position: relative;
background: repeat-x;
margin-bottom: 10px;
}
.article-header, .article-header a {
height: 125px;
}
.article-header var, .article-header span, .article-header a {
background: no-repeat;
display: block;
}
.article-header var, .article-header span {
position: absolute;
}

View File

@@ -143,6 +143,19 @@ a span.moneyitem, a span.moneysocketmeta, a span.moneysocketred, a span.moneysoc
.s3 { color: #ffb2eb !important } /* Whisper */
.s4 { color: #ff8040 !important } /* Emote */
/********************/
/* REPUTATION RANKS */
/********************/
.rep0, .rep-hated { color: #f00 !important }
.rep1, .rep-hostile { color: #f44 !important }
.rep2, .rep-unfirendly { color: #e62 !important }
.rep3, .rep-neutral { color: #ff0 !important }
.rep4, .rep-friendly { color: #0f0 !important }
.rep5, .rep-honored { color: #0f8 !important }
.rep6, .rep-revered { color: #0fc !important }
.rep7, .rep-exalted { color: #0ff !important }
/*****************/
/* SOCKETS ICONS */
/*****************/

View File

@@ -0,0 +1,87 @@
.qq-uploader {
position:relative;
width:100%;
}
.qq-upload-button {
display:block;
width:105px;
padding:7px 0;
text-align:center;
background:#303030;
border:1px solid #404040;
color:#fff;
}
.qq-upload-button-hover {
background:#404040;
}
.qq-upload-button-focus {
outline:1px dotted black;
}
.qq-upload-drop-area {
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
min-height:70px;
z-index:2;
background:#FF9797;
text-align:center;
}
.qq-upload-drop-area span {
display:block;
position:absolute;
top:50%;
width:100%;
margin-top:-8px;
font-size:16px;
}
.qq-upload-drop-area-active {
background:#FF7171;
}
.qq-upload-list {
display:none;
margin:15px 35px;
padding:0;
list-style:disc;
}
.qq-upload-list li {
margin:0;
padding:0;
line-height:15px;
font-size:12px;
}
.qq-upload-file, .qq-upload-spinner, .qq-upload-size, .qq-upload-cancel, .qq-upload-failed-text {
margin-right:7px;
}
.qq-upload-spinner {
display:inline-block;
/* background:url("loading.gif"); */
background:url("../images/icons/ajax.gif");
width:15px;
height:15px;
vertical-align:text-bottom;
}
.qq-upload-size, .qq-upload-cancel {
font-size:11px;
}
.qq-upload-failed-text {
display:none;
}
.qq-upload-fail .qq-upload-failed-text {
display:inline;
}

View File

@@ -300,6 +300,11 @@
text-decoration: underline;
}
.comment-reply-author-label {
color: #fff;
font-weight: bold;
}
.comment-blue b {
color: White !important;
}
@@ -801,3 +806,91 @@ div.screenshotviewer-caption {
font-weight: bold;
padding: 5px 0 10px 0;
}
.enhanced-textarea-expander {
display:none;
}
.enhanced-textarea-wrapper {
position:relative;
}
.enhanced-textarea-wrapper textarea,
.enhanced-textarea-wrapper .enhanced-textarea-expander {
border:1px transparent solid;
box-sizing:border-box;
font:13px/1.4 "Open Sans",Arial,"Helvetica Neue",Helvetica,sans-serif;
overflow-wrap:break-word;
padding:5px 7px;
white-space:pre-wrap;
width:100% !important;
}
.enhanced-textarea-wrapper textarea,
.enhanced-textarea-wrapper textarea:hover {
transition:150ms;
}
.enhanced-textarea-wrapper.enhanced-textarea-dynamic-sizing textarea {
resize:none;
}
.enhanced-textarea-wrapper .enhanced-textarea-markup {
overflow:hidden;
}
.enhanced-textarea-wrapper .enhanced-textarea-markup-segment {
float:left;
}
.enhanced-textarea-wrapper .enhanced-textarea-markup-segment.menu-buttons {
padding:0;
}
.enhanced-textarea-text-input[type="text"] {
padding:5px 7px;
}
.enhanced-textarea-wrapper.enhanced-textarea-dark textarea,
.enhanced-textarea-text-input[type="text"],
.enhanced-textarea-text-input-dark[type="text"] {
min-height:calc(1.4em + 12px);
}
.enhanced-textarea-wrapper.enhanced-textarea-dark textarea,
.enhanced-textarea-wrapper.enhanced-textarea-dark textarea:hover,
.enhanced-textarea-text-input[type="text"],
.enhanced-textarea-text-input[type="text"]:hover,
.enhanced-textarea-text-input-dark[type="text"],
.enhanced-textarea-text-input-dark[type="text"]:hover {
background:#1c1c1c;
border-color:#3b3b3b;
color:#ddd;
outline:0;
}
.enhanced-textarea-wrapper.enhanced-textarea-focus-changes textarea,
.enhanced-textarea-text-input[type="text"] {
background:#1c1c1c;
border-color:#3b3b3b;
cursor:pointer;
min-height:calc(1.4em + 12px);
}
.enhanced-textarea-wrapper.enhanced-textarea-focus-changes textarea.focus-visible,
.enhanced-textarea-text-input[type="text"].focus-visible {
background:#181818;
border-color:#444;
box-shadow:0 0 0 1px #444;
cursor:auto;
}
.options-menu-widget {
cursor:default;
padding-right: 13px;
background: url(../images/Menu/arrow-down.gif) right center no-repeat;
}
.options-menu-widget.open {
color:#fff;
}

308
static/css/guide-edit.css Normal file
View File

@@ -0,0 +1,308 @@
#guide-form .guide-form-main {
border-collapse: collapse;
border-spacing: 0;
width: 100%;
}
#guide-form .guide-form-main th,
#guide-form .guide-form-main td {
padding: 0;
}
#guide-form .guide-form-main th {
line-height: 32px;
padding-right: 5px;
text-align: left;
vertical-align: top;
white-space: nowrap;
width: 1%;
}
#guide-form .guide-form-main td {
padding-bottom: 2px;
}
#guide-form .guide-form-main input[name="title"],
#guide-form .guide-form-main input[name="name"] {
width: calc(100% - 200px);
}
@media screen and (max-width: 799px) {
#guide-form .guide-form-main input[name="title"],
#guide-form .guide-form-main input[name="name"] {
width: 100%;
}
}
#guide-form .guide-form-main input[name="title"] {
max-width: 700px;
}
#guide-form .guide-form-main input[name="name"] {
max-width: 350px;
}
#guide-form .guide-form-main .char-warning {
display: inline-block;
margin-left: 5px;
}
#guide-form #class-guide-specialization-options,
#guide-form #class-guide-tag-options,
#guide-form #class-guide-intro,
#guide-form #class-guide-talents,
#guide-form #class-guide-pvp-talents,
#guide-form #class-guide-artifact-weapon,
#guide-form #class-guide-items,
#guide-form #class-guide-stats,
#guide-form #class-guide-gems,
#guide-form #class-guide-enchants,
#guide-form #class-guide-consumables {
display: none;
}
#guide-form[data-spec-category="true"] #class-guide-specialization-options,
#guide-form[data-spec-category="true"] #class-guide-tag-options {
display: table-row;
}
#guide-form[data-spec-category="true"] #class-guide-intro,
#guide-form[data-spec-category="true"] #class-guide-talents,
#guide-form[data-spec-category="true"] #class-guide-pvp-talents,
#guide-form[data-spec-category="true"] #class-guide-artifact-weapon,
#guide-form[data-spec-category="true"] #class-guide-items,
#guide-form[data-spec-category="true"] #class-guide-stats,
#guide-form[data-spec-category="true"] #class-guide-gems,
#guide-form[data-spec-category="true"] #class-guide-enchants,
#guide-form[data-spec-category="true"] #class-guide-consumables {
display: block;
}
#guide-tags .tags a span,
.guide-editing-closer {
background: #933
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' height='100%' width='100%'><line x1='30%' y1='30%' x2='70%' y2='70%' style='stroke:rgb(255, 255, 255);stroke-width:7.5%' /><line x1='70%' y1='30%' x2='30%' y2='70%' style='stroke:rgb(255, 255, 255);stroke-width:7.5%' /></svg>")
center no-repeat;
border-radius: 999px !important;
height: 39px;
line-height: 0;
position: absolute;
right: 7.02px;
top: 7.02px;
width: 39px;
z-index: 100;
}
#guide-tags .tags a {
background: #444 !important;
cursor: default;
height: 13px;
line-height: 13px;
margin-right: 16px;
position: relative;
}
#guide-tags .tags a span {
border: 2px solid #242424;
cursor: pointer;
height: 15px;
right: -14px;
top: 1px;
width: 15px;
}
#guide-tags > a {
margin-left: 10px;
}
.guide-edit-section {
margin: 15px 0 30px;
}
.guide-edit-section .guide-edit-box,
.guide-edit-section #editBox,
.guide-edit-section #qfBox,
.guide-edit-section #changelog {
margin: 0;
}
.class-guide-calc-wrapper[data-has-notes="true"] .class-guide-calc-notes-content .class-guide-calc-notes-note textarea,
.guide-edit-section#class-guide-items textarea {
background: #1c1c1c;
border-color: #3b3b3b;
box-sizing: border-box;
color: #fff;
overflow: hidden;
padding: 5px 7px;
resize: none;
}
.class-guide-calc-wrapper[data-has-notes="true"] .class-guide-calc-notes-content .class-guide-calc-notes-note textarea:focus,
.guide-edit-section#class-guide-items textarea:focus {
background: #181818;
border-color: #444;
}
.class-guide-calc-wrapper #viewintc-link {
display: none;
}
.class-guide-calc-wrapper > .guide-editing-closer {
display: none;
}
.class-guide-calc-wrapper[data-has-notes="true"] .class-guide-calc .guide-editing-closer {
display: none;
}
.class-guide-calc-wrapper[data-has-notes="true"] > .guide-editing-closer {
display: block;
}
.class-guide-calc-wrapper[data-has-notes="true"] .class-guide-calc-notes-content .class-guide-calc-notes-note .enhanced-textarea-markup {
display: inline;
overflow: hidden;
}
.class-guide-calc-wrapper[data-has-notes="true"] .class-guide-calc-notes-content .class-guide-calc-notes-note .enhanced-textarea-markup-wrapper {
min-height: 26px;
padding-bottom: 3px;
}
.class-guide-calc-wrapper[data-has-notes="true"] .class-guide-calc-notes-content .class-guide-calc-notes-note .enhanced-textarea-wrapper .enhanced-textarea-markup-segment {
display: inline-block;
float: none;
}
.class-guide-calc-wrapper .class-guide-calc .guide-editing-closer,
.class-guide-calc-wrapper .class-guide-calc-wrapper#guide-artifact-weapon-shell,
.class-guide-calc-wrapper#guide-artifact-weapon-shell .guide-editing-closer {
right: -19px;
top: -19px;
}
.talentcalc-controls-actions a.fa-link,
.pvptalentcalc-controls-actions a.fa-link,
.artifactcalc-controls a.fa-link {
display: none;
}
.guide-edit-section#class-guide-items textarea {
width: 100%;
}
.class-guide-stats-wrapper,
.class-guide-gems-wrapper,
.class-guide-enchants-wrapper,
.class-guide-consumables-wrapper {
margin-top: 10px;
}
.class-guide-stats-wrapper .class-guide-stats-stat-wrapper .class-guide-stats-stat,
.class-guide-gems-wrapper .class-guide-gems-gem-wrapper .class-guide-gems-gem,
.class-guide-enchants-wrapper .class-guide-enchants-enchant-wrapper .class-guide-enchants-enchant,
.class-guide-consumables-wrapper .class-guide-consumables-consumable-wrapper .class-guide-consumables-consumable {
position: relative;
}
.class-guide-stats-wrapper .class-guide-stats-stat-wrapper .class-guide-stats-stat .fa,
.class-guide-gems-wrapper .class-guide-gems-gem-wrapper .class-guide-gems-gem .fa,
.class-guide-enchants-wrapper .class-guide-enchants-enchant-wrapper .class-guide-enchants-enchant .fa,
.class-guide-consumables-wrapper .class-guide-consumables-consumable-wrapper .class-guide-consumables-consumable .fa {
display: none;
font-size: 14px;
font-weight: normal;
left: 0;
position: absolute;
top: 1.4em;
}
.class-guide-stats-wrapper .class-guide-stats-stat-wrapper .class-guide-stats-stat .fa-arrow-right,
.class-guide-gems-wrapper .class-guide-gems-gem-wrapper .class-guide-gems-gem .fa-arrow-right,
.class-guide-enchants-wrapper .class-guide-enchants-enchant-wrapper .class-guide-enchants-enchant .fa-arrow-right,
.class-guide-consumables-wrapper .class-guide-consumables-consumable-wrapper .class-guide-consumables-consumable .fa-arrow-right {
left: 20px;
}
.class-guide-stats-wrapper .class-guide-stats-stat-wrapper .class-guide-stats-stat .fa-balance-scale,
.class-guide-gems-wrapper .class-guide-gems-gem-wrapper .class-guide-gems-gem .fa-balance-scale,
.class-guide-enchants-wrapper .class-guide-enchants-enchant-wrapper .class-guide-enchants-enchant .fa-balance-scale,
.class-guide-consumables-wrapper .class-guide-consumables-consumable-wrapper .class-guide-consumables-consumable .fa-balance-scale {
color: #fff;
left: 40px;
}
.class-guide-enchants-wrapper .class-guide-enchants-enchant-wrapper .class-guide-enchants-enchant .fa-balance-scale,
.class-guide-consumables-wrapper .class-guide-consumables-consumable-wrapper .class-guide-consumables-consumable .fa-balance-scale {
display: none !important;
}
.class-guide-stats-wrapper .class-guide-stats-stat-wrapper .class-guide-stats-stat .fa-times,
.class-guide-gems-wrapper .class-guide-gems-gem-wrapper .class-guide-gems-gem .fa-times {
left: 60px;
}
.class-guide-enchants-wrapper .class-guide-enchants-enchant-wrapper .class-guide-enchants-enchant .fa-times,
.class-guide-consumables-wrapper .class-guide-consumables-consumable-wrapper .class-guide-consumables-consumable .fa-times {
left: 40px;
}
#class-guide-items > ul > li:first-child > div:first-child .fa-arrow-up,
#class-guide-items > ul > li:last-child > div:first-child .fa-arrow-down,
.class-guide-stats-stat-wrapper:first-child .fa-arrow-left,
.class-guide-stats-stat-wrapper:last-child .fa-arrow-right,
.class-guide-gems-gem-wrapper:first-child .fa-arrow-left,
.class-guide-gems-gem-wrapper:last-child .fa-arrow-right,
.class-guide-enchants-enchant-wrapper:first-child .fa-arrow-left,
.class-guide-enchants-enchant-wrapper:last-child .fa-arrow-right,
.class-guide-consumables-consumable-wrapper:first-child .fa-arrow-left,
.class-guide-consumables-consumable-wrapper:last-child .fa-arrow-right {
pointer-events: none;
visibility: hidden;
}
.class-guide-stats-wrapper .class-guide-stats-stat-wrapper .class-guide-stats-stat:hover,
.class-guide-gems-wrapper .class-guide-gems-gem-wrapper .class-guide-gems-gem:hover,
.class-guide-enchants-wrapper .class-guide-enchants-enchant-wrapper .class-guide-enchants-enchant:hover,
.class-guide-consumables-wrapper .class-guide-consumables-consumable-wrapper .class-guide-consumables-consumable:hover {
padding-bottom: 20px;
}
.class-guide-stats-wrapper .class-guide-stats-stat-wrapper .class-guide-stats-stat:hover .fa,
.class-guide-gems-wrapper .class-guide-gems-gem-wrapper .class-guide-gems-gem:hover .fa,
.class-guide-enchants-wrapper .class-guide-enchants-enchant-wrapper .class-guide-enchants-enchant:hover .fa,
.class-guide-consumables-wrapper .class-guide-consumables-consumable-wrapper .class-guide-consumables-consumable:hover .fa {
display: block;
}
.class-guide-stats-wrapper .class-guide-stats-stat-wrapper .class-guide-stats-stat:hover .fa:before,
.class-guide-gems-wrapper .class-guide-gems-gem-wrapper .class-guide-gems-gem:hover .fa:before,
.class-guide-enchants-wrapper .class-guide-enchants-enchant-wrapper .class-guide-enchants-enchant:hover .fa:before,
.class-guide-consumables-wrapper .class-guide-consumables-consumable-wrapper .class-guide-consumables-consumable:hover .fa:before {
border-radius: 99px;
padding: 5px 2px;
}
.class-guide-stats-wrapper .class-guide-stats-stat-wrapper .class-guide-stats-stat:hover a.fa:hover:before,
.class-guide-gems-wrapper .class-guide-gems-gem-wrapper .class-guide-gems-gem:hover a.fa:hover:before,
.class-guide-enchants-wrapper .class-guide-enchants-enchant-wrapper .class-guide-enchants-enchant:hover a.fa:hover:before,
.class-guide-consumables-wrapper .class-guide-consumables-consumable-wrapper .class-guide-consumables-consumable:hover a.fa:hover:before {
background: #101010;
}
.guide-editing-closer {
right: 0 !important;
}
.guide-submission-options button {
margin: 0 20px 5px 0;
}
.guide-submission-changelog {
display: none;
}
.guide-submission[data-type] .guide-submission-changelog {
background: #333;
border-radius: 6px;
display: block;
padding: 10px;
}
.guide-submission[data-type] .guide-submission-changelog [class^="heading-size-"] {
margin-top: 0;
}
.guide-submission[data-type] .guide-submission-changelog textarea {
margin-bottom: 0 !important;
}
.guide-submission[data-type="save"] .guide-submission-options button[data-type="save"],
.guide-submission[data-type="submit"] .guide-submission-options button[data-type="submit"] {
/* background: #333 !important; */
border-radius: 6px 6px 0 0;
box-shadow: 0 15px 0 #333;
cursor: default;
text-decoration: none;
text-shadow: none !important;
}
.guide-submission .guide-submission-changelog-save,
.guide-submission .guide-submission-changelog-submit {
display: none;
}
.guide-submission[data-type="save"] .guide-submission-changelog-save,
.guide-submission[data-type="submit"] .guide-submission-changelog-submit {
display: block;
}
@media screen and (max-width: 812px) {
#class-guide-artifact-weapon .guide-editing-closer {
top: -39px !important;
}
}
@media screen and (max-width: 699px) {
.artifactcalc-controls {
right: 40px !important;
}
}
@media screen and (max-width: 675px) {
#class-guide-talents .guide-editing-closer,
#class-guide-pvp-talents .guide-editing-closer {
top: -29px !important;
}
}
@media screen and (max-width: 612px) {
.artifactcalc-controls {
right: 50px !important;
}
}