@@ -96,9 +96,7 @@ refresh_field = function(n, docname, table_field) { | |||
if(table_field) { // for table | |||
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 { | |||
var g = _f.cur_grid_cell; | |||
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); | |||
} | |||
} | |||
} 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) { | |||
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) { | |||
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) { | |||
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(typeof n == 'string') _hide_field(n,1); | |||
@@ -141,9 +132,7 @@ hide_field = function(n) { | |||
unhide_field = function(n) { | |||
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(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() { | |||
// refresh fields | |||
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) { | |||
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) { | |||
//var field = cur_frm.fields_dict[f]; - much better design | |||
var field = wn.meta.get_docfield(cur_frm.doctype, f, cur_frm.docname) | |||
if(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) { | |||
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.toggle_display(['sb1', 'sb2', 'sb3'], !doc.__islocal); | |||
cur_frm.toggle_enable('email', 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.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) { | |||
doc.__temp = JSON.stringify({ | |||
roles:cur_frm.roles_editor.get_roles() | |||