diff options
Diffstat (limited to 'data/tweaks/bug-page-mod.js')
-rw-r--r-- | data/tweaks/bug-page-mod.js | 102 |
1 files changed, 43 insertions, 59 deletions
diff --git a/data/tweaks/bug-page-mod.js b/data/tweaks/bug-page-mod.js index b8eb836..2fff501 100644 --- a/data/tweaks/bug-page-mod.js +++ b/data/tweaks/bug-page-mod.js @@ -205,39 +205,11 @@ function tweakBugzilla(atts, cData) { tbplbotSpamCollapser(); } + // =================================================== function processHistory(history) { // FIXME Remove remaining code to special function ... callback -// preprocessDuplicateMarkers(document, iframe.contentDocument); - - /* - * This is an example of the history we get: { "version": "1.1", "result": { - * "bugs": [ { "history": [ { "when": "2011-04-04T00:19:04Z", "who": - * "cebbert@redhat.com", "changes": [ { "removed": "", "added": - * "xgl-maint@redhat.com", "field_name": "cc", "field": "CC" }, { "removed": - * "kernel", "added": "xorg-x11-drv-ati", "field_name": "component", "field": - * "Component" }, { "removed": "kernel-maint@redhat.com", "added": - * "xgl-maint@redhat.com", "field_name": "assigned_to", "field": "AssignedTo" } ] }, { - * "when": "2011-04-12T22:48:22Z", "who": "mcepl@redhat.com", "changes": [ { - * "attachment_id": 488889, "removed": "application/octet-stream", "added": - * "text/plain", "field_name": "attachments.mimetype", "field": "Attachment - * mime type" } ] }, { "when": "2011-04-13T17:07:04Z", "who": - * "mcepl@redhat.com", "changes": [ { "removed": "", "added": - * "needinfo?(suckfish@ihug.co.nz)", "field_name": "flagtypes.name", "field": - * "Flags" } ] }, { "when": "2011-04-21T12:17:33Z", "who": "mcepl@redhat.com", - * "changes": [ { "removed": "xgl-maint@redhat.com", "added": - * "jglisse@redhat.com", "field_name": "assigned_to", "field": "AssignedTo" } ] }, { - * "when": "2011-04-28T22:53:58Z", "who": "mcepl@redhat.com", "changes": [ { - * "attachment_id": 488889, "removed": "text/plain", "added": - * "application/octet-stream", "field_name": "attachments.mimetype", "field": - * "Attachment mime type" } ] }, { "when": "2011-04-28T22:59:18Z", "who": - * "mcepl@redhat.com", "changes": [ { "attachment_id": 488889, "removed": - * "application/octet-stream", "added": "text/plain", "field_name": - * "attachments.mimetype", "field": "Attachment mime type" } ] } ], "id": - * 692250, "alias": [ - * ] } ], "faults": [ - * ] } } - */ + // preprocessDuplicateMarkers(document, iframe.contentDocument); // UserNameCache var userNameCache = {}; @@ -254,53 +226,65 @@ function processHistory(history) { return email; } - if (history) { -// console.log("processHistory: history = " + history.toSource()); - return ; - } - -// var historyItems = iframe.contentDocument.querySelectorAll('#bugzilla-body -// tr'); -// var cmtTimes = document.querySelectorAll('.bz_comment_time'); + var comments = {}; + commentsWalker(function (comment) { + var nameSpan = comment.querySelector(".bz_comment_user a.email"); + var timeSpan = comment.getElementsByClassName("bz_comment_time")[0]; + var commenter = parseMailto(nameSpan).trim(); + var newDate = parseBZCommentDate(timeSpan.textContent.trim()); + comments[commenter+ISODateString(newDate)] = timeSpan; + }); // Sometimes the history will stack several changes together, // and we'll want to append the data from the Nth item to the // div created in N-1 - var i=0, j=0, flagsFound; if (history) { - Array.forEach(history, function (item) { - processHistoryItem(cmtTimes, item); + history.bugs.forEach(function (historyBug) { + historyBug.history.forEach(function (historyItem) { + processHistoryItem(comments, historyItem); + }); }); } handleEmptyCollapsedBoxes(document); -// // Set the latest flag links if necessary -// for (var flagName in flagOccurrences) { -// flags[flagName].innerHTML = '<a href="#' + flagOccurrences[flagName] + '">' -// + flags[flagName].innerHTML + '</a>'; -// } + // // Set the latest flag links if necessary + // for (var flagName in flagOccurrences) { + // flags[flagName].innerHTML = '<a href="#' + flagOccurrences[flagName] + '">' + // + flags[flagName].innerHTML + '</a>'; + // } -// AttachmentFlagHandler.setupLinks(document); + // AttachmentFlagHandler.setupLinks(document); // END OF load event handler } function processHistoryItem(commentTimes, itemRaw) { - var item = itemRaw.querySelectorAll("td"); - if (!item[1]) - return; + /* + { + "when": "2011-04-13T17:07:04Z", + "who": "mcepl@redhat.com", + "changes": [ + { + "removed": "", + "added": "needinfo?(suckfish@ihug.co.nz)", + "field_name": "flagtypes.name", + "field": "Flags" + } + ] + }, + */ + console.log("processHistoryItem: commentTimes = " + commentTimes.toSource()); + console.log("processHistoryItem: itemRaw = " + itemRaw.toSource()); - var reachedEnd = false; - for (; j < commentTimes.length; j++) { - if (trimContent(item[1]) > trimContent(commentTimes[j])) { - if (j < commentTimes.length - 1) { - return; - } else { - reachedEnd = true; - } - } + var itemKey = itemRaw.who+itemRaw.when; + if (itemKey in commentTimes) { + + // itemRaw belongs to one of comments + // FIXME I STOPPED MY WORK HERE §§§ $$$ + + } var commentHead = commentTimes[j].parentNode; |