@@ -96,9 +96,7 @@ refresh_field = function(n, docname, table_field) { | |||||
if(table_field) { // for table | if(table_field) { // for table | ||||
if(_f.frm_dialog && _f.frm_dialog.display) { | if(_f.frm_dialog && _f.frm_dialog.display) { | ||||
// in dialog | |||||
if(_f.frm_dialog.cur_frm.fields_dict[n] && _f.frm_dialog.cur_frm.fields_dict[n].refresh) | |||||
_f.frm_dialog.cur_frm.fields_dict[n].refresh(); | |||||
_f.frm_dialog.cur_frm.refresh_field(n); | |||||
} else { | } else { | ||||
var g = _f.cur_grid_cell; | var g = _f.cur_grid_cell; | ||||
if(g) var hc = g.grid.head_row.cells[g.cellIndex]; | if(g) var hc = g.grid.head_row.cells[g.cellIndex]; | ||||
@@ -109,29 +107,22 @@ refresh_field = function(n, docname, table_field) { | |||||
cur_frm.fields_dict[table_field].grid.refresh_cell(docname, n); | cur_frm.fields_dict[table_field].grid.refresh_cell(docname, n); | ||||
} | } | ||||
} | } | ||||
} else if(cur_frm && cur_frm.fields_dict) { | |||||
if(cur_frm.fields_dict[n] && cur_frm.fields_dict[n].refresh) | |||||
cur_frm.fields_dict[n].refresh(); | |||||
} else if(cur_frm) { | |||||
cur_frm.refresh_field(n) | |||||
} | } | ||||
} | } | ||||
set_field_options = function(n, txt) { | set_field_options = function(n, txt) { | ||||
var df = wn.meta.get_docfield(cur_frm.doctype, n, cur_frm.docname); | |||||
if(df)df.options = txt; | |||||
refresh_field(n); | |||||
cur_frm.set_df_property(n, 'options', txt) | |||||
} | } | ||||
set_field_permlevel = function(n, level) { | set_field_permlevel = function(n, level) { | ||||
var df = wn.meta.get_docfield(cur_frm.doctype, n, cur_frm.docname); | |||||
if(df)df.permlevel = level; | |||||
refresh_field(n); | |||||
cur_frm.set_df_property(n, 'permlevel', level) | |||||
} | } | ||||
hide_field = function(n) { | hide_field = function(n) { | ||||
function _hide_field(n,hidden) { | function _hide_field(n,hidden) { | ||||
var df = wn.meta.get_docfield(cur_frm.doctype, n, cur_frm.docname); | |||||
if(df) { df.hidden = hidden; refresh_field(n); } | |||||
else { console.log("hide_field cannot find field " + n); } | |||||
cur_frm.set_df_property(n, 'hidden', hidden) | |||||
} | } | ||||
if(cur_frm) { | if(cur_frm) { | ||||
if(typeof n == 'string') _hide_field(n,1); | if(typeof n == 'string') _hide_field(n,1); | ||||
@@ -141,9 +132,7 @@ hide_field = function(n) { | |||||
unhide_field = function(n) { | unhide_field = function(n) { | ||||
function _hide_field(n,hidden) { | function _hide_field(n,hidden) { | ||||
var df = wn.meta.get_docfield(cur_frm.doctype, n, cur_frm.docname); | |||||
if(df) {df.hidden = hidden; refresh_field(n); } | |||||
else { console.log("unhide_field cannot find field " + n); } | |||||
cur_frm.set_df_property(n, 'hidden', hidden) | |||||
} | } | ||||
if(cur_frm) { | if(cur_frm) { | ||||
if(typeof n == 'string') _hide_field(n,0); | if(typeof n == 'string') _hide_field(n,0); | ||||
@@ -644,6 +644,11 @@ _f.Frm.prototype.refresh_footer = function() { | |||||
} | } | ||||
} | } | ||||
_f.Frm.prototype.refresh_field = function(fname) { | |||||
cur_frm.fields_dict[fname] && cur_frm.fields_dict[fname].refresh | |||||
&& cur_frm.fields_dict[fname].refresh(); | |||||
} | |||||
_f.Frm.prototype.refresh_fields = function() { | _f.Frm.prototype.refresh_fields = function() { | ||||
// refresh fields | // refresh fields | ||||
for(var i=0; i<this.fields.length; i++) { | for(var i=0; i<this.fields.length; i++) { | ||||
@@ -1124,18 +1129,32 @@ _f.Frm.prototype.get_doclist = function() { | |||||
} | } | ||||
_f.Frm.prototype.field_map = function(fnames, fn) { | _f.Frm.prototype.field_map = function(fnames, fn) { | ||||
if(typeof fnames=='string') fnames = [fnames]; | |||||
if(typeof fnames=='string') { | |||||
if(fnames == '*') { | |||||
fnames = keys(this.fields_dict); | |||||
} else { | |||||
fnames = [fnames]; | |||||
} | |||||
} | |||||
$.each(fnames, function(i,f) { | $.each(fnames, function(i,f) { | ||||
//var field = cur_frm.fields_dict[f]; - much better design | //var field = cur_frm.fields_dict[f]; - much better design | ||||
var field = wn.meta.get_docfield(cur_frm.doctype, f, cur_frm.docname) | var field = wn.meta.get_docfield(cur_frm.doctype, f, cur_frm.docname) | ||||
if(field) { | if(field) { | ||||
fn(field); | fn(field); | ||||
field.refresh && field.refresh(); | |||||
cur_frm.refresh_field(f); | |||||
}; | }; | ||||
}) | }) | ||||
} | } | ||||
_f.Frm.prototype.set_df_property = function(fieldname, property, value) { | |||||
var field = wn.meta.get_docfield(cur_frm.doctype, fieldname, cur_frm.docname) | |||||
if(field) { | |||||
field[property] = value; | |||||
cur_frm.refresh_field(fieldname); | |||||
}; | |||||
} | |||||
_f.Frm.prototype.toggle_enable = function(fnames, enable) { | _f.Frm.prototype.toggle_enable = function(fnames, enable) { | ||||
cur_frm.field_map(fnames, function(field) { field.disabled = enable ? false : true; }); | cur_frm.field_map(fnames, function(field) { field.disabled = enable ? false : true; }); | ||||
} | } | ||||
@@ -7,15 +7,25 @@ cur_frm.cscript.onload = function(doc) { | |||||
} | } | ||||
cur_frm.cscript.refresh = function(doc) { | cur_frm.cscript.refresh = function(doc) { | ||||
cur_frm.toggle_display(['sb1', 'sb2', 'sb3'], !doc.__islocal); | |||||
cur_frm.toggle_enable('email', doc.__islocal); | |||||
cur_frm.toggle_reqd('new_password', doc.__islocal); | cur_frm.toggle_reqd('new_password', doc.__islocal); | ||||
if(!doc.__islocal) { | |||||
if(doc.__islocal) { | |||||
cur_frm.toggle_display(['sb1', 'sb2', 'sb3'], false); | |||||
} else { | |||||
cur_frm.cscript.enabled(doc); | |||||
cur_frm.roles_editor.show(doc.name) | cur_frm.roles_editor.show(doc.name) | ||||
} | } | ||||
} | } | ||||
cur_frm.cscript.enabled = function(doc) { | |||||
if(!doc.__islocal) { | |||||
cur_frm.toggle_display(['sb1', 'sb2', 'sb3'], doc.enabled); | |||||
cur_frm.toggle_enable('*', doc.enabled); | |||||
cur_frm.set_df_property('enabled', 'disabled', false); | |||||
} | |||||
cur_frm.toggle_enable('email', doc.__islocal); | |||||
} | |||||
cur_frm.cscript.validate = function(doc) { | cur_frm.cscript.validate = function(doc) { | ||||
doc.__temp = JSON.stringify({ | doc.__temp = JSON.stringify({ | ||||
roles:cur_frm.roles_editor.get_roles() | roles:cur_frm.roles_editor.get_roles() | ||||