misc
This commit is contained in:
parent
5fc0c1cf36
commit
a87273cea0
@ -35,7 +35,7 @@ html[theme='f0ck'] {
|
|||||||
--posts-meta-bg: #000000b8;
|
--posts-meta-bg: #000000b8;
|
||||||
--badge-sfw: #68a728;
|
--badge-sfw: #68a728;
|
||||||
--badge-nsfw: #a72828;
|
--badge-nsfw: #a72828;
|
||||||
--badge-tag: #6c6c6c;
|
--badge-tag: #090909;
|
||||||
--scrollbar-color: #2b2b2b;
|
--scrollbar-color: #2b2b2b;
|
||||||
--scroller-bg: #424242;
|
--scroller-bg: #424242;
|
||||||
}
|
}
|
||||||
@ -68,7 +68,7 @@ html[theme='p1nk'] {
|
|||||||
--badge-bg: #171717;
|
--badge-bg: #171717;
|
||||||
--badge-sfw: #68a728;
|
--badge-sfw: #68a728;
|
||||||
--badge-nsfw: #a72828;
|
--badge-nsfw: #a72828;
|
||||||
--badge-tag: #6c6c6c;
|
--badge-tag: #090909;
|
||||||
--metadata-bg: #0d0d0d;
|
--metadata-bg: #0d0d0d;
|
||||||
--posts-meta-bg: #000000b8;
|
--posts-meta-bg: #000000b8;
|
||||||
--scrollbar-color: #2b2b2b;
|
--scrollbar-color: #2b2b2b;
|
||||||
@ -100,12 +100,12 @@ html[theme='orange'] {
|
|||||||
--pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255,255,255,.04),inset 0 1px rgba(255,255,255,.04),inset 0 -1px rgba(0,0,0,.15),0 1px 1px rgba(0,0,0,.1);
|
--pagination-anchor-box-shadow: inset 0 0 0 1px rgba(255,255,255,.04),inset 0 1px rgba(255,255,255,.04),inset 0 -1px rgba(0,0,0,.15),0 1px 1px rgba(0,0,0,.1);
|
||||||
--pagination-background-hover: #333;
|
--pagination-background-hover: #333;
|
||||||
--pagination-border-color: rgba(0,0,0,.8) rgba(0,0,0,.65) rgba(0,0,0,.5);
|
--pagination-border-color: rgba(0,0,0,.8) rgba(0,0,0,.65) rgba(0,0,0,.5);
|
||||||
--metadata-bg: #0d0d0d;
|
--metadata-bg: #2b2b2b;
|
||||||
|
--badge-bg: #151515;
|
||||||
--posts-meta-bg: #000000b8;
|
--posts-meta-bg: #000000b8;
|
||||||
--badge-bg: #171717;
|
--badge-tag: #090909;
|
||||||
--badge-sfw: #68a728;
|
--badge-sfw: #68a728;
|
||||||
--badge-nsfw: #a72828;
|
--badge-nsfw: #a72828;
|
||||||
--badge-tag: #6c6c6c;
|
|
||||||
--scrollbar-color: #2b2b2b;
|
--scrollbar-color: #2b2b2b;
|
||||||
--scroller-bg: #424242;
|
--scroller-bg: #424242;
|
||||||
}
|
}
|
||||||
@ -141,7 +141,7 @@ html[theme='amoled'] {
|
|||||||
--posts-meta-bg: #000000b8;
|
--posts-meta-bg: #000000b8;
|
||||||
--badge-sfw: #68a728;
|
--badge-sfw: #68a728;
|
||||||
--badge-nsfw: #a72828;
|
--badge-nsfw: #a72828;
|
||||||
--badge-tag: #6c6c6c;
|
--badge-tag: #1a1a1a;
|
||||||
--scrollbar-color: #1d1c1c;
|
--scrollbar-color: #1d1c1c;
|
||||||
--scroller-bg: #424242;
|
--scroller-bg: #424242;
|
||||||
}
|
}
|
||||||
@ -177,7 +177,7 @@ html[theme="paper"] {
|
|||||||
--posts-meta-bg: #000000db;
|
--posts-meta-bg: #000000db;
|
||||||
--badge-sfw: #68a728;
|
--badge-sfw: #68a728;
|
||||||
--badge-nsfw: #a72828;
|
--badge-nsfw: #a72828;
|
||||||
--badge-tag: #6c6c6c;
|
--badge-tag: #9f9a9a;
|
||||||
--scrollbar-color: #6c6c6c;
|
--scrollbar-color: #6c6c6c;
|
||||||
--scroller-bg: #424242;
|
--scroller-bg: #424242;
|
||||||
}
|
}
|
||||||
@ -288,7 +288,7 @@ html[theme="atmos"] {
|
|||||||
--posts-meta-bg: #000000b8;
|
--posts-meta-bg: #000000b8;
|
||||||
--badge-sfw: #68a728;
|
--badge-sfw: #68a728;
|
||||||
--badge-nsfw: #a72828;
|
--badge-nsfw: #a72828;
|
||||||
--badge-tag: #6c6c6c;
|
--badge-tag: #090909;
|
||||||
--scrollbar-color: #2b2b2b;
|
--scrollbar-color: #2b2b2b;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -388,6 +388,7 @@ html[theme="iced"] {
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'VCR';
|
font-family: 'VCR';
|
||||||
src: url('/s/vcr.ttf') format('truetype');
|
src: url('/s/vcr.ttf') format('truetype');
|
||||||
|
/* https://www.dafont.com/vcr-osd-mono.font */
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
@ -632,6 +633,15 @@ span.placeholder {
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dropdown:hover .nav-link {
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
transition: .2s ease;
|
||||||
|
}
|
||||||
|
.dropdown:hover .nav-link > img.avatar {
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.navbar-nav .dropdown-menu {
|
.navbar-nav .dropdown-menu {
|
||||||
float: none;
|
float: none;
|
||||||
}
|
}
|
||||||
@ -1027,6 +1037,12 @@ span#tags:empty {
|
|||||||
text-shadow: inherit !important;
|
text-shadow: inherit !important;
|
||||||
background-color: #252525;
|
background-color: #252525;
|
||||||
}
|
}
|
||||||
|
.badge-german {
|
||||||
|
background: linear-gradient(180deg, black 33.33%, red 33.33%, red 66.66%, yellow 66.66%) !important;
|
||||||
|
}
|
||||||
|
.badge-russia {
|
||||||
|
background: linear-gradient(180deg, white 33.33%, blue 33.33%, blue 66.66%, red 66.66%) !important;
|
||||||
|
}
|
||||||
|
|
||||||
.about {
|
.about {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
@ -1266,7 +1282,7 @@ div#posts > a > p:before {
|
|||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: -1px;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
width: 10px;
|
width: 10px;
|
||||||
}
|
}
|
||||||
@ -1277,25 +1293,27 @@ div#posts > a[data-mode="nsfw"] > p:before {
|
|||||||
background-color: #a72828;
|
background-color: #a72828;
|
||||||
}
|
}
|
||||||
div#posts > a[data-mode="null"] > p:before {
|
div#posts > a[data-mode="null"] > p:before {
|
||||||
background-color: #dcd512;
|
background-color: #dcd512; /* untagged */
|
||||||
}
|
}
|
||||||
|
|
||||||
div#footbar {
|
div#footbar {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
/* background-color: var(--nav-bg); */
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
/* color: #f00; */
|
|
||||||
margin-top: -30px;
|
margin-top: -30px;
|
||||||
transition: .5s ease-in-out;
|
transition: .2s ease-in-out;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* avatar */
|
/* avatar */
|
||||||
img.avatar {
|
img.avatar {
|
||||||
height: 24px;
|
height: auto;
|
||||||
|
position: relative;
|
||||||
width: 24px;
|
width: 24px;
|
||||||
border-radius: 25px;
|
margin: 0;
|
||||||
margin-top: 1px;
|
left: -6px;
|
||||||
|
top: 0px;
|
||||||
|
border-top-left-radius: 3px;
|
||||||
|
border-bottom-left-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* log */
|
/* log */
|
||||||
|
BIN
public/s/img/ava/nixc.png
Normal file
BIN
public/s/img/ava/nixc.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.5 KiB |
@ -86,21 +86,11 @@ const flash = ({ type, msg }) => {
|
|||||||
a.innerHTML = tag.tag;
|
a.innerHTML = tag.tag;
|
||||||
|
|
||||||
const span = document.createElement("span");
|
const span = document.createElement("span");
|
||||||
span.classList.add("badge", "badge-light", "mr-2");
|
span.classList.add("badge", "mr-2");
|
||||||
span.setAttribute('tooltip', tag.user);
|
span.setAttribute('tooltip', tag.user);
|
||||||
span.dataset.tagid = tag.id;
|
span.dataset.tagid = tag.id;
|
||||||
|
|
||||||
if(tag.tag == "sfw") {
|
tag.badge.split(" ").forEach(b => span.classList.add(b));
|
||||||
span.classList.remove("badge-light");
|
|
||||||
span.classList.add("badge-success");
|
|
||||||
}
|
|
||||||
if(tag.tag == "nsfw") {
|
|
||||||
span.classList.remove("badge-light");
|
|
||||||
span.classList.add("badge-danger");
|
|
||||||
}
|
|
||||||
if(tag.tag.startsWith(">")) {
|
|
||||||
span.classList.add("badge-greentext");
|
|
||||||
}
|
|
||||||
|
|
||||||
const delbutton = document.createElement("a");
|
const delbutton = document.createElement("a");
|
||||||
delbutton.innerHTML = " ×";
|
delbutton.innerHTML = " ×";
|
||||||
|
@ -80,7 +80,7 @@
|
|||||||
if(elem = document.querySelector(".pagination > .prev:not(.disabled)")) {
|
if(elem = document.querySelector(".pagination > .prev:not(.disabled)")) {
|
||||||
if(tts < scroll_treshold) {
|
if(tts < scroll_treshold) {
|
||||||
document.querySelector("nav.navbar").style.boxShadow = "0px 2px 0px var(--accent)";
|
document.querySelector("nav.navbar").style.boxShadow = "0px 2px 0px var(--accent)";
|
||||||
document.querySelector("nav.navbar").style.transition = ".5s ease-in-out";
|
document.querySelector("nav.navbar").style.transition = ".2s ease-in-out";
|
||||||
tts++;
|
tts++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -68,8 +68,7 @@ export default new class {
|
|||||||
parseTag(tag) {
|
parseTag(tag) {
|
||||||
if(!tag)
|
if(!tag)
|
||||||
return null;
|
return null;
|
||||||
return tag
|
return decodeURI(tag);
|
||||||
.replace(/%20/g, " ");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// async funcs
|
// async funcs
|
||||||
@ -103,8 +102,20 @@ export default new class {
|
|||||||
.leftJoin("tags", "tags.id", "tags_assign.tag_id")
|
.leftJoin("tags", "tags.id", "tags_assign.tag_id")
|
||||||
.leftJoin("user", "user.id", "tags_assign.user_id")
|
.leftJoin("user", "user.id", "tags_assign.user_id")
|
||||||
.where("tags_assign.item_id", itemid);
|
.where("tags_assign.item_id", itemid);
|
||||||
for(let t = 0; t < tags.length; t++)
|
for(let t = 0; t < tags.length; t++) {
|
||||||
tags[t].tag = tags[t].tag.replace(/[\u00A0-\u9999<>\&]/g, i => '&#'+i.charCodeAt(0)+';');
|
if(tags[t].tag.startsWith(">"))
|
||||||
|
tags[t].badge = "badge-greentext badge-light";
|
||||||
|
else if(/[а-яА-ЯЁё]/.test(tags[t].tag) || tags[t].tag.match(/russia/))
|
||||||
|
tags[t].badge = "badge-russia badge-light";
|
||||||
|
else if(tags[t].tag.match(/german/))
|
||||||
|
tags[t].badge = "badge-german badge-light";
|
||||||
|
else if(tags[t].tag === "sfw")
|
||||||
|
tags[t].badge = "badge-success";
|
||||||
|
else if(tags[t].tag === "nsfw")
|
||||||
|
tags[t].badge = "badge-danger";
|
||||||
|
else
|
||||||
|
tags[t].badge = "badge-light";
|
||||||
|
}
|
||||||
return tags;
|
return tags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ const auth = async (req, res, next) => {
|
|||||||
|
|
||||||
export default (router, tpl) => {
|
export default (router, tpl) => {
|
||||||
router.get(/^\/?(?:tag\/(?<tag>.+?))?(?:user\/(?<user>.+?))?(?:\/(?<mime>image|audio|video))?(?:\/p\/(?<page>\d+))?(?:\/(?<itemid>\d+))?$/, async (req, res) => {
|
router.get(/^\/?(?:tag\/(?<tag>.+?))?(?:user\/(?<user>.+?))?(?:\/(?<mime>image|audio|video))?(?:\/p\/(?<page>\d+))?(?:\/(?<itemid>\d+))?$/, async (req, res) => {
|
||||||
const user = req.params.user ?? null;
|
const user = req.params.user ? decodeURI(req.params.user) : null;
|
||||||
const tag = lib.parseTag(req.params.tag ?? null);
|
const tag = lib.parseTag(req.params.tag ?? null);
|
||||||
const mime = (req.params.mime ?? "");
|
const mime = (req.params.mime ?? "");
|
||||||
const smime = allowedMimes.includes(mime) ? mime + "/%" : mime === "" ? "%" : "%";
|
const smime = allowedMimes.includes(mime) ? mime + "/%" : mime === "" ? "%" : "%";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
@include(main/header_admin)
|
@include(snippets/header_admin)
|
||||||
@if(log)
|
@if(log)
|
||||||
<h1>last {{ log.length }} entries:</h1>
|
<h1>last {{ log.length }} entries:</h1>
|
||||||
<div class="logwrap">
|
<div class="logwrap">
|
||||||
@ -13,4 +13,4 @@
|
|||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
@endif
|
@endif
|
||||||
@include(main/footer)
|
@include(snippets/footer)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
@include(main/header_admin)
|
@include(snippets/header_admin)
|
||||||
<form action="/admin/test" style="margin-top: 15px;">
|
<form action="/admin/test" style="margin-top: 15px;">
|
||||||
<input type="text" name="tag" /><button type="submit">search</button>
|
<input type="text" name="tag" /><button type="submit">search</button>
|
||||||
</form>
|
</form>
|
||||||
@ -24,4 +24,4 @@
|
|||||||
@endeach
|
@endeach
|
||||||
</table>
|
</table>
|
||||||
@endif
|
@endif
|
||||||
@include(main/footer)
|
@include(snippets/footer)
|
@ -1,4 +1,4 @@
|
|||||||
@include(main/header_admin)
|
@include(snippets/header_admin)
|
||||||
<table style="width: 100%;">
|
<table style="width: 100%;">
|
||||||
<tr>
|
<tr>
|
||||||
<td>ID</td>
|
<td>ID</td>
|
||||||
@ -21,4 +21,4 @@
|
|||||||
</tr>
|
</tr>
|
||||||
@endeach
|
@endeach
|
||||||
</table>
|
</table>
|
||||||
@include(main/footer)
|
@include(snippets/footer)
|
@ -1,3 +1,3 @@
|
|||||||
@include(snippets/header)
|
@include(snippets/header)
|
||||||
<h1>{{ message }}</h1>
|
<h1 style="text-align: center;">{{ message }}</h1>
|
||||||
@include(snippets/footer)
|
@include(snippets/footer)
|
||||||
|
@ -61,8 +61,8 @@
|
|||||||
<span class="badge badge-dark" id="tags">
|
<span class="badge badge-dark" id="tags">
|
||||||
@if(typeof item.tags !== "undefined")
|
@if(typeof item.tags !== "undefined")
|
||||||
@each(item.tags as tag)
|
@each(item.tags as tag)
|
||||||
<span @if(session)tooltip="{{ tag.user }}" data-tagid="{{ tag.id }}"@endif class="badge@if(tag.tag[0] == "&") badge-greentext@endif badge-{{ (tag.tag === "nsfw" ? "danger" : tag.tag === "sfw" ? "success" : "light") }} mr-2">
|
<span @if(session)tooltip="{{ tag.user }}" data-tagid="{{ tag.id }}"@endif class="badge {{ tag.badge }} mr-2">
|
||||||
<a href="/tag/{{ tag.tag.replace(/\s/g, "%20") }}">{{ tag.tag }}</a>@if(session) <a href="#">×</a>@endif
|
<a href="/tag/{{ tag.tag.replace(/\s/g, "%20") }}">{!! tag.tag !!}</a>@if(session) <a href="#">×</a>@endif
|
||||||
</span>
|
</span>
|
||||||
@endeach
|
@endeach
|
||||||
@endif
|
@endif
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
@if(session)
|
@if(session)
|
||||||
<a class="nav-link" href="#" content="{{ session.user }}" data-toggle="dropdown">
|
<a class="nav-link" href="#" content="{{ session.user }}" data-toggle="dropdown">
|
||||||
<img src="/s/img/ava/default.png" class="avatar" /> {{ session.user }}
|
<img src="/s/img/ava/@if(session.id == 2)nixc.png@elsedefault.png@endif" class="avatar" /> {{ session.user }}
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><a href="/admin">adminpanel</a></li>
|
<li><a href="/admin">adminpanel</a></li>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user