1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
/*jslint onevar: false, browser: true, evil: true, laxbreak: true, undef: true, nomen: true, eqeqeq: true, bitwise: true, maxerr: 1000, immed: false, white: false, plusplus: false, regexp: false, undef: false */
// Released under the MIT/X11 license
// http://www.opensource.org/licenses/mit-license.php
//
// Links to read through
// http://ehsanakhgari.org/blog/2010-01-07/bugzilla-tweaks-enhanced
// http://hg.mozilla.org/users/ehsan.akhgari_gmail.com/extensions/file/tip/bugzillatweaks
// http://hg.mozilla.org/users/ehsan.akhgari_gmail.com/extensions/file/ecfa0f028b81/bugzillatweaks/lib/main.js
// http://hg.mozilla.org/users/avarma_mozilla.com/atul-packages/file/42ac1e99a107/packages\
// /facebook-acquaintances/lib/main.js#l11
// http://ehsanakhgari.org/blog/2010-05-31/my-experience-jetpack-sdk#comment-1253
//
"use strict";
var util = require("util");
var logger = require("logger");
var myStorage = require("simple-storage").storage;
var browser = require("tab-browser");
var JSONURL = "http://matej.ceplovi.cz/progs/data/RH_Data-packages.json";
var TriagedDistro = 13;
var NumberOfFrames = 7;
var XMLRPCurl = "https://bugzilla.redhat.com/xmlrpc.cgi";
var config = {};
config.matches = [
"https://bugzilla.redhat.com/show_bug.cgi",
"https://bugzilla.mozilla.org/show_bug.cgi"
];
// ==============================================================
// https://wiki.mozilla.org/Labs/Jetpack/JEP/24
var WillBemanifest = {
settings : [
{
name : "BZpassword",
type : "password",
label : "Bugzilla password"
},
{
name : "JSONURL",
type : "text",
label : "Configuration file URL",
"default" : "http://mcepl.fedorapeople.org/scripts/BugZappers_data.json"
},
{
name : "enabledPacks",
type : "text",
label : "comment packs which should be enabled",
"default" : ""
}
]
};
// TODO: sometime in the future we should include
// also skip-process.js functionality and these URLs
// "https://bugzilla.redhat.com/process_bug.cgi",
// "https://bugzilla.redhat.com/post_bug.cgi",
// "https://bugzilla.mozilla.org/post_bug.cgi",
// "https://bugzilla.mozilla.org/process_bug.cgi"
function isOurPage(window, matchingURLs) {
if ("window" in window) {
window = window.window;
}
var url = window.location.href;
// like ["regexp-url1", "regexp-url2"]
return matchingURLs.some(function (element,i,a) {
return new RegExp(element).test(url);
});
}
function initialize(callback) {
util.loadJSON(JSONURL, function(parsedData) {
config.gJSONData = parsedData;
var keys = "", key = "";
for (key in config.gJSONData) {
keys += key + " ";
}
console.log("loaded JSON object keys: " + keys);
// Get card translation table
if ("PCIIDsURL" in config.gJSONData.configData) {
util.loadJSON(config.gJSONData.configData.PCIIDsURL, function(response) {
config.PCI_ID_Array = response;
});
}
if (!myStorage.logs) {
console.log("myStorage.logs empty!");
myStorage.logs = {};
}
var logConstructor = logger.Logger;
config.logger = new logConstructor(myStorage.logs,
config.gJSONData.constantData.bugzillalabelAbbreviations);
callback(config);
}, this);
}
exports.main = function main(options, callbacks) {
initialize(function (config) {
browser.whenContentLoaded(
function(window) {
var doc = window.document;
var construct = require("rhbzpage").RHBugzillaPage;
if (isOurPage(window, config.matches)) {
var curPage = new construct(doc, config);
} else {
console.log("Not our page: " + window.location.href);
}
});
});
};
|