new backend

This commit is contained in:
Flummi
2021-12-04 12:19:47 +01:00
parent d885dd8e4e
commit 43665884f6
42 changed files with 946 additions and 1226 deletions

View File

@ -1,4 +1,4 @@
{{include main/header}}
@include(main/header)
<div class="about">
<div>
<a href="/48908"><img src="/s/img/loool.webp" /></a>
@ -50,4 +50,4 @@
<p>Logs:No for Tor - Yes for cloudflare and cloudflare probably sells your soul to the devil, however our webserver doesn't log cloudflare connecting to our webserver, if you want to lurk without being flared by the cloud, see the above tor section my man</p>
<p>But let me tell you something about internet "privacy". At first you need to understand what it means to have "privacy", for me as a human the word privacy means that I am by myself, private not observable by others, on the internet this concept does not work, in real life you might lock your door and then no one can enter the normal way to your room and you have some good old fashioned privacy, but on the internet various applications on your computer including extensions for your browser might make connections without you knowing or even giving consent if you knew, most applications send heartbeats, store information, read files on your computer, they might even process the gained data with or without you knowing or consenting to any of it, you probably accepted in good faith the ToS of many services without ever reading them, in the end it's up to you if you give a shit about your privacy, btw a VPN wont help if you still got all the tracking cookies and shit in your browser, they will just add 1+1 and you are identified again. My honest advice for anyone who seeks total privacy without bullshit, disconnect from the internet, remove the internet from your life, it's a bulletproof solution! With that being said, have a good day!</p>
</div>
{{include main/footer}}
@include(main/footer)

View File

@ -1,3 +1,3 @@
{{include main/header_admin}}
@include(main/header_admin)
{{include main/footer}}
@include(main/footer)

28
views/admin/log.html Normal file
View File

@ -0,0 +1,28 @@
@include(main/header_admin)
@if(log)
<h1>last {{ log.length }} entries:</h1>
<div class="logwrap">
@each(log as line)
<p>{{ line }}</p>
@endeach
</div>
<style>
div.logwrap {
height: 600px;
overflow-y: scroll;
text-align: left;
direction: rtl;
}
div.logwrap > p {
direction: ltr;
line-height: 0;
}
</style>
<script>
(() => {
const d = document.querySelector("div.logwrap");
d.scrollTop = d.scrollHeight;
})();
</script>
@endif
@include(main/footer)

27
views/admin/search.html Normal file
View File

@ -0,0 +1,27 @@
@include(main/header_admin)
<form action="/admin/test" style="margin-top: 15px;">
<input type="text" name="tag" /><button type="submit">search</button>
</form>
<hr />
@if(result)
<h1>{{ result.length }} f0cks given</h1>
<table style="width: 100%;">
<tr>
<td style="text-align: center;">Thumbnail</td>
<td style="text-align: center;">ID</td>
<td style="text-align: center;">Tag</td>
<td style="text-align: center;">Username</td>
<td style="text-align: center;">Score</td>
</tr>
@each(result as line)
<tr>
<td style="width: 128px;"><a href="/{{ line.id }}" target="_blank"><img src="/t/{{ line.id }}.png" /></a></td>
<td style="text-align: center;"><a href="/{{ line.id }}" target="_blank">{{ line.id }}</a></td>
<td style="text-align: center;"><a href="/admin/test?tag={{ line.tag.replace(/\s/g, "+") }}">{{ line.tag }}</a></td>
<td style="text-align: center;">{{ line.username }}</td>
<td style="text-align: center;">{{ line.score }}</td>
</tr>
@endeach
</table>
@endif
@include(main/footer)

24
views/admin/sessions.html Normal file
View File

@ -0,0 +1,24 @@
@include(main/header_admin)
<table style="width: 100%;">
<tr>
<td>ID</td>
<td>userid</td>
<td>user</td>
<td>browser</td>
<td>created_at</td>
<td>last_used</td>
<td>last_action</td>
</tr>
@each(sessions as session)
<tr>
<td>{{ session.id }}</td>
<td>{{ session.user_id }}</td>
<td>{{ session.user }}</td>
<td>{{ session.browser }}</td>
<td>{{ new Date(session.created_at * 1e3).toLocaleString("de-DE") }}</td>
<td>{{ new Date(session.last_used * 1e3).toLocaleString("de-DE") }}</td>
<td>{{ session.last_action }}</td>
</tr>
@endeach
</table>
@include(main/footer)

