Author: rbaxter85
Date: Mon Aug 15 15:48:39 2011
New Revision: 1157893
URL: http://svn.apache.org/viewvc?rev=1157893&view=rev
Log:
SHINDIG-1568
Committed For Dan Dumont
Makes the get preferences function async.
Modified:
shindig/trunk/features/src/main/javascript/features/container/container.js
Modified:
shindig/trunk/features/src/main/javascript/features/container/container.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container/container.js?rev=1157893&r1=1157892&r2=1157893&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/container/container.js
(original)
+++ shindig/trunk/features/src/main/javascript/features/container/container.js
Mon Aug 15 15:48:39 2011
@@ -193,30 +193,37 @@ osapi.container.Container.prototype.navi
this.refreshService_();
+ var
+ self = this,
+ selfSite = site,
+ finishNavigate = function(preferences) {
+ renderParams[RenderParam.USER_PREFS] = preferences;
+
+ // TODO: Lifecycle, add ability for current gadget to cancel nav.
+ site.navigateTo(gadgetUrl, viewParams, renderParams,
function(gadgetInfo) {
+ // TODO: Navigate to error screen on primary gadget load failure
+ // TODO: Should display error without doing a standard navigate.
+ // TODO: Bad if the error gadget fails to load.
+ if (gadgetInfo.error) {
+ gadgets.warn(['Failed to possibly schedule token refresh for gadget
',
+ gadgetUrl, '.'].join(''));
+ } else if
(gadgetInfo[osapi.container.MetadataResponse.NEEDS_TOKEN_REFRESH]) {
+ self.scheduleRefreshTokens_();
+ }
+
+
self.applyLifecycleCallbacks_(osapi.container.CallbackType.ON_NAVIGATED,
+ selfSite);
+ callback(gadgetInfo);
+ });
+ };
+
// Try to retrieve preferences for the gadget if no preferences were
explicitly provided.
if (this.config_[ContainerConfig.GET_PREFERENCES] &&
!renderParams[RenderParam.USER_PREFS]) {
- renderParams[RenderParam.USER_PREFS] =
- this.config_[ContainerConfig.GET_PREFERENCES](site.getId(), gadgetUrl);
+ this.config_[ContainerConfig.GET_PREFERENCES](site.getId(), gadgetUrl,
finishNavigate);
+ }
+ else {
+ finishNavigate(renderParams[RenderParam.USER_PREFS]);
}
-
- var self = this;
- var selfSite = site;
- // TODO: Lifecycle, add ability for current gadget to cancel nav.
- site.navigateTo(gadgetUrl, viewParams, renderParams, function(gadgetInfo) {
- // TODO: Navigate to error screen on primary gadget load failure
- // TODO: Should display error without doing a standard navigate.
- // TODO: Bad if the error gadget fails to load.
- if (gadgetInfo.error) {
- gadgets.warn(['Failed to possibly schedule token refresh for gadget ',
- gadgetUrl, '.'].join(''));
- } else if
(gadgetInfo[osapi.container.MetadataResponse.NEEDS_TOKEN_REFRESH]) {
- self.scheduleRefreshTokens_();
- }
-
- self.applyLifecycleCallbacks_(osapi.container.CallbackType.ON_NAVIGATED,
- selfSite);
- callback(gadgetInfo);
- });
};