You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mf...@apache.org on 2011/07/15 18:38:27 UTC

svn commit: r1147224 - in /incubator/rave/trunk/rave-portal/src: main/webapp/WEB-INF/views/home.jsp main/webapp/script/rave.js test/javascript/raveSpec.js

Author: mfranklin
Date: Fri Jul 15 16:38:26 2011
New Revision: 1147224

URL: http://svn.apache.org/viewvc?rev=1147224&view=rev
Log:
Refactored maximize & delete event attachment to simplify event handlers. (Supports RAVE-53)

Modified:
    incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp
    incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js
    incubator/rave/trunk/rave-portal/src/test/javascript/raveSpec.js

Modified: incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp?rev=1147224&r1=1147223&r2=1147224&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp (original)
+++ incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/home.jsp Fri Jul 15 16:38:26 2011
@@ -50,12 +50,10 @@
             <!-- These are toolbar buttons -->
             <div id="widget-${regionWidget.id}-toolbar" style="float:right;">
               <button id="widget-${regionWidget.id}-max"
-                      class="widget-toolbar-btn"
-                      onclick="rave.toolbarMaximize(this,{myRegionWidgetId:${regionWidget.id},myRegionId:${region.id},myPageId:${defaultPage.id}})">
+                      class="widget-toolbar-btn">
               </button>
               <button id="widget-${regionWidget.id}-remove"
-                      class="widget-toolbar-btn"
-                      onclick="rave.toolbarDelete(this,{myRegionWidgetId:${regionWidget.id}})">
+                      class="widget-toolbar-btn">
               </button>
             </div>
           </div>
@@ -90,11 +88,9 @@
 
     $(function() {
         rave.setContext("<spring:url value="/app/" />");
-        rave.initGadgetUI(widgets);
         rave.initProviders();
-        //rave.initWidgets(rave.createWidgetMap(widgets));
         rave.initWidgets(widgets);
-        rave.initDragAndDrop();
+        rave.initUI();
     });
 </script>
 </rave:rave_generic_page>

Modified: incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js?rev=1147224&r1=1147223&r2=1147224&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js (original)
+++ incubator/rave/trunk/rave-portal/src/main/webapp/script/rave.js Fri Jul 15 16:38:26 2011
@@ -49,7 +49,8 @@ var rave = rave || (function() {
                         forcePlaceholderSize: true, // size the placeholder to the size of the gadget
                         start: dragStart,
                         stop : dragStop
-                    });
+            });
+            initGadgetUI();
         }
 
         function dragStart(event, ui) {
@@ -97,42 +98,68 @@ var rave = rave || (function() {
             uiState.widget = null;
         }
 
-        return {
-            init : init
+        /**
+         * Takes care of the UI part of the widget rendering. Depends heavily on the HTML structure
+         */
+        function initGadgetUI() {
+            $("div[id^='region-']").each(function(regionIndex) {
+                var regionElement = $(this);
+                var regionId = regionElement.attr("id");
+                regionId = regionId.substring("region-".length, regionId.lastIndexOf('-'));
+                regionElement.children("div[id^='widget-wrapper-']").each(function(wrapperIndex) {
+                    var widgetElement = $(this);
+                    var widgetId = widgetElement.attr("id").substr("widget-wrapper-".length);
+                    styleGadgetButtons(widgetId);
+                });
+            });
         }
 
-    })();
+        function maximizeAction(args) {
+            alert("Maximize button not yet implemented");
+        }
+
+        function deleteAction(args) {
+            if (confirm("Are you sure you want to remove this gadget from your page")) {
+                rave.api.rpc.removeWidget({
+                    regionWidgetId: args.data.id,
+                    successCallback: function() {
+                        $("#widget-wrapper-" + args.data.id).remove();
+                    }
+                });
+            }
+        }
+
+        /**
+         * Applies styling to the several buttons in the widget / gadget toolbar
+         * @param widgetId identifier of the widget / gadget
+         */
+        function styleGadgetButtons(widgetId) {
+            $("#widget-" + widgetId + "-max").button({
+                text: false,
+                icons: {
+                    primary: "ui-icon-arrow-4-diag"
+                }
+            }).click({id: widgetId}, maximizeAction);
+
+            $("#widget-" + widgetId + "-remove").button({
+                text: false,
+                icons: {
+                    primary: "ui-icon-close"
+                }
+            }).click({id: widgetId},deleteAction);
+        }
+
+        return {
+          init : init
+        };
 
-	 /**
-	  * Group widget toolbar functions
-	  */
-	 var toolbar = (function() {
-		  function init(){
-		  }
-		  function maximizeAction(button,args) {
-				alert("Maximize button not yet implemented");
-		  }
-		  function deleteAction(button,args) {
-              if (confirm("Are you sure you want to remove this gadget from your page")) {
-                  rave.api.rpc.removeWidget({
-                      regionWidgetId: args.myRegionWidgetId,
-                      successCallback: function() {
-                          $("#widget-wrapper-" + args.myRegionWidgetId).remove();
-                      }
-                  });
-              }
-          }
-         return {
-				maximizeAction : maximizeAction,
-				deleteAction : deleteAction
-		  }
-	 })();
+    })();
 
     function initializeProviders() {
-		  //Current providers are rave.wookie and rave.opensocial.  
-		  //Providers register themselves when loaded, so 
-		  //JavaScript library importing order is important.
-		  //See home.jsp for example.
+        //Current providers are rave.wookie and rave.opensocial.
+        //Providers register themselves when loaded, so
+        //JavaScript library importing order is important.
+        //See home.jsp for example.
         for (var key in providerMap) {
             providerMap[key].init();
         }
@@ -195,43 +222,6 @@ var rave = rave || (function() {
         return context;
     }
 
-    /**
-     * Takes care of the UI part of the widget rendering. Depends heavily on the HTML structure
-     * @param widgets array of widgets
-     */
-    function initGadgetUI(widgets) {
-        $("div[id^='region-']").each(function(regionIndex) {
-            var regionElement = $(this);
-            var regionId = regionElement.attr("id");
-            regionId = regionId.substring("region-".length, regionId.lastIndexOf('-'));
-            regionElement.children("div[id^='widget-wrapper-']").each(function(wrapperIndex) {
-                var widgetElement = $(this);
-                var widgetId = widgetElement.attr("id").substr("widget-wrapper-".length);
-                styleGadgetButtons(widgetId);
-            });
-        });
-    }
-
-    /**
-     * Applies styling to the several buttons in the widget / gadget toolbar
-     * @param widgetId identifier of the widget / gadget
-     */
-    function styleGadgetButtons(widgetId) {
-        $("#widget-" + widgetId + "-max").button({
-                    text: false,
-                    icons: {
-                        primary: "ui-icon-arrow-4-diag"
-                    }
-                });
-
-        $("#widget-" + widgetId + "-remove").button({
-                    text: false,
-                    icons: {
-                        primary: "ui-icon-close"
-                    }
-                });
-    }
-
 
     /**
      * Public API
@@ -255,7 +245,7 @@ var rave = rave || (function() {
         /**
          * Initialize Rave's drag and drop facilities
          */
-        initDragAndDrop : ui.init,
+        initUI : ui.init,
 
         /**
          * Creates a map of widgets by their type
@@ -303,14 +293,6 @@ var rave = rave || (function() {
         /**
          * Gets the current context
          */
-        getContext: getContext,
-
-        initGadgetUI : initGadgetUI,
-
-		  /**
-			* These are exposed toolbar actions, associated with widget toolbar buttons
-			*/
-		  toolbarMaximize : toolbar.maximizeAction,
-		  toolbarDelete : toolbar.deleteAction
+        getContext: getContext
     }
 })();

