[Jifty-commit] r5083 - jifty/branches/jquery/share/web/static/js

Jifty commits jifty-commit at lists.jifty.org
Fri Feb 8 17:24:06 EST 2008


Author: gugod
Date: Fri Feb  8 17:24:06 2008
New Revision: 5083

Modified:
   jifty/branches/jquery/share/web/static/js/bps_util.js
   jifty/branches/jquery/share/web/static/js/calendar.js
   jifty/branches/jquery/share/web/static/js/jifty.js

Log:
Rename the "Form" object as "Jifty.Form", but yet make it an alias
to another. If "Form" is latter re-defined, those interal uses
of Jifty.Form will still work.

This can fix the brakage caused by loading prototype.js after 
jifty.js -- "Form" gets redefined and breaks everything.


Modified: jifty/branches/jquery/share/web/static/js/bps_util.js
==============================================================================
--- jifty/branches/jquery/share/web/static/js/bps_util.js	(original)
+++ jifty/branches/jquery/share/web/static/js/bps_util.js	Fri Feb  8 17:24:06 2008
@@ -23,7 +23,7 @@
     link.setAttribute("href","#");
     link.setAttribute("name",e.getAttribute("name"));
 
-    var form = Form.Element.getForm(e);
+    var form = Jifty.Form.Element.getForm(e);
     var onclick = e.getAttribute("onclick");
 
     /* Simple buttons that don't use any JS need us to create an onclick

Modified: jifty/branches/jquery/share/web/static/js/calendar.js
==============================================================================
--- jifty/branches/jquery/share/web/static/js/calendar.js	(original)
+++ jifty/branches/jquery/share/web/static/js/calendar.js	Fri Feb  8 17:24:06 2008
@@ -34,7 +34,7 @@
         
         /* We need to delay Jifty's canonicalization until after we've
            selected a value via the calendar */
-        Form.Element.disableValidation(input);
+        Jifty.Form.Element.disableValidation(input);
         
         wrap = document.createElement("div");
         wrap.setAttribute( "id", wrapId );
@@ -108,8 +108,8 @@
             var input = $( inputId );
 
             /* Reenable canonicalization, and do it */
-            Form.Element.enableValidation(input);
-            Form.Element.validate(input);
+            Jifty.Form.Element.enableValidation(input);
+            Jifty.Form.Element.validate(input);
 
             Jifty.Calendar.openCalendar = "";
         }

Modified: jifty/branches/jquery/share/web/static/js/jifty.js
==============================================================================
--- jifty/branches/jquery/share/web/static/js/jifty.js	(original)
+++ jifty/branches/jquery/share/web/static/js/jifty.js	Fri Feb  8 17:24:06 2008
@@ -144,8 +144,8 @@
             jQuery.each(this.extras, add_to_elements);
 
             for (var i = 0, l = elements.length; i < l; i++) {
-                if ((Form.Element.getMoniker(elements[i]) == this.moniker)
-                    && (Form.Element.getType(elements[i]) == "registration")) {
+                if ((Jifty.Form.Element.getMoniker(elements[i]) == this.moniker)
+                    && (Jifty.Form.Element.getType(elements[i]) == "registration")) {
                     this.register = elements[i];
                     break;
                 }
@@ -153,7 +153,7 @@
         }
 
         if (this.register) {
-            this.form = Form.Element.getForm(this.register);
+            this.form = Jifty.Form.Element.getForm(this.register);
             this.actionClass = this.register.value;
         }
     },
