diff options
Diffstat (limited to 'data/tweaks')
-rw-r--r-- | data/tweaks/bug-page-mod.js | 330 |
1 files changed, 166 insertions, 164 deletions
diff --git a/data/tweaks/bug-page-mod.js b/data/tweaks/bug-page-mod.js index 2fff501..d1a4abd 100644 --- a/data/tweaks/bug-page-mod.js +++ b/data/tweaks/bug-page-mod.js @@ -106,7 +106,9 @@ function collectHistory(rpcURL) { })); } -function tweakBugzilla(atts, cData) { +function tweakBugzilla(things, cData) { + var atts = things.attachments; // FIXME compatibility crutch, should be removed + // when this rewrite is done viewAttachmentSource(atts); // Mark up history along right hand edge @@ -226,27 +228,19 @@ function processHistory(history) { return email; } - 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; - }); +// MC $$$ NOT DONE YET +// // 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 +// if (history) { +// history.bugs.forEach(function (historyBug) { +// historyBug.history.forEach(function (historyItem) { +// processHistoryItem(comments, historyItem); +// }); +// }); +// } - // 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 - if (history) { - history.bugs.forEach(function (historyBug) { - historyBug.history.forEach(function (historyItem) { - processHistoryItem(comments, historyItem); - }); - }); - } - - handleEmptyCollapsedBoxes(document); +// handleEmptyCollapsedBoxes(document); // // Set the latest flag links if necessary // for (var flagName in flagOccurrences) { @@ -259,161 +253,169 @@ function processHistory(history) { } +/* + { + "when": "2011-04-13T17:07:04Z", + "who": "mcepl@redhat.com", + "changes": [ + { + "removed": "", + "added": "needinfo?(suckfish@ihug.co.nz)", + "field_name": "flagtypes.name", + "field": "Flags" + } + ] + }, +*/ -function processHistoryItem(commentTimes, itemRaw) { - /* - { - "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 itemKey = itemRaw.who+itemRaw.when; - if (itemKey in commentTimes) { +function displayCommentActions (comment, historyItem) { + if (historyItem.who == comment.who) { + } +} - // itemRaw belongs to one of comments - // FIXME I STOPPED MY WORK HERE §§§ $$$ +function processHistoryItem(objects, itemRaw) { + console.log("processHistoryItem: itemRaw = " + itemRaw.toSource()); + var idx = itemRaw.when; // Given the mid-air protection we could assume + // history time to be unique per second. + if (idx in objects.attachment) { + displayAttachmentActions(objects.attachment[idx], itemRaw) + } + if (idx in objects.comment) { + displayCommentActions(objects.comment[idx], itemRaw) } + // FIXME anything else? + displayRemainingActions(itemRaw); - var commentHead = commentTimes[j].parentNode; +// ===================================================== +// var commentHead = commentTimes[j].parentNode; - var mainUser = commentHead.querySelector(".bz_comment_user a.email") - .href - .substr(7); - var user = trimContent(item[0]); - var mainTime = trimContent(commentTimes[j]); - var time = trimContent(item[1]); - var inline = (mainUser == user && time == mainTime); +// var mainUser = commentHead.querySelector(".bz_comment_user a.email") +// .href +// .substr(7); +// var user = trimContent(item[0]); +// var mainTime = trimContent(commentTimes[j]); +// var time = trimContent(item[1]); +// var inline = (mainUser == user && time == mainTime); - var currentDiv = document.createElement("div"); - var userPrefix = ''; - if (inline) { - // assume that the change was made by the same user - commentHead.appendChild(currentDiv); - currentDiv.setAttribute("class", "bztw_inlinehistory"); - } else { - // the change was made by another user - if (!reachedEnd) { - var parentDiv = commentHead.parentNode; - if (parentDiv.previousElementSibling && - parentDiv.previousElementSibling.className.indexOf("bztw_history") >= 0) { - currentDiv = parentDiv.previousElementSibling; - } else { - parentDiv.parentNode.insertBefore(currentDiv, parentDiv); - } - } else { - var parentDiv = commentHead.parentNode; - if (parentDiv.nextElementSibling && - parentDiv.nextElementSibling.className.indexOf("bztw_history") >= 0) { - currentDiv = parentDiv.nextElementSibling; - } else { - parentDiv.parentNode.appendChild(currentDiv); - } - } - currentDiv.setAttribute("class", "bz_comment bztw_history"); - userPrefix += "<a class=\"email\" href=\"mailto:" + - htmlEncode(trimContent(item[0])) + "\" title=\"" + - htmlEncode(trimContent(item[1])) +"\">" + - getUserName(trimContent(item[0])) + "</a>: "; - } - // check to see if this is a flag setting - flagsFound = findFlag(item); - for (var idx = 0; idx < flagsFound.length; ++idx) { - var flag = flagsFound[idx]; - flagOccurrences[flag] = 'flag' + flagCounter; - if (inline) { - var anchor = document.createElement("a"); - anchor.setAttribute("name", "flag" + flagCounter); - commentHead.insertBefore(anchor, commentHead.firstChild); - } else { - userPrefix += '<a name="flag' + flagCounter + '"></a>'; - } - ++flagCounter; - } +// var currentDiv = document.createElement("div"); +// var userPrefix = ''; +// if (inline) { +// // assume that the change was made by the same user +// commentHead.appendChild(currentDiv); +// currentDiv.setAttribute("class", "bztw_inlinehistory"); +// } else { +// // the change was made by another user +// if (!reachedEnd) { +// var parentDiv = commentHead.parentNode; +// if (parentDiv.previousElementSibling && +// parentDiv.previousElementSibling.className.indexOf("bztw_history") >= 0) { +// currentDiv = parentDiv.previousElementSibling; +// } else { +// parentDiv.parentNode.insertBefore(currentDiv, parentDiv); +// } +// } else { +// var parentDiv = commentHead.parentNode; +// if (parentDiv.nextElementSibling && +// parentDiv.nextElementSibling.className.indexOf("bztw_history") >= 0) { +// currentDiv = parentDiv.nextElementSibling; +// } else { +// parentDiv.parentNode.appendChild(currentDiv); +// } +// } +// currentDiv.setAttribute("class", "bz_comment bztw_history"); +// userPrefix += "<a class=\"email\" href=\"mailto:" + +// htmlEncode(trimContent(item[0])) + "\" title=\"" + +// htmlEncode(trimContent(item[1])) +"\">" + +// getUserName(trimContent(item[0])) + "</a>: "; +// } +// // check to see if this is a flag setting +// flagsFound = findFlag(item); +// for (var idx = 0; idx < flagsFound.length; ++idx) { +// var flag = flagsFound[idx]; +// flagOccurrences[flag] = 'flag' + flagCounter; +// if (inline) { +// var anchor = document.createElement("a"); +// anchor.setAttribute("name", "flag" + flagCounter); +// commentHead.insertBefore(anchor, commentHead.firstChild); +// } else { +// userPrefix += '<a name="flag' + flagCounter + '"></a>'; +// } +// ++flagCounter; +// } - var attachmentFlagAnchors = AttachmentFlagHandler.handleItem(user, item); - if (inline) { - for (var idx = 0; idx < attachmentFlagAnchors.length; ++idx) { - var anchor = document.createElement("a"); - anchor.setAttribute("name", attachmentFlagAnchors[idx]); - commentHead.insertBefore(anchor, commentHead.firstChild); - } - } else { - userPrefix += attachmentFlagAnchors.map(function(name) '<a name="' + name + '"></a>').join(""); - } +// var attachmentFlagAnchors = AttachmentFlagHandler.handleItem(user, item); +// if (inline) { +// for (var idx = 0; idx < attachmentFlagAnchors.length; ++idx) { +// var anchor = document.createElement("a"); +// anchor.setAttribute("name", attachmentFlagAnchors[idx]); +// commentHead.insertBefore(anchor, commentHead.firstChild); +// } +// } else { +// userPrefix += attachmentFlagAnchors.map(function(name) '<a name="' + name + '"></a>').join(""); +// } - var ccOnly = (trimContent(item[2]) == 'CC'); - var ccPrefix = ccOnly ? '<span class="bztw_cc bztw_historyitem">' : - '<span class="bztw_historyitem">', - ccSuffix = '</span>'; - var html = userPrefix + - ccPrefix + - transformType(trimContent(item[2]), trimContent(item[3]), - trimContent(item[4])) + ": " + - formatTransition(trimContent(item[3]), trimContent(item[4]), - trimContent(item[2]), iframe.contentDocument); +// var ccOnly = (trimContent(item[2]) == 'CC'); +// var ccPrefix = ccOnly ? '<span class="bztw_cc bztw_historyitem">' : +// '<span class="bztw_historyitem">', +// ccSuffix = '</span>'; +// var html = userPrefix + +// ccPrefix + +// transformType(trimContent(item[2]), trimContent(item[3]), +// trimContent(item[4])) + ": " + +// formatTransition(trimContent(item[3]), trimContent(item[4]), +// trimContent(item[2]), iframe.contentDocument); - var nextItemsCount = item[0].rowSpan; - for (var k = 1; k < nextItemsCount; ++k) { - ccOnly = false; - item = historyItems[++i].querySelectorAll("td") - ccPrefix = (trimContent(item[0]) == 'CC') ? - '<span class="bztw_cc bztw_historyitem">' : '<span class="bztw_historyitem">'; - // avoid showing a trailing semicolon if the previous entry - // wasn't a CC and this one is - var prefix = ccSuffix + ccPrefix; - // check to see if this is a flag setting - flagsFound = findFlag(item); - for (var idx = 0; idx < flagsFound.length; ++idx) { - var flag = flagsFound[idx]; - flagOccurrences[flag] = 'flag' + flagCounter; - if (inline) { - var anchor = document.createElement("a"); - anchor.setAttribute("name", "flag" + flagCounter); - commentHead.insertBefore(anchor, commentHead.firstChild); - } else { - prefix += '<a name="flag' + flagCounter + '"></a>'; - } - ++flagCounter; - } +// var nextItemsCount = item[0].rowSpan; +// for (var k = 1; k < nextItemsCount; ++k) { +// ccOnly = false; +// item = historyItems[++i].querySelectorAll("td") +// ccPrefix = (trimContent(item[0]) == 'CC') ? +// '<span class="bztw_cc bztw_historyitem">' : '<span class="bztw_historyitem">'; +// // avoid showing a trailing semicolon if the previous entry +// // wasn't a CC and this one is +// var prefix = ccSuffix + ccPrefix; +// // check to see if this is a flag setting +// flagsFound = findFlag(item); +// for (var idx = 0; idx < flagsFound.length; ++idx) { +// var flag = flagsFound[idx]; +// flagOccurrences[flag] = 'flag' + flagCounter; +// if (inline) { +// var anchor = document.createElement("a"); +// anchor.setAttribute("name", "flag" + flagCounter); +// commentHead.insertBefore(anchor, commentHead.firstChild); +// } else { +// prefix += '<a name="flag' + flagCounter + '"></a>'; +// } +// ++flagCounter; +// } - var attachmentFlagAnchors = AttachmentFlagHandler.handleItem(user, item); - if (inline) { - for (var idx = 0; idx < attachmentFlagAnchors.length; ++idx) { - var anchor = document.createElement("a"); - anchor.setAttribute("name", attachmentFlagAnchors[idx]); - commentHead.insertBefore(anchor, commentHead.firstChild); - } - } else { - prefix += attachmentFlagAnchors.map(function(name) '<a name="' + name + '"></a>').join(""); - } +// var attachmentFlagAnchors = AttachmentFlagHandler.handleItem(user, item); +// if (inline) { +// for (var idx = 0; idx < attachmentFlagAnchors.length; ++idx) { +// var anchor = document.createElement("a"); +// anchor.setAttribute("name", attachmentFlagAnchors[idx]); +// commentHead.insertBefore(anchor, commentHead.firstChild); +// } +// } else { +// prefix += attachmentFlagAnchors.map(function(name) '<a name="' + name + '"></a>').join(""); +// } - html += prefix + - transformType(trimContent(item[0]), trimContent(item[1]), - trimContent(item[2])) + ": " + - formatTransition(trimContent(item[1]), trimContent(item[2]), - trimContent(item[0]), iframe.contentDocument); - } - html += ccSuffix; - if (ccOnly) { - html = '<div class="bztw_cc">' + html + '</div>'; - } else { - html = '<div>' + html + '</div>'; - } - currentDiv.innerHTML += html; - break; - } +// html += prefix + +// transformType(trimContent(item[0]), trimContent(item[1]), +// trimContent(item[2])) + ": " + +// formatTransition(trimContent(item[1]), trimContent(item[2]), +// trimContent(item[0]), iframe.contentDocument); +// } +// html += ccSuffix; +// if (ccOnly) { +// html = '<div class="bztw_cc">' + html + '</div>'; +// } else { +// html = '<div>' + html + '</div>'; +// } +// currentDiv.innerHTML += html; +// // FIXME here used to be a break; +// } } // =================================================== |