diff --git a/public/css/ui/common.css b/public/css/ui/common.css index 96b985c422..b3e0ea3393 100644 --- a/public/css/ui/common.css +++ b/public/css/ui/common.css @@ -265,4 +265,14 @@ textarea[data-fieldtype="Small Text"] { .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { display: inline; +} + +.btn-text { + display: none; +} + +@media (min-width: 768px) { + .btn-text { + display: inline; + } } \ No newline at end of file diff --git a/public/js/wn/form/assign_to.js b/public/js/wn/form/assign_to.js index b1228b170c..4ea9b01fe4 100644 --- a/public/js/wn/form/assign_to.js +++ b/public/js/wn/form/assign_to.js @@ -58,37 +58,41 @@ wn.ui.form.AssignTo = Class.extend({ this.dialog.hide(); } - for(var i=0; i\ - %(avatar)s %(fullname)s \ - ×', info)) - .appendTo(this.$list); - - this.$list.find(".avatar").css("margin-top", "-7px") - this.$list.find('.avatar img').centerImage(); - } + if(d.length) { + for(var i=0; i\ + %(avatar)s %(fullname)s \ + ×', info)) + .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); + me.frm.toolbar.show_infobar(); + } + }); + return false; }); - return false; - }); + } else { + $('

' + wn._("No one") + '

').appendTo(this.$list); + } }, add: function() { var me = this; diff --git a/public/js/wn/form/attachments.js b/public/js/wn/form/attachments.js index dc9efd830f..365183ae49 100644 --- a/public/js/wn/form/attachments.js +++ b/public/js/wn/form/attachments.js @@ -63,8 +63,12 @@ wn.ui.form.Attachments = Class.extend({ var file_names = keys(attachments).sort(); // add attachment objects - for(var i=0; i' + wn._("None") + '

').appendTo(this.$list); } // refresh select fields with options attach_files: diff --git a/public/js/wn/form/footer.js b/public/js/wn/form/footer.js index a6b9e9668e..510742792a 100644 --- a/public/js/wn/form/footer.js +++ b/public/js/wn/form/footer.js @@ -28,7 +28,7 @@ wn.ui.form.Footer = Class.extend({
\

Tags

\
\ -
\ +
\
\

Comments

\
\ diff --git a/public/js/wn/form/toolbar.js b/public/js/wn/form/toolbar.js index 53ee16cbf7..b1188ee4f2 100644 --- a/public/js/wn/form/toolbar.js +++ b/public/js/wn/form/toolbar.js @@ -106,7 +106,7 @@ wn.ui.form.Toolbar = Class.extend({ this.appframe.add_button("Edit", function() { me.frm.edit_doc(); return false; - }) + }, 'icon-pencil') this.frm.$print_view_select = this.appframe.add_select("Print Format", this.frm.print_formats) .val(this.frm.print_formats[0]) @@ -216,7 +216,7 @@ wn.ui.form.Toolbar = Class.extend({ this.make_save_button(); } else if(docstatus==1 && p[CANCEL]) { - this.appframe.add_dropdown_button("File", 'Cancel', function() { + this.appframe.add_button('Cancel', function() { me.frm.savecancel(this) }, 'icon-remove'); } else if(docstatus==2 && p[AMEND]) { diff --git a/public/js/wn/model/doclist.js b/public/js/wn/model/doclist.js index 0bd9e61fee..dcc53f1c05 100644 --- a/public/js/wn/model/doclist.js +++ b/public/js/wn/model/doclist.js @@ -31,20 +31,28 @@ wn.model.DocList = Class.extend({ save: function(action, callback, btn) { this.check_name(); if(this.check_mandatory()) { + var me = this; this._call({ method: "webnotes.widgets.form.save.savedocs", args: { docs: wn.model.compress(this.doclist), action:action}, - callback: callback, + callback: function(r) { + $(document).trigger("save", me.doc); + callback(r); + }, btn: btn }); } }, cancel: function(callback, btn) { + var me = this; this._call({ method: "webnotes.widgets.form.save.cancel", args: { doctype: this.doctype, name: this.name }, - callback: callback, + callback: function(r) { + $(document).trigger("save", wn.model.get_doc(me.doctype, me.name)); + callback(r); + }, btn: btn }); }, diff --git a/public/js/wn/ui/appframe.js b/public/js/wn/ui/appframe.js index b774fdd165..fbba468b5b 100644 --- a/public/js/wn/ui/appframe.js +++ b/public/js/wn/ui/appframe.js @@ -182,7 +182,7 @@ wn.ui.AppFrame = Class.extend({ this.buttons[label] && this.buttons[label].remove(); this.buttons[label] = $(repl('', args)) + %(icon)s %(label)s', args)) .appendTo(this.toolbar.find(".btn-group").css({"margin-right": "5px"})) //.appendTo(title_toolbar ? this.$w.find(".title-button-area") : this.toolbar.find(".btn-group")) .attr("title", wn._(label)) diff --git a/public/js/wn/ui/listing.js b/public/js/wn/ui/listing.js index ac9adc1a45..4ef97fd261 100644 --- a/public/js/wn/ui/listing.js +++ b/public/js/wn/ui/listing.js @@ -229,8 +229,10 @@ wn.ui.Listing = Class.extend({ type: "GET", args: this.get_call_args(a0), callback: function(r) { - if(!me.opts.no_loading)me.set_working(false); - me.render_results(r) + if(!me.opts.no_loading) + me.set_working(false); + me.dirty = false; + me.render_results(r); }, no_spinner: this.opts.no_loading }); diff --git a/public/js/wn/views/doclistview.js b/public/js/wn/views/doclistview.js index 36b90b3adf..1898209ff2 100644 --- a/public/js/wn/views/doclistview.js +++ b/public/js/wn/views/doclistview.js @@ -9,7 +9,7 @@ wn.views.doclistview.show = function(doctype) { var page_name = "List/" + route[1]; if(wn.pages[page_name]) { wn.container.change_to(wn.pages[page_name]); - if(wn.container.page.doclistview) + if(wn.container.page.doclistview && wn.container.page.doclistview.dirty) wn.container.page.doclistview.run(); } else { if(route[1]) { @@ -23,10 +23,19 @@ wn.views.doclistview.show = function(doctype) { } } +$(document).on("save", function(event, doc) { + var list_page = "List/" + doc.doctype; + if(wn.pages[list_page]) { + if(wn.pages[list_page].doclistview) + wn.pages[list_page].doclistview.dirty = true; + } +}) + wn.views.DocListView = wn.ui.Listing.extend({ init: function(doctype) { this.doctype = doctype; this.label = wn._(doctype); + this.dirty = true; this.label = (this.label.toLowerCase().substr(-4) == 'list') ? wn._(this.label) : (wn._(this.label) + ' ' + wn._('List')); this.make_page(); @@ -71,7 +80,7 @@ wn.views.DocListView = wn.ui.Listing.extend({ this.appframe.add_breadcrumb("icon-list"); this.appframe.set_views_for(this.doctype, "list"); }, - + setup: function() { var me = this; me.can_delete = wn.model.can_delete(me.doctype); diff --git a/public/js/wn/views/listview.js b/public/js/wn/views/listview.js index 58f6f964f1..cacb951941 100644 --- a/public/js/wn/views/listview.js +++ b/public/js/wn/views/listview.js @@ -151,10 +151,11 @@ wn.views.ListView = Class.extend({ }); // row #2 - var row2 = $('