View File

@ -1,27 +0,0 @@
{{include main/header_admin}}
<form action="/admin/test" style="margin-top: 15px;">
<input type="text" name="tag" /><button type="submit">search</button>
</form>
<hr />
{{if result}}
<h1>{{=result.length}} f0cks given</h1>
<table style="width: 100%;">
<tr>
<td style="text-align: center;">Thumbnail</td>
<td style="text-align: center;">ID</td>
<td style="text-align: center;">Tag</td>
<td style="text-align: center;">Username</td>
<td style="text-align: center;">Score</td>
</tr>
{{each result as line}}
<tr>
<td style="width: 128px;"><a href="/{{=line.id}}" target="_blank"><img src="/t/{{=line.id}}.png" /></a></td>
<td style="text-align: center;"><a href="/{{=line.id}}" target="_blank">{{=line.id}}</a></td>
<td style="text-align: center;"><a href="/admin/test?tag={{=line.tag.replace(/\s/g, "+")}}">{{=line.tag}}</a></td>
<td style="text-align: center;">{{=line.username}}</td>
<td style="text-align: center;">{{=line.score}}</td>
</tr>
{{/each}}
</table>
{{/if}}
{{include main/footer}}

View File

@ -1,24 +0,0 @@
{{include main/header_admin}}
<table style="width: 100%;">
<tr>
<td>ID</td>
<td>userid</td>
<td>user</td>
<td>browser</td>
<td>created_at</td>
<td>last_used</td>
<td>last_action</td>
</tr>
{{each sessions as session}}
<tr>
<td>{{=session.id}}</td>
<td>{{=session.user_id}}</td>
<td>{{=session.user}}</td>
<td>{{=session.browser}}</td>
<td>{{=new Date(session.created_at * 1e3).toLocaleString("de-DE")}}</td>
<td>{{=new Date(session.last_used * 1e3).toLocaleString("de-DE")}}</td>
<td>{{=session.last_action}}</td>
</tr>
{{/each}}
</table>
{{include main/footer}}

View File

@ -1,6 +0,0 @@
{{include main/header}}
<div class="contact">
<a href="/48908"><img src="/s/img/loool.webp" style="margin-right: 5px; max-width: 100%; height: auto;" /></a>
<p style="font-size: 7pt; margin-top: 0;">thanks to our turkish fellow lol@n0xy/#f0ck for this gif &lt;3</p>
</div>
{{include main/footer}}

View File

@ -1,9 +1,9 @@
{{include main/header}}
<div class="index-container">
<div id="posts">
{{each items as item}}
<a href="/{{if typeof filter !== "undefined"}}{{=filter}}/{{/if}}{{=item.id}}" data-mime="{{=item.mime}}" style="background-image: url('/t/{{=item.id}}.png')"></a>
{{/each}}
</div>
</div>
{{include main/footer}}
@include(main/header)
<div class="index-container">
<div id="posts">
@each(items as item)
<a href="/@if(typeof filter !== "undefined"){{ filter }}/@endif{{ item.id }}" data-mime="{{ item.mime }}" data-mode="{{ item.tag_id ? ['','sfw','nsfw'][item.tag_id] : 'null' }}" style="background-image: url('/t/{{ item.id }}.png')"><p></p></a>
@endeach
</div>
</div>
@include(main/footer)

View File

