From 5fc0c2c2c65f1862ee7c430a6b39f280e779eed8 Mon Sep 17 00:00:00 2001 From: Clive Chan Date: Sat, 14 Sep 2019 16:40:21 -0400 Subject: [PATCH] Add /list to show non-editably --- app.js | 2 ++ controllers/admin/FrontendController.js | 10 ++++++++++ routes/list.js | 7 +++++++ views/admin/list.jade | 20 ++++++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 routes/list.js create mode 100644 views/admin/list.jade diff --git a/app.js b/app.js index 581cf85..27ee0c9 100644 --- a/app.js +++ b/app.js @@ -44,6 +44,8 @@ var redirectController = require('./controllers/RedirectController')(redis); //Initialize routes var admin = require('./routes/admin.js')(frontendController, apiController); app.use('/admin', admin); +var list = require('./routes/list.js')(frontendController, apiController); +app.use('/list', list); var main = require('./routes/main.js')(rootRedirect, redirectController); app.use('/', main); app.use(function(req, res, next) { diff --git a/controllers/admin/FrontendController.js b/controllers/admin/FrontendController.js index 2796807..5c17b01 100644 --- a/controllers/admin/FrontendController.js +++ b/controllers/admin/FrontendController.js @@ -40,6 +40,16 @@ module.exports = function(redis, passport) { }); }; + FrontendController.list = function(req, res) { + Redirect.getAll(function(err, redirects) { + if (err) + res.status(500).send(err); + else { + res.status(200).render('admin/list', { redirects: redirects }); + } + }); + }; + FrontendController.createRedirect = function(req, res) { var key = req.body.key; var url = req.body.url; diff --git a/routes/list.js b/routes/list.js new file mode 100644 index 0000000..2580e57 --- /dev/null +++ b/routes/list.js @@ -0,0 +1,7 @@ +var express = require('express'); + +module.exports = function(frontend, api) { + var router = express.Router(); + router.get('/', frontend.list); + return router; +}; diff --git a/views/admin/list.jade b/views/admin/list.jade new file mode 100644 index 0000000..e8e35a2 --- /dev/null +++ b/views/admin/list.jade @@ -0,0 +1,20 @@ +html + head + title redisred list + link(rel="stylesheet", href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css") + meta(name="viewport",content="width=device-width, initial-scale=1") + body + div.container-fluid(style="max-width: 1000px;") + h1 redisred list + table.table.table-striped(style="table-layout: fixed;") + tr + th.col-sm-2 Key + th.col-sm-7 URL + th.col-sm-3(colspan=3) Clicks + each redirect in redirects + tr + td.col-sm-2(style="overflow: hidden; text-overflow: ellipsis; word-break: keep-all;") + a(href=("/"+redirect.key))=redirect.key + td.col-sm-7(style="overflow: hidden; text-overflow: ellipsis; word-break: keep-all;") + a(href=redirect.url)= redirect.url + td.col-sm-1= redirect.clicks