mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Add search presets option to searchBox widget
This commit is contained in:
@@ -48,7 +48,7 @@
|
||||
form.addClass("red-ui-searchBox-form");
|
||||
}
|
||||
$('<i class="fa fa-search"></i>').prependTo(this.uiContainer);
|
||||
this.clearButton = $('<a href="#"><i class="fa fa-times"></i></a>').appendTo(this.uiContainer);
|
||||
this.clearButton = $('<a class="red-ui-searchBox-clear" href="#"><i class="fa fa-times"></i></a>').appendTo(this.uiContainer);
|
||||
this.clearButton.on("click",function(e) {
|
||||
e.preventDefault();
|
||||
that.element.val("");
|
||||
@@ -56,6 +56,62 @@
|
||||
that.element.trigger("focus");
|
||||
});
|
||||
|
||||
if (this.options.options) {
|
||||
this.uiContainer.addClass("red-ui-searchBox-has-options");
|
||||
this.optsButton = $('<a class="red-ui-searchBox-opts" href="#"><i class="fa fa-caret-down"></i></a>').appendTo(this.uiContainer);
|
||||
var menuShown = false;
|
||||
this.optsMenu = RED.popover.menu({
|
||||
style: this.options.style,
|
||||
options: this.options.options.map(function(opt) {
|
||||
return {
|
||||
label: opt.label,
|
||||
onselect: function() {
|
||||
that.element.val(opt.value+" ");
|
||||
that._change(opt.value,true);
|
||||
}
|
||||
}
|
||||
}),
|
||||
onclose: function(cancelled) {
|
||||
menuShown = false;
|
||||
that.element.trigger("focus");
|
||||
},
|
||||
disposeOnClose: false
|
||||
});
|
||||
|
||||
var showMenu = function() {
|
||||
menuShown = true;
|
||||
that.optsMenu.show({
|
||||
target: that.optsButton,
|
||||
align: "left",
|
||||
offset: [that.optsButton.width()-2,-1],
|
||||
dispose: false
|
||||
})
|
||||
}
|
||||
this.optsButton.on("click",function(e) {
|
||||
e.preventDefault();
|
||||
if (!menuShown) {
|
||||
showMenu();
|
||||
} else {
|
||||
// TODO: This doesn't quite work because the panel's own
|
||||
// mousedown handler triggers a close before this click
|
||||
// handler fires.
|
||||
that.optsMenu.hide(true);
|
||||
}
|
||||
});
|
||||
this.optsButton.on("keydown",function(e) {
|
||||
if (!menuShown && e.keyCode === 40) {
|
||||
//DOWN
|
||||
showMenu();
|
||||
}
|
||||
});
|
||||
this.element.on("keydown",function(e) {
|
||||
if (!menuShown && e.keyCode === 40) {
|
||||
//DOWN
|
||||
showMenu();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
this.resultCount = $('<span>',{class:"red-ui-searchBox-resultCount hide"}).appendTo(this.uiContainer);
|
||||
|
||||
this.element.val("");
|
||||
|
Reference in New Issue
Block a user