@ -1,78 +1,78 @@
{{include main/header}}
<div class="container">
<div class="content">
<div class="next-post">
{{if pagination.prev}}
<div class="arrow-next">
<a id="next" href="{{=pagination.link}}{{=pagination.prev}}"></a>
</div>
{{else}}
<div class="arrow-next">
<a id="next" href="#" style="color: #ccc !important;"></a>
</div>
{{/if}}
</div>
<div class="media-object">
<div hidden class="f0ck95"><img src="/s/img/f0ck95/computer.png" alt="f0ck95" loading="lazy" /><a href="/random">Random</a></div>
{{if item.mime.startsWith("video")}}
<div class="embed-responsive embed-responsive-16by9">
<video id="my-video" class="embed-responsive-item" width="640" height="360" src="{{=item.dest}}"
preload="auto" autoplay controls loop playsinline></video>
</div>
{{elseif item.mime.startsWith("audio")}}
<div class="embed-responsive embed-responsive-16by9" style="background: url('{{if item.coverart}}{{=item.coverart}}{{else}}/s/img/200.gif{{/if}}') no-repeat center / contain black;">
<audio id="my-video" class="embed-responsive-item" autoplay controls loop src="{{=item.dest}}" data-setup="{}" poster="{{if item.coverart}}{{=item.coverart}}{{else}}/s/img/200.gif{{/if}}" type="{{=item.mime}}"></audio>
</div>
{{elseif item.mime.startsWith("image")}}
<div class="embed-responsive embed-responsive-16by9">
<div class="embed-responsive-image" id="image-scroll">
<a href="{{=item.dest}}" id="elfe" target="_blank"><img id="f0ck-image" class="img-fluid" src="{{=item.dest}}" loading="lazy" decoding="async"/></a>
</div>
</div>
{{else}}
<h1>404 - Not f0cked</h1>
{{/if}}
</div>
<div class="previous-post">
{{if pagination.next}}
<div class="arrow-prev">
<a id="prev" href="{{=pagination.link}}{{=pagination.next}}"></a>
</div>
{{else}}
<div class="arrow-prev">
<a id="prev" href="#" style="color: #ccc !important;"></a>
</div>
{{/if}}
</div>
</div>
<div class="metadata">
<span class="badge badge-dark">
<a href="/{{=item.id}}" style="--hover-image: url('/t/{{=item.id}}.png');" class="id-link">{{=item.id}}</a>{{if session}} (<span id="a_username">{{=user.name}}</span>){{/if}}
</span>
<span class="badge badge-dark">{{=user.network}} / {{=user.channel}}</span>
<span class="badge badge-dark image-source"><a class="post_source" title="{{=item.src.long}}" href="{{=item.src.long}}" target="_blank">{{=item.src.short}}</a></span>
<span class="badge badge-dark"><a class="dest-link" href="{{=item.dest}}" target="_blank">{{=item.mime}}</a> / {{=item.size}}</span>
<span class="badge badge-dark"><time class="timeago" title="{{=item.timestamp}}" datetime="{{=item.timestamp}}">{{=item.timestamp}}</time></span>
<span class="badge badge-dark">
{{if session}}
<a href="#" id="a_delete">delete</a>
{{else}}
{{=lul}}
{{/if}}
</span>
<span class="badge badge-dark" id="tags">
{{if typeof item.tags !== "undefined"}}
{{each item.tags as tag}}
<span {{if session}}title="{{=tag.prefix}}"{{/if}} class="badge {{if tag.tag[0] == "&"}}badge-greentext{{/if}} badge-{{=(tag.tag === "nsfw" ? "danger" : tag.tag === "sfw" ? "success" : "light")}} mr-2">
{{if session}}<a href="/admin/test?tag={{=tag.tag.replace(/\s/g, "+")}}" target="_blank" style="color: inherit !important;">{{/if}}{{=tag.tag}}{{if session}}</a>&nbsp;<a href="#">&#215;</a>{{/if}}
</span>
{{/each}}
{{/if}}
{{if session}}
<a href="#" id="a_addtag">add tag</a>
&nbsp;-&nbsp;<a href="#" id="a_toggle">toggle</a>
{{/if}}
</span>
</div>
</div>
{{include main/footer}}
@include(main/header)
<div class="container">
<div class="content">
<div class="next-post">
@if(pagination.prev)
<div class="arrow-next">
<a id="next" href="{{ pagination.link }}{{ pagination.prev }}"></a>
</div>
@else
<div class="arrow-next">
<a id="next" href="#" style="color: #ccc !important;"></a>
</div>
@endif
</div>
<div class="media-object">
<div hidden class="f0ck95"><img src="/s/img/f0ck95/computer.png" alt="f0ck95" loading="lazy" /><a href="/random">Random</a></div>
@if(item.mime.startsWith("video"))
<div class="embed-responsive embed-responsive-16by9">
<video id="my-video" class="embed-responsive-item" width="640" height="360" src="{{ item.dest }}"
preload="auto" autoplay controls loop playsinline></video>
</div>
@elseif(item.mime.startsWith("audio"))
<div class="embed-responsive embed-responsive-16by9" style="background: url('@if(item.coverart)//f0ck.me{{ item.coverart }}@else/s/img/200.gif@endif') no-repeat center / contain black;"></div>
<audio id="my-video" class="embed-responsive-item" autoplay controls loop src="{{ item.dest }}" data-setup="{}" poster="@if(item.coverart){{ item.coverart }}@else/s/img/200.gif@endif" type="{{ item.mime }}"></audio>
</div>
@elseif(item.mime.startsWith("image"))
<div class="embed-responsive embed-responsive-16by9">
<div class="embed-responsive-image" id="image-scroll">
<a href="{{ item.dest }}" id="elfe" target="_blank"><img id="f0ck-image" class="img-fluid" src="{{ item.dest }}" loading="lazy" decoding="async"/></a>
</div>
</div>
@else
<h1>404 - Not f0cked</h1>
@endif
</div>
<div class="previous-post">
@if(pagination.next)
<div class="arrow-prev">
<a id="prev" href="{{ pagination.link }}{{ pagination.next }}"></a>
</div>
@else
<div class="arrow-prev">
<a id="prev" href="#" style="color: #ccc !important;"></a>
</div>
@endif
</div>
</div>
<div class="metadata">
<span class="badge badge-dark">
<a href="/{{ item.id }}" style="--hover-image: url('/t/{{ item.id }}.png');" class="id-link">{{ item.id }}</a>@if(session) (<span id="a_username">{{ user.name }}</span>)@endif
</span>
<span class="badge badge-dark">{{ user.network }} / {{ user.channel }}</span>
<span class="badge badge-dark image-source"><a class="post_source" title="{{ item.src.long }}" href="{{ item.src.long }}" target="_blank">{{ item.src.short }}</a></span>
<span class="badge badge-dark"><a class="dest-link" href="{{ item.dest }}" target="_blank">{{ item.mime }}</a> / {{ item.size }}</span>
<span class="badge badge-dark"><time class="timeago" title="{{ item.timestamp }}" datetime="{{ item.timestamp }}">{{ item.timestamp }}</time></span>
<span class="badge badge-dark">
@if(session)
<a href="#" id="a_delete">delete</a>
@else
{{ lul }}
@endif
</span>
<span class="badge badge-dark" id="tags">
@if(typeof item.tags !== "undefined")
@each(item.tags as tag)
<span @if(session)title="{{ tag.prefix }}"@endif class="badge @if(tag.tag[0] == "&")badge-greentext@endif badge-{{ (tag.tag === "nsfw" ? "danger" : tag.tag === "sfw" ? "success" : "light") }} mr-2">
@if(session)<a href="/admin/test?tag={{ tag.tag.replace(/\s/g, "%20") }}" target="_blank" style="color: inherit !important;">@endif{{ tag.tag }}@if(session)</a>&nbsp;<a href="#">&#215;</a>@endif
</span>
@endeach
@endif
@if(session)
<a href="#" id="a_addtag">add tag</a>
&nbsp;-&nbsp;<a href="#" id="a_toggle">toggle</a>
@endif
</span>
</div>
</div>
@include(main/footer)

