diff --git a/index.js b/index.js
index a821fff..a10a7d0 100644
--- a/index.js
+++ b/index.js
@@ -47,6 +47,7 @@ app.use(express.static('public'));
// load route handlers
const homeRoutes = require('./src/routes/home');
const itemRoutes = require('./src/routes/item');
+const licenseRoutes = require('./src/routes/license');
// register route handlers
app.get('/', homeRoutes.getIndex);
@@ -55,6 +56,8 @@ app.post('/item/add', itemRoutes.postAdd);
app.get('/item/:id', itemRoutes.getItem);
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);
// start app
app.listen(config.get('server.port'), config.get('server.address'), () => {
diff --git a/src/models/index.js b/src/models/index.js
index 652dd3e..c5736ea 100644
--- a/src/models/index.js
+++ b/src/models/index.js
@@ -9,6 +9,7 @@ db.Sequelize = Sequelize;
db.sequelize = sequelize;
db.items = require('./item.js')(sequelize, Sequelize);
+db.licenses = require('./license.js')(sequelize, Sequelize);
module.exports = db;
diff --git a/src/models/license.js b/src/models/license.js
new file mode 100644
index 0000000..c20cb7e
--- /dev/null
+++ b/src/models/license.js
@@ -0,0 +1,27 @@
+module.exports = (sequelize, Sequelize) => {
+ const License = sequelize.define('license', {
+
+ name: {
+ type: Sequelize.STRING,
+ },
+
+ key: {
+ type: Sequelize.STRING,
+ },
+
+ manufacturer: {
+ type: Sequelize.STRING,
+ },
+
+ purchasedFrom: {
+ type: Sequelize.STRING,
+ },
+
+ purchasedAt: {
+ type: Sequelize.DATE,
+ },
+
+ });
+
+ return License;
+};
diff --git a/src/routes/home.js b/src/routes/home.js
index 1acacae..b3a22a1 100644
--- a/src/routes/home.js
+++ b/src/routes/home.js
@@ -1,8 +1,10 @@
const db = require('../models');
const Item = db.items;
+const License = db.licenses;
// GET - /
exports.getIndex = async function(req, res) {
+ // fetch inventory items from database
const items = await Item.findAll({
limit: 10,
order: [
@@ -10,9 +12,18 @@ exports.getIndex = async function(req, res) {
],
});
+ // fetch licenses from database
+ const licenses = await License.findAll({
+ limit: 10,
+ order: [
+ ['updatedAt', 'DESC'],
+ ],
+ });
+
// req.flash('info', 'This is a test flash message.');
res.render('index.twig', {
inventory: items,
+ licenses: licenses,
});
};
diff --git a/src/routes/license.js b/src/routes/license.js
new file mode 100644
index 0000000..fb0d909
--- /dev/null
+++ b/src/routes/license.js
@@ -0,0 +1,22 @@
+const db = require('../models');
+const License = db.licenses;
+
+// GET - /license/add
+exports.getAdd = async function(req, res) {
+ res.render('license/add.twig');
+};
+
+// POST - /license/add
+exports.postAdd = async function(req, res) {
+ const license = await License.create({
+ name: req.body.license_name,
+ key: req.body.license_key,
+ manufacturer: req.body.license_manufacturer,
+ purchasedFrom: req.body.license_purchase_from,
+ purchasedAt: req.body.license_purchase_date,
+ });
+
+ console.log(`Saved license ${license.name} to the database.`);
+
+ res.redirect('/');
+};
diff --git a/views/index.twig b/views/index.twig
index 3d53738..33a140f 100644
--- a/views/index.twig
+++ b/views/index.twig
@@ -28,32 +28,51 @@
-
-
Recently updated records:
+
+
Recently updated hardware:
+
+
+
+ Name |
+ Manufacturer |
+ Type |
+ Updated at |
+
+
+
+ {% for item in inventory %}
+
+ {{ item.name }} |
+ {{ item.manufacturer }} |
+ {{ item.type }} |
+ {{ item.updatedAt | date("m/d/Y h:i:s A") }} |
+
+ {% endfor %}
+
+
+
+
+
+
Recently updated licenses:
+
+
+
+ Name |
+ Manufacturer |
+ Updated at |
+
+
+
+ {% for license in licenses %}
+
+ {{ license.name }} |
+ {{ license.manufacturer }} |
+ {{ license.updatedAt | date("m/d/Y h:i:s A") }} |
+
+ {% endfor %}
+
+
-
-
-
-
- Name |
- Manufacturer |
- Type |
- Updated at |
-
-
-
- {% for item in inventory %}
-
- {{ item.name }} |
- {{ item.manufacturer }} |
- {{ item.type }} |
- {{ item.updatedAt | date("m/d/Y h:i:s A") }} |
-
- {% endfor %}
-
-
-
-
{% endblock %}
diff --git a/views/layout.twig b/views/layout.twig
index 909ae55..450ee30 100644
--- a/views/layout.twig
+++ b/views/layout.twig
@@ -20,6 +20,7 @@
Home
Search
Add Item
+
Add License
diff --git a/views/license/add.twig b/views/license/add.twig
new file mode 100644
index 0000000..75fad4b
--- /dev/null
+++ b/views/license/add.twig
@@ -0,0 +1,53 @@
+{% extends 'layout.twig' %}
+
+{% block title %}Add New License{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+{% endblock %}