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