View File

@ -1,5 +1,5 @@
<!doctype f0ck>
<html theme="{{if typeof theme !== "undefined" }}{{=theme}}{{/if}}">
<html theme="@if(typeof theme !== "undefined"){{ theme }}@endif">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

View File

@ -1,6 +1,7 @@
<script async src="/s/js/theme.js"></script>
<script src="/s/js/v0ck.js"></script>
<script src="/s/js/f0ck.js"></script>
{{if session}}<script src="/s/js/admin.js?v=3"></script>{{/if}}
</body>
</html>
@if(session)<!--<div style="position: fixed; bottom: 0; z-index: 998; background-color: var(--bg); width: 100%; height: 29px; border-top: 1px solid var(--accent)">{{ JSON.stringify(session) }}</div>-->@endif
<script async src="/s/js/theme.js"></script>
<script src="/s/js/v0ck.js"></script>
<script src="/s/js/f0ck.js"></script>
@if(session)<script src="/s/js/admin.js"></script>@endif
</body>
</html>

View File

@ -1,40 +0,0 @@
<script>
var userMenuDiv = document.getElementById("userMenu");
var userMenu = document.getElementById("userButton");
var navMenuDiv = document.getElementById("nav-content");
var navMenu = document.getElementById("nav-toggle");
document.onclick = check;
function check(e) {
var target = (e && e.target) || (event && event.srcElement);
if(!checkParent(target, userMenuDiv)) {
if(checkParent(target, userMenu)) {
if(userMenuDiv.classList.contains("invisible"))
userMenuDiv.classList.remove("invisible");
else
userMenuDiv.classList.add("invisible");
}
else
userMenuDiv.classList.add("invisible");
}
if(!checkParent(target, navMenuDiv)) {
if(checkParent(target, navMenu)) {
if(navMenuDiv.classList.contains("hidden"))
navMenuDiv.classList.remove("hidden");
else
navMenuDiv.classList.add("hidden");
}
else
navMenuDiv.classList.add("hidden");
}
}
function checkParent(t, elm) {
while(t.parentNode) {
if(t == elm)
return true;
t = t.parentNode;
}
return false;
}
</script>
</body>
</html>

