From f0f0a029aba610d7782353bb60ebd1604b1bdadd Mon Sep 17 00:00:00 2001 From: Alex Tselegidis Date: Tue, 14 Dec 2021 07:20:58 +0100 Subject: [PATCH] Added the URL JS helper file --- assets/js/utils/url.js | 69 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 assets/js/utils/url.js diff --git a/assets/js/utils/url.js b/assets/js/utils/url.js new file mode 100644 index 00000000..0b11e0ad --- /dev/null +++ b/assets/js/utils/url.js @@ -0,0 +1,69 @@ +/* ---------------------------------------------------------------------------- + * Easy!Appointments - Open Source Web Scheduler + * + * @package EasyAppointments + * @author A.Tselegidis + * @copyright Copyright (c) 2013 - 2020, Alex Tselegidis + * @license http://opensource.org/licenses/GPL-3.0 - GPLv3 + * @link http://easyappointments.org + * @since v1.5.0 + * ---------------------------------------------------------------------------- */ + +window.App.Utils.Url = (function () { + /** + * Get complete URL of the provided URI segment. + * + * @param {String} uri + * + * @return {String} + */ + function baseUrl(uri) { + return `${App.Config.base_url}/${uri}`; + } + + /** + * Get the complete site URL (including the index.php) of the provided URI segment. + * + * @param {String} uri + * + * @returns {String} + */ + function siteUrl(uri) { + return `${App.Config.base_url}${App.Config.index_page ? '/' + App.Config.index_page : ''}/${uri}`; + } + + /** + * Retrieve a query parameter from the current request. + * + * @link http://www.netlobo.com/url_query_string_javascript.html + * + * @param {String} name Parameter name. + + * @return {String} Returns the parameter value. + */ + function queryParam(name) { + const url = location.href; + + const parsedUrl = url.substr(url.indexOf('?')).slice(1).split('&'); + + for (let index in parsedUrl) { + const parsedValue = parsedUrl[index].split('='); + + if (parsedValue.length === 1 && parsedValue[0] === name) { + return ''; + } + + if (parsedValue.length === 2 && parsedValue[0] === name) { + return decodeURIComponent(parsedValue[1]); + } + } + + return null; + } + + return { + baseUrl, + siteUrl, + queryParam + }; +})();