diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 9a26384..43b54cc 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -1,88 +1,83 @@ // This is a manifest file that'll be compiled into application.js, which will // include all the files listed below. // // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or // any plugin's vendor/assets/javascripts directory can be referenced here using // a relative path. // // It's not advisable to add code directly here, but if you do, it'll appear at // the bottom of the compiled file. JavaScript code in this file should be added // after the last require_* statement. // // Read Sprockets README // (https://github.com/rails/sprockets#sprockets-directives) for details about // supported directives. // //= require rails-ujs //= require activestorage //= require turbolinks //= require chartkick //= require Chart.bundle //= require_tree . function getAllUrlParams(url) { - // get query string from url (optional) or window - var queryString = url ? url.split('?')[1] : window.location.search.slice(1); + var queryString = url ? url.split("?")[1] : window.location.search.slice(1); // we'll store the parameters here var obj = {}; // if query string exists if (queryString) { - // stuff after # is not part of query string, so get rid of it - queryString = queryString.split('#')[0]; + queryString = queryString.split("#")[0]; // split our query string into its component parts - var arr = queryString.split('&'); + var arr = queryString.split("&"); for (var i = 0; i < arr.length; i++) { // separate the keys and the values - var a = arr[i].split('='); + var a = arr[i].split("="); // set parameter name and value (use 'true' if empty) var paramName = a[0]; - var paramValue = typeof (a[1]) === 'undefined' ? true : a[1]; + var paramValue = typeof a[1] === "undefined" ? true : a[1]; // (optional) keep case consistent paramName = paramName.toLowerCase(); - if (typeof paramValue === 'string') - paramValue = paramValue.toLowerCase(); + if (typeof paramValue === "string") paramValue = paramValue.toLowerCase(); // if the paramName ends with square brackets, e.g. colors[] or colors[2] if (paramName.match(/\[(\d+)?\]$/)) { - // create key if it doesn't exist - var key = paramName.replace(/\[(\d+)?\]/, ''); - if (!obj[key]) - obj[key] = []; + var key = paramName.replace(/\[(\d+)?\]/, ""); + if (!obj[key]) obj[key] = []; // if it's an indexed array e.g. colors[2] if (paramName.match(/\[\d+\]$/)) { // get the index value and add the entry at the appropriate position var index = /\[(\d+)\]/.exec(paramName)[1]; obj[key][index] = paramValue; } else { // otherwise add the value to the end of the array obj[key].push(paramValue); } } else { // we're dealing with a string if (!obj[paramName]) { // if it doesn't exist, create property obj[paramName] = paramValue; - } else if (obj[paramName] && typeof obj[paramName] === 'string') { + } else if (obj[paramName] && typeof obj[paramName] === "string") { // if property does exist and it's a string, convert it to an array - obj[paramName] = [ obj[paramName] ]; + obj[paramName] = [obj[paramName]]; obj[paramName].push(paramValue); } else { // otherwise add the property obj[paramName].push(paramValue); } } } } return obj; -} \ No newline at end of file +}