View File

@ -1,21 +1,11 @@
<!cocktype big f0ck>
<html lang="en" theme="{{if typeof theme !== "undefined" }}{{=theme}}{{/if}}">
<head>
<title>{{if data.title}}{{=data.title}}{{else}}f0ck!{{/if}}</title>
<link rel="icon" type="image/gif" href="/s/img/favicon.gif" />
<link rel="stylesheet" href="/s/css/f0ck.css">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
{{if data.item}}
<meta property="og:site_name" content="f0ck.me" />
{{if item.tags}}
<meta property="og:description" content="{{each item.tags as tag}}{{=tag.tag.replace(/[\\$'"]/g, "\\$&")}},{{/each}}f0ck" />
<meta name="description" content="{{each item.tags as tag}}{{=tag.tag.replace(/[\\$'"]/g, "\\$&")}},{{/each}}f0ck" />
{{/if}}
<meta property="og:image" content="{{=item.thumbnail}}" />
{{else}}
<meta name="description" content="f0ck.me is the place where internet purists gather to celebrate content of all kinds">
{{/if}}
</head>
<body>
{{include snippets/navbar}}
<!cocktype big f0ck>
<html lang="en" theme="@if(typeof theme !== "undefined"){{ theme }}@endif">
<head>
<title>f0ck!</title>
<link rel="icon" type="image/gif" href="/s/img/favicon.gif" />
<link rel="stylesheet" href="/s/css/f0ck.css">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
@include(snippets/navbar)

View File

@ -1,18 +1,18 @@
<!cocktype big f0ck>
<html lang="en" theme="{{if typeof theme !== "undefined" }}{{=theme}}{{/if}}">
<html lang="en" theme="@if(typeof theme !== "undefined"){{ theme }}@endif">
<head>
<title>{{if data.title}}{{=data.title}}{{else}}f0ck!{{/if}}</title>
<title>@if(typeof data !== "undefined" && data.title){{ data.title }}@elsef0ck!@endif</title>
<link rel="icon" type="image/gif" href="/s/img/favicon.gif" />
<link rel="stylesheet" href="/s/css/f0ck.css">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="f0ck.me is the place where internet purists gather to celebrate content of all kinds">
{{if data.item}}
@if(typeof data !== "undefined" && data.item)
<meta property="og:site_name" content="f0ck.me" />
<meta property="og:description"/>
<meta name="Description"/>
<meta property="og:image" content="{{=item.thumbnail}}" />
{{/if}}
<meta property="og:image" content="{{ item.thumbnail }}" />
@endif
</head>
<body>
{{include snippets/navbar_admin}}
@include(snippets/navbar_admin)

View File

