One of those evil things that scares Mike. Eval'ing code from attributes
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 11 Jul 2005 08:14:32 +0000 (08:14 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 11 Jul 2005 08:14:32 +0000 (08:14 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@1115 dcc99617-32d9-48b4-a31d-7c20da2025e4

Evergreen/staff_client/chrome/content/evergreen/util/fm_utils.js

index 9656ed5..98470e9 100644 (file)
@@ -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);
+                       }
+               }
+       }
+}