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.

Reply via email to