You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by rb...@apache.org on 2011/08/15 17:48:39 UTC
svn commit: r1157893 -
/shindig/trunk/features/src/main/javascript/features/container/container.js
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);
- });
};