You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ve...@apache.org on 2012/02/23 17:01:05 UTC

svn commit: r1292835 - in /incubator/rave/trunk/rave-portal-resources/src: main/webapp/script/rave.js main/webapp/script/rave_layout.js main/webapp/script/rave_opensocial.js test/javascript/raveOpenSocialSpec.js

Author: venkatm
Date: Thu Feb 23 16:01:04 2012
New Revision: 1292835

URL: http://svn.apache.org/viewvc?rev=1292835&view=rev
Log:
RAVE-267: Custom Edit Prefs. Uses the PREFERENCES gadgets.views.ViewType for custom preferences

Modified:
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave.js
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_layout.js
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_opensocial.js
    incubator/rave/trunk/rave-portal-resources/src/test/javascript/raveOpenSocialSpec.js

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave.js?rev=1292835&r1=1292834&r2=1292835&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave.js (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave.js Thu Feb 23 16:01:04 2012
@@ -292,15 +292,7 @@ var rave = rave || (function() {
         function maximizeAction(args) {
             var regionWidgetId = args.data.id;
             // display the widget in maximized view
-            addOverlay($("#pageContent"));
-            $(".region" ).sortable( "option", "disabled", true );
-            $("#widget-" + regionWidgetId + "-wrapper").removeClass("widget-wrapper").addClass("widget-wrapper-canvas");
-            // hide the widget menu
-            $("#widget-" + regionWidgetId + "-widget-menu-wrapper").hide();
-            // display the widget minimize button
-            $("#widget-" + regionWidgetId + "-min").show();
-            // hide the collapse/restore toggle icon in canvas mode
-            $("#widget-" + regionWidgetId + "-collapse").hide();
+            openFullScreenOverlay(regionWidgetId);
             var widget = rave.getRegionWidgetById(regionWidgetId);
             if(typeof widget != "undefined" && isFunction(widget.maximize)) {
                 widget.maximize();
@@ -331,6 +323,17 @@ var rave = rave || (function() {
             }
         }
 
+        function editCustomPrefsAction(args) {
+            var regionWidgetId = args.data.id;
+
+            // display the custom edit prefs for the widget in maximized view
+            openFullScreenOverlay(regionWidgetId);
+            var widget = rave.getRegionWidgetById(regionWidgetId);
+            if(typeof widget != "undefined" ) {
+                widget.editCustomPrefs();
+            }
+        }
+
         function toggleCollapseAction(args) {
             var regionWidgetId = args.data.id;
             var widget = getRegionWidgetById(regionWidgetId);
@@ -601,6 +604,18 @@ var rave = rave || (function() {
             jqElm.prepend(overlay[0]);
         }
 
+        function openFullScreenOverlay(regionWidgetId) {
+            addOverlay($("#pageContent"));
+            $(".region").sortable("option", "disabled", true);
+            $("#widget-" + regionWidgetId + "-wrapper").removeClass("widget-wrapper").addClass("widget-wrapper-canvas");
+            // hide the widget menu
+            $("#widget-" + regionWidgetId + "-widget-menu-wrapper").hide();
+            // display the widget minimize button
+            $("#widget-" + regionWidgetId + "-min").show();
+            // hide the collapse/restore toggle icon in canvas mode
+            $("#widget-" + regionWidgetId + "-collapse").hide();
+        }
+
         /**
          * Applies styling to the several buttons in the widget toolbar
          * @param widgetId identifier of the region widget
@@ -690,6 +705,7 @@ var rave = rave || (function() {
           maximizeAction: maximizeAction,
           minimizeAction: minimizeAction,
           editPrefsAction: editPrefsAction,
+          editCustomPrefsAction: editCustomPrefsAction,
           setMobileState: setMobileState,
           getMobileState: getMobileState,
           doWidgetUiCollapse: doWidgetUiCollapse,
@@ -986,6 +1002,13 @@ var rave = rave || (function() {
         editPrefs: ui.editPrefsAction,
 
         /***
+         * "Preferences" view
+         *
+         * @param args the argument object
+         */
+        editCustomPrefs: ui.editCustomPrefsAction,
+
+        /***
          * Get the mobile state - used by the UI to render mobile or normal content
          *
          */

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_layout.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_layout.js?rev=1292835&r1=1292834&r2=1292835&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_layout.js (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_layout.js Thu Feb 23 16:01:04 2012
@@ -347,22 +347,27 @@ rave.layout = rave.layout || (function()
         }
         
         /**
-         * Enables the Edit Prefs menu item in the widget menu to be clicked.
+         * Enables the Edit Prefs including the Preferences view (Custom Edit Prefs)
+         * menu item in the widget menu to be clicked.
          * Widget providers should use this function when initializing their
          * widgets after determining if the widget has preferences to modify.
          * 
          * @param regionWidgetId the regionWidgetId of the regionWidget menu to enable
+         * @param isPreferencesView boolean to indicate whether "preferences" view or the default prefs view
          */
-        function enableEditPrefsMenuItem(regionWidgetId) {
+        function enableEditPrefsMenuItem(regionWidgetId, isPreferencesView) {
             // setup the edit prefs widget menu item
             var $menuItemEditPrefs  = $("#widget-" + regionWidgetId + "-menu-editprefs-item");
             $menuItemEditPrefs.removeClass("widget-menu-item-disabled");           
             $menuItemEditPrefs.bind('click', function(event) {                       
                 var regionWidgetId = rave.getObjectIdFromDomId(this.id); 
                  // hide the widget menu
-                rave.layout.hideWidgetMenu(regionWidgetId);                                         
-                // show the edit prefs region
-                rave.editPrefs(regionWidgetId);
+                rave.layout.hideWidgetMenu(regionWidgetId);
+                // show the regular edit prefs or the Custom Edit Prefs(preferences) region
+                if ( isPreferencesView )
+                    rave.editCustomPrefs({data: {id: regionWidgetId}});
+                else
+                    rave.editPrefs(regionWidgetId);
                 // prevent the menu button click event from bubbling up to parent
                 // DOM object event handlers such as the page tab click event
                 event.stopPropagation();

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_opensocial.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_opensocial.js?rev=1292835&r1=1292834&r2=1292835&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_opensocial.js (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_opensocial.js Thu Feb 23 16:01:04 2012
@@ -24,7 +24,8 @@ rave.opensocial = rave.opensocial || (fu
     var VIEW_NAMES = { 
         CANVAS : "canvas",
         DEFAULT : "default",
-        HOME : "home"       
+        HOME : "home",
+        PREFERENCES: "preferences"
     }; 
 
     var container;
@@ -133,10 +134,20 @@ rave.opensocial = rave.opensocial || (fu
             // re-render the gadget in the same view if the gadget is not collapsed
             renderGadgetViewIfNotCollapsed(rave.opensocial.getCurrentView(this.regionWidgetId), this);             
         };
-        
-        // if the gadget has prefences to edit, enable the edit prefs menu item
-        if (gadget.metadata.hasPrefsToEdit) { 
-            rave.layout.enableEditPrefsMenuItem(gadget.regionWidgetId);            
+        gadget.editCustomPrefs = function() {
+            // display the gadget in custom edit prefs view
+            renderGadgetView(rave.opensocial.VIEW_NAMES.PREFERENCES, this);
+        };
+
+        // if the gadget has prefences to edit, or has the Preferences view
+        // enable the edit prefs menu item
+        if (gadget.metadata.hasPrefsToEdit || gadget.metadata.views.preferences) {
+            if ( gadget.metadata.views.preferences != undefined ) {
+                rave.layout.enableEditPrefsMenuItem(gadget.regionWidgetId, true);
+            }
+            else {
+                rave.layout.enableEditPrefsMenuItem(gadget.regionWidgetId, false);
+            }
         }
         
         // if the gadget is not collapsed, render it
@@ -307,6 +318,9 @@ rave.opensocial = rave.opensocial || (fu
             case VIEW_NAMES.HOME:            
                 rave.minimizeWidget(fnArgs);
                 break;
+            case VIEW_NAMES.PREFERENCES:
+                rave.editCustomPrefs(fnArgs);
+                break;
         }       
     }
 

Modified: incubator/rave/trunk/rave-portal-resources/src/test/javascript/raveOpenSocialSpec.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/test/javascript/raveOpenSocialSpec.js?rev=1292835&r1=1292834&r2=1292835&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/test/javascript/raveOpenSocialSpec.js (original)
+++ incubator/rave/trunk/rave-portal-resources/src/test/javascript/raveOpenSocialSpec.js Thu Feb 23 16:01:04 2012
@@ -206,8 +206,20 @@ describe("Rave OpenSocial", function() {
             rave.opensocial.init();
             container.rpcHooks()["requestNavigateTo"](getMockRequestNavigateToArgs("widget-" + expectedArgs.data.id + "-body"), VIEW_NAME);            
             expect(rave.minimizeWidget).toHaveBeenCalledWith(expectedArgs);
-        });        
-        
+        });
+
+        it("requestNavigateTo changes the view to PREFERENCES", function() {
+            var VIEW_NAME = "preferences";
+            var expectedArgs = {};
+            expectedArgs.data = {};
+            expectedArgs.data.id = "7";
+            spyOn(rave, "editCustomPrefs");
+
+            rave.opensocial.init();
+            container.rpcHooks()["requestNavigateTo"](getMockRequestNavigateToArgs("widget-" + expectedArgs.data.id + "-body"), VIEW_NAME);
+            expect(rave.editCustomPrefs).toHaveBeenCalledWith(expectedArgs);
+        });
+
         it("requestNavigateTo does not throw an error if an unknown view is passed", function() {
             var VIEW_NAME = "___UNKNOWN___";
             var expectedArgs = {};