diff --git a/controllers/uploadController.js b/controllers/uploadController.js index 010498f..7082ead 100644 --- a/controllers/uploadController.js +++ b/controllers/uploadController.js @@ -84,7 +84,7 @@ uploadsController.upload = function(req, res, next){ } if(iteration === req.files.length) - return something(req, res, files, existingFiles) + return uploadsController.processFilesForDisplay(req, res, files, existingFiles) iteration++ }) @@ -96,7 +96,7 @@ uploadsController.upload = function(req, res, next){ } -function something(req, res, files, existingFiles){ +uploadsController.processFilesForDisplay = function(req, res, files, existingFiles){ let basedomain = req.get('host') for(let domain of config.domains) @@ -177,6 +177,9 @@ uploadsController.list = function(req, res){ if(req.headers.auth !== config.adminToken) return res.status(401).json({ success: false, description: 'not-authorized'}) + let offset = req.params.page + if(offset === undefined) offset = 0 + db.table('files') .where(function(){ if(req.params.id === undefined) @@ -185,6 +188,8 @@ uploadsController.list = function(req, res){ this.where('albumid', req.params.id) }) .orderBy('id', 'DESC') + .limit(25) + .offset(25 * offset) .then((files) => { db.table('albums').then((albums) => { diff --git a/public/js/panel.js b/public/js/panel.js index 5608ad2..0f885cd 100644 --- a/public/js/panel.js +++ b/public/js/panel.js @@ -69,11 +69,13 @@ panel.prepareDashboard = function(){ panel.getAlbumsSidebar(); } -panel.getUploads = function(album = undefined){ +panel.getUploads = function(album = undefined, page = undefined){ - let url = '/api/uploads' + if(page === undefined) page = 0; + + let url = '/api/uploads/' + page if(album !== undefined) - url = '/api/album/' + album + url = '/api/album/' + album + '/' + page axios.get(url) .then(function (response) { @@ -82,9 +84,27 @@ panel.getUploads = function(album = undefined){ else return swal("An error ocurred", response.data.description, "error"); } + + var prevPage = 0; + var nextPage = page + 1; + + if(response.data.files.length < 25) + nextPage = page; + + if(page > 0) prevPage = page - 1; + panel.page.innerHTML = ''; var container = document.createElement('div'); container.innerHTML = ` +
+
+ +
+
+ @@ -96,7 +116,17 @@ panel.getUploads = function(album = undefined){ -
`; + + +
+
+ +
+
+ `; panel.page.appendChild(container); var table = document.getElementById('table'); diff --git a/routes/api.js b/routes/api.js index f007de7..2e71500 100644 --- a/routes/api.js +++ b/routes/api.js @@ -12,11 +12,14 @@ routes.get ('/check', (req, res, next) => { }) routes.get ('/uploads', (req, res, next) => uploadController.list(req, res)) +routes.get ('/uploads/:page', (req, res, next) => uploadController.list(req, res)) routes.post ('/upload', (req, res, next) => uploadController.upload(req, res, next)) routes.post ('/upload/delete', (req, res, next) => uploadController.delete(req, res, next)) routes.post ('/upload/:albumid', (req, res, next) => uploadController.upload(req, res, next)) routes.get ('/album/:id', (req, res, next) => uploadController.list(req, res, next)) +routes.get ('/album/:id/:page', (req, res, next) => uploadController.list(req, res, next)) + routes.get ('/albums', (req, res, next) => albumsController.list(req, res, next)) routes.get ('/albums/:sidebar', (req, res, next) => albumsController.list(req, res, next)) routes.post ('/albums', (req, res, next) => albumsController.create(req, res, next))