// ==UserScript==
//
// @name Mozilla Addons Fixer
// @namespace http://tech.einaregilsson.com/download/mozillaaddonsfixer.user.js
// @description Adds links to public extension pages, add-on policy, sandbox info and more to the Developer Control Panel
// @author Einar Egilsson (greasemonkey@einaregilsson.com)
//
// @include https://addons.mozilla.org/*/firefox/developers
// @include https://addons.mozilla.org/*/firefox/developers/index
//
// ==/UserScript==
var locale = document.location.href.substring('https://addons.mozilla.org/'.length);
locale = locale.substring(0, locale.indexOf('/'));
//Add link to public extension pages
var extLinks = document.evaluate(
"//h4/a[contains(@href, 'details')]",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
for (var i = 0; i < extLinks.snapshotLength; i++) {
var link = extLinks.snapshotItem(i);
var newlink = document.createElement('a');
newlink.href = '/' + locale + '/firefox/addon/' + link.href.substring(link.href.lastIndexOf('/')+1);
newlink.innerHTML = '[Public Page]';
link.parentNode.insertBefore(newlink, link.nextSibling);
link.parentNode.insertBefore(document.createTextNode(' - '), link.nextSibling);
}
//Add links to useful info
var infoLinks = { 'Add-On Policy' : 'https://addons.mozilla.org/locale/firefox/pages/policy'.replace('locale', locale)
, 'Sandbox Info' : 'https://addons.mozilla.org/locale/firefox/pages/sandbox'.replace('locale', locale)
, 'Contact AMO' : 'mailto:amo-editors@mozilla.org' };
var list = document.getElementsByTagName('ul')[1];
for (var linkText in infoLinks) {
var li = document.createElement('li');
li.appendChild(document.createElement('a'));
li.firstChild.href = infoLinks[linkText];
li.firstChild.innerHTML = linkText;
list.insertBefore(li, list.lastChild.previousSibling);
}