diff --git a/frappe/desk/page/activity/activity.js b/frappe/desk/page/activity/activity.js index b18505f78f..33b0c95e49 100644 --- a/frappe/desk/page/activity/activity.js +++ b/frappe/desk/page/activity/activity.js @@ -6,68 +6,70 @@ frappe.provide("frappe.activity"); frappe.pages['activity'].on_page_load = function(wrapper) { var me = this; - frappe.require('assets/frappe/js/lib/flot/jquery.flot.js'); - frappe.require('assets/frappe/js/lib/flot/jquery.flot.downsample.js'); - frappe.ui.make_app_page({ parent: wrapper, single_column: true }); - this.page = wrapper.page; - - this.page.set_title(__("Activity")); - - frappe.model.with_doctype("Communication", function() { - me.page.list = new frappe.ui.Listing({ - hide_refresh: true, - page: me.page, - method: 'frappe.desk.page.activity.activity.get_feed', - parent: $("
").appendTo(me.page.main), - render_row: function(row, data) { - new frappe.activity.Feed(row, data); - }, - show_filters: true, - doctype: "Communication", - get_args: function() { - if (frappe.route_options && frappe.route_options.show_likes) { - delete frappe.route_options.show_likes; - return { - show_likes: true + me.page = wrapper.page; + + me.page.set_title(__("Activity")); + + frappe.require(['assets/frappe/js/lib/flot/jquery.flot.js', + 'assets/frappe/js/lib/flot/jquery.flot.downsample.js'], function() { + + frappe.model.with_doctype("Communication", function() { + me.page.list = new frappe.ui.Listing({ + hide_refresh: true, + page: me.page, + method: 'frappe.desk.page.activity.activity.get_feed', + parent: $("
").appendTo(me.page.main), + render_row: function(row, data) { + new frappe.activity.Feed(row, data); + }, + show_filters: true, + doctype: "Communication", + get_args: function() { + if (frappe.route_options && frappe.route_options.show_likes) { + delete frappe.route_options.show_likes; + return { + show_likes: true + } + } else { + return {} + } } - } else { - return {} - } - } - }); + }); - me.page.list.run(); + me.page.list.run(); - me.page.set_primary_action(__("Refresh"), function() { - me.page.list.filter_list.clear_filters(); - me.page.list.run(); - }, "octicon octicon-sync"); - }); + me.page.set_primary_action(__("Refresh"), function() { + me.page.list.filter_list.clear_filters(); + me.page.list.run(); + }, "octicon octicon-sync"); + }); - frappe.activity.render_plot(this.page); + frappe.activity.render_plot(me.page); - this.page.main.on("click", ".activity-message", function() { - var link_doctype = $(this).attr("data-link-doctype"), - link_name = $(this).attr("data-link-name"), - doctype = $(this).attr("data-doctype"), - docname = $(this).attr("data-docname"); + me.page.main.on("click", ".activity-message", function() { + var link_doctype = $(this).attr("data-link-doctype"), + link_name = $(this).attr("data-link-name"), + doctype = $(this).attr("data-doctype"), + docname = $(this).attr("data-docname"); - if (doctype && docname) { - if (link_doctype && link_name) { - frappe.route_options = { - scroll_to: { "doctype": doctype, "name": docname } - } - } + if (doctype && docname) { + if (link_doctype && link_name) { + frappe.route_options = { + scroll_to: { "doctype": doctype, "name": docname } + } + } - frappe.set_route(["Form", link_doctype || doctype, link_name || docname]); - } + frappe.set_route(["Form", link_doctype || doctype, link_name || docname]); + } + }); }); + // Build Report Button if(frappe.boot.user.can_get_report.indexOf("Feed")!=-1) { this.page.add_menu_item(__('Build Report'), function() { diff --git a/frappe/desk/page/setup_wizard/setup_wizard.js b/frappe/desk/page/setup_wizard/setup_wizard.js index c50e639723..c6f2e87a95 100644 --- a/frappe/desk/page/setup_wizard/setup_wizard.js +++ b/frappe/desk/page/setup_wizard/setup_wizard.js @@ -27,24 +27,20 @@ frappe.pages['setup-wizard'].on_page_load = function(wrapper) { $(".navbar:first").toggle(false); $("body").css({"padding-top":"30px"}); - frappe.require("/assets/frappe/css/animate.min.css"); + var requires = ["/assets/frappe/css/animate.min.css"].concat(frappe.boot.setup_wizard_requires || []); + + frappe.require(requires, function() { + frappe.wiz.run_event("before_load"); + var wizard_settings = { + page_name: "setup-wizard", + parent: wrapper, + slides: frappe.wiz.slides, + title: __("Welcome") + } - $.each(frappe.boot.setup_wizard_requires || [], function(i, path) { - frappe.require(path); + frappe.wiz.wizard = new frappe.wiz.Wizard(wizard_settings); + frappe.wiz.run_event("after_load"); }); - - frappe.wiz.run_event("before_load"); - - var wizard_settings = { - page_name: "setup-wizard", - parent: wrapper, - slides: frappe.wiz.slides, - title: __("Welcome") - } - - frappe.wiz.wizard = new frappe.wiz.Wizard(wizard_settings); - - frappe.wiz.run_event("after_load"); } frappe.pages['setup-wizard'].on_page_show = function(wrapper) { diff --git a/frappe/email/__init__.py b/frappe/email/__init__.py index fdbfb0c5d2..42b66d7f4b 100644 --- a/frappe/email/__init__.py +++ b/frappe/email/__init__.py @@ -32,16 +32,23 @@ def get_contact_list(doctype, fieldname, txt): """Returns contacts (from autosuggest)""" txt = txt.replace('%', '') + def get_users(): + return filter(None, frappe.db.sql_list('select email from tabUser where email like %s', + ('%' + txt + '%'))) try: - return filter(None, frappe.db.sql_list('select `{0}` from `tab{1}` where `{0}` like %s'.format(fieldname, doctype), + out = filter(None, frappe.db.sql_list('select `{0}` from `tab{1}` where `{0}` like %s'.format(fieldname, doctype), '%' + txt + '%')) + if out: + out = get_users() except Exception, e: if e.args[0]==1146: # no Contact, use User - return filter(None, frappe.db.sql_list('select email from tabUser where email like %s', ('%' + txt + '%'))) + out = get_users() else: raise + return out + def get_system_managers(): return frappe.db.sql_list("""select parent FROM tabUserRole WHERE role='System Manager' diff --git a/frappe/public/build.json b/frappe/public/build.json index c15a06d42f..ed307e2bfd 100644 --- a/frappe/public/build.json +++ b/frappe/public/build.json @@ -67,6 +67,7 @@ "public/js/lib/d3.min.js", "public/js/lib/cal-heatmap.js", "public/js/lib/c3.min.js", + "public/js/lib/markdown.js", "public/js/frappe/provide.js", "public/js/frappe/class.js", diff --git a/frappe/public/js/frappe/assets.js b/frappe/public/js/frappe/assets.js index cffebcbc2c..3fdbe85bdc 100644 --- a/frappe/public/js/frappe/assets.js +++ b/frappe/public/js/frappe/assets.js @@ -9,7 +9,7 @@ frappe.require = function(items, callback) { if(typeof items === "string") { items = [items]; } - frappe.assets.execute(items); + frappe.assets.execute(items, callback); }; frappe.assets = { @@ -59,7 +59,7 @@ frappe.assets = { executed_ : [], // pass on to the handler to set - execute: function(items) { + execute: function(items, callback) { var to_fetch = [] for(var i=0, l=items.length; i