aboutsummaryrefslogtreecommitdiffstats
path: root/data/lib
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@redhat.com>2011-05-07 00:53:06 +0200
committerMatěj Cepl <mcepl@redhat.com>2011-05-07 01:43:05 +0200
commit9d6c70c656052e1c4f7df7a255c4f493d56f08c8 (patch)
tree01ef018b9cc3d7c7019bd36598f7472f4e0abb09 /data/lib
parentce11514ac83f11d6762fd38b01d7846d617402f8 (diff)
downloadbugzilla-triage-9d6c70c656052e1c4f7df7a255c4f493d56f08c8.tar.gz
Another massive cleanup and simplification of tweak scripts.
bugs on bugzilla.mozilla.org now work as well, although the history is still not shown inline, which remains for 1.1. Fixes #88
Diffstat (limited to 'data/lib')
-rw-r--r--data/lib/bugzillaDOMFunctions.js41
-rw-r--r--data/lib/bzpage.js53
-rw-r--r--data/lib/util.js3
3 files changed, 56 insertions, 41 deletions
diff --git a/data/lib/bugzillaDOMFunctions.js b/data/lib/bugzillaDOMFunctions.js
index 7d9bca5..6823bc1 100644
--- a/data/lib/bugzillaDOMFunctions.js
+++ b/data/lib/bugzillaDOMFunctions.js
@@ -265,6 +265,47 @@ function commentsWalker (fce) {
});
}
+
+/**
+ * Parse the row with the attachment
+ *
+ * @param DOM
+ * element to be parsed
+ * @return array with string name of the attachment, integer its id number,
+ * string of MIME type, integer of size in kilobytes, and the whole
+ * element itself
+ *
+ * TODO error handling is missing ... it's bleee
+ */
+function parseAttachmentLine(inElem) {
+ var MIMEtype = "";
+ var size = 0;
+
+ // Skip over obsolete attachments
+ if (inElem.getElementsByClassName("bz_obsolete").length > 0) {
+ return ([]);
+ }
+
+ // getting name of the attachment
+ var attName = inElem.getElementsByTagName("b")[0].textContent.trim();
+
+ // TODO probably could use url.URL object
+ var aHrefsArr = inElem.getElementsByTagName("a");
+ var aHref = Array.filter(aHrefsArr, function(x) {
+ return x.textContent.trim() === "Details";
+ })[0];
+ var id = parseURL(aHref.getAttribute("href")).params.id;
+
+ // getting MIME type and size
+ 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];
+
+ return [ attName, id, MIMEtype, size, inElem ];
+}
+
+
/**
* collect the list of attachments in a structured format
*
diff --git a/data/lib/bzpage.js b/data/lib/bzpage.js
index e34f38d..35f993c 100644
--- a/data/lib/bzpage.js
+++ b/data/lib/bzpage.js
@@ -36,6 +36,7 @@ self.on('message', function onMessage(msg) {
equivalentComponents = ("equivalentComponents" in constantData) ?
constantData.equivalentComponents : null;
generateButtons(msg.data.instPkgs, msg.data.kNodes);
+ completeInit();
break;
case "Error":
alert("Error " + msg.data);
@@ -310,16 +311,6 @@ function generateButtons (pkgs, kNodes) {
}
}
}
- // TODO This is weird in this place, but that's the place where all
- // constantData etc.
- // are finally defined and available.
- if (RHBZinit) {
- RHBZinit();
- }
-
- if (tweakBugzilla) {
- tweakBugzilla(document, constantData);
- }
}
function setConfigurationButton () {
@@ -360,45 +351,25 @@ function getOptionTableCell(tableId, label) {
return null;
}
+
/**
- * Parse the row with the attachment
- *
- * @param DOM
- * element to be parsed
- * @return array with string name of the attachment, integer its id number,
- * string of MIME type, integer of size in kilobytes, and the whole
- * element itself
+ * Complete startup, mainly run alternate inits for non-standard BZ
+ * with proper arguments
*
- * TODO error handling is missing ... it's bleee
*/
-function parseAttachmentLine(inElem) {
- var MIMEtype = "";
- var size = 0;
+function completeInit() {
+ var attachments = getAttachments();
- // Skip over obsolete attachments
- if (inElem.getElementsByClassName("bz_obsolete").length > 0) {
- return ([]);
+ if (RHBZinit) {
+ RHBZinit(attachments);
}
- // getting name of the attachment
- var attName = inElem.getElementsByTagName("b")[0].textContent.trim();
-
- // TODO probably could use url.URL object
- var aHrefsArr = inElem.getElementsByTagName("a");
- var aHref = Array.filter(aHrefsArr, function(x) {
- return x.textContent.trim() === "Details";
- })[0];
- var id = parseURL(aHref.getAttribute("href")).params.id;
-
- // getting MIME type and size
- 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];
-
- return [ attName, id, MIMEtype, size, inElem ];
+ if (tweakBugzilla) {
+ tweakBugzilla(attachments, constantData);
+ }
}
+
function startup() {
// First, preflight check ... if we are not logged in, there
// is nothing we can do.
diff --git a/data/lib/util.js b/data/lib/util.js
index 11cf3bc..1c3e607 100644
--- a/data/lib/util.js
+++ b/data/lib/util.js
@@ -160,6 +160,9 @@ function createDeadLink (id, text, parent, callback, params, before, covered, ac
else if (before === "dash") {
locParent.insertBefore(document.createTextNode("\u00A0-\u00A0"), newAElem);
}
+ else if (before === "pipe") {
+ locParent.insertBefore(document.createTextNode("\u00A0|\u00A0"), newAElem);
+ }
else if (before === "parens") {
locParent.appendChild(document.createTextNode(")"));
locParent.insertBefore(document.createTextNode("("), newAElem);