Переглянути джерело

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

version-14
Rushabh Mehta 10 роки тому
джерело
коміт
d749990d0a
5 змінених файлів з 47 додано та 18 видалено
  1. +8
    -1
      frappe/boot.py
  2. +3
    -0
      frappe/change_log/current/readme.md
  3. +1
    -0
      frappe/change_log/current/report_in_search.md
  4. +31
    -17
      frappe/public/js/frappe/ui/toolbar/awesome_bar.js
  5. +4
    -0
      frappe/utils/user.py

+ 8
- 1
frappe/boot.py Переглянути файл

@@ -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,


+ 3
- 0
frappe/change_log/current/readme.md Переглянути файл

@@ -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)

+ 1
- 0
frappe/change_log/current/report_in_search.md Переглянути файл

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

+ 31
- 17
frappe/public/js/frappe/ui/toolbar/awesome_bar.js Переглянути файл

@@ -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 = [
}

};
},
}
];

+ 4
- 0
frappe/utils/user.py Переглянути файл

@@ -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):


Завантаження…
Відмінити
Зберегти