commit 2e82c09a4af626448eb17d8e871bd4fe86cd754b
parent 8dec4a330860235914b76bacdeed18efd0e14500
Author: dankert <openrat@jandankert.de>
Date: Mon, 6 Dec 2021 23:21:18 +0100
Fixes: Click on search results will close the search results.
Diffstat:
3 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/modules/cms/ui/themes/default/script/Oquery.js b/modules/cms/ui/themes/default/script/Oquery.js
@@ -223,7 +223,10 @@ export class OQuery {
data( name,value) {
if ( typeof value === 'undefined' )
- return this.nodes.length > 0 ? this.nodes[0].dataset[name] : '';
+ if ( typeof name === 'undefined' )
+ return this.nodes.length > 0 ? this.nodes[0].dataset : {};
+ else
+ return this.nodes.length > 0 ? this.nodes[0].dataset[name] : null;
this.nodes.forEach(node => node.dataset[name] = value );
return this;
diff --git a/modules/cms/ui/themes/default/script/openrat/workbench.js b/modules/cms/ui/themes/default/script/openrat/workbench.js
@@ -635,7 +635,7 @@ export default class Workbench {
$('.or-search').removeClass('search--is-active');
},
dropdown : '.or-act-search-result',
- resultEntryClass: 'or-search-result-entry',
+ resultEntryClass: 'search-result-entry',
//openDropdown: true, // the dropdown is automatically opened by the menu.
select : function(obj) {
// open the search result
diff --git a/modules/cms/ui/themes/default/script/plugin/jquery-plugin-orSearch.js b/modules/cms/ui/themes/default/script/plugin/jquery-plugin-orSearch.js
@@ -19,13 +19,21 @@ export default function( options )
'resultEntryClass': 'dropdown-entry',
}, options);
-
+
return $(this).input(async function()
{
let searchInput = $(this)
let searchArgument = searchInput.val();
let dropdownEl = $( settings.dropdown );
+ let closeSearch = function() {
+ settings.onSearchInactive();
+
+ // No search argument.
+ $(dropdownEl).empty(); // Leeren.
+ dropdownEl.removeClass('search-result--is-active');
+ };
+
if ( searchArgument.length )
{
settings.onSearchActive();
@@ -52,11 +60,9 @@ export default function( options )
.addClass( settings.resultEntryClass )
.addClass( settings.resultEntryClass + '--active' )
.attr('title',result.desc);
- div.data('object', {
- 'name': result.name,
- 'action': result.type,
- 'id': result.id
- });
+ div.data( 'name' , result.name );
+ div.data( 'action', result.type );
+ div.data( 'id' , result.id );
let link = $.create('a')
.addClass('link')
.attr('href', WorkbenchNavigator.createShortUrl(result.type, result.id));
@@ -84,19 +90,15 @@ export default function( options )
// Register clickhandler for search results.
$(dropdownEl).find('.or-search-result-entry').click(function (e) {
- settings.select($(this).data('object'));
+ settings.select( $(this).data() );
settings.afterSelect();
searchInput.val('');
+ closeSearch();
});
}
else
{
- settings.onSearchInactive();
-
- // No search argument.
- $(dropdownEl).empty(); // Leeren.
-
- dropdownEl.removeClass('search-result--is-active');
+ closeSearch();
}
});
};
\ No newline at end of file