[minor] custom script to create issue, lead, opportunity from email
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 514ee86..f4b87d2 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -21,6 +21,10 @@
web_include_js = "assets/js/erpnext-web.min.js"
web_include_css = "assets/erpnext/css/website.css"
+doctype_js = {
+ "Communication": "public/js/communication.js",
+}
+
# setup wizard
setup_wizard_requires = "assets/erpnext/js/setup_wizard.js"
setup_wizard_complete = "erpnext.setup.setup_wizard.setup_wizard.setup_complete"
diff --git a/erpnext/public/js/communication.js b/erpnext/public/js/communication.js
new file mode 100644
index 0000000..9d54f84
--- /dev/null
+++ b/erpnext/public/js/communication.js
@@ -0,0 +1,73 @@
+frappe.ui.form.on("Communication", {
+ refresh: function(frm) {
+ if(frm.doc.reference_doctype !== "Issue") {
+ frm.add_custom_button(__("Issue"), function() {
+ frappe.confirm("Are you sure you want to create Issue from this email", function(){
+ frm.trigger('make_issue_from_communication');
+ })
+ }, "Make");
+ }
+
+ if(!inList(["Lead", "Opportunity"], frm.doc.reference_doctype)) {
+ frm.add_custom_button(__("Lead"), function() {
+ frappe.confirm("Are you sure you want to create Lead from this email", function(){
+ frm.trigger('make_lead_from_communication');
+ })
+ }, "Make");
+
+ frm.add_custom_button(__("Opportunity"), function() {
+ frappe.confirm("Are you sure you want to create Opportunity from this email", function(){
+ frm.trigger('make_opportunity_from_communication');
+ })
+ }, "Make");
+ }
+
+
+ frm.page.set_inner_btn_group_as_primary(__("Make"));
+ },
+
+ make_lead_from_communication: function(frm) {
+ return frappe.call({
+ method: "frappe.email.inbox.make_lead_from_communication",
+ args: {
+ communication: frm.doc.name
+ },
+ freeze: true,
+ callback: function(r) {
+ if(r.message) {
+ frm.reload_doc()
+ }
+ }
+ })
+ },
+
+ make_issue_from_communication: function(frm) {
+ return frappe.call({
+ method: "frappe.email.inbox.make_issue_from_communication",
+ args: {
+ communication: frm.doc.name
+ },
+ freeze: true,
+ callback: function(r) {
+ if(r.message) {
+ frm.reload_doc()
+ }
+ }
+ })
+ },
+
+ make_opportunity_from_communication: function(frm) {
+ return frappe.call({
+ method: "frappe.email.inbox.make_opportunity_from_communication",
+ args: {
+ communication: frm.doc.name
+ },
+ freeze: true,
+ callback: function(r) {
+ if(r.message) {
+ frm.reload_doc()
+ }
+ }
+ })
+ }
+});
\ No newline at end of file