filesafe/views/dashboard.njk
Bobby Wibowo 08410faa9a
Updates (breaking changes!)
* Updated API route: /upload/bulkdelete.
It now accepts an additional property named "field". In it you can now enter either "id" or "name", which will set whether it will bulk delete by ids or names respectively. It also no longer accepts property named "ids", instead it has to be named "values" (which of course is an array of either ids or names). So yeah, now the API route can be used to bulk delete by ids and names.
In the future this will be expanded to bulk deleting files by username (only accessible by root of course).

* Added a form to bulk delete files by names for the hardcore user, like me (https://i.fiery.me/AHph.png).

* Some design update. Mainly forms restructuring aimed at tight screens.

* Changing file name length, requesting new token and setting new password will no longer reload the dashboard page on success. Instead it will simply silently reload the form.

* utils.bulkDeleteFilesByIds() replaced by utils.bulkDeleteFiles() which now can either by ids or names. This will be the one that will eventually be extended for deleting by username.

* Various other code improvements.
2018-05-06 02:44:58 +07:00

97 lines
3.2 KiB
Plaintext

{% extends "_layout.njk" %}
{% block stylesheets %}
{{ super() }}
<link rel="stylesheet" type="text/css" href="libs/fontello/fontello.css?v={{ globals.v1 }}">
<link rel="stylesheet" type="text/css" href="css/sweetalert.css?v={{ globals.v1 }}">
<link rel="stylesheet" type="text/css" href="css/dashboard.css?v={{ globals.v1 }}">
{% endblock %}
{% block scripts %}
{{ super() }}
<script type="text/javascript" src="libs/sweetalert/sweetalert.min.js?v={{ globals.v1 }}"></script>
<script type="text/javascript" src="libs/axios/axios.min.js?v={{ globals.v1 }}"></script>
<script type="text/javascript" src="libs/clipboard.js/clipboard.min.js?v={{ globals.v1 }}"></script>
<script type="text/javascript" src="libs/lazyload/lazyload.min.js?v={{ globals.v1 }}"></script>
<script type="text/javascript" src="js/dashboard.js?v={{ globals.v1 }}"></script>
{% endblock %}
{% block content %}
{{ super() }}
<section id="auth" class="hero is-light is-fullheight">
<div class="hero-body">
<div class="container">
<h1 class="title">
Admin dashboard
</h1>
<h2 class="subtitle">
<p class="control has-addons">
<input id="token" class="input is-danger" type="text" placeholder="Your admin token">
<a id="tokenSubmit" class="button is-danger is-outlined">Check</a>
</p>
</h2>
</div>
</div>
</section>
<section id="dashboard" class="section">
<div id="panel" class="container">
<h1 class="title">
Dashboard
</h1>
<h1 class="subtitle">
A simple <strong>dashboard</strong>, to sort your uploaded stuff
</h1>
<hr>
<div class="columns">
<div class="column is-one-quarter">
<aside id="menu" class="menu">
<p class="menu-label">General</p>
<ul class="menu-list">
<li>
<a href=".">Frontpage</a>
</li>
<li>
<a id="itemUploads" onclick="page.getUploads()">Uploads</a>
</li>
<li>
<a id="itemDeleteByNames" onclick="page.deleteByNames()">Delete by names</a>
</li>
</ul>
<p class="menu-label">Albums</p>
<ul class="menu-list">
<li>
<a id="itemManageGallery" onclick="page.getAlbums()">Manage your albums</a>
</li>
<li>
<ul id="albumsContainer"></ul>
</li>
</ul>
<p class="menu-label">Administration</p>
<ul class="menu-list">
<li>
<a id="itemFileLength" onclick="page.changeFileLength()">File name length</a>
</li>
<li>
<a id="itemTokens" onclick="page.changeToken()">Manage your token</a>
</li>
<li>
<a id="itemPassword" onclick="page.changePassword()">Change your password</a>
</li>
<li>
<a id="itemLogout" onclick="page.logout()">Logout</a>
</li>
</ul>
</aside>
</div>
<div id="page" class="column has-text-centered is-third-quarters">
<img alt="logo" src="images/logo.png?v={{ globals.v2 }}">
</div>
</div>
</div>
</section>
{% include "_partial/noscript.njk" %}
{% endblock %}