From d412c4718ebbc9ccceab6db35a038c874e220a3a Mon Sep 17 00:00:00 2001 From: robert schouten Date: Fri, 2 Dec 2016 18:08:31 +0800 Subject: [PATCH] refactor assign_to dialog for ease of use (#2401) * refactor assign_to dialog for ease of use * CamelCase for classes * Update doclistview.js --- .../public/js/frappe/form/footer/assign_to.js | 98 +++++++++---------- frappe/public/js/frappe/list/doclistview.js | 2 +- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/frappe/public/js/frappe/form/footer/assign_to.js b/frappe/public/js/frappe/form/footer/assign_to.js index 9a2b6061a3..5a146830f1 100644 --- a/frappe/public/js/frappe/form/footer/assign_to.js +++ b/frappe/public/js/frappe/form/footer/assign_to.js @@ -85,7 +85,7 @@ frappe.ui.form.AssignTo = Class.extend({ } if(!me.dialog) { - me.dialog = frappe.ui.to_do_dialog({ + me.dialog = new frappe.ui.form.AssignToDialog({ obj: me, method: 'frappe.desk.form.assign_to.add', doctype: me.frm.doctype, @@ -103,28 +103,7 @@ frappe.ui.form.AssignTo = Class.extend({ } me.dialog.show(); - - var myself = me.dialog.get_input("myself").on("click", function() { - me.toggle_myself(this); - }); - me.toggle_myself(myself); }, - - toggle_myself: function(myself) { - var me = this; - if($(myself).prop("checked")) { - me.dialog.set_value("assign_to", user); - me.dialog.set_value("notify", 0); - me.dialog.get_field("notify").$wrapper.toggle(false); - me.dialog.get_field("assign_to").$wrapper.toggle(false); - } else { - me.dialog.set_value("assign_to", ""); - me.dialog.set_value("notify", 1); - me.dialog.get_field("notify").$wrapper.toggle(true); - me.dialog.get_field("assign_to").$wrapper.toggle(true); - } - }, - remove: function(owner) { var me = this; @@ -149,35 +128,56 @@ frappe.ui.form.AssignTo = Class.extend({ }); -frappe.ui.to_do_dialog = function(opts){ - var dialog = new frappe.ui.Dialog({ - title: __('Add to To Do'), - fields: [ - {fieldtype: 'Link', fieldname:'assign_to', options:'User', - label:__("Assign To"), reqd:true, filters: {'user_type': 'System User'}}, - {fieldtype:'Check', fieldname:'myself', label:__("Assign to me"), "default":0}, - {fieldtype:'Small Text', fieldname:'description', label:__("Comment"), reqd:true}, - {fieldtype: 'Section Break'}, - {fieldtype: 'Column Break'}, - {fieldtype:'Date', fieldname:'date', label: __("Complete By")}, - {fieldtype:'Check', fieldname:'notify', - label:__("Notify by Email"), "default":1}, - {fieldtype: 'Column Break'}, - {fieldtype:'Select', fieldname:'priority', label: __("Priority"), - options:[ - {value: 'Low', label: __('Low')}, - {value:'Medium', label: __('Medium')}, - {value: 'High', label: __('High')}], - 'default':'Medium'}, - ], - primary_action: function() { frappe.ui.add_assignment(opts, dialog); }, - primary_action_label: __("Add") - }); +frappe.ui.form.AssignToDialog = Class.extend({ + init: function(opts){ + var me = this + $.extend(me,new frappe.ui.Dialog({ + title: __('Add to To Do'), + fields: [ + {fieldtype: 'Link', fieldname:'assign_to', options:'User', + label:__("Assign To"), reqd:true, filters: {'user_type': 'System User'}}, + {fieldtype:'Check', fieldname:'myself', label:__("Assign to me"), "default":0}, + {fieldtype:'Small Text', fieldname:'description', label:__("Comment"), reqd:true}, + {fieldtype: 'Section Break'}, + {fieldtype: 'Column Break'}, + {fieldtype:'Date', fieldname:'date', label: __("Complete By")}, + {fieldtype:'Check', fieldname:'notify', + label:__("Notify by Email"), "default":1}, + {fieldtype: 'Column Break'}, + {fieldtype:'Select', fieldname:'priority', label: __("Priority"), + options:[ + {value:'Low', label:__('Low')}, + {value:'Medium', label:__('Medium')}, + {value:'High', label:__('High')}], + 'default':'Medium'}, + ], + primary_action: function() { frappe.ui.add_assignment(opts, me); }, + primary_action_label: __("Add") + })); - dialog.fields_dict.assign_to.get_query = "frappe.core.doctype.user.user.user_query"; + dialog.fields_dict.assign_to.get_query = "frappe.core.doctype.user.user.user_query"; - return dialog -} + var myself = me.get_input("myself").on("click", function() { + me.toggle_myself(this); + }); + me.toggle_myself(myself); + }, + toggle_myself: function(myself) { + var me = this; + if($(myself).prop("checked")) { + me.set_value("assign_to", user); + me.set_value("notify", 0); + me.get_field("notify").$wrapper.toggle(false); + me.get_field("assign_to").$wrapper.toggle(false); + } else { + me.set_value("assign_to", ""); + me.set_value("notify", 1); + me.get_field("notify").$wrapper.toggle(true); + me.get_field("assign_to").$wrapper.toggle(true); + } + }, + +}); frappe.ui.add_assignment = function(opts, dialog) { var assign_to = opts.obj.dialog.fields_dict.assign_to.get_value(); diff --git a/frappe/public/js/frappe/list/doclistview.js b/frappe/public/js/frappe/list/doclistview.js index 9ac105a627..5cdd8d21ab 100644 --- a/frappe/public/js/frappe/list/doclistview.js +++ b/frappe/public/js/frappe/list/doclistview.js @@ -659,7 +659,7 @@ frappe.views.DocListView = frappe.ui.Listing.extend({ }) if(docname.length >= 1){ - me.dialog = frappe.ui.to_do_dialog({ + me.dialog = new frappe.ui.AssignToDialog({ obj: me, method: 'frappe.desk.form.assign_to.add_multiple', doctype: me.doctype,