@@ -162,13 +162,13 @@
     fields: function() {
         if(!this.cached_fields) {
             var elements = [];
-            var possible = Form.getElements(this.form);
+            var possible = Jifty.Form.getElements(this.form);
             // Also pull from extra query parameters
             for (var i = 0, l = this.extras.length; i < l; i++)
                 possible.push(this.extras[i]);
 
             for (var i = 0, l = possible.length; i < l; i++) {
-                if (Form.Element.getMoniker(possible[i]) == this.moniker)
+                if (Jifty.Form.Element.getMoniker(possible[i]) == this.moniker)
                     elements.push(possible[i]);
             }
             this.cached_fields = elements;
@@ -178,10 +178,10 @@
 
     buttons: function() {
         var elements = new Array();
-        var possible = Form.getElements(this.form);
+        var possible = Jifty.Form.getElements(this.form);
         for(var i = 0; i < possible.length; i++) {
             if(possible[i].nodeName == 'INPUT' && possible[i].getAttribute("type") == 'submit') {
-                actions = Form.Element.buttonActions(possible[i]);
+                actions = Jifty.Form.Element.buttonActions(possible[i]);
                 //If the button has no actions explicitly associated
                 //with it, it's associated with all the actions in the
                 //form
@@ -197,7 +197,7 @@
     getField: function(name) {
         var elements = this.fields();
         for (var i = 0; i < elements.length; i++) {
-            if (Form.Element.getField(elements[i]) == name)
+            if (Jifty.Form.Element.getField(elements[i]) == name)
                 return elements[i];
         }
         return null;
@@ -236,21 +236,21 @@
         for (var i = 0; i < fields.length; i++) {
             var f = fields[i];
 
-            if (   (Form.Element.getType(f) != "registration")
-                && (Form.Element.getValue(f) != null)
+            if (   (Jifty.Form.Element.getType(f) != "registration")
+                && (Jifty.Form.Element.getValue(f) != null)
                 && (!Jifty.Placeholder.hasPlaceholder(f)))
             {
-                if (! a['fields'][Form.Element.getField(f)])
-                    a['fields'][Form.Element.getField(f)] = {};
-                var field = Form.Element.getField(f);
-                var type = Form.Element.getType(f);
+                if (! a['fields'][Jifty.Form.Element.getField(f)])
+                    a['fields'][Jifty.Form.Element.getField(f)] = {};
+                var field = Jifty.Form.Element.getField(f);
+                var type = Jifty.Form.Element.getType(f);
 
                 // XXX: fallback value being an array makes server
                 // upset, we don't think that should happen anyway
                 if (type == 'fallback' && a['fields'][field][type])
                     continue
                 a['fields'][field][type] = this._mergeValues(a['fields'][field][type],
-                                                             Form.Element.getValue(f));
+                                                             Jifty.Form.Element.getValue(f));
 
             }
         }
@@ -503,9 +503,9 @@
 };
 
 /* Forms */
-Form = {};
+Jifty.Form = {};
 
-jQuery.extend(Form, {
+jQuery.extend(Jifty.Form, {
     getElements: function(element) {
         return jQuery(":input", element).get();
     },
@@ -514,15 +514,15 @@
         var elements = [];
 
         jQuery(":input", element).each(function() {
-            if (Form.Element.getType(this) == "registration")
-                elements.push(Form.Element.getAction(this));
+            if (Jifty.Form.Element.getType(this) == "registration")
+                elements.push(Jifty.Form.Element.getAction(this));
         });
 
         return elements;
     },
 
     clearPlaceholders: function(element) {
-        var elements = Form.getElements(element);
+        var elements = Jifty.Form.getElements(element);
         for(var i = 0; i < elements.length; i++) {
             Jifty.Placeholder.clearPlaceholder(elements[i]);
         }
@@ -532,10 +532,10 @@
 
 var current_actions = {};
 
-Form.Element = {};
+Jifty.Form.Element = {};
 
 /* Fields */
-jQuery.extend(Form.Element, {
+jQuery.extend(Jifty.Form.Element, {
     // Get the moniker for this form element
     // Takes an element or an element id
     getMoniker: function (element) {
@@ -556,7 +556,7 @@
     // Takes an element or an element id
     getAction: function (element) {
         element = Jifty.$(element);
-        var moniker = Form.Element.getMoniker(element);
+        var moniker = Jifty.Form.Element.getMoniker(element);
         if (!current_actions[moniker])
             current_actions[moniker] = new Action(moniker);
         return current_actions[moniker];
@@ -599,7 +599,7 @@
     // Validates the action this form element is part of
     validate: function (element) {
         if ( !jQuery(element).is('.validation_disabled') ) {
-            Form.Element.getAction(element).validate();
+            Jifty.Form.Element.getAction(element).validate();
         }
     },
 
@@ -661,7 +661,7 @@
 
     buttonActions: function(element) {
         element = Jifty.$(element);
-        var actions = Form.Element.buttonArguments(element)[ ('J:ACTIONS') ];
+        var actions = Jifty.Form.Element.buttonArguments(element)[ ('J:ACTIONS') ];
         if(actions) {
             return actions.split(",");
         } else {
@@ -676,14 +676,14 @@
         if (!element)
             return extras;
 
-        var args = Form.Element.buttonArguments(element);
+        var args = Jifty.Form.Element.buttonArguments(element);
 
         jQuery.each(args, function(k, v) {
             var e = document.createElement("input");
             e.setAttribute("type", "hidden");
             e.setAttribute("name", k);
             e.setAttribute("value", v);
-            e['virtualform'] = Form.Element.getForm(element);
+            e['virtualform'] = Jifty.Form.Element.getForm(element);
             extras.push(e);
         });
 
@@ -695,12 +695,12 @@
        submit the action associated with the form element.
      */
     clickDefaultButton: function(element) {
-        var action = Form.Element.getAction( element );
+        var action = Jifty.Form.Element.getAction( element );
         if ( action ) {
             var buttons = action.buttons();
             for ( var i = 0; i < buttons.length; i++ ) {
                 var b = buttons[i];
-                if ( Form.Element.buttonActions( b ).indexOf( action.moniker ) >= 0 ) {
+                if ( Jifty.Form.Element.buttonActions( b ).indexOf( action.moniker ) >= 0 ) {
                     b.click();
                     return true;
                 }
@@ -714,7 +714,7 @@
         if (    event.keyCode == 13
              && !event.metaKey && !event.altKey && !event.ctrlKey )
         {
-            if ( Form.Element.clickDefaultButton( event.target ) )
+            if ( Jifty.Form.Element.clickDefaultButton( event.target ) )
                 event.preventDefault();
         }
     }
@@ -737,7 +737,7 @@
 Behaviour.register({
     'input.ajaxvalidation, textarea.ajaxvalidation, input.ajaxcanonicalization, textarea.ajaxcanonicalization': function(elt) {
         jQuery(elt).bind('blur', function () {
-            Form.Element.validate(elt);
+            Jifty.Form.Element.validate(elt);
         });
     },
     'input.date': function(e) {
@@ -758,7 +758,7 @@
                && !jQuery(e).hasClass("ajaxautocompletes" ) )
         {
             /* Do not use keydown as the event, it will not work as expected in Safari */
-            jQuery(e).bind('keypress', Form.Element.handleEnter).addClass("jifty_enter_handler_attached");
+            jQuery(e).bind('keypress', Jifty.Form.Element.handleEnter).addClass("jifty_enter_handler_attached");
         }
     },
     ".messages": function(e) {
@@ -1075,15 +1075,15 @@
     request.path = '/__jifty/webservices/xml';
 
     // Grab extra arguments (from a button)
-    var button_args = Form.Element.buttonFormElements(trigger);
+    var button_args = Jifty.Form.Element.buttonFormElements(trigger);
 
-    var form = Form.Element.getForm(trigger);
+    var form = Jifty.Form.Element.getForm(trigger);
     // If the action is null, take all actions
     if (named_args['actions'] == null) {
         named_args['actions'] = {};
         // default to disable fields
         if (form)
-            Form.getActions(form).map(function(x){
+            Jifty.Form.getActions(form).map(function(x){
                 named_args['actions'][x.moniker] = 1;
             });
     }
@@ -1171,7 +1171,7 @@
                     var cached_result;
                     Jifty.Web.current_region = fragments[ f['region'] ];
                     try {
-                        cached_result = apply_cached_for_action(cached['content'], Form.getActions(form));
+                        cached_result = apply_cached_for_action(cached['content'], Jifty.Form.getActions(form));
                     }
                     catch (e) { alert(e); throw e }
                     content_node.textContent = cached_result;
@@ -1420,7 +1420,7 @@
 jQuery.extend(Jifty.Autocompleter.prototype, {
     initialize: function(field, div) {
         this.field  = Jifty.$(field);
-        this.action = Form.Element.getAction(this.field);
+        this.action = Jifty.Form.Element.getAction(this.field);
         this.url    = '/__jifty/autocomplete.xml';
 
         var self = this;
@@ -1456,7 +1456,7 @@
     },
 
     afterUpdate: function(field, selection) {
-        Form.Element.validate(field);
+        Jifty.Form.Element.validate(field);
     },
 
     buildRequest: function() {
@@ -1466,7 +1466,7 @@
         a['class']   = 'Jifty::Action::Autocomplete';
         a['fields']  = {};
         a['fields']['moniker']  = this.action.moniker;
-        a['fields']['argument'] = Form.Element.getField(this.field);
+        a['fields']['argument'] = Jifty.Form.Element.getField(this.field);
         request['actions']['autocomplete'] = a;
         request['actions'][this.action.moniker] = this.action.data_structure();
         request['actions'][this.action.moniker]['active']  = 0;
@@ -1500,14 +1500,14 @@
 
      this.onBlur();
 
-     var form = Form.Element.getForm(element);
+     var form = Jifty.Form.Element.getForm(element);
 
      if(form && !form.hasPlaceholders) {
          form.hasPlaceholders = true;
          // We can't attach this event via DOM event methods because
          // we need to call form.submit() sometimes and still have a good
          // way to call this event handler
-         form.onsubmit = function () { Form.clearPlaceholders(form); };
+         form.onsubmit = function () { Jifty.Form.clearPlaceholders(form); };
      }
   },
 
@@ -1567,8 +1567,8 @@
 function _sp_submit_form(elt, event, submit_to) {
     if(event.ctrlKey||event.metaKey||event.altKey||event.shiftKey) return true;
 
-    var form = Form.Element.getForm(elt);
-    var elements = Form.getElements(form);
+    var form = Jifty.Form.Element.getForm(elt);
+    var elements = Jifty.Form.getElements(form);
 
     // Three things need to get merged -- hidden defaults, defaults
     // from buttons, and form values.  Hence, we build up three lists
@@ -1579,7 +1579,7 @@
     for (var i = 0; i < elements.length; i++) {
         var e = elements[i];
         var parsed = e.getAttribute("name").match(/^J:V-region-__page\.(.*)/);
-        var extras = Form.Element.buttonArguments(e);
+        var extras = Jifty.Form.Element.buttonArguments(e);
 
         var extras_key_length = 0;
         jQuery.each(extras, function() { extras_key_length++ });
@@ -1669,3 +1669,12 @@
     }
 };
 
+/*
+ * Provide an alias in Global namespace for backward compatibility.
+ * Also Jifty.Form will still work even if prototype.js is loaded
+ * after jifty.js.
+ */
+
+if (window.Form == null)
+    window.Form = Jifty.Form;
+


More information about the Jifty-commit mailing list