From 0dcaf36332cfa79f198a0cce04a1789822acd1ca Mon Sep 17 00:00:00 2001 From: Pitu Date: Wed, 18 Jan 2017 04:05:56 -0300 Subject: [PATCH] Added browsing galleries from dashboard --- controllers/albumsController.js | 6 +++--- controllers/uploadController.js | 9 ++++++++- public/js/panel.js | 15 +++++++++++++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/controllers/albumsController.js b/controllers/albumsController.js index 72c8177..76129ec 100644 --- a/controllers/albumsController.js +++ b/controllers/albumsController.js @@ -15,6 +15,9 @@ albumsController.list = function(req, res, next){ db.table('albums').select(fields).then((albums) => { + if(req.headers.extended === undefined) + return res.json({ success: true, albums }) + let ids = [] for(let album of albums){ album.date = new Date(album.timestamp * 1000) @@ -23,9 +26,6 @@ albumsController.list = function(req, res, next){ ids.push(album.id) } - if(req.headers.extended === undefined) - return res.json({ success: true, albums }) - db.table('files').whereIn('albumid', ids).select('albumid').then((files) => { let albumsCount = {} diff --git a/controllers/uploadController.js b/controllers/uploadController.js index 2828a19..cbb4e64 100644 --- a/controllers/uploadController.js +++ b/controllers/uploadController.js @@ -77,7 +77,14 @@ uploadsController.list = function(req, res){ if(req.headers.auth !== config.adminToken) return res.status(401).send('not-authorized') - db.table('files').then((files) => { + db.table('files') + .where(function(){ + if(req.headers.albumid === undefined) + this.where('id', '<>', '') + else + this.where('albumid', req.headers.albumid) + }) + .then((files) => { db.table('albums').then((albums) => { for(let file of files){ diff --git a/public/js/panel.js b/public/js/panel.js index 439b733..8857d9c 100644 --- a/public/js/panel.js +++ b/public/js/panel.js @@ -65,7 +65,7 @@ panel.prepareDashboard = function(){ panel.getAlbumsSidebar(); } -panel.getUploads = function(){ +panel.getUploads = function(album = undefined){ panel.page.innerHTML = ''; var xhr = new XMLHttpRequest(); @@ -114,6 +114,8 @@ panel.getUploads = function(){ } } xhr.open('GET', '/api/uploads', true); + if(album !== undefined) + xhr.setRequestHeader('albumid', album); xhr.setRequestHeader('auth', panel.token); xhr.send(null); } @@ -225,7 +227,6 @@ panel.getAlbumsSidebar = function(){ return panel.verifyToken(panel.token); var json = JSON.parse(xhr.responseText); - console.log(json); if(json.success === false) return swal("An error ocurred", json.description, "error"); @@ -235,10 +236,16 @@ panel.getAlbumsSidebar = function(){ if(json.albums === undefined) return; for(var album of json.albums){ + li = document.createElement('li'); a = document.createElement('a'); + a.id = album.id; a.innerHTML = album.name; + a.addEventListener('click', function(){ + panel.getAlbum(this); + }); + li.appendChild(a); albumsContainer.appendChild(li); } @@ -250,6 +257,10 @@ panel.getAlbumsSidebar = function(){ xhr.send(null); } +panel.getAlbum = function(item){ + panel.getUploads(item.id); +} + window.onload = function () { panel.preparePage(); }