UNPKG

1.6 kBJavaScriptView Raw
1"use strict";
2
3var _ = require("lodash");
4
5var settings = require("./settings");
6var setsCtrl = require("./sets/controller");
7
8var PAGES = [{
9 name: settings.pkg.nbbpm.name,
10 icon: "fa-smile-o",
11 route: "/plugins/" + settings.id,
12 template: function template() {
13 return {
14 id: settings.pkg.name, name: settings.pkg.nbbpm.name, version: settings.pkg.version,
15 settings: settings.get(),
16 sets: {
17 active: setsCtrl.getActiveIds(),
18 installed: setsCtrl.transportCollection(),
19 notInstalled: setsCtrl.getNotInstalledList()
20 }
21 };
22 }
23}];
24
25/*===================================================== Exports =====================================================*/
26
27exports.init = init;
28exports.addNavigation = addNavigation;
29
30/*==================================================== Functions ====================================================*/
31
32function addNavigation(header) {
33 for (var i = 0; i < PAGES.length; i++) {
34 var page = PAGES[i];
35 header.plugins.push({ name: page.name, icon: page.icon, route: page.route });
36 }
37}
38
39function init(data, cb) {
40 for (var i = 0; i < PAGES.length; i++) {
41 initPageRoute(data.router, data.middleware.admin.buildHeader, PAGES[i]);
42 }
43 cb(null, data);
44}
45
46function initPageRoute(router, UIMiddleware, page) {
47 var render = _.partial(renderPage, page);
48 router.get("/admin" + page.route, UIMiddleware, render);
49 router.get("/api/admin" + page.route, render);
50}
51
52function renderPage(page, req, res) {
53 res.render("admin" + page.route, typeof page.template === "function" ? page.template(req, res) : {});
54}