diff --git a/public/js/wn/form/assign_to.js b/public/js/wn/form/assign_to.js new file mode 100644 index 0000000000..47881e9fc7 --- /dev/null +++ b/public/js/wn/form/assign_to.js @@ -0,0 +1,145 @@ +// Copyright (c) 2012 Web Notes Technologies Pvt Ltd (http://erpnext.com) +// +// MIT License (MIT) +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// + +// assign to is lined to todo +// refresh - load todos +// create - new todo +// delete to do + +wn.provide("wn.ui.form"); + +wn.ui.form.AssignTo = Class.extend({ + init: function(opts) { + $.extend(this, opts); + var me = this; + this.wrapper = $('
\ + \ +
\ +
').appendTo(this.parent); + + this.$list = this.wrapper.find(".alert-list"); + + this.wrapper.find(".btn").click(function() { + me.add(); + }); + }, + refresh: function() { + if(this.frm.doc.__islocal) { + this.parent.toggle(false); + return; + } + this.parent.toggle(true); + + var me = this; + wn.call({ + method: 'webnotes.widgets.form.assign_to.get', + args: { + doctype: me.frm.doctype, + name: me.frm.docname + }, + callback: function(r) { + me.render(r.message) + } + }) + }, + render: function(d) { + var me = this; + this.$list.empty(); + if(this.dialog) { + this.dialog.hide(); + } + + for(var i=0; i\ + %(avatar)s %(fullname)s \ + ×', d[i])) + .appendTo(this.$list); + + this.$list.find(".avatar").css("margin-top", "-7px") + this.$list.find('.avatar img').centerImage(); + } + + // set remove + this.$list.find('a.close').click(function() { + wn.call({ + method:'webnotes.widgets.form.assign_to.remove', + args: { + doctype: me.frm.doctype, + name: me.frm.docname, + assign_to: $(this).attr('data-owner') + }, + callback:function(r,rt) {me.render(r.message);} + }); + return false; + }); + }, + add: function() { + var me = this; + if(!me.dialog) { + me.dialog = new wn.ui.Dialog({ + title: 'Add to To Do', + width: 350, + fields: [ + {fieldtype:'Link', fieldname:'assign_to', options:'Profile', + label:wn._("Assign To"), + description:wn._("Add to To Do List of"), reqd:true}, + {fieldtype:'Data', fieldname:'description', label:wn._("Comment")}, + {fieldtype:'Date', fieldname:'date', label: wn._("Complete By")}, + {fieldtype:'Select', fieldname:'priority', label: wn._("Priority"), + options:'Low\nMedium\nHigh', 'default':'Medium'}, + {fieldtype:'Check', fieldname:'notify', label: wn._("Notify By Email")}, + {fieldtype:'Button', label:wn._("Add"), fieldname:'add_btn'} + ] + }); + me.dialog.fields_dict.add_btn.input.onclick = function() { + + var assign_to = me.dialog.fields_dict.assign_to.get_value(); + if(assign_to) { + wn.call({ + method:'webnotes.widgets.form.assign_to.add', + args: { + doctype: me.frm.doctype, + name: me.frm.docname, + assign_to: assign_to, + description: me.dialog.fields_dict.description.get_value(), + priority: me.dialog.fields_dict.priority.get_value(), + date: me.dialog.fields_dict.date.get_value(), + notify: me.dialog.fields_dict.notify.get_value() + }, + callback: function(r,rt) { + me.render(r.message); + } + }); + } + } + } + me.dialog.clear(); + me.dialog.show(); + } +}); +