[portal-commits] JBoss Portal SVN: r12991 - in tags/JBoss_Portal_2_7_2: theme/src/bin/portal-ajax-war/dyna and 1 other directory.

portal-commits at lists.jboss.org portal-commits at lists.jboss.org
Fri Mar 6 19:29:06 EST 2009


Author: chris.laprun at jboss.com
Date: 2009-03-06 19:29:06 -0500 (Fri, 06 Mar 2009)
New Revision: 12991

Modified:
   tags/JBoss_Portal_2_7_2/core-samples/src/main/org/jboss/portal/core/samples/basic/PortletSessionPortlet.java
   tags/JBoss_Portal_2_7_2/theme/src/bin/portal-ajax-war/dyna/dyna.js
   tags/JBoss_Portal_2_7_2/theme/src/bin/portal-ajax-war/dyna/prototype.js
Log:
- JBPORTAL-2336: update from trunk, only downside is that it requires patching prototype...


Modified: tags/JBoss_Portal_2_7_2/core-samples/src/main/org/jboss/portal/core/samples/basic/PortletSessionPortlet.java
===================================================================
--- tags/JBoss_Portal_2_7_2/core-samples/src/main/org/jboss/portal/core/samples/basic/PortletSessionPortlet.java	2009-03-07 00:09:26 UTC (rev 12990)
+++ tags/JBoss_Portal_2_7_2/core-samples/src/main/org/jboss/portal/core/samples/basic/PortletSessionPortlet.java	2009-03-07 00:29:06 UTC (rev 12991)
@@ -44,8 +44,7 @@
    {
       String name = req.getParameter("name");
       String value = req.getParameter("value");
-      String scope = req.getParameter("scope");
-      boolean portletScope = "portlet".equals(scope);
+      boolean portletScope = req.getParameter("portlet") != null;
       if (name != null && value != null)
       {
          req.getPortletSession().setAttribute(name, value, portletScope ? PortletSession.PORTLET_SCOPE : PortletSession.APPLICATION_SCOPE);
@@ -86,19 +85,19 @@
       }
 
       //
-      writer.println("<script type='text/javascript'>\n" +
-         "function processForm(value) {" +
-         "var form = document.getElementById('sessionForm');\n" +
-         "var hidden = document.getElementById('sessionHidden');\n" +
-         "hidden.value = value;\n" +
-         "form.submit();}\n" +
-         "</script>");
+//      writer.println("<script type='text/javascript'>\n" +
+//         "function processForm(value) {" +
+//         "var form = document.getElementById('sessionForm');\n" +
+//         "var hidden = document.getElementById('sessionHidden');\n" +
+//         "hidden.value = value;\n" +
+//         "form.submit();}\n" +
+//         "</script>");
       writer.println("<form id='sessionForm' action=\"" + purl.toString() + "\" method=\"post\">");
       writer.println("<input type=\"text\" name=\"name\"/>");
       writer.println("<input type=\"text\" name=\"value\"/>");
-      writer.println("<input type=\"button\" name=\"portlet\" value=\"Add to portlet scope\" onclick=\"processForm('portlet')\"/>");
-      writer.println("<input type=\"button\" name=\"application\" value=\"Add to application scope\" onclick=\"processForm('application')\"/>");
-      writer.println("<input id='sessionHidden' name='scope' type='hidden'/>");
+      writer.println("<input type=\"submit\" name=\"portlet\" value=\"Add to portlet scope\" />");
+      writer.println("<input type=\"submit\" name=\"application\" value=\"Add to application scope\" />");
+     // writer.println("<input id='sessionHidden' name='scope' type='hidden'/>");
       writer.println("</form><br/>");
 
       //

Modified: tags/JBoss_Portal_2_7_2/theme/src/bin/portal-ajax-war/dyna/dyna.js
===================================================================
--- tags/JBoss_Portal_2_7_2/theme/src/bin/portal-ajax-war/dyna/dyna.js	2009-03-07 00:09:26 UTC (rev 12990)
+++ tags/JBoss_Portal_2_7_2/theme/src/bin/portal-ajax-war/dyna/dyna.js	2009-03-07 00:29:06 UTC (rev 12991)
@@ -21,6 +21,8 @@
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.                   *
  ******************************************************************************/
 
+var currentSubmit;
+
 function sendData(action, windowId, fromPos, fromRegionId, toPos, toRegionId)
 {
    var options = {
@@ -41,7 +43,7 @@
       onLoading: function(t)
       {
       }
-   }
+   };
    new Ajax.Request(server_base_url + "/ajax", options);
 }
 
@@ -106,6 +108,11 @@
    var source = Event.element(event);
    var container = Element.up(source, "div.dyna-window");
 
+   //attach onclick observer to all submit buttons
+   $$('input[type=submit]').invoke('observe', 'click', function(e) {
+      currentSubmit = e.findElement();
+   });
+
    // We found the window
    if (container != null)
    {
@@ -158,7 +165,6 @@
                   // Check we can handle this URL
                   if (isURLAccepted(current.action))
                   {
-
                      // Set URL
                      url = current.action;
 
@@ -166,7 +172,7 @@
                      options.enctype = enctype;
                      options.asynchronous = false;
                      options.method = "post"
-                     options.postBody = Form.serialize(current);
+                     options.postBody = Form.serialize(current,'',currentSubmit);
                   }
                }
             }

Modified: tags/JBoss_Portal_2_7_2/theme/src/bin/portal-ajax-war/dyna/prototype.js
===================================================================
--- tags/JBoss_Portal_2_7_2/theme/src/bin/portal-ajax-war/dyna/prototype.js	2009-03-07 00:09:26 UTC (rev 12990)
+++ tags/JBoss_Portal_2_7_2/theme/src/bin/portal-ajax-war/dyna/prototype.js	2009-03-07 00:29:06 UTC (rev 12991)
@@ -2609,7 +2609,9 @@
       "FORM":     Object.clone(Form.Methods),
       "INPUT":    Object.clone(Form.Element.Methods),
       "SELECT":   Object.clone(Form.Element.Methods),
-      "TEXTAREA": Object.clone(Form.Element.Methods)
+      "TEXTAREA": Object.clone(Form.Element.Methods),
+       //[SERIALIZE_ERROR]
+      "BUTTON":   Object.clone(Form.Element.Methods)
     });
   }
 
@@ -3475,8 +3477,21 @@
 };
 
 Form.Methods = {
-  serialize: function(form, options) {
-    return Form.serializeElements(Form.getElements(form), options);
+  serialize: function(form, options, buttonPressed) {
+  //[SERIALIZE_ERROR] Implements additional functionality to support <button> and ensure other button-type
+  // <inputs> are not serialized
+  var elements = Form.getElements(form);
+    if (buttonPressed) {
+       elements = elements.findAll(
+         function(element) {
+           return element == $(buttonPressed) ||
+             (element.tagName.toLowerCase() != "button" &&
+             (element.tagName.toLowerCase() != "input" ||
+             (element.type != "submit" && element.type != "button" && element.type != "image" && element.type != "reset")));
+         }
+       );
+     };
+  return Form.serializeElements(elements, options);
   },
 
   getElements: function(form) {
@@ -3657,6 +3672,11 @@
     else element.value = value;
   },
 
+  //[SERIALIZE_ERROR]
+  button: function(element) {
+     return element.value;
+   },
+
   select: function(element, value) {
     if (Object.isUndefined(value))
       return this[element.type == 'select-one' ?




More information about the portal-commits mailing list