From a8dbaa10c43804683429fec29aa90f0d62254574 Mon Sep 17 00:00:00 2001 From: phasefx Date: Mon, 11 Jul 2005 08:14:32 +0000 Subject: [PATCH] One of those evil things that scares Mike. Eval'ing code from attributes git-svn-id: svn://svn.open-ils.org/ILS/trunk@1115 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../chrome/content/evergreen/util/fm_utils.js | 41 +++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/Evergreen/staff_client/chrome/content/evergreen/util/fm_utils.js b/Evergreen/staff_client/chrome/content/evergreen/util/fm_utils.js index 9656ed5dea..98470e948d 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/util/fm_utils.js +++ b/Evergreen/staff_client/chrome/content/evergreen/util/fm_utils.js @@ -87,4 +87,43 @@ function find_ou_by_shortname(tree,sn) { return null; } - +function render_fm(d,obj) { + sdump('D_FM_UTILS',arg_dump(arguments,{1:true})); + var nl = d.getElementsByAttribute('render','true'); + for (var i = 0; i < nl.length; i++) { + var node = nl[i]; + var fm_class = node.getAttribute('fm_class'); + var render_value = node.getAttribute('render_value'); + var render_css_style = node.getAttribute('render_css_style'); + var render_css_class = node.getAttribute('render_css_class'); + if ( !fm_class ) continue; + if ( obj[ fm_class ] ) { + sdump('D_FM_UTILS',"We're in:\n\trender_value = " + render_value + "\n\trender_css_style = " + render_css_style + "\n\trender_css_class = " + render_css_class + "\n"); + var result = ''; + if (render_value) { + if (render_value.slice(0,1) == '.') { + var cmd = 'obj[ fm_class ]' + render_value; + } else { + var cmd = render_value.replace( /\$\$/g, 'obj[ fm_class ]' ); + } + result = eval( cmd ); + sdump('D_FM_UTILS','<'+cmd+'> renders <'+result+'>\n'); + set_widget_value_for_display( node, result ); + } + if (render_css_style) { + var cmd = render_css_style.replace( /\$\$/g, 'obj[ fm_class ]' ); + var cmd = cmd.replace( /\%\%/g, 'result' ); + var result = eval(cmd); + sdump('D_FM_UTILS','\t<'+cmd+'> renders <'+result+'>\n'); + node.setAttribute('style',result); + } + if (render_css_class) { + var cmd = render_css_class.replace( /\$\$/g, 'obj[ fm_class ]' ); + var cmd = cmd.replace( /\%\%/g, 'result' ); + var result = eval(cmd); + sdump('D_FM_UTILS','\t<'+cmd+'> renders <'+result+'>\n'); + node.setAttribute('class',result); + } + } + } +} -- 2.11.0