Mobirise Mobirise v4.3.5

Functionals

2.2 Admin - listcategory

- Create 'models/CategoryDAO.js' file

require('../utils/MongooseUtil.js');
var Models = require('./Models.js');
var CategoryDAO = {
async selectAll() {
var query = {};
var categories = await Models.Category.find(query).exec();
return categories;
}
};
module.exports = CategoryDAO;
view raw CategoryDAO.js hosted with ❤ by GitHub

- Update 'controllers/admin.js' file

...
// daos
var CategoryDAO = require('../models/CategoryDAO.js');
...
// category
router.get('/listcategory', async function (req, res) {
if (!req.session.admin) res.redirect('./login');
else {
var categories = await CategoryDAO.selectAll();
res.render('../views/admin/listcategory.ejs', { cats: categories });
}
});
...
view raw admin.js hosted with ❤ by GitHub

- Create 'views/admin/listcategory.ejs' file

<html>
<head>
<link href="/css/styles.css" type="text/css" rel="stylesheet" />
<script>
function details(id, name) {
document.getElementById("txtID").value = id;
document.getElementById("txtName").value = name;
document.getElementById("btnUpdate").style.display = "inline";
document.getElementById("btnDelete").style.display = "inline";
}
</script>
</head>
<body class="admin">
<%- include('./admin_menu.ejs') %>
<div class="float-left">
<h2 class="text-center">CATEGORY LIST</h2>
<table class="datatable" border="1">
<tr class="datatable">
<th>ID</th>
<th>Name</th>
</tr>
<% for (var item of cats) { %>
<tr class="datatable" onclick="details('<%=item._id%>', '<%=item.name%>')">
<th><%=item._id%></th>
<td><%=item.name%></td>
</tr>
<% } %>
</table>
</div>
<div class="inline" style="width: 40px"></div>
<div class="float-right">
<h2 class="text-center">CATEGORY DETAIL</h2>
<form method="POST">
<table>
<tr>
<td>ID</td>
<td><input type="text" id="txtID" name="txtID" readonly /></td>
</tr>
<tr>
<td>Name</td>
<td><input type="text" id="txtName" name="txtName" required /></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" formaction="./addcategory" value="ADD NEW" />
<input type="submit" formaction="./updatecategory" value="UPDATE" id="btnUpdate" style="display: none" />
<input type="submit" formaction="./deletecategory" value="DELETE" id="btnDelete" style="display: none" onclick="return confirm('ARE YOU SURE?')" />
</td>
</tr>
</table>
</form>
</div>
<div class="float-clear"></div>
</body>
</html>

  • - Browser: http://localhost:3000/admin/listcategory