// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
// MIT License. See license.txt
wn.ui.form.Grid = Class.extend({
init: function(opts) {
$.extend(this, opts);
this.fieldinfo = {};
this.doctype = this.df.options;
},
make: function() {
var me = this;
this.wrapper = $('
')
.css({"padding": "0px 15px"})
.appendTo(me.form_area);
var col1 = $('
').appendTo(row),
col2 = $('
').appendTo(row);
return [col1, col2];
},
cols = make_row(),
cnt = 0;
$.each(me.docfields, function(ci, df) {
if(!df.hidden) {
if(df.fieldtype=="Section Break") {
cols = make_row(df.label);
cnt = 0;
return;
}
var fieldwrapper = $('
')
.appendTo(cols[cnt % 2])
var fieldobj = make_field(df, me.parent_df.options,
fieldwrapper.get(0), me.frm);
fieldobj.docname = me.doc.name;
fieldobj.refresh();
fieldobj.input &&
$(fieldobj.input).css({"max-height": "100px"});
// set field properties
// used for setting custom get queries in links
if(me.grid.fieldinfo[df.fieldname])
$.extend(fieldobj, me.grid.fieldinfo[df.fieldname]);
me.fields.push(fieldobj);
me.fields_dict[df.fieldname] = fieldobj;
cnt++;
}
});
this.wrapper.find(".footer-toolbar").toggle(me.fields.length > 6);
this.toggle_add_delete_button_display(this.wrapper.find(".panel:first"));
this.grid.open_grid_row = this;
},
make_form: function() {
if(!this.form_area) {
$('
\
\
Editing Row #\
\
\
\
\
\
\
').appendTo(this.form_panel);
this.form_area = this.wrapper.find(".form-area");
this.set_form_events();
}
},
set_form_events: function() {
var me = this;
this.form_panel.find(".grid-delete-row")
.click(function() { me.remove(); return false; })
this.form_panel.find(".grid-insert-row")
.click(function() { me.insert(true); return false; })
this.form_panel.find(".panel-heading").on("click", function() {
me.toggle_view();
return false;
});
},
set_data: function() {
this.wrapper.data({
"doc": this.doc
})
},
refresh_field: function(fieldname) {
var $col = this.row.find("[data-fieldname='"+fieldname+"']");
if($col.length) {
var value = wn.model.get_value(this.doc.doctype, this.doc.name, fieldname);
$col.html(wn.format(value, $col.data("df"), null, this.doc));
}
// in form
if(this.fields_dict && this.fields_dict[fieldname]) {
this.fields_dict[fieldname].refresh();
}
},
});