@ -1,15 +1,15 @@
{{if typeof pagination !== "undefined"}}
<nav class="pagination">
<a href="{{=pagination.link}}{{=pagination.start}}" class="page-item-1 btn start{{if !pagination.prev}} disabled{{/if}}">&laquo;</a>
<a href="{{=pagination.link}}{{=pagination.prev}}" class="page-item-2 btn prev{{if !pagination.prev}} disabled{{/if}}">&lsaquo;</a>
{{each pagination.cheat as i}}
{{if i == pagination.page}}
<span class="btn disabled">{{=i}}</span>
{{else}}
<a href="{{=pagination.link}}{{=i}}" class="pagination-int-item btn">{{=i}}</a>
{{/if}}
{{/each}}
<a href="{{=pagination.link}}{{=pagination.next}}" class="page-item-3 btn next{{if !pagination.next}} disabled{{/if}}">&rsaquo;</a>
<a href="{{=pagination.link}}{{=pagination.end}}" class="page-item-4 btn start{{if !pagination.next}} disabled{{/if}}">&raquo;</a>
</nav>
{{/if}}
@if(typeof pagination !== "undefined")
<nav class="pagination">
<a href="{{ pagination.link }}{{ pagination.start }}" class="page-item-1 btn start@if(!pagination.prev) disabled@endif">&laquo;</a>
<a href="{{ pagination.link }}{{ pagination.prev }}" class="page-item-2 btn prev@if(!pagination.prev) disabled@endif">&lsaquo;</a>
@each(pagination.cheat as i)
@if(i == pagination.page)
<span class="btn disabled">{{ i }}</span>
@else
<a href="{{ pagination.link }}{{ i }}" class="pagination-int-item btn">{{ i }}</a>
@endif
@endeach
<a href="{{ pagination.link }}{{ pagination.next }}" class="page-item-3 btn next@if(!pagination.next) disabled@endif">&rsaquo;</a>
<a href="{{ pagination.link }}{{ pagination.end }}" class="page-item-4 btn start@if(!pagination.next) disabled@endif">&raquo;</a>
</nav>
@endif

View File

@ -1,52 +1,64 @@
<nav class="navbar navbar-expand-lg">
<a class="navbar-brand" href="/"><span class="f0ck" width="" height="">F0CK</span></a>
<div class="navigation-links">
<ul class="navbar-nav">
<li class="nav-item">
{{if session}}
<li class="nav-item dropdown">
<a class="nav-link" href="/admin" content="{{=session.user}}" data-toggle="dropdown">Admin</a>
<ul class="dropdown-menu">
<li><a href="/admin">adminpanel</a></li>
<li><a href="/admin/sessions">sessions</a></li>
<li><a href="/admin/test">search (wip)</a></li>
<li><a href="/logout">logout</a></li>
</ul>
</li>
{{else}}
<a class="nav-link" href="/about"><span class="nav-link-identifier">About</span></a>
{{/if}}
</li>
<li class="nav-item dropdown" id="themes">
<a class="nav-link" href="#" content="{{=theme}}" data-toggle="dropdown">Theme</a>
<ul class="dropdown-menu">
{{each themes as t}}
<li><a href="/theme/{{=t}}">{{=t}}</a></li>
{{/each}}
</ul>
</li>
<span class="placeholder">&nbsp;</span>
<li class="nav-item dropdown">
<a class="nav-link" href="#"{{if typeof filter !== "undefined"}} content="{{=filter}}" data-toggle="dropdown"{{/if}}">Filter{{if typeof filter === "undefined"}}&nbsp;&#9660;{{/if}}</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/">All</a></li>
<li><a class="dropdown-item" href="/audio">Audio</a></li>
<li><a class="dropdown-item" href="/video">Video</a></li>
<li><a class="dropdown-item" href="/image">Image</a></li>
</ul>
</li>
<li class="nav-item">
<a id="random" class="nav-link" href="/random{{if typeof filter !== "undefined"}}/{{=filter}}{{/if}}">
<span class="nav-link-identifier">Random</span>
</a>
</li>
</ul>
</div>
<div class="collapse navbar-collapse show" id="navbarSupportedContent">
<div class="pagination-container-fluid">
<div class="pagination-wrapper">
{{include partials/pagination}}
</div>
</div>
</div>
</nav>
<nav class="navbar navbar-expand-lg">
<a class="navbar-brand" href="/"><span class="f0ck" width="" height="">F0CK</span></a>
<div class="navigation-links">
<ul class="navbar-nav">
<li class="nav-item dropdown">
@if(session)
<a class="nav-link" href="/admin" content="{{ session.user }}" data-toggle="dropdown">Admin</a>
<ul class="dropdown-menu">
<li><a href="/admin">adminpanel</a></li>
<li><a href="/admin/sessions">sessions</a></li>
<li><a href="/admin/test">search (wip)</a></li>
<li><a href="/about">About</a></li>
<li><a href="/logout">logout</a></li>
</ul>
@else
<a class="nav-link" href="/about" data-toggle="dropdown">About</a>
<ul class="dropdown-menu">
<li><a href="/login">login</a></li>
</ul>
@endif
</li>
<li class="nav-item dropdown" id="themes">
<a class="nav-link ddcontent" href="#" content="{{ theme }}" data-toggle="dropdown">Theme</a>
<ul class="dropdown-menu">
@each(themes as t)
<li><a href="/theme/{{ t }}">{{ t }}</a></li>
@endeach
</ul>
</li>
<span class="placeholder">&nbsp;</span>
<li class="nav-item dropdown">
<a class="nav-link ddcontent" href="#"@if(typeof filter !== "undefined") content="{{ filter }}" data-toggle="dropdown"@endif>Filter@if(typeof filter === "undefined")&nbsp;&#9660;@endif</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/">All</a></li>
<li><a class="dropdown-item" href="/audio">Audio</a></li>
<li><a class="dropdown-item" href="/video">Video</a></li>
<li><a class="dropdown-item" href="/image">Image</a></li>
</ul>
</li>
@if(session)
<li class="nav-item @if(session)dropdown@endif">
<a class="nav-link ddcontent" href="#"@if(typeof session.mode !== "undefined") content="{{ modes[session.mode] ?? 'sfw' }}" data-toggle="dropdown"@endif>Mode</a>
<ul class="dropdown-menu">
@for(let i = 0; i < modes.length; i++)
<li><a class="dropdown-item" href="/mode/{{ i }}">{{ modes[i] }}</a></li>
@endfor
</ul>
</li>
@endif
<li class="nav-item">
<a id="random" class="nav-link" href="/random@if(typeof filter !== "undefined")/{{ filter }}@endif">
<span class="nav-link-identifier">Random</span>
</a>
</li>
</ul>
</div>
<div class="collapse navbar-collapse show" id="navbarSupportedContent">
<div class="pagination-container-fluid">
<div class="pagination-wrapper">
@include(partials/pagination)
</div>
</div>
</div>
</nav>

