From d268eb6d93710c05caf106368e7ae2b53b746e90 Mon Sep 17 00:00:00 2001 From: Florent Chehab Date: Tue, 12 May 2020 20:50:58 +0200 Subject: [PATCH] refacto(front): whitebardId init * More straightforward * Use std for getting url params * Show the final whiteboardid in url --- src/js/main.js | 34 +++++++++++++++++++++------------- src/js/utils.js | 17 ----------------- src/js/whiteboard.js | 1 - 3 files changed, 21 insertions(+), 31 deletions(-) diff --git a/src/js/main.js b/src/js/main.js index 4f54280..5b1e679 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -8,29 +8,37 @@ import pdfjsLib from "pdfjs-dist/webpack"; import shortcutFunctions from "./shortcutFunctions"; import ReadOnlyService from "./services/ReadOnlyService"; import InfoService from "./services/InfoService"; -import { getQueryVariable, getSubDir } from "./utils"; +import { getSubDir } from "./utils"; import ConfigService from "./services/ConfigService"; import { v4 as uuidv4 } from "uuid"; -let whiteboardId = getQueryVariable("whiteboardid"); -const randomid = getQueryVariable("randomid"); -if (randomid && !whiteboardId) { - //set random whiteboard on empty whiteboardid +const urlParams = new URLSearchParams(window.location.search); +let whiteboardId = urlParams.get("whiteboardid"); +const randomid = urlParams.get("randomid"); + +if (randomid) { whiteboardId = uuidv4(); - const urlParams = new URLSearchParams(window.location.search); urlParams.delete("randomid"); + window.location.search = urlParams; +} + +if (!whiteboardId) { + whiteboardId = "myNewWhiteboard"; +} + +whiteboardId = unescape(encodeURIComponent(whiteboardId)).replace(/[^a-zA-Z0-9\-]/g, ""); + +if (urlParams.get("whiteboardid") !== whiteboardId) { urlParams.set("whiteboardid", whiteboardId); window.location.search = urlParams; } -whiteboardId = whiteboardId || "myNewWhiteboard"; -whiteboardId = unescape(encodeURIComponent(whiteboardId)).replace(/[^a-zA-Z0-9\-]/g, ""); -const myUsername = getQueryVariable("username") || "unknown" + (Math.random() + "").substring(2, 6); -const accessToken = getQueryVariable("accesstoken") || ""; +const myUsername = urlParams.get("username") || "unknown" + (Math.random() + "").substring(2, 6); +const accessToken = urlParams.get("accesstoken") || ""; // Custom Html Title -const title = getQueryVariable("title"); -if (!title === false) { +const title = urlParams.get("title"); +if (title) { document.title = decodeURIComponent(title); } @@ -131,7 +139,7 @@ function initWhiteboard() { // by default set in readOnly mode ReadOnlyService.activateReadOnlyMode(); - if (getQueryVariable("webdav") == "true") { + if (urlParams.get("webdav") === "true") { $("#uploadWebDavBtn").show(); } diff --git a/src/js/utils.js b/src/js/utils.js index 1e02d15..0ef46ad 100644 --- a/src/js/utils.js +++ b/src/js/utils.js @@ -15,23 +15,6 @@ export function getCurrentTimeMs() { return new Date().getTime(); } -/** - * get 'GET' parameter by variable name - * @param variable - * @return {boolean|*} - */ -export function getQueryVariable(variable) { - const query = window.location.search.substring(1); - const vars = query.split("&"); - for (let i = 0; i < vars.length; i++) { - const pair = vars[i].split("="); - if (pair[0] === variable) { - return pair[1]; - } - } - return false; -} - export function getSubDir() { const url = document.URL.substr(0, document.URL.lastIndexOf("/")); const urlSplit = url.split("/"); diff --git a/src/js/whiteboard.js b/src/js/whiteboard.js index 343a6e8..9fcac99 100644 --- a/src/js/whiteboard.js +++ b/src/js/whiteboard.js @@ -64,7 +64,6 @@ const whiteboard = { this.settings[i] = newSettings[i]; } this.settings["username"] = this.settings["username"].replace(/[^0-9a-z]/gi, ""); - this.settings["whiteboardId"] = this.settings["whiteboardId"].replace(/[^0-9a-z]/gi, ""); //background grid (repeating image) and smallest screen indication _this.backgroundGrid = $(