Repository: ambari Updated Branches: refs/heads/branch-2.4 b796932cd -> 87f7fec4c
AMBARI-17368. Log Search: Quick link to remove browser URL params. (Dharmesh Makwana via oleewere) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/87f7fec4 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/87f7fec4 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/87f7fec4 Branch: refs/heads/branch-2.4 Commit: 87f7fec4cdd4fa7849f392e9e3a6030369e5cb70 Parents: b796932 Author: oleewere <[email protected]> Authored: Fri Jun 24 14:28:26 2016 +0200 Committer: oleewere <[email protected]> Committed: Fri Jun 24 14:37:43 2016 +0200 ---------------------------------------------------------------------- .../ambari/logsearch/manager/UserConfigMgr.java | 4 +- .../apache/ambari/logsearch/util/SolrUtil.java | 2 +- .../src/main/webapp/scripts/utils/Utils.js | 30 +++++++++++-- .../main/webapp/scripts/views/common/Header.js | 47 +++++++++++++++++++- .../webapp/scripts/views/common/TableLayout.js | 2 +- .../webapp/templates/common/Header_tmpl.html | 7 ++- 6 files changed, 82 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/87f7fec4/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java index f033689..c4fbd9f 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java @@ -96,7 +96,7 @@ public class UserConfigMgr extends MgrBase { SolrQuery solrQuery = new SolrQuery(); queryGenerator.setMainQuery(solrQuery, null); queryGenerator.setSingleIncludeFilter(solrQuery, - LogSearchConstants.FILTER_NAME, filterName); + LogSearchConstants.FILTER_NAME, solrUtil.makeSearcableString(filterName)); queryGenerator.setSingleIncludeFilter(solrQuery, LogSearchConstants.USER_NAME, loggedInUserName); try { @@ -199,7 +199,7 @@ public class UserConfigMgr extends MgrBase { LogSearchConstants.USER_NAME, userName, LogSearchConstants.SHARE_NAME_LIST, userName); queryGenerator.setSingleIncludeFilter(userConfigQuery, - LogSearchConstants.FILTER_NAME, filterName); + LogSearchConstants.FILTER_NAME, solrUtil.makeSearcableString(filterName)); if (stringUtil.isEmpty(searchCriteria.getSortBy())) { searchCriteria.setSortBy(LogSearchConstants.FILTER_NAME); http://git-wip-us.apache.org/repos/asf/ambari/blob/87f7fec4/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/SolrUtil.java ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/SolrUtil.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/SolrUtil.java index 21b09d3..f68891f 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/SolrUtil.java +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/SolrUtil.java @@ -291,7 +291,7 @@ public class SolrUtil { return ""; } String newSearch = search.replaceAll("[\\t\\n\\r]", " "); - newSearch = newSearch.replaceAll("(?=[]\\[+&|!(){}^~*=$/@%?:.\\\\-])", + newSearch = newSearch.replaceAll("(?=[]\\[+&|!(){}^~=$/@%?:.\\\\-])", "\\\\"); return newSearch.replace(" ", "\\ "); http://git-wip-us.apache.org/repos/asf/ambari/blob/87f7fec4/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/utils/Utils.js ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/utils/Utils.js b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/utils/Utils.js index 354b79d..4b18b15 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/utils/Utils.js +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/utils/Utils.js @@ -357,6 +357,23 @@ define(['require', }); }; + Utils.bootboxCustomDialogs = function(params) { + bootbox.dialog({ + title: params.title, + message: params.msg, + buttons: { + cancel: { + label: "Cancel", + className: "btn-secondary" + }, + Ok: { + className: "btn-primary", + callback: params.callback + } + } + }); + }; + Utils.filterResultByIds = function(results, selectedVals) { return _.filter(results, function(obj) { if ($.inArray(obj.id, selectedVals) < 0) @@ -737,11 +754,16 @@ define(['require', var params = {}, tokens, re = /[?&]?([^=]+)=([^&]*)/g; - - while (tokens = re.exec(qs)) { - params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]); + try { + while (tokens = re.exec(qs)) { + params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]); + } + } catch (exception) { + console.error(exception); + Utils.notifyError({ + content: exception + }); } - return params; }; /** http://git-wip-us.apache.org/repos/asf/ambari/blob/87f7fec4/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/common/Header.js ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/common/Header.js b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/common/Header.js index 654b207..ca27bba 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/common/Header.js +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/common/Header.js @@ -42,7 +42,8 @@ define(['require', 'globalFilter': "li[data-id='exclusionList']", 'globalNotification': '.dropdown .excludeStatus', 'timeZoneChange': "li[data-id='timeZoneChange']", - 'createFilters' : "[data-id='createFilters']" + 'createFilters' : "[data-id='createFilters']", + 'editParams' : "a[data-id='editParams']" }, /** ui events hash */ @@ -52,6 +53,7 @@ define(['require', events['click ' + this.ui.globalFilter] = 'exclusionListClick'; events['click ' + this.ui.timeZoneChange] = 'timeZoneChangeClick'; events['click ' + this.ui.createFilters] = 'createFiltersClick'; + events['click ' + this.ui.editParams] = 'editParamsClick'; return events; }, @@ -92,6 +94,7 @@ define(['require', } this.ui.timeZoneChange.find('span').text(moment.tz(storeTimezone.value.split(',')[0]).zoneName()); } + this.checkParams(); }, onShow : function(){ this.triggerAutoTourCheck(); @@ -100,6 +103,48 @@ define(['require', }, + checkParams : function(){ + if(window.location.search){ + var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); + if(url.length === 1){ + var bundleIdCheck = url[0].split('='); + (bundleIdCheck[0] ==='bundle_id') ? this.ui.editParams.hide() : this.ui.editParams.show(); + }else{ + this.ui.editParams.show(); + } + } + }, + editParamsClick: function() { + var that = this; + var newUrl = '', + hash, + str = '<ul>'; + var oldUrl = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); + for (var i = 0; i < oldUrl.length; i++) { + + hash = oldUrl[i].split('='); + if (hash[0] === "bundle_id") { + if(_.isEmpty(hash[1])){ + hash[1] = ''; + } + newUrl = hash[0] + "=" + hash[1]; + }else{ + str += '<li>' + hash[0] + " : " + hash[1] + '</li>'; + } + } + str += '</ul>'; + + Utils.bootboxCustomDialogs({ + 'title': ' Are you sure you want to remove these params ?', + 'msg': str, + 'callback': function() { + var editUrl = window.location.href.substring(0, window.location.href.indexOf('?')); + var params = (newUrl.length > 0) ? window.location.search = '?' + newUrl : window.location.search = ''; + window.location.href = editUrl + params; + that.ui.editParams.hide(); + } + }); + }, takeATour: function() { require(['utils/Intro'], function(Intro) { Intro.Start(); http://git-wip-us.apache.org/repos/asf/ambari/blob/87f7fec4/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/common/TableLayout.js ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/common/TableLayout.js b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/common/TableLayout.js index de5296c..1066510 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/common/TableLayout.js +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/scripts/views/common/TableLayout.js @@ -392,7 +392,7 @@ define(['require', this.collection.state.pageSize = parseInt(pagesize,10); this.collection.state.currentPage = this.collection.state.firstPage; - + delete this.collection.queryParams.isLastPage; this.collection.fetch({ sort: false, reset: true, http://git-wip-us.apache.org/repos/asf/ambari/blob/87f7fec4/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/common/Header_tmpl.html ---------------------------------------------------------------------- diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/common/Header_tmpl.html b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/common/Header_tmpl.html index ef09707..5f1bbdb 100644 --- a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/common/Header_tmpl.html +++ b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/templates/common/Header_tmpl.html @@ -16,7 +16,12 @@ --> <div id="top-panel" class="col-xs-12 col-sm-9"> <div class="row"> - <div class="col-xs-12 col-sm-12"> + <div class="col-xs-8 text-center"> + <a href="javascript:void(0)" data-id="editParams" class="params"> + Remove url params + <a/> + </div> + <div class="col-xs-4 col-sm-4 "> <ul class="nav navbar-nav pull-right panel-menu"> <li class="dropdown" data-id="timeZoneChange" title="Change timezone"> <span style="color: white; position: absolute; top: -16px; right: 0px; font-size: 10px;"></span>
