Skip to content

Commit

Permalink
Merge pull request #4 from rhansen/last-edited
Browse files Browse the repository at this point in the history
Fix missing values in "Last edited" column
  • Loading branch information
rhansen committed Aug 17, 2020
2 parents 1cbef74 + 15750ad commit 7fd38c2
Showing 1 changed file with 48 additions and 47 deletions.
95 changes: 48 additions & 47 deletions index.js
Original file line number Diff line number Diff line change
@@ -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 = {
Expand All @@ -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);
Expand Down Expand Up @@ -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("<a href=\"admin/") !== -1)
, hasOneDirDown = (args.content.indexOf("<a href=\"../") !== -1)
, hasTwoDirDown = (args.content.indexOf("<a href=\"../../") !== -1)
, urlPrefix = hasAdminUrlPrefix ? "admin/" : hasTwoDirDown ? "../../" : hasOneDirDown ? "../" : ""
;

args.content = args.content + "<li><a href=\"" + urlPrefix + "pads\">Manage pads</a></li>";
let hasAdminUrlPrefix = args.content.indexOf('<a href="admin"') !== -1,
hasOneDirDown = args.content.indexOf('<a href="../') !== -1,
hasTwoDirDown = args.content.indexOf('<a href="../../') !== -1,
urlPrefix = hasAdminUrlPrefix ? 'admin/' : hasTwoDirDown ? '../../' : hasOneDirDown ? '../' : '';
args.content = args.content + '<li><a href="' + urlPrefix + 'pads">Manage pads</a></li>';
};

0 comments on commit 7fd38c2

Please sign in to comment.