aboutsummaryrefslogtreecommitdiffstats
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/lib/jumpNextBug.js54
1 files changed, 43 insertions, 11 deletions
diff --git a/data/lib/jumpNextBug.js b/data/lib/jumpNextBug.js
index af0ff39..8f64b0d 100644
--- a/data/lib/jumpNextBug.js
+++ b/data/lib/jumpNextBug.js
@@ -1,15 +1,47 @@
// Released under the MIT/X11 license
// http://www.opensource.org/licenses/mit-license.php
"use strict";
-var nextElement = {};
-var nextRE = new RegExp("Next");
-var aNavigElements = document.querySelectorAll("#bugzilla-body .navigation a");
-var filteredElements = Array.filter(aNavigElements, function(elem) {
- return nextRE.test(elem.textContent);
-});
-if (filteredElements.length > 0) {
- nextElement = filteredElements[0];
- nextElement.setAttribute("accesskey", "n");
- nextElement.innerHTML = "<u>N</u>ext";
-}
+(function createRelationElements() {
+ var relation = {};
+ var linkLabels = ["First", "Last", "Prev", "Next"];
+ var labelToRelation = {
+ "First": {
+ rel: "start"
+ },
+ "Last": {
+ rel: "last"
+ },
+ "Prev": {
+ rel: "prev"
+ },
+ "Next": {
+ rel: "next"
+ }
+ };
+
+ function createLinkRel (rel, href) {
+ var newLinkElement = document.createElement("link");
+ newLinkElement.setAttribute("rel", rel);
+ newLinkElement.setAttribute("href", href);
+ document.getElementsByTagName("head")[0].
+ appendChild(newLinkElement);
+ }
+
+ var aNavigElements = document.querySelectorAll("#bugzilla-body .navigation a");
+ Array.forEach(aNavigElements, function(elem) {
+ var labelText = elem.textContent.trim();
+ if (isInList(labelText, linkLabels)) {
+ labelToRelation[labelText].href = elem.getAttribute("href");
+ };
+ });
+ console.log("labelToRelation = " + labelToRelation.toSource());
+ for (var key in labelToRelation) {
+ if (labelToRelation.hasOwnProperty(key)) {
+ relation = labelToRelation[key];
+ if (relation.href) {
+ createLinkRel(relation.rel, relation.href);
+ }
+ }
+ }
+})();