1 | "use strict";
|
2 |
|
3 | var _ = require("lodash");
|
4 |
|
5 | var settings = require("./settings");
|
6 | var setsCtrl = require("./sets/controller");
|
7 |
|
8 | var 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 |
|
26 |
|
27 | exports.init = init;
|
28 | exports.addNavigation = addNavigation;
|
29 |
|
30 |
|
31 |
|
32 | function 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 |
|
39 | function 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 |
|
46 | function 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 |
|
52 | function renderPage(page, req, res) {
|
53 | res.render("admin" + page.route, typeof page.template === "function" ? page.template(req, res) : {});
|
54 | }
|