aboutsummaryrefslogtreecommitdiffstats
path: root/lib/util.js
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@redhat.com>2011-03-02 01:14:36 +0100
committerMatěj Cepl <mcepl@redhat.com>2011-03-02 01:14:36 +0100
commit41ffab7b32df1756e78af92ff68ff40afb75e1d5 (patch)
tree3bcddc3dfaa9f6ad7afbd0cf31f09d6bceb8e208 /lib/util.js
parent273765aa78125b2106218ad554e6dedad7d2b381 (diff)
parent52bcf6e79eb3085b598a9ca0d21f60879a0e3706 (diff)
downloadbugzilla-triage-41ffab7b32df1756e78af92ff68ff40afb75e1d5.tar.gz
Merge branch 'pageMod' into next
Conflicts: lib/bzpage.js
Diffstat (limited to 'lib/util.js')
-rw-r--r--lib/util.js189
1 files changed, 11 insertions, 178 deletions
diff --git a/lib/util.js b/lib/util.js
index 4612b66..089e31c 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -9,36 +9,9 @@ var Ci = require("chrome").Ci;
var urlMod = require("url");
/**
- * Function for the management of the prototypal inheritace
- * David Flanagan, Javascript: The Definitve Guide,
- * IV. edition, O'Reilly, 2006, p. 168
- *
- * @param superobject
- * @return new object, it needs new prototype.constructor
- *
- * <pre>
- * function Father(x) {
- * this.family = x;
- * }
- *
- * function Son(x,w) {
- * Father.call(this,x);
- * this.wife = w;
- * }
- * Son.prototype = heir(Father);
- * Son.prototype.constructor = Son;
- * </pre>
- */
-exports.heir = function heir(p) {
- function F() {};
- F.prototype = p.prototype;
- return new F();
-};
-
-/**
* get parameters of URL as an object (name, value)
*/
-var getParamsFromURL = exports.getParamsFromURL = function getParamsFromURL (url, base) {
+function getParamsFromURL (url, base) {
if (!url || (url.toString().length === 0)) {
throw new Error("Missing URL value!");
}
@@ -50,7 +23,7 @@ var getParamsFromURL = exports.getParamsFromURL = function getParamsFromURL (url
var paramsArr = url.path.split("?");
if (paramsArr.length === 1) {
return {};
- }
+ }
// get convert URL parameters to an Object
var params = {}, s = [];
@@ -59,21 +32,7 @@ var getParamsFromURL = exports.getParamsFromURL = function getParamsFromURL (url
params[s[0]] = s[1];
});
return params;
-};
-
-/**
- * parse XML object out of string working around various bugs in Gecko implementation
- * see https://developer.mozilla.org/en/E4X for more information
- *
- * @param inStr String with unparsed XML string
- * @return XML object
- */
-exports.parseXMLfromString = function parseXMLfromString (inStuff) {
- // if (typeof inStuff !== 'string') In future we should recognize this.response
- // and get just .text property out of it. TODO
- var respStr = inStuff.replace(/^<\?xml\s+version\s*=\s*(["'])[^\1]+\1[^?]*\?>/, ""); // bug 336551
- return new XML(respStr);
-};
+}
/**
* Get a bug no from URL ... fails with aliases
@@ -106,139 +65,13 @@ exports.getISODate = function getISODate(dateStr) {
};
/**
- * Check whether an item is member of the list. Idea is just to make long if
- * commands slightly more readable.
- *
- * @param mbr string to be searched in the list
- * @param list list
- * @return position of the string in the list, or -1 if none found.
- */
-var isInList = exports.isInList = function isInList(mbr, list) {
- if (!list) {
- return false;
- }
- return (list.indexOf(mbr) !== -1);
-};
-
-/**
- * Make sure value returned is Array
- *
- * @param Array/String
- * @return Array
- *
- * If something else than Array or String is passed to the function
- * the result will be untouched actual argument of the call.
- */
-var valToArray = exports.valToArray = function valToArray(val) {
- var isArr = val &&
- val.constructor &&
- val.constructor.name === "Array";
- return isArr ? val : [val];
-};
-
-/**
- * Merges two comma separated string as a list and returns new string
- *
- * @param str String with old values
- * @param value String/Array with other values
- * @return String with merged lists
- */
-exports.addCSVValue = function addCSVValue(str, value) {
- var parts = (str.trim().length > 0 ? str.split(/[,\s]+/) : []);
- if (!value) {
- return str;
- }
- if (!isInList(value, parts)) {
- var newValue = valToArray(value);
- parts = parts.concat(newValue);
- }
- // this is necessary to get comma-space separated string even when
- // value is an array already
- parts = parts.join(",").split(",");
- return parts.join(", ");
-};
-
-/**
- * Treats comma separated string as a list and removes one item from it
- *
- * @param str String treated as a list
- * @param value String with the value to be removed from str
- * @return String with the resulting list comma separated
- */
-exports.removeCSVValue = function removeCSVValue(str, value) {
- str = str.trim();
- var parts = str ? str.split(/[,\s]+/) : [];
- var valueArr = value instanceof Array ? value : value.split(/[,\s]+/);
- parts = parts.filter(function (e, i, a) {
- return (!isInList(e, valueArr));
- });
- return parts.join(", ");
-};
-
-/**
- * select element of the array where regexp in the first element matches second
- * parameter of this function
- *
- * @param list Array with regexps and return values
- * @param chosingMark String by which the element of array is to be matched
- * @return Object chosen element
+ * object to pack messaging. Use as in
+ postMessage(new Message("GetPassword", {
+ login: login,
+ hostname: location.hostname
+ }));
*/
-var filterByRegexp = exports.filterByRegexp =
- function filterByRegexp(list, chosingMark) {
- var chosenPair = [];
- if (list.length > 0) {
- chosenPair = list.filter(function (pair) {
- return new RegExp(pair.regexp, "i").test(chosingMark);
- });
- }
- if (chosenPair.length > 0) {
- return chosenPair[0].addr;
- } else {
- return "";
- }
-};
-
-/**
- * remove elements from the page based on their IDs
- *
- * @param doc Document object
- * @param target String/Array with ID(s)
- * @param remove Boolean indicating whether the node should be
- * actually removed or just hidden.
- * @return none
- * TODO remove parameter could be replaced by function which would
- * do actual activity.
- */
-exports.killNodes = function killNodes(doc, target, remove) {
- target = target.trim();
- var targetArr = target instanceof Array ? target : target.split(/[,\s]+/);
- targetArr.forEach(function(x) {
- if (remove) {
- var targetNode = doc.getElementById(x);
- targetNode.parentNode.removeChild(targetNode);
- } else {
- x.style.display = "none";
- }
- });
-};
-
-exports.getObjectKeys = function getObjectKeys(obj) {
- var keys = [];
- for (var key in obj) {
- if (obj.hasOwnProperty(key)) {
- keys.push(key);
- }
- }
- return keys;
-};
-
-exports.removeDuplicates = function removeDuplicates (arr) {
- for (var i = 0; i < arr.length; i++) {
- for (var j = i + 1; j < arr.length; j++) {
- if (arr[i] == arr[j]) {
- arr.splice (j, 1);
- }
- }
- }
- return arr;
+exports.Message = function Message(cmd, data) {
+ this.cmd = cmd;
+ this.data = data;
};