DescriptionWhen using new common container to render gadget, the ifr request url will be from gadget metadata request. At the back end, method makeRenderingUri() will be called on DefaultIframeUriManager class to generate the ifr url. In this method, there are following code snippet to add default user prefs into url.
// Add all UserPrefs
UserPrefs prefs = context.getUserPrefs();
for (UserPref up : gadget.getSpec().getUserPrefs().values()) {
String name = up.getName();
String data = prefs.getPref(name);
if (data == null) {
data = up.getDefaultValue();
}
boolean upInFragment = !view.needsUserPrefSubstitution();
addParam(uri, UriCommon.USER_PREF_PREFIX + up.getName(), data, useTpl, upInFragment);
}
Such as if gadget spec xml defined a pref named "mycolor" with default value "Green", but the addParam method will change the "mycolor" value to "%up_mycolor%" because useTpl is true. Thus, ifr url will be requested with all invalid user prefs values. And when you try to get some default value from user prefs, it return invalid value.
Patch Set 1 #
MessagesTotal messages: 2
|