diff --git a/frappe/config/desktop.py b/frappe/config/desktop.py index 59aa7ba26c..1d535e08ab 100644 --- a/frappe/config/desktop.py +++ b/frappe/config/desktop.py @@ -3,6 +3,16 @@ from frappe import _ def get_data(): return [ + { + "module_name": 'Communication', + "label": _('Email Inbox'), + "_label": _('Email Inbox'), + "_id": 'Email Inbox', + "_doctype": 'Communication', + "icon": 'fa fa-envelope-o', + "color": '#589494', + "link": 'List/Communication/Inbox' + }, { "module_name": "Desk", "label": _("Tools"), diff --git a/frappe/core/doctype/user/user.js b/frappe/core/doctype/user/user.js index c1325cd66c..b2cea1876b 100644 --- a/frappe/core/doctype/user/user.js +++ b/frappe/core/doctype/user/user.js @@ -84,7 +84,9 @@ frappe.ui.form.on('User', { } } if (!found){ - frm.add_custom_button("Create User Email",frm.events.create_user_email) + frm.add_custom_button("Create User Email", function() { + frm.events.create_user_email(frm) + }) } } @@ -113,25 +115,29 @@ frappe.ui.form.on('User', { frm.toggle_enable('email', doc.__islocal); } }, + create_user_email:function(frm) { frappe.call({ method: 'frappe.core.doctype.user.user.has_email_account', - args: {email:cur_frm.doc.email}, + args: { + email: frm.doc.email + }, callback: function(r) { - if (r["message"]== undefined){ + if (r.message == undefined) { frappe.route_options = { - "email_id": cur_frm.doc.email, - "awaiting_password":1, - "enable_incoming":1 + "email_id": frm.doc.email, + "awaiting_password": 1, + "enable_incoming": 1 }; frappe.model.with_doctype("Email Account", function (doc) { var doc = frappe.model.get_new_doc("Email Account"); - frappe.route_flags.create_user_account=cur_frm.doc.name; - frappe.set_route("Form", "Email Account", doc.name); + frappe.route_flags.linked_user = frm.doc.name; + frappe.route_flags.delete_user_from_locals = true; + frappe.set_route("Form", "Email Account", doc.name); }) - }else{ - frappe.route_flags.create_user_account=cur_frm.doc.name; - frappe.set_route("Form", "Email Account", r["message"][0]["name"]); + } else { + frappe.route_flags.create_user_account = frm.doc.name; + frappe.set_route("Form", "Email Account", r.message[0]["name"]); } } }) diff --git a/frappe/core/page/desktop/desktop.js b/frappe/core/page/desktop/desktop.js index 1fa30bb8ed..acf098db5b 100644 --- a/frappe/core/page/desktop/desktop.js +++ b/frappe/core/page/desktop/desktop.js @@ -45,21 +45,6 @@ $.extend(frappe.desktop, { explore_icon.app_icon = frappe.ui.app_icon.get_html(explore_icon); all_icons.push(explore_icon); - if(frappe.boot.email_accounts.length && frappe.model.can_read("Communication")) { - var inbox_icon = { - module_name: 'Communication', - label: 'Email Inbox', - _label: __('Email Inbox'), - _id: 'Email Inbox', - _doctype: 'Communication', - icon: 'fa fa-envelope-o', - color: '#589494', - link: 'List/Communication/Inbox' - } - inbox_icon.app_icon = frappe.ui.app_icon.get_html(inbox_icon) - all_icons.push(inbox_icon); - } - frappe.desktop.wrapper.html(frappe.render_template(template, { // all visible icons desktop_items: all_icons, diff --git a/frappe/email/doctype/email_account/email_account.js b/frappe/email/doctype/email_account/email_account.js index a9dd823780..d44de5a8f0 100644 --- a/frappe/email/doctype/email_account/email_account.js +++ b/frappe/email/doctype/email_account/email_account.js @@ -109,6 +109,11 @@ frappe.ui.form.on("Email Account", { frm.events.enable_incoming(frm); frm.events.notify_if_unreplied(frm); frm.events.show_gmail_message_for_less_secure_apps(frm); + + if(frappe.route_flags.delete_user_from_locals && frappe.route_flags.linked_user) { + delete frappe.route_flags.delete_user_from_locals + delete locals['User'][frappe.route_flags.linked_user] + } }, show_gmail_message_for_less_secure_apps: function(frm) { @@ -125,8 +130,9 @@ frappe.ui.form.on("Email Account", { }, update_domain: function(frm){ - if (!frm.doc.email_id && !frm.doc.service) + if (!frm.doc.email_id && !frm.doc.service){ return + } frappe.call({ method: 'get_domain', @@ -155,11 +161,13 @@ frappe.ui.form.on("Email Account", { }, set_domain_fields: function(frm, args) { - if(!args) + if(!args){ args = frappe.route_flags.set_domain_values? frappe.route_options: {} + } - for(field in args) + for(field in args) { frm.set_value(field, args[field]); + } delete frappe.route_flags.set_domain_values frappe.route_options = {} diff --git a/frappe/public/build.json b/frappe/public/build.json index de78968af5..25e6a8ddeb 100755 --- a/frappe/public/build.json +++ b/frappe/public/build.json @@ -255,7 +255,6 @@ "public/js/frappe/views/image/photoswipe_dom.html", "public/js/frappe/views/inbox/inbox_no_result.html", - "public/js/frappe/views/inbox/select_email_inbox.html", "public/js/frappe/views/inbox/inbox_view_item_row.html", "public/js/frappe/views/inbox/inbox_view_item_main_head.html", diff --git a/frappe/public/js/frappe/list/list_view.js b/frappe/public/js/frappe/list/list_view.js index 98ce34af50..bbb8df50e1 100644 --- a/frappe/public/js/frappe/list/list_view.js +++ b/frappe/public/js/frappe/list/list_view.js @@ -239,8 +239,9 @@ frappe.views.ListView = frappe.ui.BaseList.extend({ route.push(us['Kanban'].last_kanban_board); } - if (us.last_view === 'Inbox') + if (us.last_view === 'Inbox') { route.push(us['Inbox'].last_email_account) + } } else { route.push('List'); } diff --git a/frappe/public/js/frappe/views/inbox/inbox_no_result.html b/frappe/public/js/frappe/views/inbox/inbox_no_result.html index 688c9868e5..af6566c379 100644 --- a/frappe/public/js/frappe/views/inbox/inbox_no_result.html +++ b/frappe/public/js/frappe/views/inbox/inbox_no_result.html @@ -1,12 +1,14 @@ -
Email Account is not assigned, Please contact System Manager
- {% } else { %} -{{ __("No {} found", [doctype]) }}
-- -
- {% } %} +{{ __("No Email Accounts Assigned") }}
+ {% } else { %} +{{ msg }}
++ +
+ {% } %} +