You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by hs...@apache.org on 2012/01/30 18:55:04 UTC

svn commit: r1237849 - in /shindig/trunk/features/src: main/javascript/features/views/views.js test/javascript/features/views/views-init-test.js

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.
 
 })();