bugs about features/setprefs/setprefs.js
----------------------------------------
Key: SHINDIG-911
URL: https://issues.apache.org/jira/browse/SHINDIG-911
Project: Shindig
Issue Type: Bug
Components: Features (Javascript)
Reporter: Pan Jie
Priority: Minor
Here is features/setprefs/setprefs.js
/**
* Stores a preference.
* @param {String | Object} key The pref to store.
* @param {String} val The values to store.
* @private This feature is documented in prefs.js
*/
gadgets.Prefs.prototype.set = function(key, value) {
if (arguments.length > 2) {
// For backwards compatibility. This can take the form:
// prefs.set(key0, value0, key1, value1, key2, value2);
// prefs.set({key0: value0, key1: value1, key2: value2});
var obj = {};
for (var i = 0, j = arguments.length; i < j; i += 2) {
obj[arguments[i]] = arguments[i + 1];
}
gadgets.Prefs.setInternal_(obj);
} else {
gadgets.Prefs.setInternal_(key, value);
}
var args = [
null, // go to parent
"set_pref", // service name
null, // no callback
gadgets.util.getUrlParameters().ifpctok || 0 // Legacy IFPC "security".
].concat(Array.prototype.slice.call(arguments));
gadgets.rpc.call.apply(gadgets.rpc, args);
};
/**
* Stores a preference from the given list.
* @param {String} key The pref to store.
* @param {Array.<String | Number>} val The values to store.
* @private This feature is documented in prefs.js
*/
gadgets.Prefs.prototype.setArray = function(key, val) {
// We must escape pipe (|) characters to ensure that decoding in
// getArray actually works properly.
for (var i = 0, j = val.length; i < j; ++i) {
val[i] = val[i].replace(/\|/g, "%7C");
}
gadgets.Prefs.setInternal_(key, val.join('|'));
};
1. setArray should allow Array<Number> as parameter val. But code
"val[i].replace(/\|/g, "%7C");" will failed if val[i] is not string.
2. setArray should also call rpc "set_pref" to change user preferences similar
to gadgets.Prefs.prototype.set. But there were no such code.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.