[enhancement] reports now searchable from awesome bar, added in boot

This commit is contained in:
Rushabh Mehta 2015-07-03 15:41:05 +05:30
parent 7d5648eacd
commit d749990d0a
5 changed files with 47 additions and 18 deletions

View file

@ -104,9 +104,16 @@ def get_allowed_pages():
def load_translations(bootinfo):
if frappe.local.lang != 'en':
bootinfo["__messages"] = frappe.get_lang_dict("boot")
messages = frappe.get_lang_dict("boot")
bootinfo["lang"] = frappe.lang
# load translated report names
for name in bootinfo.user.all_reports:
messages[name] = frappe._(name)
bootinfo["__messages"] = messages
def get_fullnames():
"""map of user fullnames"""
ret = frappe.db.sql("""select name,

View file

@ -0,0 +1,3 @@
Leave change log files in this folder for user release notes.
(this file is just a place holder, don't delete it)

View file

@ -0,0 +1 @@
- Report can now be selected from search bar (Awesome bar)

View file

@ -27,14 +27,14 @@ frappe.search = {
response(frappe.search.options);
},
open: function() {
frappe.search.autocomplete_open = true;
open: function(event, ui) {
frappe.search.autocomplete_open = event.target;
},
close: function() {
close: function(event, ui) {
frappe.search.autocomplete_open = false;
},
select: function(event, ui) {
if(ui.item.route_options) {
if(ui.item._options) {
frappe.route_options = ui.item.route_options;
}
@ -48,16 +48,6 @@ frappe.search = {
}
};
var render_item = function(ul, d) {
var html = "<span>" + __(d.label || d.value) + "</span>";
if(d.description && d.value!==d.description) {
html += '<br><span class="text-muted">' + __(d.description) + '</span>';
}
return $('<li></li>')
.data('item.autocomplete', d)
.html('<a><p>' + html + '</p></a>')
.appendTo(ul);
};
var open_recent = function() {
if (!frappe.search.autocomplete_open) {
@ -67,15 +57,27 @@ frappe.search = {
$("#navbar-search")
.on("focus", open_recent)
.autocomplete(opts).data('ui-autocomplete')._renderItem = render_item;
.autocomplete(opts).data('ui-autocomplete')._renderItem =
frappe.search.render_item;
$("#sidebar-search")
.on("focus", open_recent)
.autocomplete(opts).data('ui-autocomplete')._renderItem = render_item;
.autocomplete(opts).data('ui-autocomplete')._renderItem =
frappe.search.render_item;
frappe.search.make_page_title_map();
frappe.search.setup_recent();
},
render_item: function(ul, d) {
var html = "<span>" + __(d.label || d.value) + "</span>";
if(d.description && d.value!==d.description) {
html += '<br><span class="text-muted">' + __(d.description) + '</span>';
}
return $('<li></li>')
.data('item.autocomplete', d)
.html('<a><p>' + html + '</p></a>')
.appendTo(ul);
},
add_help: function() {
frappe.search.options.push({
label: __("Help on Search"),
@ -208,6 +210,18 @@ frappe.search.verbs = [
});
},
// reports
function(txt) {
frappe.search.find(keys(frappe.boot.user.all_reports), txt, function(match) {
var report_type = frappe.boot.user.all_reports[match];
return {
label: __("Open {0}", ["<b>"+__(match)+"</b>"]),
value: __("Open {0}", [__(match)]),
route: [report_type=="Report Builder" ? "Report" : "query-report", match]
}
});
},
// pages
function(txt) {
frappe.search.find(keys(frappe.search.pages), txt, function(match) {
@ -274,5 +288,5 @@ frappe.search.verbs = [
}
};
},
}
];

View file

@ -149,6 +149,9 @@ class User:
self.can_import = frappe.db.sql_list("""select name from `tabDocType`
where allow_import = 1""")
self.all_reports = frappe.db.sql("""select name, report_type from tabReport
where ref_doctype in ('{0}')""".format("', '".join(self.can_get_report)))
def get_defaults(self):
import frappe.defaults
self.defaults = frappe.defaults.get_defaults(self.name)
@ -206,6 +209,7 @@ class User:
d[key] = list(set(getattr(self, key)))
d.all_reports = dict(self.all_reports)
return d
def get_user_fullname(user):