From 49a9f10972c9065dc3b5ed87353a391b4591f633 Mon Sep 17 00:00:00 2001 From: Aleksandr Fedorov Date: Fri, 23 Apr 2021 10:37:43 +0300 Subject: [PATCH] nodejs: add list users --- web/documentserver-example/nodejs/app.js | 33 ++++++-------- .../nodejs/helpers/docManager.js | 7 +-- .../nodejs/helpers/users.js | 44 +++++++++++++++++++ .../nodejs/public/javascripts/jscript.js | 21 +++------ .../nodejs/views/index.ejs | 7 ++- 5 files changed, 67 insertions(+), 45 deletions(-) create mode 100644 web/documentserver-example/nodejs/helpers/users.js diff --git a/web/documentserver-example/nodejs/app.js b/web/documentserver-example/nodejs/app.js index 2636fe52..ef6e4e7f 100644 --- a/web/documentserver-example/nodejs/app.js +++ b/web/documentserver-example/nodejs/app.js @@ -33,6 +33,7 @@ const mime = require("mime"); const docManager = require("./helpers/docManager"); const documentService = require("./helpers/documentService"); const fileUtility = require("./helpers/fileUtility"); +const users = require("./helpers/users"); const siteUrl = configServer.get('siteUrl'); const fileChoiceUrl = configServer.has('fileChoiceUrl') ? configServer.get('fileChoiceUrl') : ""; const plugins = config.get('plugins'); @@ -102,7 +103,8 @@ app.get("/", function (req, res) { // define a handler for default page convertExts: configServer.get('convertedDocs').join(","), editedExts: configServer.get('editedDocs').join(","), storedFiles: docManager.getStoredFiles(), - params: docManager.getCustomParams() + params: docManager.getCustomParams(), + users: users, }); } @@ -211,10 +213,9 @@ app.post("/upload", function (req, res) { // define a handler for uploading fil } else { res.write("{ \"filename\": \"" + file.name + "\", \"documentType\": \"" + documentType + "\" }"); // otherwise, write a new file name to the response - const userid = req.query.userid ? req.query.userid : "uid-1"; // get user id and name parameters or set them to the default values - const name = req.query.name ? req.query.name : "John Smith"; + var user = users.getUser(req.query.userid); // get user id and name parameters or set them to the default values - docManager.saveFileData(file.name, userid, name); + docManager.saveFileData(file.name, user.id, user.name); } res.end(); }); @@ -631,22 +632,14 @@ app.get("/editor", function (req, res) { // define a handler for editing docume var history = []; var historyData = []; var lang = docManager.getLang(); - var userid = req.query.userid ? req.query.userid : "uid-1"; - var name = (userid == "uid-0" ? null : (req.query.name ? req.query.name : "John Smith")); + var user = users.getUser(req.query.userid); + + var userid = user.id; + var name = user.name; var actionData = req.query.action ? req.query.action : "null"; - var userGroup = null; - var reviewGroups = null; - if (userid == "uid-2") - { - userGroup = "group-2"; - // own and without group - reviewGroups = ["group-2", ""]; - } else if (userid == "uid-3") { - userGroup = "group-3"; - // other group only - reviewGroups = ["group-2"]; - } + var userGroup = user.group; + var reviewGroups = user.reviewGroups; if (fileExt != null) { var fileName = docManager.createDemo(!!req.query.sample, fileExt, userid, name); // create demo document of a given extension @@ -740,7 +733,7 @@ app.get("/editor", function (req, res) { // define a handler for editing docume uriUser: urlUser, version: countVersion, created: new Date().toDateString(), - favorite: req.query.userid ? req.query.userid === "uid-2" : "null" + favorite: user.id == "uid-0" || user.id == "uid-1" ? "null" : user.id == "uid-2" }, editor: { type: type, @@ -748,7 +741,7 @@ app.get("/editor", function (req, res) { // define a handler for editing docume key: key, token: "", callbackUrl: docManager.getCallback(fileName), - createUrl: docManager.getCreateUrl(fileUtility.getFileType(fileName), userid, name, type, lang), + createUrl: docManager.getCreateUrl(fileUtility.getFileType(fileName), userid, type, lang), isEdit: canEdit && (mode == "edit" || mode == "view" || mode == "filter" || mode == "blockcontent"), review: canEdit && (mode == "edit" || mode == "review"), comment: mode != "view" && mode != "fillForms" && mode != "embedded" && mode != "blockcontent", diff --git a/web/documentserver-example/nodejs/helpers/docManager.js b/web/documentserver-example/nodejs/helpers/docManager.js index d65db733..59bdec44 100644 --- a/web/documentserver-example/nodejs/helpers/docManager.js +++ b/web/documentserver-example/nodejs/helpers/docManager.js @@ -72,9 +72,6 @@ docManager.getCustomParams = function () { const userid = docManager.req.query.userid; // user id params += (userid ? "&userid=" + userid : ""); - const name = docManager.req.query.name; // user name - params += (name ? "&name=" + name : ""); - const lang = docManager.req.query.lang; // language params += (lang ? "&lang=" + docManager.getLang() : ""); @@ -175,10 +172,10 @@ docManager.getCallback = function (fileName) { return server + handler; }; -docManager.getCreateUrl = function (docType, userid, name, type, lang) { +docManager.getCreateUrl = function (docType, userid, type, lang) { const server = docManager.getServerUrl(); var ext = docManager.getInternalExtension(docType).replace(".", ""); - const handler = "/editor?fileExt=" + ext + "&userid=" + userid + "&name=" + name + "&type=" + type + "&lang=" + lang; + const handler = "/editor?fileExt=" + ext + "&userid=" + userid + "&type=" + type + "&lang=" + lang; return server + handler; } diff --git a/web/documentserver-example/nodejs/helpers/users.js b/web/documentserver-example/nodejs/helpers/users.js new file mode 100644 index 00000000..00d4c58b --- /dev/null +++ b/web/documentserver-example/nodejs/helpers/users.js @@ -0,0 +1,44 @@ +/** + * + * (c) Copyright Ascensio System SIA 2021 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +var users = [ + new User("uid-1", "John Smith", "smith@mail.ru", null, null), + new User("uid-2", "Mark Pottato", "pottato@mail.ru", "group-2", ["group-2", ""]), // own and without group + new User("uid-3", "Hamish Mitchell", "mitchell@mail.ru", "group-3", ["group-2"]), // other group only + new User("uid-0", null, null, null, null), +]; + +function User(id, name, email, group, reviewGroups) { + this.id = id; + this.name = name; + this.email = email; + this.group = group; + this.reviewGroups = reviewGroups; +}; + +users.getUser = function (id) { + var result = null; + this.forEach(user => { + if (user.id == id) { + result = user; + } + }); + return result ? result : this[0]; +}; + +module.exports = users; \ No newline at end of file diff --git a/web/documentserver-example/nodejs/public/javascripts/jscript.js b/web/documentserver-example/nodejs/public/javascripts/jscript.js index 6edf2d05..8374d78a 100644 --- a/web/documentserver-example/nodejs/public/javascripts/jscript.js +++ b/web/documentserver-example/nodejs/public/javascripts/jscript.js @@ -18,12 +18,10 @@ var language; var userid; -var username; if (typeof jQuery != "undefined") { jq = jQuery.noConflict(); - username = getUrlVars()["name"]; userid = getUrlVars()["userid"]; language = getUrlVars()["lang"]; @@ -36,8 +34,7 @@ if (typeof jQuery != "undefined") { jq("#language").change(function() { - var username = jq('#user option:selected').text(); - window.location = "?lang=" + jq(this).val() + "&userid=" + userid + "&name=" + username; + window.location = "?lang=" + jq(this).val() + "&userid=" + userid; }); @@ -46,16 +43,8 @@ if (typeof jQuery != "undefined") { else userid = jq("#user").val(); - if ("" != username && undefined != username) { - username = getUrlVars()["name"]; - } - else { - username = jq('#user option:selected').text(); - } - jq("#user").change(function() { - var username = jq('#user option:selected').text(); - window.location = "?lang=" + language + "&userid=" + jq(this).val() + "&name=" + username; + window.location = "?lang=" + language + "&userid=" + jq(this).val(); }); jq(function () { @@ -232,7 +221,7 @@ if (typeof jQuery != "undefined") { jq(document).on("click", "#beginEdit:not(.disable)", function () { var fileId = encodeURIComponent(jq('#hiddenFileName').val()); - var url = UrlEditor + "?fileName=" + fileId + "&lang=" + language + "&userid=" + userid + "&name=" + username; + var url = UrlEditor + "?fileName=" + fileId + "&lang=" + language + "&userid=" + userid; window.open(url, "_blank"); jq('#hiddenFileName').val(""); jq.unblockUI(); @@ -241,7 +230,7 @@ if (typeof jQuery != "undefined") { jq(document).on("click", "#beginView:not(.disable)", function () { var fileId = encodeURIComponent(jq('#hiddenFileName').val()); - var url = UrlEditor + "?mode=view&fileName=" + fileId + "&lang=" + language + "&userid=" + userid + "&name=" + username; + var url = UrlEditor + "?mode=view&fileName=" + fileId + "&lang=" + language + "&userid=" + userid; window.open(url, "_blank"); jq('#hiddenFileName').val(""); jq.unblockUI(); @@ -250,7 +239,7 @@ if (typeof jQuery != "undefined") { jq(document).on("click", "#beginEmbedded:not(.disable)", function () { var fileId = encodeURIComponent(jq('#hiddenFileName').val()); - var url = UrlEditor + "?type=embedded&fileName=" + fileId + "&lang=" + language + "&userid=" + userid + "&name=" + username; + var url = UrlEditor + "?type=embedded&fileName=" + fileId + "&lang=" + language + "&userid=" + userid; jq("#mainProgress").addClass("embedded"); jq("#beginEmbedded").addClass("disable"); diff --git a/web/documentserver-example/nodejs/views/index.ejs b/web/documentserver-example/nodejs/views/index.ejs index 1508ba34..2dd140c0 100644 --- a/web/documentserver-example/nodejs/views/index.ejs +++ b/web/documentserver-example/nodejs/views/index.ejs @@ -74,10 +74,9 @@ Username