aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/bzpage.js162
-rw-r--r--lib/logger.js1
-rw-r--r--lib/main.js49
-rw-r--r--lib/rhbzpage.js218
4 files changed, 219 insertions, 211 deletions
diff --git a/lib/bzpage.js b/lib/bzpage.js
index 59790fb..79f6d64 100644
--- a/lib/bzpage.js
+++ b/lib/bzpage.js
@@ -5,6 +5,7 @@
"use strict";
var util = require("util");
var simpleStorage = require("simple-storage");
+var Color = require("color").Color;
var TriagedDistro = 13;
var NumberOfFrames = 7;
@@ -14,7 +15,7 @@ var bugURL = "https://bugzilla.redhat.com/show_bug.cgi?id=";
// ====================================================================================
// BZPage's methods
-exports.BZPage = function BZPage(doc, config) {
+var BZPage = exports.BZPage = function BZPage(doc, config) {
// constants
this.SalmonPink = new Color(255, 224, 176); // RGB 255, 224, 176; HSL 36, 2,
// 85
@@ -22,6 +23,7 @@ exports.BZPage = function BZPage(doc, config) {
// 83
// initialize dynamic properties
this.doc = doc;
+ console.log("this.doc = " + this.doc);
this.packages = this.getInstalledPackages();
if ("commentStrings" in config.gJSONData) {
this.commentStrings = config.gJSONData.commentStrings;
@@ -55,20 +57,20 @@ exports.BZPage = function BZPage(doc, config) {
this.CCList = this.getCCList();
this.generateButtons();
-}
+};
/**
*
*/
BZPage.prototype.getInstalledPackages = function() {
- let installedPackages = {};
+ var installedPackages = {};
if (config.gJSONData && ("commentPackages" in config.gJSONData)) {
- let enabledPackages = jetpack.storage.settings.enabledPacks.split(/[, ]/);
- for each (let pkg in enabledPackages) {
+ var enabledPackages = jetpack.storage.settings.enabledPacks.split(/[, ]/);
+ enabledPackages.forEach(function (pkg, idx, arr) {
if (pkg in config.gJSONData.commentPackages) {
installedPackages[pkg] = config.gJSONData.commentPackages[pkg];
}
- }
+ });
}
return installedPackages;
};
@@ -141,13 +143,13 @@ BZPage.prototype.centralCommandDispatch = function (cmdLabel, cmdParams) {
break;
case "removeBlocks":
this.clickMouse("blocked_edit_action");
- this.removeStuffFromTextBox("blocked", cmdParams)
+ this.removeStuffFromTextBox("blocked", cmdParams);
break;
case "comment":
this.addStuffToTextBox("comment", cmdParams);
break;
case "commentIdx":
- let commentText = this.commentStrings[cmdParams];
+ var commentText = this.commentStrings[cmdParams];
this.addStuffToTextBox("comment", commentText);
break;
case "setNeedinfo":
@@ -178,10 +180,10 @@ BZPage.prototype.centralCommandDispatch = function (cmdLabel, cmdParams) {
* this.centralCommandDispatch to execute them.
*/
BZPage.prototype.executeCommand = function(cmd) {
- let [pkg, id] = cmd.split("//");
- let commentObj = this.packages[pkg][id];
+ var cmdArr = cmd.split("//");
+ var commentObj = this.packages[cmdArr[0]][cmdArr[1]];
- for (let key in commentObj) {
+ for (var key in commentObj) {
this.centralCommandDispatch(key,commentObj[key]);
}
};
@@ -193,7 +195,7 @@ BZPage.prototype.executeCommand = function(cmd) {
* @return none
*/
BZPage.prototype.changeAssignee = function(newAssignee) {
- let defAssigneeButton = null;
+ var defAssigneeButton = null;
this.addToCCList(this.owner);
if (newAssignee === null) {
this.doc.getElementById("set_default_assignee").removeAttribute(
@@ -202,8 +204,8 @@ BZPage.prototype.changeAssignee = function(newAssignee) {
}
if (this.getDefaultAssignee) {
- if (newAssignee == "default") {
- let defAss = this.getDefaultAssignee();
+ if (newAssignee === "default") {
+ var defAss = this.getDefaultAssignee();
if (defAss) {
newAssignee = defAss;
} else {
@@ -216,8 +218,8 @@ BZPage.prototype.changeAssignee = function(newAssignee) {
this.clickMouse("bz_assignee_edit_action");
this.doc.getElementById("assigned_to").value = newAssignee;
this.doc.getElementById("set_default_assignee").checked = false;
- if (defAssigneeButton = this.doc
- .getElementById("setDefaultAssignee_btn")) {
+ defAssigneeButton = this.doc.getElementById("setDefaultAssignee_btn");
+ if (defAssigneeButton) {
defAssigneeButton.style.display = "none";
}
}
@@ -232,9 +234,9 @@ BZPage.prototype.changeAssignee = function(newAssignee) {
* function will set up new one.
*/
BZPage.prototype.addToCommentsDropdown = function(pkg, cmd) {
- let select = this.doc.getElementById("comment_action");
+ var select = this.doc.getElementById("comment_action");
if (!select) {
- let that = this;
+ var that = this;
this.doc.getElementById("comments").innerHTML +=
"<div id='make_bugzilla_comment_action'>" +
" <label for='comment_action'>Add Comment: </label>" +
@@ -243,9 +245,10 @@ BZPage.prototype.addToCommentsDropdown = function(pkg, cmd) {
"</div>";
select = this.doc.getElementById("comment_action");
select.addEventListener("change", function () {
- let valueElement = that.doc.getElementById("comment_action");
+ var value = "";
+ var valueElement = that.doc.getElementById("comment_action");
if (valueElement) {
- let value = valueElement.getAttribute("value");
+ value = valueElement.getAttribute("value");
} else {
return;
}
@@ -253,7 +256,7 @@ BZPage.prototype.addToCommentsDropdown = function(pkg, cmd) {
}, false);
}
- let opt = that.doc.createElement("option");
+ var opt = this.doc.createElement("option");
opt.value = pkg + "//" + cmd;
opt.textContent = this.packages[pkg][cmd].name;
select.appendChild(opt);
@@ -270,10 +273,10 @@ BZPage.prototype.addToCommentsDropdown = function(pkg, cmd) {
* @return none
*/
BZPage.prototype.createNewButton = function(location, after, pkg, id) {
- let that = this;
- let cmdObj = this.packages[pkg][id];
- let newId = id + "_btn";
- let label = cmdObj["name"];
+ var that = this;
+ var cmdObj = this.packages[pkg][id];
+ var newId = id + "_btn";
+ var label = cmdObj.name;
// protection against double-firings
if (this.doc.getElementById(newId)) {
@@ -283,12 +286,12 @@ BZPage.prototype.createNewButton = function(location, after, pkg, id) {
// creation of button might be conditional on existence of data in constantData
if ("ifExist" in cmdObj) {
- if (!(cmdObj["ifExist"] in this.constantData)) {
+ if (!(cmdObj.ifExist in this.constantData)) {
return ;
}
}
- let newButton = this.doc.createElement("input");
+ var newButton = this.doc.createElement("input");
newButton.setAttribute("id", newId);
newButton.setAttribute("type", "button");
newButton.value = label;
@@ -296,7 +299,7 @@ BZPage.prototype.createNewButton = function(location, after, pkg, id) {
that.executeCommand(pkg + "//" + id);
}, false);
- let originalLocation = this.doc.getElementById(location);
+ var originalLocation = this.doc.getElementById(location);
if (after) {
originalLocation.parentNode.insertBefore(newButton,
@@ -314,19 +317,19 @@ BZPage.prototype.createNewButton = function(location, after, pkg, id) {
*
*/
BZPage.prototype.generateButtons = function() {
- let topRowPosition = "topRowPositionID";
- let bottomRowPosition = "commit";
+ var topRowPosition = "topRowPositionID";
+ var bottomRowPosition = "commit";
// create anchor for the top toolbar
- let commentBox = this.doc.getElementById("comment");
- let brElement = this.doc.createElement("br");
+ var commentBox = this.doc.getElementById("comment");
+ var brElement = this.doc.createElement("br");
brElement.setAttribute("id",topRowPosition);
commentBox.parentNode.normalize();
commentBox.parentNode.insertBefore(brElement, commentBox);
- for (let pkg in this.packages) {
- for (let cmdIdx in this.packages[pkg]) {
- let cmdObj = this.packages[pkg][cmdIdx];
+ for (var pkg in this.packages) {
+ for (var cmdIdx in this.packages[pkg]) {
+ var cmdObj = this.packages[pkg][cmdIdx];
switch (cmdObj.position) {
case "topRow":
this.createNewButton(topRowPosition, false, pkg, cmdIdx);
@@ -338,9 +341,9 @@ BZPage.prototype.generateButtons = function() {
this.addToCommentsDropdown(pkg,cmdIdx);
break;
default: // [+-]ID
- let firstChr = cmdObj.position.charAt(0);
- let newId = cmdObj.position.substr(1);
- this.createNewButton(newId, firstChr == "+", pkg, cmdIdx);
+ var firstChr = cmdObj.position.charAt(0);
+ var newId = cmdObj.position.substr(1);
+ this.createNewButton(newId, firstChr === "+", pkg, cmdIdx);
break;
}
}
@@ -364,8 +367,8 @@ BZPage.prototype.getReporter = function() {
* @return string (integer for released Fedora, float for RHEL, rawhide)
*/
BZPage.prototype.getVersion = function() {
- let verStr = this.getOptionValue("version").toLowerCase();
- let verNo = 0;
+ var verStr = this.getOptionValue("version").toLowerCase();
+ var verNo = 0;
if (/rawhide/.test(verStr)) {
verNo = 999;
} else {
@@ -375,7 +378,7 @@ BZPage.prototype.getVersion = function() {
};
BZPage.prototype.commentsWalker = function(fce) {
- let comments = this.doc.getElementById("comments").getElementsByClassName(
+ var comments = this.doc.getElementById("comments").getElementsByClassName(
"bz_comment");
Array.forEach(comments, function(item) {
fce(item);
@@ -387,9 +390,9 @@ BZPage.prototype.commentsWalker = function(fce) {
*
*/
BZPage.prototype.checkComments = function() {
- let that = this;
+ var that = this;
this.commentsWalker(function(x) {
- let email = x.getElementsByClassName("vcard")[0]
+ var email = x.getElementsByClassName("vcard")[0]
.getElementsByTagName("a")[0].textContent;
if (new RegExp(that.reporter).test(email)) {
x.style.backgroundColor = that.ReporterColor.toString();
@@ -398,7 +401,7 @@ BZPage.prototype.checkComments = function() {
};
BZPage.prototype.collectComments = function() {
- let outStr = "";
+ var outStr = "";
this.commentsWalker(function(x) {
outStr += x.getElementsByTagName("pre")[0].textContent + "\n";
});
@@ -417,13 +420,13 @@ BZPage.prototype.collectComments = function() {
*
* FIXME bugzilla-comments version has this signature:
* selectOption = function selectOption(select, value) {
- let doc = select[0].ownerDocument;
+ var doc = select[0].ownerDocument;
select.val(value);
*/
BZPage.prototype.selectOption = function(id, label) {
- let sel = this.doc.getElementById(id);
+ var sel = this.doc.getElementById(id);
sel.value = label;
- let intEvent = this.doc.createEvent("HTMLEvents");
+ var intEvent = this.doc.createEvent("HTMLEvents");
intEvent.initEvent("change", true, true);
sel.dispatchEvent(intEvent);
};
@@ -435,7 +438,7 @@ BZPage.prototype.selectOption = function(id, label) {
* @return None
*/
BZPage.prototype.clickMouse = function(targetID) {
- let localEvent = this.doc.createEvent("MouseEvents");
+ var localEvent = this.doc.createEvent("MouseEvents");
localEvent.initMouseEvent("click", true, true, this.doc.defaultView, 0, 0,
0, 0, 0, false, false, false, false, 0, null);
this.doc.getElementById(targetID).dispatchEvent(localEvent);
@@ -450,7 +453,7 @@ BZPage.prototype.clickMouse = function(targetID) {
* @return none
*/
BZPage.prototype.addStuffToTextBox = function(id, stuff) {
- let textBox = this.doc.getElementById(id);
+ var textBox = this.doc.getElementById(id);
if (textBox.tagName.toLowerCase() === "textarea") {
stuff = textBox.value ? "\n\n" + stuff : stuff;
textBox.value += stuff;
@@ -466,9 +469,9 @@ BZPage.prototype.addStuffToTextBox = function(id, stuff) {
* @param stuff String/Array with keyword(s) to be removed
*/
BZPage.prototype.removeStuffFromTextBox = function(id, stuff) {
- let changedElement = this.getElementById(id);
+ var changedElement = this.getElementById(id);
changedElement.value = util.removeCSVValue(changedElement.value,stuff);
-}
+};
/**
* generalized hasKeyword ... search in the value of the box with given id
@@ -478,13 +481,14 @@ BZPage.prototype.removeStuffFromTextBox = function(id, stuff) {
* @return Boolean found?
*/
BZPage.prototype.idContainsWord = function(id, str) {
+ var kwd = "";
try {
- var kwd = this.doc.getElementById(id).value;
+ kwd = this.doc.getElementById(id).value;
} catch (e) {
// For those who don't have particular element at all or if it is empty
return false;
}
- return (kwd.trim().indexOf(str) != -1);
+ return (kwd.trim().indexOf(str) !== -1);
};
/**
@@ -502,7 +506,7 @@ BZPage.prototype.hasKeyword = function(str) {
*/
BZPage.prototype.getOptionValue = function(id) {
// Some special bugs don't have version for example
- let element = this.doc.getElementById(id);
+ var element = this.doc.getElementById(id);
if (element) {
return element.value;
} else {
@@ -528,11 +532,11 @@ BZPage.prototype.setNeedinfoReporter = function() {
*
*/
BZPage.prototype.getOwner = function() {
- let priorityParent = this.doc.querySelector("label[for~='target_milestone']")
+ var priorityParent = this.doc.querySelector("label[for~='target_milestone']")
.parentNode.parentNode.parentNode;
- let assigneeAElement = priorityParent.querySelector("tr:nth-of-type(1) a.email");
- let assgineeHref = decodeURI(assigneeAElement.getAttribute("href"));
- let email = assgineeHref.split(":")[1];
+ var assigneeAElement = priorityParent.querySelector("tr:nth-of-type(1) a.email");
+ var assgineeHref = decodeURI(assigneeAElement.getAttribute("href"));
+ var email = assgineeHref.split(":")[1];
return email;
};
@@ -542,9 +546,9 @@ BZPage.prototype.getOwner = function() {
* @return String with the login name of the currently logged-in user
*/
BZPage.prototype.getLogin = function () {
- let lastLIElement = this.doc.querySelector("#header ul.links li:last-of-type");
- let loginArr = lastLIElement.textContent.split("\n");
- let loginStr = loginArr[loginArr.length - 1].trim();
+ var lastLIElement = this.doc.querySelector("#header ul.links li:last-of-type");
+ var loginArr = lastLIElement.textContent.split("\n");
+ var loginStr = loginArr[loginArr.length - 1].trim();
return loginStr;
};
@@ -555,9 +559,9 @@ BZPage.prototype.getLogin = function () {
* @return String with the maintainer's email address
*/
BZPage.prototype.getDefaultBugzillaMaintainer = function(component) {
- let address = util.filterByRegexp(this.defBugzillaMaintainerArr, component);
+ var address = util.filterByRegexp(this.defBugzillaMaintainerArr, component);
return address;
-}
+};
/**
* collect the list of attachments in a structured format
@@ -568,10 +572,10 @@ BZPage.prototype.getDefaultBugzillaMaintainer = function(component) {
* element itself
*/
BZPage.prototype.getAttachments = function() {
- let outAtts = [];
- let atts = this.doc.getElementById("attachment_table")
+ var outAtts = [];
+ var atts = this.doc.getElementById("attachment_table")
.getElementsByTagName("tr");
- for ( let i = 1, ii = atts.length - 1; i < ii; i++) {
+ for ( var i = 1, ii = atts.length - 1; i < ii; i++) {
outAtts.push(this.parseAttachmentLine(atts[i]));
}
return outAtts;
@@ -587,21 +591,21 @@ BZPage.prototype.getPassword = function() {
if (jetpack.storage.settings.BZpassword) {
return jetpack.storage.settings.BZpassword;
} else {
- let prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
+ var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
.getService(Components.interfaces.nsIPromptService);
- let password = {
+ var password = {
value : ""
}; // default the password to pass
- let check = {
+ var check = {
value : true
}; // default the checkbox to true
- let result = prompts.promptPassword(null, "Title", "Enter password:",
+ var result = prompts.promptPassword(null, "Title", "Enter password:",
password, null, check);
// result is true if OK was pressed, false if cancel was pressed.
// password.value is
// set if OK was pressed. The checkbox is not displayed.
if (result) {
- let passwordText = password.value;
+ var passwordText = password.value;
jetpack.storage.settings.BZpassword = passwordText;
jetpack.storage.simple.sync();
return passwordText;
@@ -615,8 +619,8 @@ BZPage.prototype.getPassword = function() {
*/
BZPage.prototype.setUpLogging = function() {
// For adding additional buttons to the top toolbar
- let additionalButtons = this.doc.querySelector("#bugzilla-body *.related_actions");
- let that = this;
+ var additionalButtons = this.doc.querySelector("#bugzilla-body *.related_actions");
+ var that = this;
// logging all submits for timesheet
// FIXME we should merge in functionality of RHBugzillaPage.submitCallback
@@ -626,7 +630,7 @@ BZPage.prototype.setUpLogging = function() {
console.log("Installing submit callback!");
this.doc.forms.namedItem("changeform").addEventListener("submit",function (evt) {
console.log("Submit callback!");
- let resp = that.log.addLogRecord(that);
+ var resp = that.log.addLogRecord(that);
console.log("resp = " + resp);
if (resp === null) {
console.log("Avoiding submitting!");
@@ -638,7 +642,7 @@ BZPage.prototype.setUpLogging = function() {
this.submitHandlerInstalled = true;
}
- let generateTimeSheetUI = this.doc.createElement("li");
+ var generateTimeSheetUI = this.doc.createElement("li");
generateTimeSheetUI.innerHTML = "\u00A0-\u00A0<a href='#' id='generateTSButton'>"
+ "Generate timesheet</a>";
additionalButtons.appendChild(generateTimeSheetUI);
@@ -651,11 +655,11 @@ BZPage.prototype.setUpLogging = function() {
evt.preventDefault();
}, false);
- let clearLogsUI = this.doc.createElement("li");
+ var clearLogsUI = this.doc.createElement("li");
clearLogsUI.innerHTML = "\u00A0-\u00A0<a href='#' id='clearLogs'>"
+ "Clear logs</a>";
additionalButtons.appendChild(clearLogsUI);
- let clearLogAElem = this.doc.getElementById("clearLogs");
+ var clearLogAElem = this.doc.getElementById("clearLogs");
clearLogAElem.addEventListener("click", function() {
that.log.store = {};
jetpack.storage.simple.sync();
@@ -688,7 +692,7 @@ BZPage.prototype.addToCCList = function(who) {
if (!who) {
return ;
}
- if (who == "self") {
+ if (who === "self") {
this.doc.getElementById("addselfcc").checked = true;
} else {
this.clickMouse("cc_edit_area_showhide");
@@ -704,7 +708,7 @@ BZPage.prototype.addToCCList = function(who) {
* @return Array with email addresses as Strings.
*/
BZPage.prototype.getCCList = function() {
- let CCListSelect = this.doc.getElementById("cc");
+ var CCListSelect = this.doc.getElementById("cc");
outCCList = [];
if (CCListSelect) {
outCCList = Array.map(CCListSelect.options, function(item) {
diff --git a/lib/logger.js b/lib/logger.js
index 6bd8142..702465a 100644
--- a/lib/logger.js
+++ b/lib/logger.js
@@ -3,6 +3,7 @@
"use strict";
var urlMod = require("url");
var urilMod = require("util");
+var Color = require("color").Color;
var Logger = exports.Logger = function Logger(store, abbsMap) {
this.EmptyLogsColor = new Color(0, 255, 0);
diff --git a/lib/main.js b/lib/main.js
index 1027d72..3364971 100644
--- a/lib/main.js
+++ b/lib/main.js
@@ -21,21 +21,18 @@ const JSONURL = "http://matej.ceplovi.cz/progs/data/RH_Data-packages.json";
var myStorage = require("simple-storage");
var config = {};
-config.matches = [
- "https://bugzilla.redhat.com/show_bug.cgi",
- "https://bugzilla.mozilla.org/show_bug.cgi"
-];
function initialize(callback) {
util.loadJSON(JSONURL, function(parsedData) {
config.gJSONData = parsedData;
- // Get card translation table
+
var keys = "", key = "";
for (key in config.gJSONData) {
keys += key + " ";
}
console.log("loaded JSON object keys: " + keys);
+ // Get card translation table
if ("PCIIDsURL" in config.gJSONData.configData) {
util.loadJSON(config.gJSONData.configData.PCIIDsURL, function(response) {
config.PCI_ID_Array = response;
@@ -50,37 +47,39 @@ function initialize(callback) {
}
-function isOurPage(window, bugzillaPageModLocation) {
+// TODO: sometime in the future we should include
+// also skip-process.js functionality and these URLs
+// "https://bugzilla.redhat.com/process_bug.cgi",
+// "https://bugzilla.redhat.com/post_bug.cgi",
+// "https://bugzilla.mozilla.org/post_bug.cgi",
+// "https://bugzilla.mozilla.org/process_bug.cgi"
+function isOurPage(window, matchingURLs) {
if ("window" in window) {
window = window.window;
}
+ var url = window.location.href;
- if (window.location.protocol == "https:") {
- // like ["name1": "url1", "name2":"url2"]
- // FIXME the real name of bugzillaPageModLocation array
- for (var loc in bugzillaPageModLocation) {
- if (bugzillaPageModLocation[loc].test(window.location.href)) {
- return true;
- }
- }
- }
- // we haven't found a conforming bugzilla
- return false;
+ // like ["regexp-url1", "regexp-url2"]
+ return matchingURLs.some(function (element,i,a) {
+ return new RegExp(element).test(url);
+ });
}
exports.main = function main(options, callbacks) {
initialize(function (config) {
browser.whenContentLoaded(
function(window) {
- if (isOurPage(window)) {
+ var doc = window.document;
+ if (isOurPage(window, config.gJSONData.configData.matches)) {
+ console.log("dump config:\n" + config);
var curPage = {};
- var mycallback = function(doc) {
- if (config.gJSONData.configData.objectStyle = "RH") {
- curPage = new require("rhbzpage").RHBugzillaPage(doc, config);
- } else if (config.gJSONData.configData.objectStyle = "MoFo") {
- curPage = new require("mozillabzpage").MozillaBugzilla(doc, config);
- }
- };
+ if (config.gJSONData.configData.objectStyle = "RH") {
+ curPage = new require("rhbzpage").RHBugzillaPage(doc, config);
+ } else if (config.gJSONData.configData.objectStyle = "MoFo") {
+ curPage = new require("mozillabzpage").MozillaBugzilla(doc, config);
+ }
+ } else {
+ console.log("Not our page: " + window.location.href);
}
});
});
diff --git a/lib/rhbzpage.js b/lib/rhbzpage.js
index 2370e72..f2e7c22 100644
--- a/lib/rhbzpage.js
+++ b/lib/rhbzpage.js
@@ -7,6 +7,8 @@ var util = require("util");
var xrpc = require("xmlrpc");
var xhr = require("xhr");
var clip = require("clipboard");
+var Color = require("color").Color;
+var BZPage = require("bzpage").BZPage;
// var TriagedDistro = 13;
// var NumberOfFrames = 7;
// var XMLRPCurl = "https://bugzilla.redhat.com/xmlrpc.cgi";
@@ -15,9 +17,9 @@ var clip = require("clipboard");
// ====================================================================================
// RHBugzillaPage object
-exports.RHBugzillaPage = function RHBugzillaPage(doc, config) {
+var RHBugzillaPage = exports.RHBugzillaPage = function RHBugzillaPage(doc, config) {
// For identification of graphics card
- const manuChipStrs = [ [ "ATI Radeon", "ATI", "1002" ],
+ var manuChipStrs = [ [ "ATI Radeon", "ATI", "1002" ],
[ "ATI Mobility Radeon", "ATI", "1002" ],
[ "Intel Corporation", "INTEL", "8086" ], [ "NVIDIA", "NV", "10de" ] ];
@@ -48,18 +50,22 @@ exports.RHBugzillaPage = function RHBugzillaPage(doc, config) {
// Prepare for query buttons
// FIXME getting null for commentArea sometimes
- let commentArea = doc.getElementById("comment_status_commit");
+ var commentArea = doc.getElementById("comment_status_commit");
if (commentArea) {
- let brElementPlacer = commentArea.getElementsByTagName("br")[0];
- brElementPlacer.setAttribute("id","brElementPlacer_location");
- brElementPlacer.parentNode.insertBefore(doc.createElement("br"),
- brElementPlacer);
+ var brElementPlacer = commentArea.getElementsByTagName("br");
+ console.log("brElementPlacer.length = " + brElementPlacer.length);
+ brElementPlacer = brElementPlacer[0];
+ if (brElementPlacer) {
+ brElementPlacer.setAttribute("id","brElementPlacer_location");
+ brElementPlacer.parentNode.insertBefore(doc.createElement("br"),
+ brElementPlacer);
+ }
}
// inheritance ... call superobject's constructor
BZPage.call(this,doc, config);
- let that = this;
+ var that = this;
this.reqCounter = 0;
this.signaturesCounter = 0;
this.chipMagicInterestingLine = "";
@@ -67,7 +73,7 @@ exports.RHBugzillaPage = function RHBugzillaPage(doc, config) {
this.login = this.getLogin();
this.password = this.getPassword();
- let ITbutton = this.doc.getElementById("cf_issuetracker");
+ var ITbutton = this.doc.getElementById("cf_issuetracker");
this.its = ITbutton ? ITbutton.value.trim() : "";
// set default assignee on change of the component
@@ -87,14 +93,14 @@ exports.RHBugzillaPage = function RHBugzillaPage(doc, config) {
// Dig out backtrace
this.btSnippet = "";
- let parseAbrtBacktraces = config.gJSONData.configData.parseAbrtBacktraces;
+ var parseAbrtBacktraces = config.gJSONData.configData.parseAbrtBacktraces;
if (parseAbrtBacktraces && this.RE.Abrt.test(this.title)) {
this.pasteBacktraceInComments();
}
// Take care of signature for Fedora bugzappers
if (config.gJSONData.configData.signature.length > 0) {
- let signatureFedoraString = config.gJSONData.configData.signature;
+ var signatureFedoraString = config.gJSONData.configData.signature;
this.doc.forms.namedItem("changeform").addEventListener("submit",
function() {
if (this.signaturesCounter < 1) {
@@ -112,12 +118,12 @@ exports.RHBugzillaPage = function RHBugzillaPage(doc, config) {
&& (config.PCI_ID_Array.length > 0))
&& this.maintCCAddr === "xgl-maint@redhat.com") {
// Add find chip magic button
- let whiteboard_string = this.doc.getElementById("status_whiteboard").value;
+ var whiteboard_string = this.doc.getElementById("status_whiteboard").value;
if (!/card_/.test(whiteboard_string)) {
this.fillInChipMagic();
}
}
-} // END OF RHBugzillaPage CONSTRUCTOR
+}; // END OF RHBugzillaPage CONSTRUCTOR
RHBugzillaPage.prototype = util.heir(BZPage);
RHBugzillaPage.prototype.constructor = RHBugzillaPage;
@@ -131,7 +137,7 @@ RHBugzillaPage.prototype.constructor = RHBugzillaPage;
RHBugzillaPage.prototype.getDefaultAssignee = function() {
return util.filterByRegexp(this.constantData.defaultAssignee,
this.component).toLowerCase();
-}
+};
/**
* Set default assignee
@@ -141,7 +147,7 @@ RHBugzillaPage.prototype.getDefaultAssignee = function() {
*/
RHBugzillaPage.prototype.setDefaultAssignee = function() {
this.defaultAssignee = this.getDefaultAssignee();
- let defAss = this.defaultAssignee;
+ var defAss = this.defaultAssignee;
// Add setting default assignee
if ((defAss.length > 0) && (defAss !== this.getOwner())) {
@@ -159,10 +165,10 @@ RHBugzillaPage.prototype.closeSomeRelease = function() {
// and put the release version to
// "Fixed in Version" textbox
// otherwise -> NEXTRELEASE
- let verNo = this.getVersion();
+ var verNo = this.getVersion();
this.selectOption("bug_status", "CLOSED");
- let text = "";
- let resolution = "";
+ var text = "";
+ var resolution = "";
if (jetpack.selection.text) {
text = jetpack.select.text.trim();
@@ -204,7 +210,7 @@ RHBugzillaPage.prototype.centralCommandDispatch = function(cmdLabel, cmdParams)
this.markBugTriaged();
break;
case "chipMagic":
- let splitArr = cmdParams.split("\t");
+ var splitArr = cmdParams.split("\t");
this.fillInWhiteBoard(splitArr[0], splitArr[1]);
break;
// If we don't have it here, call superclass method
@@ -228,19 +234,19 @@ RHBugzillaPage.prototype.ProfessionalProducts = [
RHBugzillaPage.prototype.pasteBacktraceInComments = function() {
// FIXME This paragraph looks suspicous ... what is it?
// Does it belong to this function?
- let notedLabel = this.doc.querySelector("label[for='newcc']");
+ var notedLabel = this.doc.querySelector("label[for='newcc']");
while (notedLabel.firstChild) {
- let node = notedLabel.removeChild(notedLabel.firstChild);
+ var node = notedLabel.removeChild(notedLabel.firstChild);
notedLabel.parentNode.insertBefore(node, notedLabel);
}
notedLabel.parentNode.removeChild(notedLabel);
- let abrtQueryURL = "https://bugzilla.redhat.com/buglist.cgi?"
+ var abrtQueryURL = "https://bugzilla.redhat.com/buglist.cgi?"
+ "cmdtype=dorem&remaction=run&namedcmd=all%20NEW%20abrt%20crashes&sharer_id=74116";
- let mainTitle = this.doc
+ var mainTitle = this.doc
.getElementsByClassName("bz_alias_short_desc_container")[0];
- let abrtButton = this.doc.createElement("a");
+ var abrtButton = this.doc.createElement("a");
abrtButton.setAttribute("accesskey", "a");
abrtButton.setAttribute("href", abrtQueryURL);
abrtButton.textContent = "Abrt bugs";
@@ -252,7 +258,7 @@ RHBugzillaPage.prototype.pasteBacktraceInComments = function() {
if (!(this.isTriaged() || this.idContainsWord("status_whiteboard",
'btparsed'))) {
- let btAttachments = this.attachments
+ var btAttachments = this.attachments
.filter(function(att, idx, arr) {
return (/backtrace/.test(att[0]));
});
@@ -263,7 +269,7 @@ RHBugzillaPage.prototype.pasteBacktraceInComments = function() {
attURL = "https://bugzilla.redhat.com/attachment.cgi?id="
+ x[1];
if (!this.btSnippet) {
- let btRaw = util.loadText(attURL, function(ret) {
+ var btRaw = util.loadText(attURL, function(ret) {
this.btSnippet = this.parseBacktrace(ret);
if (this.btSnippet) {
this.addStuffToTextBox("comment", this.btSnippet);
@@ -280,14 +286,14 @@ RHBugzillaPage.prototype.pasteBacktraceInComments = function() {
*
*/
RHBugzillaPage.prototype.markBadAttachments = function() {
- let badMIMEArray = [ "application/octet-stream", "text/x-log", "undefined" ];
+ var badMIMEArray = [ "application/octet-stream", "text/x-log", "undefined" ];
- let badAttachments = this.attachments.filter(function(att, idx, arr) {
+ var badAttachments = this.attachments.filter(function(att, idx, arr) {
return (util.isInList(att[2], badMIMEArray));
});
if (badAttachments.length > 0) {
- let titleElement = this.doc
+ var titleElement = this.doc
.getElementsByClassName("bz_alias_short_desc_container")[0];
titleElement.style.backgroundColor = "olive";
titleElement.appendChild(this.createFixAllButton(badAttachments));
@@ -303,8 +309,8 @@ RHBugzillaPage.prototype.markBadAttachments = function() {
* @return Boolean true if it is a RHEL bug
*/
RHBugzillaPage.prototype.isEnterprise = function() {
- let prod = this.product;
- let result = this.ProfessionalProducts.some(function(elem,idx,arr) {
+ var prod = this.product;
+ var result = this.ProfessionalProducts.some(function(elem,idx,arr) {
return new RegExp(elem).test(prod);
});
return result;
@@ -333,8 +339,8 @@ RHBugzillaPage.prototype.isTriaged = function() {
* @return none
*/
RHBugzillaPage.prototype.setBranding = function() {
- let brandColor = {};
- let TriagedColor = {};
+ var brandColor = {};
+ var TriagedColor = {};
if (this.isEnterprise()) {
console.log("This is an enterprise bug.");
@@ -345,7 +351,7 @@ RHBugzillaPage.prototype.setBranding = function() {
}
} else if (new RegExp("Fedora").test(this.product)) {
console.log("This is NOT an enterprise bug.");
- if (this.version == 999) {
+ if (this.version === 999) {
brandColor = this.RawhideColor;
} else {
brandColor = this.FedoraColor;
@@ -361,11 +367,11 @@ RHBugzillaPage.prototype.setBranding = function() {
// Remove "Bug" from the title of the bug page, so we have more space with
// plenty of tabs
- let titleElem = this.doc.getElementsByTagName("title")[0];
+ var titleElem = this.doc.getElementsByTagName("title")[0];
titleElem.textContent = titleElem.textContent.slice(4);
- let bodyTitleParent = this.doc.getElementById("summary_alias_container").parentNode;
- let bodyTitleElem = bodyTitleParent.getElementsByTagName("b")[0];
+ var bodyTitleParent = this.doc.getElementById("summary_alias_container").parentNode;
+ var bodyTitleElem = bodyTitleParent.getElementsByTagName("b")[0];
bodyTitleElem.textContent = bodyTitleElem.textContent.slice(4);
// Make background-color of the body of bug salmon pink
@@ -384,7 +390,7 @@ RHBugzillaPage.prototype.setBranding = function() {
// we should make visible whether maintCCAddr is in CCList
if (util.isInList(this.maintCCAddr, this.CCList)) {
- let ccEditBoxElem = this.doc.getElementById("cc_edit_area_showhide");
+ var ccEditBoxElem = this.doc.getElementById("cc_edit_area_showhide");
// ccEditBoxElem.textContent = "*"+ccEditBoxElem.textContent;
ccEditBoxElem.style.color = "navy";
ccEditBoxElem.style.fontWeight = "bolder";
@@ -392,8 +398,8 @@ RHBugzillaPage.prototype.setBranding = function() {
}
// mark suspicious components
- let compElems;
- let suspiciousComponents = config.gJSONData.configData.suspiciousComponents;
+ var compElems;
+ var suspiciousComponents = config.gJSONData.configData.suspiciousComponents;
if (suspiciousComponents
&& util.isInList(this.component, suspiciousComponents)
&& (compElems = this.doc
@@ -411,16 +417,15 @@ RHBugzillaPage.prototype.setBranding = function() {
* @return None
*/
RHBugzillaPage.prototype.fillInWhiteBoard = function(iLine, driverStr) {
- let that = this;
+ var that = this;
function groupIDs(manStr, cardStrID) {
- let outStr = util.filterByRegexp(chipIDsGroupings, manStr + "," + cardStrID);
+ var outStr = util.filterByRegexp(chipIDsGroupings, manStr + "," + cardStrID);
if (outStr.length === 0) {
outStr = "UNGROUPED_" + manStr + "/" + cardStrID;
}
return outStr;
}
- ;
/**
* Given PCI IDs for manufacturer and card ID return chipset string
@@ -430,22 +435,21 @@ RHBugzillaPage.prototype.fillInWhiteBoard = function(iLine, driverStr) {
* @return Array with chip string and optinoal variants
*/
function checkChipStringFromID(manufacturerNo, cardNo) {
- let soughtID = (manufacturerNo + "," + cardNo).toUpperCase();
- let outList = config.PCI_ID_Array[soughtID];
+ var soughtID = (manufacturerNo + "," + cardNo).toUpperCase();
+ var outList = config.PCI_ID_Array[soughtID];
if (outList) {
return outList;
} else {
return "";
}
}
- ;
- let outStr = "";
- let cardIDStr = "";
- let cardIDArr = [];
+ var outStr = "";
+ var cardIDStr = "";
+ var cardIDArr = [];
chipSwitchboard: if (driverStr === "RADEON") {
- let cardID = iLine.replace(this.RE.ATIgetID, "$1");
+ var cardID = iLine.replace(this.RE.ATIgetID, "$1");
cardIDArr = checkChipStringFromID("1002", cardID);
if (cardIDArr.length > 0) {
cardIDStr = cardIDArr[0];
@@ -492,12 +496,12 @@ RHBugzillaPage.prototype.fillInWhiteBoard = function(iLine, driverStr) {
* @return None
*/
RHBugzillaPage.prototype.fillInChipMagic = function () {
- let that = this;
- let XorgLogURL = "";
- let XorgLogAttID = "";
- let XorgLogFound = false;
- let attURL = "", interestingLine = "";
- let interestingArray = [];
+ var that = this;
+ var XorgLogURL = "";
+ var XorgLogAttID = "";
+ var XorgLogFound = false;
+ var attURL = "", interestingLine = "";
+ var interestingArray = [];
// Find out Xorg.0.log attachment URL
@@ -515,7 +519,7 @@ RHBugzillaPage.prototype.fillInChipMagic = function () {
// parse Xorg.0.log
util.loadText(attURL, function(ret){
- let interestingLineArr = ret.split("\n").
+ var interestingLineArr = ret.split("\n").
filter(function (v,i,a) {
return that.RE.Chipset.test(v);
});
@@ -549,7 +553,7 @@ RHBugzillaPage.prototype.queryInNewTab = function(text, component, product) {
console.log("queryInNewTab / text = " + text);
console.log("queryInNewTab / component = " + component);
console.log("queryInNewTab / product = " + product);
- let url = "https://bugzilla.redhat.com/buglist.cgi?query_format=advanced";
+ var url = "https://bugzilla.redhat.com/buglist.cgi?query_format=advanced";
if (product) {
url += "&product=" + product.trim();
}
@@ -562,7 +566,7 @@ RHBugzillaPage.prototype.queryInNewTab = function(text, component, product) {
// for further investigative searches
if (text) {
text = encodeURIComponent(text.trim());
- let searchText = "&field1-0-0=longdesc&type1-0-0=substring&value1-0-0="
+ var searchText = "&field1-0-0=longdesc&type1-0-0=substring&value1-0-0="
+ text
+ "&field1-0-1=attach_data.thedata&type1-0-1=substring&value1-0-1="
+ text
@@ -588,7 +592,7 @@ RHBugzillaPage.prototype.queryInNewTab = function(text, component, product) {
* function this.queryInNewTab, and run it.
*/
RHBugzillaPage.prototype.queryForSelection = function() {
- let text = jetpack.selection.text;
+ var text = jetpack.selection.text;
console.log("selection = " + text);
if (!text) {
text = clip.get();
@@ -605,31 +609,31 @@ RHBugzillaPage.prototype.queryForSelection = function() {
*/
RHBugzillaPage.prototype.queryUpstream = function() {
console.log("Querying upstream!");
- let text = jetpack.selection.text;
+ var text = jetpack.selection.text;
console.log("Selection = |" + text + "|");
if (!text) {
text = clip.get();
}
if (text) {
- let text = encodeURIComponent(text.trim());
- let queryUpstreamBugsURLArray = this.constantData.queryUpstreamBug;
- let url = util.filterByRegexp(queryUpstreamBugsURLArray, this.component);
+ text = encodeURIComponent(text.trim());
+ var queryUpstreamBugsURLArray = this.constantData.queryUpstreamBug;
+ var url = util.filterByRegexp(queryUpstreamBugsURLArray, this.component);
jetpack.tabs.open(url + text);
}
-}
+};
/**
*
*/
RHBugzillaPage.prototype.sendBugUpstream = function() {
- let url = util.filterByRegexp(this.constantData.newUpstreamBug, this
+ var url = util.filterByRegexp(this.constantData.newUpstreamBug, this
.getOptionValue("component"));
- let ret = jetpack.tabs.open(url);
- let that = this;
+ var ret = jetpack.tabs.open(url);
+ var that = this;
jetpack.tabs.onReady(function() {
- let otherDoc = ret.contentDocument;
- let otherElems = otherDoc.forms.namedItem("Create").elements;
+ var otherDoc = ret.contentDocument;
+ var otherElems = otherDoc.forms.namedItem("Create").elements;
otherElems.namedItem("short_desc").value = that.doc
.getElementById("short_desc_nonedit_display").textContent
.trim();
@@ -647,8 +651,8 @@ RHBugzillaPage.prototype.sendBugUpstream = function() {
* element itself
*/
RHBugzillaPage.prototype.parseAttachmentLine = function(inElem) {
- let MIMEtype = "";
- let size = 0;
+ var MIMEtype = "";
+ var size = 0;
// Skip over obsolete attachments
if (inElem.getElementsByClassName("bz_obsolete").length > 0) {
@@ -656,17 +660,17 @@ RHBugzillaPage.prototype.parseAttachmentLine = function(inElem) {
}
// getting name of the attachment
- let attName = inElem.getElementsByTagName("b")[0].textContent.trim();
+ var attName = inElem.getElementsByTagName("b")[0].textContent.trim();
- let aHrefsArr = inElem.getElementsByTagName("a");
- let aHref = Array.filter(aHrefsArr, function(x) {
- return x.textContent.trim() == "Details";
+ var aHrefsArr = inElem.getElementsByTagName("a");
+ var aHref = Array.filter(aHrefsArr, function(x) {
+ return x.textContent.trim() === "Details";
})[0];
- let id = parseInt(aHref.getAttribute("href").replace(
+ var id = parseInt(aHref.getAttribute("href").replace(
/^.*attachment.cgi\?id=/, ""), 10);
// getting MIME type and size
- let stringArray = inElem.getElementsByClassName("bz_attach_extra_info")[0].textContent
+ var stringArray = inElem.getElementsByClassName("bz_attach_extra_info")[0].textContent
.replace(/[\n ()]+/g, " ").trim().split(", ");
size = parseInt(stringArray[0], 10);
MIMEtype = stringArray[1].split(" ")[0];
@@ -696,7 +700,7 @@ RHBugzillaPage.prototype.fixElement = function(elem, beforeText, accKey, afterTe
* @return String with the string for the external_id SELECT
*/
RHBugzillaPage.prototype.getBugzillaName = function(URLhostname) {
- let bugzillaID = "";
+ var bugzillaID = "";
if (this.constantData.bugzillalabelNames[URLhostname]) {
bugzillaID = this.constantData.bugzillalabelNames[URLhostname];
} else {
@@ -715,7 +719,7 @@ RHBugzillaPage.prototype.getBugzillaName = function(URLhostname) {
* + responseText
*/
RHBugzillaPage.prototype.fixingMIMECallBack = function(data, textStatus) {
- let that = this;
+ var that = this;
if (--this.reqCounter <= 0) {
setTimeout(function () {
that.doc.location.reload(true);
@@ -753,7 +757,7 @@ RHBugzillaPage.prototype.fixAttachById = function(id, type, email) {
email = false;
}
- let msg = new xrpc.XMLRPCMessage("bugzilla.updateAttachMimeType");
+ var msg = new xrpc.XMLRPCMessage("bugzilla.updateAttachMimeType");
msg.addParameter( {
'attach_id' : id,
'mime_type' : type,
@@ -762,14 +766,14 @@ RHBugzillaPage.prototype.fixAttachById = function(id, type, email) {
msg.addParameter(this.login);
msg.addParameter(this.password);
- let req = new XMLHttpRequest();
- let that = this;
+ var req = new XMLHttpRequest();
+ var that = this;
req.open("POST", XMLRPCurl, true);
req.overrideMimeType("text/xml");
req.setRequestHeader("Content-type", "text/xml");
req.onreadystatechange = function(aEvt) {
- if (req.readyState == 4) {
- if (req.status == 200) {
+ if (req.readyState === 4) {
+ if (req.status === 200) {
console.log("Fixing attachment MIME type success!");
that.fixingMIMECallBack();
} else {
@@ -791,8 +795,8 @@ RHBugzillaPage.prototype.createFixAllButton = function(list) {
if (!XMLRPCMessage) {
return;
}
- let that = this;
- let elem = this.doc.createElement("a");
+ var that = this;
+ var elem = this.doc.createElement("a");
elem.setAttribute("href", "");
elem.setAttribute("accesskey", "f");
elem.innerHTML = "<b>F</b>ix all";
@@ -812,9 +816,9 @@ RHBugzillaPage.prototype.createFixAllButton = function(list) {
* @return none
*/
RHBugzillaPage.prototype.addTextLink = function(row) {
- let that = this;
- let elemS = row[4].getElementsByTagName("td");
- let elem = elemS[elemS.length - 1];
+ var that = this;
+ var elemS = row[4].getElementsByTagName("td");
+ var elem = elemS[elemS.length - 1];
elem.innerHTML += "<br/><a href=''>Text</a>";
elem.addEventListener("click", function(x) {
that.fixAttachById(row[1], "text/plain");
@@ -828,24 +832,24 @@ RHBugzillaPage.prototype.addTextLink = function(row) {
* @return none
*/
RHBugzillaPage.prototype.addClosingUpstream = function() {
- let refs = this.doc.getElementById("external_bugs_table")
+ var refs = this.doc.getElementById("external_bugs_table")
.getElementsByTagName("tr");
// that's a bad id, if there is a one. :)
- let inputBox = this.doc.getElementById("inputbox");
- let externalBugID = 0;
- let wholeURL = "";
+ var inputBox = this.doc.getElementById("inputbox");
+ var externalBugID = 0;
+ var wholeURL = "";
// Fix missing ID on the external_id SELECT
this.doc.getElementsByName("external_id")[0].setAttribute("id",
"external_id");
if (inputBox.value.match(/^http.*/)) {
- let helpAElem = this.doc.createElement("a");
+ var helpAElem = this.doc.createElement("a");
wholeURL = inputBox.value;
helpAElem.setAttribute("href", wholeURL);
- let paramsArr = helpAElem.search.replace(/^\?/, '').split('&');
+ var paramsArr = helpAElem.search.replace(/^\?/, '').split('&');
// get convert URL parameters to an Object
- let params = {}, s = [];
+ var params = {}, s = [];
paramsArr.forEach(function(par, idx, arr) {
s = par.split('=');
params[s[0]] = s[1];
@@ -855,11 +859,11 @@ RHBugzillaPage.prototype.addClosingUpstream = function() {
inputBox.value = externalBugID;
}
// get host and bugzillaName
- let bugzillaName = this.getBugzillaName(helpAElem.hostname);
+ var bugzillaName = this.getBugzillaName(helpAElem.hostname);
this.selectOption("external_id", bugzillaName);
} else if (!isNaN(inputBox.value)) {
externalBugID = parseInt(inputBox.value, 10);
- let bugzillaHostname = this.doc.getElementById("external_id").value;
+ var bugzillaHostname = this.doc.getElementById("external_id").value;
wholeURL = bugzillaHostname+"show_bug.cgi?id="+externalBugID;
} else {
// no inputBox.value -- maybe there is an external bug from
@@ -872,7 +876,7 @@ RHBugzillaPage.prototype.addClosingUpstream = function() {
// It is not good to close bug as UPSTREAM, if there is no reference
// to the upstream bug.
if ((externalBugID > 0) || (refs.length > 2)) {
- let msgStr = this.commentStrings["sentUpstreamString"];
+ var msgStr = this.commentStrings.sentUpstreamString;
msgStr = msgStr.replace("§§§", wholeURL);
this.centralCommandDispatch("comment",msgStr);
this.centralCommandDispatch("status", "CLOSED");
@@ -895,22 +899,22 @@ RHBugzillaPage.prototype.markBugTriaged = function() {
// /fedora-meeting.2009-11-24-15.11.log.html
// for F13 and later, ASSIGNED is "add Triaged keyword" (as well)
// for <F13 it is "add both" (ASSIGNED status and Triaged keyword)
- let ver = this.getVersion();
- let assignee = this.getOwner();
+ var ver = this.getVersion();
+ var assignee = this.getOwner();
if ((!this.isEnterprise()) && (ver < TriagedDistro)) {
this.selectOption("bug_status", "ASSIGNED");
}
this.addStuffToTextBox("keywords","Triaged");
-}
+};
/**
*
*/
RHBugzillaPage.prototype.parseBacktrace = function(ret) {
- let splitArray = ret.split("\n");
- let i = 0, ii = splitArray.length;
- let outStr = "", curLine = "", numStr = "";
- let lineCounter = 0, endLineNo = 0;
+ var splitArray = ret.split("\n");
+ var i = 0, ii = splitArray.length;
+ var outStr = "", curLine = "", numStr = "";
+ var lineCounter = 0, endLineNo = 0;
while (i < ii) {
if (this.RE.signalHandler.test(splitArray[i])) {