Merge branch 'master' of github.com:webnotes/wnframework

This commit is contained in:
Rushabh Mehta 2013-07-22 15:59:40 +05:30
commit 6d11cfb6e9
4 changed files with 52 additions and 37 deletions

View file

@ -726,36 +726,9 @@ wn.ui.form.ControlLink = wn.ui.form.ControlData.extend({
callback(value);
return;
}
var fetch = '';
if(me.frm && me.frm.fetch_dict[me.df.fieldname])
fetch = me.frm.fetch_dict[me.df.fieldname].columns.join(', ');
wn.call({
method:'webnotes.widgets.form.utils.validate_link',
type: "GET",
args: {
'value': value,
'options':me.df.options,
'fetch': fetch
},
callback: function(r) {
if(r.message=='Ok') {
callback(value);
if(r.fetch_values)
me.set_fetch_values(r.fetch_values);
} else {
callback("")
}
}
});
this.frm.script_manager.validate_link_and_fetch(this.df, this.docname, value, callback);
},
set_fetch_values: function(fetch_values) {
var fl = this.frm.fetch_dict[this.df.fieldname].fields;
for(var i=0; i < fl.length; i++) {
wn.model.set_value(this.doctype, this.docname, fl[i], fetch_values[i]);
}
}
});
wn.ui.form.ControlCode = wn.ui.form.ControlInput.extend({

View file

@ -18,9 +18,7 @@ wn.ui.form.Grid = Class.extend({
</div>').appendTo(this.parent);
$(this.wrapper).find(".grid-add-row").click(function() {
wn.model.add_child(me.frm.doc, me.df.options, me.df.fieldname);
me.refresh();
me.wrapper.find(".grid-row:last").data("grid_row").toggle_view(true);
me.add_new_row();
return false;
})
@ -137,12 +135,17 @@ wn.ui.form.Grid = Class.extend({
this.grid_rows_by_docname[doc.name].refresh_field(fieldname);
},
add_new_row: function(idx, callback) {
wn.model.add_child(this.frm.doc, this.df.options, this.df.fieldname, idx);
var d = wn.model.add_child(this.frm.doc, this.df.options, this.df.fieldname, idx);
this.frm.script_manager.trigger(this.df.fieldname + "_add", d.doctype, d.name);
this.refresh();
// show
this.wrapper.find("[data-idx='"+idx+"']").data("grid_row")
.toggle_view(true, callback);
if(idx) {
this.wrapper.find("[data-idx='"+idx+"']").data("grid_row")
.toggle_view(true, callback);
} else {
this.wrapper.find(".grid-row:last").data("grid_row").toggle_view(true, callback);
}
}
});

View file

@ -36,5 +36,44 @@ wn.ui.form.ScriptManager = Class.extend({
console.trace && console.trace();
console.log("----- end of error message -----");
console.group && console.groupEnd();
},
validate_link_and_fetch: function(df, docname, value, callback) {
var me = this;
var fetch = '';
if(this.frm && this.frm.fetch_dict[df.fieldname])
fetch = this.frm.fetch_dict[df.fieldname].columns.join(', ');
wn.call({
method:'webnotes.widgets.form.utils.validate_link',
type: "GET",
args: {
'value': value,
'options': df.options,
'fetch': fetch
},
callback: function(r) {
if(r.message=='Ok') {
if(callback) callback(value);
if(r.fetch_values)
me.set_fetch_values(df, docname, r.fetch_values);
} else {
if(callback) callback("");
}
}
});
},
set_fetch_values: function(df, docname, fetch_values) {
var fl = this.frm.fetch_dict[df.fieldname].fields;
for(var i=0; i < fl.length; i++) {
wn.model.set_value(df.parent, docname, fl[i], fetch_values[i]);
}
},
copy_from_first_row: function(parentfield, current_row, fieldnames) {
var doclist = wn.model.get_doclist(this.frm.doc.doctype, this.frm.doc.name, {parentfield: parentfield});
if(doclist.length===1 || doclist[0]===current_row) return;
$.each(fieldnames, function(i, fieldname) {
current_row[fieldname] = doclist[0][fieldname];
});
}
})
});

View file

@ -107,7 +107,7 @@ $.extend(wn.model, {
idx !== cint(idx) &&
wn.model.get_children(doctype, parent_doc.name, parentfield,
parent_doc.doctype);
return d;
},