diff options
author | fnuesse <felix.nuesse@t-online.de> | 2019-01-09 23:54:34 +0300 |
---|---|---|
committer | fnuesse <felix.nuesse@t-online.de> | 2019-01-09 23:54:34 +0300 |
commit | 745076df228cd18679d8047cb60d534cf7a713e6 (patch) | |
tree | 309568dd0e42a0a01b557f086a218422be86490c /js/app | |
parent | 7170de48a1246e02f3bc0bc442902a549c095249 (diff) |
Added filterlogic
Signed-off-by: fnuesse <felix.nuesse@t-online.de>
Diffstat (limited to 'js/app')
-rw-r--r-- | js/app/controllers/credential.js | 5 | ||||
-rw-r--r-- | js/app/services/searchboxexpanderservice.js | 89 |
2 files changed, 67 insertions, 27 deletions
diff --git a/js/app/controllers/credential.js b/js/app/controllers/credential.js index ff9f881a..0dc3f4b1 100644 --- a/js/app/controllers/credential.js +++ b/js/app/controllers/credential.js @@ -328,8 +328,9 @@ }; //searchboxfix - $scope.$on('nc_searchbox', function(event, args, fields) { - $scope.filterOptions.filterText=args; + $scope.$on('nc_searchbox', function(event, searchterm, fields) { + $scope.filterOptions.filterText=searchterm; + if(fields){ $scope.filterOptions.fields=fields; } diff --git a/js/app/services/searchboxexpanderservice.js b/js/app/services/searchboxexpanderservice.js index 20e76e36..e66804e2 100644 --- a/js/app/services/searchboxexpanderservice.js +++ b/js/app/services/searchboxexpanderservice.js @@ -32,9 +32,11 @@ .service('SearchboxexpanderService', ['SettingsService', '$translate', function (SettingsService, $translate) { var defaults = {'label':true, 'username':true, 'email':true, 'custom_fields':true, 'password':false, 'description':false, 'url':false}; + var searchfields = {'label':true, 'username':true, 'email':true, 'custom_fields':true, 'password':false, 'description':false, 'url':false}; var native_search = document.getElementById("searchbox"); - + var title="Loading..."; + var defaults_button="Loading..."; var translations ={}; $translate.onReady(function() { @@ -42,19 +44,24 @@ translations[key]=$translate.instant('search.settings.input.'+key); } - var title=$translate.instant('search.settings.title'); - var defaults_button=$translate.instant('search.settings.defaults_button'); - buildPopup(title, defaults_button); + title=$translate.instant('search.settings.title'); + defaults_button=$translate.instant('search.settings.defaults_button'); }); + function getSearchFieldArraySettings(){ + + var res = SettingsService.getSetting('searchbox_settings'); + searchfields = JSON.parse(res); + } - function getSearchFieldArray(){ + function getSearchFieldArrayForFiltering(){ var fields=[]; - for (var key in defaults) { - if(defaults[key]){ + for (var key in searchfields) { + if(searchfields[key]){ fields.push(key); } } + return fields; } //searchboxfix @@ -77,7 +84,7 @@ native_search.addEventListener('keyup', function (e) { scope.$apply(function () { - rootScope.$broadcast('nc_searchbox', native_search.value, getSearchFieldArray()); + rootScope.$broadcast('nc_searchbox', native_search.value, getSearchFieldArrayForFiltering()); }); }); @@ -91,10 +98,10 @@ var parent = document.createElement("div"); parent.classList.add("notifications"); parent.id = "searchbox-settings"; - //parent.classList.add("hidden"); + parent.classList.add("hidden"); var node = document.createElement("div"); - node.classList.add("icon-category-tools"); + node.classList.add("icon-settings-white"); node.classList.add("searchbox-settings"); node.id = "searchbox-settings-icon"; @@ -108,13 +115,15 @@ } $('#searchbox').on("focus", function (evt) { - //$('#searchbox-settings').removeClass("hidden"); + $('#searchbox-settings').removeClass("hidden"); }); $('#searchbox').on("blur", function (evt) { if (!native_search.value) { - //$('#searchbox-settings').addClass("hidden"); + setTimeout(function() { + $('#searchbox-settings').addClass("hidden"); + }, 150); } }); } @@ -124,8 +133,10 @@ return; } + buildPopup(title, defaults_button); + $(function () { - $("#dialog").dialog({ + $("#dialog-searchboxsettings").dialog({ width: 280, height: 280, dialogClass: 'custom-search-dialog', @@ -139,60 +150,88 @@ function buildPopup(title) { + if ( $("#dialog-searchboxsettings").length ) { + $( "#dialog-searchboxsettings" ).remove(); + } + var dialogdiv = document.createElement("div"); - dialogdiv.id = "dialog"; + dialogdiv.id = "dialog-searchboxsettings"; dialogdiv.title = title; dialogdiv.classList.add("hidden"); + native_search.after(dialogdiv); - for (var key in defaults) { + getSearchFieldArraySettings(); + for (var key in searchfields) { + var div_inner=document.createElement("div"); + div_inner.id=key+"_div"; var input = document.createElement("input"); input.id=key+"_input"; + input.classList.add("searchbox_settings_input"); + input.setAttribute('key', key); input.type="checkbox"; - if(defaults[key]){ + if(searchfields[key]){ input.checked="true"; } input.innerText=key; var label = document.createElement("label"); - label.htmlFor=key+"_input"; + label.classList.add("searchbox_settings_label"); + //label.htmlFor=key+"_input"; label.innerHTML=translations[key]; + label.setAttribute('key', key); div_inner.appendChild(input); div_inner.appendChild(label); + dialogdiv.appendChild(div_inner); } + attachListener(); } + function attachListener(){ + + $('.searchbox_settings_input').on("change", function(evt) { + + var key = $(this).attr('key'); + searchfields[key]=$("#"+key+"_input").prop('checked'); + var string = JSON.stringify(searchfields); + SettingsService.setSetting('searchbox_settings', string); + + }); + + $('.searchbox_settings_label').on("click", function(evt) { - function addListenerToDefault(rootScope, scope) { - if (native_search === null) { return; - } + var key = $(this).attr("key"); + + var checkBoxes = $("#"+key+"_input"); + checkBoxes.prop("checked", !checkBoxes.prop("checked")); + + //todo add functionality here + + }); } + return { expandSearch: function ($rootScope, $scope, translation) { + getSearchFieldArraySettings(); buildDefaultFix($rootScope, $scope); buildCog(); addListenerToCog(); - buildPopup(translation); - - $('#searchbox-settings-icon').on("click", function (evt) { - console.log("click?"); openPopup(); }); - }, }; }]); |