View File

@ -3,11 +3,11 @@
<div class="navigation-links">
<ul class="navbar-nav">
<li class="nav-item dropdown" id="themes">
<a class="nav-link" href="#" content="{{=theme}}" data-toggle="dropdown">Theme</a>
<a class="nav-link" href="#" content="{{ theme }}" data-toggle="dropdown">Theme</a>
<ul class="dropdown-menu">
{{each themes as t}}
<li><a href="/theme/{{=t}}">{{=t}}</a></li>
{{/each}}
@each(themes as t)
<li><a href="/theme/{{ t }}">{{ t }}</a></li>
@endeach
</ul>
</li>
<li class="nav-item">
@ -21,22 +21,22 @@
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">
<span class="nav-link-identifier">blah</span>
<a class="nav-link" href="/admin/log">
<span class="nav-link-identifier">Log</span>
</a>
</li>
{{if typeof totals !== "undefined"}}
@if(typeof totals !== "undefined")
<li class="nav-item" style="width: 100%; text-align: center">
total:&nbsp;{{=totals.total}}&nbsp;|&nbsp;tagged:&nbsp;{{=totals.tagged}}&nbsp;|&nbsp;untagged:&nbsp;{{=totals.untagged}}
total:&nbsp;{{ totals.total }}&nbsp;|&nbsp;tagged:&nbsp;{{ totals.tagged }}&nbsp;|&nbsp;untagged:&nbsp;{{ totals.untagged }}&nbsp;|&nbsp;sfw:&nbsp;{{ totals.sfw }}&nbsp;|&nbsp;nsfw:&nbsp;{{ totals.nsfw }}
</li>
{{/if}}
@endif
</ul>
</div>
<div class="collapse navbar-collapse show" id="navbarSupportedContent">
<div class="pagination-container-fluid">
<div class="pagination-wrapper">
Henlo, {{=session.user}}&nbsp;&nbsp;<a href="/logout">Logout</a>
{{include partials/pagination}}
Henlo, {{ session.user }}&nbsp;&nbsp;<a href="/logout">Logout</a>
@include(partials/pagination)
</div>
</div>
</div>