diff --git a/public/js/wn/ui/toolbar/toolbar.js b/public/js/wn/ui/toolbar/toolbar.js index 8be3706a87..c49240096b 100644 --- a/public/js/wn/ui/toolbar/toolbar.js +++ b/public/js/wn/ui/toolbar/toolbar.js @@ -25,6 +25,7 @@ wn.ui.toolbar.Toolbar = Class.extend({ init: function() { this.make(); //this.make_modules(); + this.make_quick_search(); this.make_file(); //this.make_actions(); wn.ui.toolbar.recent = new wn.ui.toolbar.RecentDocs(); @@ -115,6 +116,86 @@ wn.ui.toolbar.Toolbar = Class.extend({ } }, + make_quick_search: function() { + $('.navbar .nav:first').append(''); + + this.bind_quick_search_events(); + }, + + bind_quick_search_events: function() { + // render searchable doctype list + $("#go-doctype-list") + .empty().add_options(wn.boot.profile.can_search.sort()) + .on("change", function() { + if(wn.boot.profile.can_create.indexOf($(this).val()) === -1) { + $("#go-new-btn").attr("disabled", "disabled"); + } else { + $("#go-new-btn").removeAttr("disabled"); + } + }) + .trigger("change"); + + $("#go-search-input").keypress(function(ev){ + if(ev.which==13) { $("#go-search-btn").trigger("click"); } + }); + + // new button + $("#go-new-btn").on("click", function() { + $("#go-dropdown").removeClass("open"); + new_doc($("#go-doctype-list").val()); + }); + + // search button + $("#go-search-btn").on("click", function() { + var doctype = doctype = $("#go-doctype-list").val(), + search_string = $("#go-search-input").val(); + + if(search_string) { + wn.call({ + type: "GET", + method: 'webnotes.client.get_value', + args: { + doctype: doctype, + fieldname: "name", + filters: {name: ["like", "%" + search_string + "%"]} + }, + callback: function(r) { + if(!r.exc && r.message && r.message.name) { + console.log("opening " + doctype + " " + r.message.name); + $("#go-dropdown").removeClass("open"); + wn.set_route("Form", doctype, r.message.name); + } + } + }); + } else { + $("#go-dropdown").removeClass("open"); + wn.set_route("List", $("#go-doctype-list").val()); + } + }); + }, + make_file: function() { wn.ui.toolbar.new_dialog = new wn.ui.toolbar.NewDialog(); wn.ui.toolbar.search = new wn.ui.toolbar.Search();