Browse Source

Prerequisites to the custom fields

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@3909 a333f486-631f-4898-b8df-5754b55c2be0
glajarige 9 years ago
parent
commit
343bca4578
2 changed files with 19 additions and 10 deletions
  1. 19 7
      js/form_field.js
  2. 0 3
      js/form_handler.js

+ 19 - 7
js/form_field.js

@@ -9,7 +9,9 @@ $(function()
         // default options
         options:
         {
-            validators: null
+            validators: null,
+            validate_callback: 'validate',                  // When using an anonymous function, use the 'me' parameter to acces the current widget : function(me){ return me.validate(); },
+            get_current_value_callback: 'getCurrentValue'
         },
    
         // the constructor
@@ -25,12 +27,22 @@ $(function()
                 me.options.validators = data;
             });
             this.element
-            .bind('validate', function(event, data){
-                return me.validate();
-            });
-            this.element
-            .bind('get_current_value', function(event, data){
-                return me.getCurrentValue();
+            .bind('validate get_current_value', function(event, data){
+                var callback = me.options[event.type+'_callback'];
+                
+                if(typeof callback === 'string')
+                {
+                    return me[callback]();
+                }
+                else if(typeof callback === 'function')
+                {
+                    return callback(me);
+                }
+                else
+                {
+                    console.log('Form field : callback type must be a function or a existing function name of the widget');
+                    return false;
+                }
             });
         },
         // called when created, and later when changing options

+ 0 - 3
js/form_handler.js

@@ -295,9 +295,6 @@ $(function()
             {
                 this.buildData.style_code += ' '+ field.css_inline;
             }
-            // JS widget itop.form_field
-            var json_validators = (field.validators != undefined) ? JSON.stringify(field.validators) : 'null';
-            this.buildData.script_code += '; $("[' + this.options.field_identifier_attr + '=\'' + field.id + '\']").form_field({ validators: ' + json_validators + ' });';
             
         },
         buildForm: function()