diff --git a/index.js b/index.js
index 86d271b..cd6c533 100644
--- a/index.js
+++ b/index.js
@@ -1,14 +1,13 @@
-const eejs = require("ep_etherpad-lite/node/eejs");
-const padManager = require("ep_etherpad-lite/node/db/PadManager");
-const api = require("ep_etherpad-lite/node/db/API");
+const eejs = require('ep_etherpad-lite/node/eejs');
+const padManager = require('ep_etherpad-lite/node/db/PadManager');
+const api = require('ep_etherpad-lite/node/db/API');
const queryLimit = 12;
RegExp.quote = function (x) {
- return x.toString().replace(/[-\\^$*+?.()|[\]{}]/g, "\\$&")
+ return x.toString().replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&');
};
const isNumeric = function (arg) {
- return typeof (arg) == "number" || (typeof (arg) == "string" && parseInt(arg));
-
+ return typeof arg == 'number' || (typeof arg == 'string' && parseInt(arg));
};
let pads = {
@@ -19,21 +18,19 @@ let pads = {
},
_do_search: async function (pads, query) {
let data = {
- progress: 1
- , message: "Search done."
- , query: query
- , total: pads.length
- }
- , maxResult = 0
- , result = []
- ;
-
- if (query["pattern"] != null && query["pattern"] !== "") {
- let pattern = "*" + query.pattern + "*";
+ progress: 1,
+ message: 'Search done.',
+ query: query,
+ total: pads.length,
+ },
+ maxResult = 0,
+ result = [];
+ if (query['pattern'] != null && query['pattern'] !== '') {
+ let pattern = '*' + query.pattern + '*';
pattern = RegExp.quote(pattern);
- pattern = pattern.replace(/(\\\*)+/g, ".*");
- pattern = "^" + pattern + "$";
- let regex = new RegExp(pattern, "i");
+ pattern = pattern.replace(/(\\\*)+/g, '.*');
+ pattern = '^' + pattern + '$';
+ let regex = new RegExp(pattern, 'i');
pads.forEach(function (padID) {
if (regex.test(padID)) {
result.push(padID);
@@ -68,70 +65,74 @@ let pads = {
data.results = [];
rs.forEach(function (value) {
- entrySet = {padName: value, lastEdited: "", userCount: 0};
+ entrySet = {padName: value, lastEdited: '', userCount: 0};
data.results.push(entrySet);
});
+ let getEdited = [];
if (data.results.length > 0) {
data.results.forEach(function (value) {
- let resultObject = api.getLastEdited(value.padName);
- value.lastEdited = resultObject.lastEdited;
- resultObject = api.padUsersCount(value.padName);
- value.userCount = resultObject.padUsersCount;
+ getEdited.push(
+ api.getLastEdited(value.padName)
+ .then((resultObject) => {
+ value.lastEdited = resultObject.lastEdited;
+ resultObject = api.padUsersCount(value.padName);
+ value.userCount = resultObject.padUsersCount;
+ }));
});
} else {
- data.message = "No results";
+ data.message = 'No results';
}
+
+ await Promise.all(getEdited);
return data;
- }
+ },
};
exports.registerRoute = async function (hook_name, args) {
- args.app.get("/admin/pads", function (req, res) {
+ args.app.get('/admin/pads', function (req, res) {
let render_args = {
- errors: []
+ errors: [],
};
- res.send(eejs.require("ep_adminpads2/templates/admin/pads.html", render_args));
+ res.send(eejs.require('ep_adminpads2/templates/admin/pads.html', render_args));
});
};
let io = null;
exports.socketio = function (hook_name, args) {
- io = args.io.of("/pluginfw/admin/pads");
- io.on("connection", function (socket) {
- socket.on("load", async function (query) {
- let result = await pads.search({pattern: "", offset: 0, limit: queryLimit});
- socket.emit("search-result", result);
+ io = args.io.of('/pluginfw/admin/pads');
+ io.on('connection', function (socket) {
+ socket.on('load', async function (query) {
+ let result = await pads.search({pattern: '', offset: 0, limit: queryLimit});
+ socket.emit('search-result', result);
});
- socket.on("search", async function (query) {
+ socket.on('search', async function (query) {
let result = await pads.search(query);
- socket.emit("search-result", result);
+ socket.emit('search-result', result);
});
- socket.on("delete", async function (padId) {
+ socket.on('delete', async function (padId) {
let padExists = await padManager.doesPadExists(padId);
if (padExists) {
//pad exists, remove
let pad = await padManager.getPad(padId);
await pad.remove();
- socket.emit("progress", {progress: 1});
+ socket.emit('progress', {progress: 1});
}
});
});
};
exports.updatePads = async function (hook_name, args) {
- io.emit("progress", {progress: 1});
+ io.emit('progress', {progress: 1});
};
exports.eejsBlock_adminMenu = async function (hook_name, args) {
- let hasAdminUrlPrefix = (args.content.indexOf("Manage pads";
+ let hasAdminUrlPrefix = args.content.indexOf('Manage pads';
};