Author: hsaputra
Date: Mon Jan 30 17:55:03 2012
New Revision: 1237849

URL: http://svn.apache.org/viewvc?rev=1237849&view=rev
Log:
SHINDIG-1686 The gadgets.views.init does not set current view correctly for the 
view parameter if it contains secondary view 

CR: https://reviews.apache.org/r/3666/



Modified:
    shindig/trunk/features/src/main/javascript/features/views/views.js
    shindig/trunk/features/src/test/javascript/features/views/views-init-test.js

Modified: shindig/trunk/features/src/main/javascript/features/views/views.js
URL: 
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/views/views.js?rev=1237849&r1=1237848&r2=1237849&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/views/views.js 
(original)
+++ shindig/trunk/features/src/main/javascript/features/views/views.js Mon Jan 
30 17:55:03 2012
@@ -119,7 +119,21 @@ gadgets.views = function() {
     if (urlParams['view-params']) {
       params = gadgets.json.parse(urlParams['view-params']) || params;
     }
-    currentView = supportedViews[urlParams['view']] || 
supportedViews['default'];
+
+    var viewName = urlParams['view'] || "";
+    // check for subview
+    var viewNameArray = viewName.split(".");
+    if(viewNameArray.length > 1) {
+      var viewNameMajor = viewNameArray[0];
+      if (supportedViews.hasOwnProperty(viewNameMajor)) {
+        var viewMajor = supportedViews[viewNameMajor];
+        currentView = new gadgets.views.View(viewName, 
viewMajor.isOnlyVisibleGadget());
+      } else {
+        currentView = supportedViews['default'];
+      }
+    } else {
+      currentView = supportedViews[viewName] || supportedViews['default'];
+    }
 
     if (conf.rewriteLinks) {
       gadgets.util.attachBrowserEvent(document, 'click', forceNavigate, false);

Modified: 
shindig/trunk/features/src/test/javascript/features/views/views-init-test.js
URL: 
http://svn.apache.org/viewvc/shindig/trunk/features/src/test/javascript/features/views/views-init-test.js?rev=1237849&r1=1237848&r2=1237849&view=diff
==============================================================================
--- 
shindig/trunk/features/src/test/javascript/features/views/views-init-test.js 
(original)
+++ 
shindig/trunk/features/src/test/javascript/features/views/views-init-test.js 
Mon Jan 30 17:55:03 2012
@@ -96,6 +96,19 @@ ViewsInitTest.prototype.testRewriteLinks
   this.assertTrue(typeof gadgets.views.getSupportedViews().rewriteLinks === 
"undefined");
 };
 
+ViewsInitTest.prototype.testCurrentSubView = function() {
+  var viewName = "home.default";
+  gadgets.util.getUrlParameters = function() {
+    return {"view": viewName};
+  };
+
+  document.scripts = [];
+  gadgets.config.init({"views":{"home":{"isOnlyVisible": 
false},"default":{"isOnlyVisible": false}}});
+
+  this.assertTrue(gadgets.views.getCurrentView());
+  this.assertEquals(viewName, gadgets.views.getCurrentView().getName());
+};
+
 // TODO: Verify behavior of onclick.
 
 })();


Reply via email to