diff --git a/frappe/desk/search.py b/frappe/desk/search.py index c1cffb764f..cfee3e6c22 100644 --- a/frappe/desk/search.py +++ b/frappe/desk/search.py @@ -57,10 +57,13 @@ def search_link(doctype, txt, query=None, filters=None, page_length=20, searchfi # this is called by the search box @frappe.whitelist() def search_widget(doctype, txt, query=None, searchfield=None, start=0, - page_length=10, filters=None, filter_fields=None, as_dict=False, reference_doctype=None, ignore_user_permissions=False): + page_length=20, filters=None, filter_fields=None, as_dict=False, reference_doctype=None, ignore_user_permissions=False): + + start = cint(start) + if isinstance(filters, string_types): filters = json.loads(filters) - + if searchfield: sanitize_searchfield(searchfield) diff --git a/frappe/public/js/frappe/form/link_selector.js b/frappe/public/js/frappe/form/link_selector.js index e04ebded14..46bef56aea 100644 --- a/frappe/public/js/frappe/form/link_selector.js +++ b/frappe/public/js/frappe/form/link_selector.js @@ -18,6 +18,7 @@ frappe.ui.form.LinkSelector = Class.extend({ make: function () { var me = this; + this.start = 0; this.dialog = new frappe.ui.Dialog({ title: __("Select {0}", [(this.doctype == '[Select]') ? __("value") : __(this.doctype)]), fields: [ @@ -27,10 +28,17 @@ frappe.ui.form.LinkSelector = Class.extend({ }, { fieldtype: "HTML", fieldname: "results" + }, + { + fieldtype: "Button", fieldname: "more", label: __("More"), click: () => { + me.start += 20; + me.search(); + } } ], primary_action_label: __("Search"), primary_action: function () { + me.start = 0; me.search(); } }); @@ -40,6 +48,7 @@ frappe.ui.form.LinkSelector = Class.extend({ this.dialog.get_input("txt").on("keypress", function (e) { if (e.which === 13) { + me.start = 0; me.search(); } }); @@ -49,7 +58,8 @@ frappe.ui.form.LinkSelector = Class.extend({ search: function () { var args = { txt: this.dialog.fields_dict.txt.get_value(), - searchfield: "name" + searchfield: "name", + start: this.start }; var me = this; @@ -66,7 +76,10 @@ frappe.ui.form.LinkSelector = Class.extend({ frappe.link_search(this.doctype, args, function (r) { var parent = me.dialog.fields_dict.results.$wrapper; - parent.empty(); + if (args.start == 0) { + parent.empty(); + } + if (r.values.length) { $.each(r.values, function (i, v) { var row = $(repl('