From d2a1ba6cd004ba55ac06eaff125954742a8bb6bb Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 7 Oct 2013 18:29:02 +0530 Subject: [PATCH] [form] Added new controls Attach and Attach Image and cleaned up field_groups - now using full form layout --- public/build.json | 2 +- public/js/legacy/form.js | 5 ++ public/js/wn/form/attachments.js | 9 +- public/js/wn/form/control.js | 107 ++++++++++++++++++++--- public/js/wn/form/layout.js | 88 +++++++------------ public/js/wn/misc/utils.js | 2 +- public/js/wn/model/meta.js | 2 +- public/js/wn/ui/dialog.js | 1 + public/js/wn/ui/field_group.js | 65 +++++++------- public/js/wn/upload.js | 11 ++- website/templates/includes/comments.html | 1 + 11 files changed, 182 insertions(+), 111 deletions(-) diff --git a/public/build.json b/public/build.json index 62037e6f4a..29658571ae 100644 --- a/public/build.json +++ b/public/build.json @@ -64,6 +64,7 @@ "lib/public/js/legacy/loaders.js", "lib/public/js/wn/ui/appframe.js", + "lib/public/js/wn/form/layout.js", "lib/public/js/wn/ui/field_group.js", "lib/public/js/wn/ui/dialog.js", "lib/public/js/wn/ui/button.js", @@ -120,7 +121,6 @@ "lib/public/js/wn/form/toolbar.js", "lib/public/js/wn/form/infobar.js", - "lib/public/js/wn/form/layout.js", "lib/public/js/wn/form/dashboard.js", "lib/public/js/wn/form/script_manager.js", "lib/public/js/wn/form/control.js", diff --git a/public/js/legacy/form.js b/public/js/legacy/form.js index c6373d47fb..810b3e9410 100644 --- a/public/js/legacy/form.js +++ b/public/js/legacy/form.js @@ -183,6 +183,10 @@ _f.Frm.prototype.setup_std_layout = function() { doctype: this.doctype, frm: this, }); + this.layout.make(); + + this.fields_dict = this.layout.fields_dict; + this.fields = this.layout.fields_list; this.dashboard = new wn.ui.form.Dashboard({ frm: this, @@ -467,6 +471,7 @@ _f.Frm.prototype.refresh_field = function(fname) { _f.Frm.prototype.refresh_fields = function() { this.layout.refresh(); + this.layout.primary_button = $(this.wrapper).find(".btn-primary"); // cleanup activities after refresh this.cleanup_refresh(this); diff --git a/public/js/wn/form/attachments.js b/public/js/wn/form/attachments.js index b43fcd119e..45b3460fc2 100644 --- a/public/js/wn/form/attachments.js +++ b/public/js/wn/form/attachments.js @@ -111,14 +111,11 @@ wn.ui.form.Attachments = Class.extend({ if(!this.dialog) { this.dialog = new wn.ui.Dialog({ title: wn._('Upload Attachment'), - width: 400 }); - $y(this.dialog.body, {margin:'13px'}); - this.dialog.make(); } - this.dialog.body.innerHTML = ''; this.dialog.show(); + $(this.dialog.body).empty(); wn.upload.make({ parent: this.dialog.body, args: { @@ -127,8 +124,8 @@ wn.ui.form.Attachments = Class.extend({ docname: this.frm.docname, }, callback: function(fileid, filename, r) { + me.dialog.hide(); me.update_attachment(fileid, filename, fieldname, r); - me.frm.toolbar.show_infobar(); }, onerror: function() { me.dialog.hide(); @@ -138,13 +135,13 @@ wn.ui.form.Attachments = Class.extend({ }); }, update_attachment: function(fileid, filename, fieldname, r) { - this.dialog && this.dialog.hide(); if(fileid) { this.add_to_attachments(fileid, filename); this.refresh(); if(fieldname) { this.frm.set_value(fieldname, wn.utils.get_file_link(filename)); this.frm.cscript[fieldname] && this.frm.cscript[fieldname](this.frm.doc); + this.frm.toolbar.show_infobar(); } } }, diff --git a/public/js/wn/form/control.js b/public/js/wn/form/control.js index 624b791ab4..5683b97f03 100644 --- a/public/js/wn/form/control.js +++ b/public/js/wn/form/control.js @@ -143,7 +143,7 @@ wn.ui.form.ControlInput = wn.ui.form.Control.extend({ \
\ \ -

 

\ +

\ ').appendTo(this.parent); } }, @@ -231,7 +231,7 @@ wn.ui.form.ControlInput = wn.ui.form.Control.extend({ this._description = this.df.description; }, set_empty_description: function() { - this.$wrapper.find(".help-box").html(" "); + this.$wrapper.find(".help-box").html(""); }, set_mandatory: function(value) { this.$wrapper.toggleClass("has-error", (this.df.reqd @@ -470,22 +470,24 @@ wn.ui.form.ControlButton = wn.ui.form.ControlData.extend({ var me = this; this.$input = $('