From 6c046dde8100e5d5611c29cf9425530c2eede94e Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Sun, 6 Nov 2022 11:40:45 -0500 Subject: [PATCH] Added license view and edit functions --- assets/styles/gargoyle.scss | 7 +++-- index.js | 3 +++ src/routes/license.js | 52 ++++++++++++++++++++++++++++++++++++ views/license/edit.twig | 53 +++++++++++++++++++++++++++++++++++++ views/license/view.twig | 43 ++++++++++++++++++++++++++++++ 5 files changed, 156 insertions(+), 2 deletions(-) create mode 100644 views/license/edit.twig create mode 100644 views/license/view.twig diff --git a/assets/styles/gargoyle.scss b/assets/styles/gargoyle.scss index 12956af..4d84834 100644 --- a/assets/styles/gargoyle.scss +++ b/assets/styles/gargoyle.scss @@ -86,7 +86,8 @@ input[type="submit"].button-primary{ } } -#item-header{ +#item-header, +#license-header{ margin-bottom: 25px; h1, @@ -96,7 +97,9 @@ input[type="submit"].button-primary{ } .item-added-date, - .item-updated-date{ + .item-updated-date, + .license-added-date, + .license-updated-date{ margin-bottom: 5px; color: #666; font-size: 1.6rem; diff --git a/index.js b/index.js index a10a7d0..a8d47ff 100644 --- a/index.js +++ b/index.js @@ -58,6 +58,9 @@ app.get('/item/:id/edit', itemRoutes.getItemEdit); app.post('/item/:id/edit', itemRoutes.postItemEdit); app.get('/license/add', licenseRoutes.getAdd); app.post('/license/add', licenseRoutes.postAdd); +app.get('/license/:id', licenseRoutes.getLicense); +app.get('/license/:id/edit', licenseRoutes.getEdit); +app.post('/license/:id/edit', licenseRoutes.postEdit); // start app app.listen(config.get('server.port'), config.get('server.address'), () => { diff --git a/src/routes/license.js b/src/routes/license.js index fb0d909..c5654b2 100644 --- a/src/routes/license.js +++ b/src/routes/license.js @@ -20,3 +20,55 @@ exports.postAdd = async function(req, res) { res.redirect('/'); }; + +// GET - /license/{id} +exports.getLicense = async function(req, res) { + const license = await License.findAll({ + where: { + id: req.params.id, + }, + }); + + res.render('license/view.twig', { + license: license[0], + }); +}; + +// GET - /license/{id}/edit +exports.getEdit = async function(req, res) { + const license = await License.findAll({ + where: { + id: req.params.id, + }, + }); + + res.render('license/edit.twig', { + license: license[0], + }); +}; + +// POST - /license/{id}/edit +exports.postEdit = async function(req, res) { + // fetch license from DB + const licenseSearch = await License.findAll({ + where: { + id: req.params.id, + }, + }); + + // retrieve the license record from the array for ease of use + const license = licenseSearch[0]; + + // update license attributes + license.name = req.body.license_name; + license.key = req.body.license_key; + license.manufacturer = req.body.license_manufacturer; + license.purchasedFrom = req.body.license_purchase_from; + license.purchasedAt = req.body.license_purchase_date; + + // save attribute changes + await license.save(); + + // redirect user to license page + res.redirect('/license/' + license.id); +}; diff --git a/views/license/edit.twig b/views/license/edit.twig new file mode 100644 index 0000000..c05a028 --- /dev/null +++ b/views/license/edit.twig @@ -0,0 +1,53 @@ +{% extends 'layout.twig' %} + +{% block title %}Edit License{% endblock %} + +{% block content %} + + +
+
+

Editing "{{ license.name }}"

+
+
+ +
+
+
+
+
+ + +
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ + +
+ +
+ + +
+
+ + +
+
+
+ +{% endblock %} diff --git a/views/license/view.twig b/views/license/view.twig new file mode 100644 index 0000000..2f7ebe9 --- /dev/null +++ b/views/license/view.twig @@ -0,0 +1,43 @@ +{% extends 'layout.twig' %} + +{% block title %}{{ license.name }}{% endblock %} + +{% block content %} + + +
+
+ +

{{ license.name }}

+

Edit

+
+

license added at: {{ license.createdAt }}

+

Last updated at: {{ license.updatedAt }}

+
+
+ + +
+ + + + + + + + + + + + + + + + + + + +
Product nameLicense KeyManufacturerSellerPurchase date
{{ license.name }}{{ license.key ? license.key : 'N/a' }}{{ license.manufacturer ? license.manufacturer : 'N/a' }}{{ license.purchasedFrom ? license.purchasedFrom : 'N/a' }}{{ license.purchasedAt | date("m/d/Y h:i:s A") }}
+
+ +{% endblock %}