summaryrefslogtreecommitdiff
path: root/src/node/hooks/express/adminplugins.js
blob: a3fbc2af323e66098b467c5feb6c0136acf6ea2f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var path = require('path');
var eejs = require('ep_etherpad-lite/node/eejs');
var installer = require('ep_etherpad-lite/static/js/pluginfw/installer');

exports.expressCreateServer = function (hook_name, args, cb) {
  args.app.get('/admin/plugins', function(req, res) {
    var plugins = require("ep_etherpad-lite/static/js/pluginfw/plugins");
    var render_args = {
      plugins: plugins.plugins,
      query: req.query,
      search_results: {},
      errors: [],
    };

    var render = function () {
      res.send(eejs.require(
        "ep_etherpad-lite/templates/admin/plugins.html",
        render_args), {});
    };

    if (req.query.search && req.query.search != "") {
      installer.search(req.query.search, function (er, data) {
        if (er) {
          render_args.errors.push(er);
          return render();
        }
        render_args.search_results = data;
        render();
      });
    } else {
      render();
    }
  });
}