Implement Node.js backend rewrite with SQLite authentication, admin dashboard and One-Click docker update

This commit is contained in:
Kroonk
2026-04-12 15:40:46 +02:00
parent 1c233db10e
commit 5747813d2d
11 changed files with 2910 additions and 105 deletions

View File

@@ -160,6 +160,11 @@
dataType: 'json',
cache: false,
success: function(files) {
if(files.length === 0) {
$main.html('<p style="text-align:center;color:#fff;padding:2em;width:100%">Bitte logge dich über den Login-Button unten links ein, um deine zugewiesenen Bilder zu sehen.</p>');
return;
}
var images = files.filter(function(f) {
if (f.type !== 'file') return false;
var ext = f.name.split('.').pop().toLowerCase();
@@ -167,7 +172,7 @@
});
if (images.length === 0) {
$main.html('<p style="text-align:center;color:#fff;padding:2em;">JSON Array from Nginx was loaded, but 0 images matched!<br/>Raw files: ' + JSON.stringify(files) + '</p>');
$main.html('<p style="text-align:center;color:#fff;padding:2em;width:100%">Es wurden noch keine passenden Bilder für diesen Account hochgeladen oder zugewiesen.</p>');
return;
}
@@ -225,7 +230,8 @@
data = exifDatas[$image_img.data('name')] = getExifDataMarkup(this);
});
}
return data !== undefined ? '<p>' + data + '</p>' : ' ';
var downBtn = '<br/><a href="' + $a.attr('href') + '" download="' + $image_img.data('name') + '" class="button small" style="margin-top:10px;">Bild Speichern <i class="fa fa-download"></i></a>';
return data !== undefined ? '<p>' + data + downBtn + '</p>' : '<p>' + downBtn + '</p>';
},
fadeSpeed: 300,
onPopupClose: function () {
@@ -273,7 +279,26 @@
return template;
}
// Galerie laden
loadGallery();
// Login Handling
$.get('/api/auth/me').done(function(u) {
$('#login-username, #login-password, #login-submit').hide();
$('#logout-btn').show().css('display', 'inline-block');
if(u.role === 'admin') {
$('#admin-link').html('<a href="/admin.html" class="button">Admin-Dashboard</a>');
}
$('#login-nav').html('Account <i class="fa fa-user"></i>');
});
$('#login-form').submit(function(e) {
e.preventDefault();
$.post('/api/auth/login', { username: $('#login-username').val(), password: $('#login-password').val() })
.done(function() { window.location.reload(); })
.fail(function(err) { alert("Login fehlgeschlagen. Bitte Zugangsdaten ueberpruefen."); });
});
$('#logout-btn').click(function(e) {
e.preventDefault();
$.post('/api/auth/logout').done(function() { window.location.reload(); });
});
})(jQuery);