/** * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ /** global: OCA */ /** global: _ */ var fullTextSearch = OCA.FullTextSearch.api; var elements = { searchTimeout: null, search_input: null, search_submit: null, search_result: null, search_json: null }; var Navigate = function () { this.init(); }; Navigate.prototype = { currentTagsResult: {}, selectedTags: {}, init: function () { var self = this; elements.search_input = $('#search_input'); elements.search_submit = $('#search_submit'); elements.search_result = $('#search_result'); elements.search_panels = $('#search_navigation'); // elements.search_json = $('#search_json'); elements.divHeader = $('#search_header'); box_elements.searchError = $('#search_error'); // fullTextSearch.setEntryTemplate($('#template_entry'), self); fullTextSearch.setResultContainer(elements.search_result); elements.search_input.on('input', this.navigateTimedSearch); // function () { // self.resetSearch(); // if (elements.searchTimeout === null && self.initSearch()) { // elements.searchTimeout = _.delay(function () { // self.initSearch(); // elements.searchTimeout = null; // }, 3000); // } // }); // // $(document).keypress(function (e) { // if (e.which === 13) { // self.initSearch(true); // } // }); self.initPanels(); }, navigateTimedSearch: function () { if (curr.lastSearchTimer !== null) { window.clearTimeout(curr.lastSearchTimer); } curr.lastSearchTimer = window.setTimeout(function () { OCA.FullTextSearch.navigate.initSearch(); }, settings.searchEntryTimer); if (curr.lastRequestTimer === null) { curr.lastRequestTimer = window.setTimeout(function () { OCA.FullTextSearch.navigate.initSearch(); }, settings.searchRequestTimer); } }, initPanels: function () { var self = this; $.ajax({ method: 'GET', url: OC.generateUrl('/apps/fulltextsearch/navigation/panels') }).done(function (res) { self.displayPanels(res); }); }, displayPanels: function (data) { var self = this; var ak = Object.keys(data); for (var i = 0; i < ak.length; i++) { var providerAppId = ak[i]; var title = data[ak[i]]['title']; var options = data[ak[i]]['options']; var css = data[ak[i]]['css']; var icon = data[ak[i]]['icon']; var providerId = data[ak[i]]['provider']; if (css !== '') { OC.addStyle(providerAppId, css); } var li = $('
// //
} // } li.append(aIcon); var aInput = $('', { class: 'search_checkbox', type: 'checkbox', 'data-provider': ak[i], 'data-provider-id': providerId }); aInput.change(function () { self.initSearch(); }); li.append(aInput); li.append(ul); elements.search_panels.append(li); } }, displayPanelOptionTitle: function (sub) { return $('', { href: '#', class: 'ulsub', text: sub.title }); }, displayPanelCheckbox: function (ul, sub) { if (sub.type !== 'checkbox') { return; } var self = this; var subA = this.displayPanelOptionTitle(sub); var subAInput = $('', { class: 'search_checkbox_sub', type: 'checkbox', 'data-option': sub.name }); subAInput.change(function () { self.initSearch(); }); ul.append($('