Modified: incubator/rave/trunk/rave-portal/src/test/javascript/raveSpec.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/javascript/raveSpec.js?rev=1147224&r1=1147223&r2=1147224&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/src/test/javascript/raveSpec.js (original)
+++ incubator/rave/trunk/rave-portal/src/test/javascript/raveSpec.js Fri Jul 15 16:38:26 2011
@@ -179,7 +179,7 @@ describe("Rave", function() {
 
     });
 
-    describe("initDragAndDrop", function() {
+    describe("initUI", function() {
         function createMockJQuery() {
             var sortableArgs = null;
             $ = function(element) {
@@ -237,7 +237,7 @@ describe("Rave", function() {
 
         it("Initializes jQuery sortable when init is called", function() {
             createMockJQuery();
-            rave.initDragAndDrop();
+            rave.initUI();
             var sortableArgs = $().getSortableArgs();
             expect(sortableArgs).toBeDefined();
             expect(sortableArgs.selector).toEqual(".region");
@@ -249,7 +249,7 @@ describe("Rave", function() {
 
         it("Posts when dragging is stopped", function() {
             createMockJQuery();
-            rave.initDragAndDrop();
+            rave.initUI();
             var sortableArgs = $().getSortableArgs();
             var mockItem = getMockItem();
             $.post = function(url, data, handler) {
@@ -267,7 +267,7 @@ describe("Rave", function() {
         });
         it("displays the appropriate alert when invalid parameters are passed", function() {
             createMockJQuery();
-            rave.initDragAndDrop();
+            rave.initUI();
             var sortableArgs = $().getSortableArgs();
             var mockItem = getMockItem();
             $.post = function(url, data, handler) {
@@ -285,7 +285,7 @@ describe("Rave", function() {
         });
         it("displays the appropriate alert when a server error occurs", function() {
             createMockJQuery();
-            rave.initDragAndDrop();
+            rave.initUI();
             var sortableArgs = $().getSortableArgs();
             var mockItem = getMockItem();
             $.post = function(url, data, handler) {
@@ -333,4 +333,8 @@ describe("Rave", function() {
         });
 
     });
+
+    describe("Handle resize maximize event", function(){
+
+    });
 });
\ No newline at end of file