您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

assign_to.js 2.5 KiB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. // assign to is lined to todo
  2. // refresh - load todos
  3. // create - new todo
  4. // delete to do
  5. wn.widgets.form.sidebar.AssignTo = Class.extend({
  6. init: function(parent, sidebar, doctype, docname) {
  7. var me = this;
  8. this.doctype = doctype;
  9. this.name = docname;
  10. this.wrapper = $a(parent, 'div', 'sidebar-comment-wrapper');
  11. this.body = $a(this.wrapper, 'div');
  12. this.add_btn = $btn($a(this.wrapper, 'div', 'sidebar-comment-message'), 'Assign',
  13. function() {
  14. me.add();
  15. })
  16. this.refresh();
  17. },
  18. refresh: function() {
  19. var me = this;
  20. $c('webnotes.widgets.form.assign_to.get', {
  21. doctype: me.doctype,
  22. name: me.name
  23. }, function(r,rt) {
  24. me.render(r.message)
  25. })
  26. },
  27. render: function(d) {
  28. var me = this;
  29. $(this.body).empty();
  30. if(this.dialog) {
  31. this.dialog.hide();
  32. }
  33. for(var i=0; i<d.length; i++) {
  34. $(this.body).append(repl('<div>%(owner)s \
  35. <a class="close" href="#" data-owner="%(owner)s">&#215</a></div>', d[i]))
  36. }
  37. // set remove
  38. $(this.body).find('a.close').click(function() {
  39. $c('webnotes.widgets.form.assign_to.remove', {
  40. doctype: me.doctype,
  41. name: me.name,
  42. assign_to: $(this).attr('data-owner')
  43. }, function(r,rt) {me.render(r.message);});
  44. return false;
  45. });
  46. },
  47. add: function() {
  48. var me = this;
  49. if(!me.dialog) {
  50. me.dialog = new wn.widgets.Dialog({
  51. title: 'Add to To Do',
  52. width: 350,
  53. fields: [
  54. {fieldtype:'Link', fieldname:'assign_to', options:'Profile',
  55. label:'Assign To',
  56. description:'Add to To Do List of', reqd:true},
  57. {fieldtype:'Data', fieldname:'description', label:'Comment',
  58. 'default': 'Assigned by ' + user},
  59. {fieldtype:'Date', fieldname:'date', label:'Complete By'},
  60. {fieldtype:'Select', fieldname:'priority', label:'Priority',
  61. options:'Low\nMedium\nHigh', 'default':'Medium'},
  62. {fieldtype:'Check', fieldname:'notify', label:'Notify By Email'},
  63. {fieldtype:'Button', label:'Add', fieldname:'add_btn'}
  64. ]
  65. });
  66. me.dialog.fields_dict.add_btn.input.onclick = function() {
  67. var assign_to = me.dialog.fields_dict.assign_to.get_value();
  68. if(assign_to) {
  69. $c('webnotes.widgets.form.assign_to.add', {
  70. doctype: me.doctype,
  71. name: me.name,
  72. assign_to: assign_to,
  73. description: me.dialog.fields_dict.description.get_value(),
  74. priority: me.dialog.fields_dict.priority.get_value(),
  75. date: me.dialog.fields_dict.date.get_value(),
  76. notify: me.dialog.fields_dict.notify.get_value()
  77. }, function(r,rt) {me.render(r.message);});
  78. }
  79. }
  80. }
  81. me.dialog.clear();
  82. me.dialog.show();
  83. }
  84. });