aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/bzpage.js2
-rw-r--r--lib/main.js103
-rw-r--r--lib/mozillabzpage.js4
-rw-r--r--lib/old-main.js106
-rw-r--r--lib/rhbzpage.js4
5 files changed, 160 insertions, 59 deletions
diff --git a/lib/bzpage.js b/lib/bzpage.js
index b02d03c..59790fb 100644
--- a/lib/bzpage.js
+++ b/lib/bzpage.js
@@ -14,7 +14,7 @@ var bugURL = "https://bugzilla.redhat.com/show_bug.cgi?id=";
// ====================================================================================
// BZPage's methods
-exports.BZPage = function BZPage(doc) {
+exports.BZPage = function BZPage(doc, config) {
// constants
this.SalmonPink = new Color(255, 224, 176); // RGB 255, 224, 176; HSL 36, 2,
// 85
diff --git a/lib/main.js b/lib/main.js
index eca533e..1027d72 100644
--- a/lib/main.js
+++ b/lib/main.js
@@ -16,61 +16,26 @@ var util = require("util");
var logger = require("logger");
var file = require("file");
var myStorage = require("simple-storage").storage;
+var browser = require("tab-browser");
+const JSONURL = "http://matej.ceplovi.cz/progs/data/RH_Data-packages.json";
+var myStorage = require("simple-storage");
-var TriagedDistro = 13;
-var NumberOfFrames = 7;
-var XMLRPCurl = "https://bugzilla.redhat.com/xmlrpc.cgi";
-var bugURL = "https://bugzilla.redhat.com/show_bug.cgi?id=";
-
-// ==============================================================
-// https://wiki.mozilla.org/Labs/Jetpack/JEP/24
-var manifest = {
- 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" : ""
- }
- ]
-};
-jetpack.future.import("storage.settings");
-
-
-// TODO we should have an array SpecialFlags instead of multiple Boolean
-// variables
-var logSubmits = false;
-var chipIDsGroupings = [];
-var AddrArray = [];
-var topRow = {};
-var bottomRow = {};
-
-// /////////////////////////////////////////////////////////////////////////////
-
-let config = {};
+var config = {};
config.matches = [
"https://bugzilla.redhat.com/show_bug.cgi",
"https://bugzilla.mozilla.org/show_bug.cgi"
];
-util.loadJSON(jetpack.storage.settings.JSONURL, function(parsedData) {
- config.gJSONData = parsedData;
+function initialize(callback) {
+ util.loadJSON(JSONURL, function(parsedData) {
+ config.gJSONData = parsedData;
// Get card translation table
- let keys = "";
- for (let key in config.gJSONData) {
+ var keys = "", key = "";
+ for (key in config.gJSONData) {
keys += key + " ";
}
+ console.log("loaded JSON object keys: " + keys);
+
if ("PCIIDsURL" in config.gJSONData.configData) {
util.loadJSON(config.gJSONData.configData.PCIIDsURL, function(response) {
config.PCI_ID_Array = response;
@@ -79,14 +44,44 @@ util.loadJSON(jetpack.storage.settings.JSONURL, function(parsedData) {
config.logger = new logger.Logger(myStorage.logs,
config.gJSONData.constantData.bugzillalabelAbbreviations);
+
+ callback(config);
+}, this);
+
+}
+
+function isOurPage(window, bugzillaPageModLocation) {
+ if ("window" in window) {
+ window = window.window;
+ }
- let callback = function(doc) {
- if (config.gJSONData.configData.objectStyle = "RH") {
- let curPage = new RHBugzillaPage(doc);
- } else if (config.gJSONData.configData.objectStyle = "MoFo") {
- let curPage = new MozillaBugzilla(doc);
+ if (window.location.protocol == "https:") {
+ // like ["name1": "url1", "name2":"url2"]
+ // FIXME the real name of bugzillaPageModLocation array
+ for (var loc in bugzillaPageModLocation) {
+ if (bugzillaPageModLocation[loc].test(window.location.href)) {
+ return true;
+ }
}
- };
+ }
+ // we haven't found a conforming bugzilla
+ return false;
+}
- jetpack.pageMods.add(callback, config);
-}, this); \ No newline at end of file
+exports.main = function main(options, callbacks) {
+ initialize(function (config) {
+ browser.whenContentLoaded(
+ function(window) {
+ if (isOurPage(window)) {
+ var curPage = {};
+ var mycallback = function(doc) {
+ if (config.gJSONData.configData.objectStyle = "RH") {
+ curPage = new require("rhbzpage").RHBugzillaPage(doc, config);
+ } else if (config.gJSONData.configData.objectStyle = "MoFo") {
+ curPage = new require("mozillabzpage").MozillaBugzilla(doc, config);
+ }
+ };
+ }
+ });
+ });
+}; \ No newline at end of file
diff --git a/lib/mozillabzpage.js b/lib/mozillabzpage.js
index 6eaa869..7efaf16 100644
--- a/lib/mozillabzpage.js
+++ b/lib/mozillabzpage.js
@@ -6,8 +6,8 @@ var utilMod = require("util");
// ============================================================================
// MozillaBugzilla object
-exports.MozillaBugzilla = function MozillaBugzilla (doc) {
- BZPage.call(this, doc)
+exports.MozillaBugzilla = function MozillaBugzilla (doc, config) {
+ BZPage.call(this, doc, config)
};
MozillaBugzilla.prototype = utilMod.heir(BZPage);
diff --git a/lib/old-main.js b/lib/old-main.js
new file mode 100644
index 0000000..db81448
--- /dev/null
+++ b/lib/old-main.js
@@ -0,0 +1,106 @@
+/*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 */
+/*global jetpack */
+// 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 file = require("file");
+var myStorage = require("simple-storage").storage;
+
+var TriagedDistro = 13;
+var NumberOfFrames = 7;
+var XMLRPCurl = "https://bugzilla.redhat.com/xmlrpc.cgi";
+
+let 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 manifest = {
+ 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" : ""
+ }
+ ]
+};
+jetpack.future.import("storage.settings");
+
+// /////////////////////////////////////////////////////////////////////////////
+function isOurPage(window) {
+ if ("window" in window) {
+ window = window.window;
+ }
+
+ if (window.location.protocol == "https:") {
+ // like ["name1": "url1", "name2":"url2"]
+ // FIXME the real name of bugzillaPageModLocation array
+ for (var loc in bugzillaPageModLocation) {
+ if (bugzillaPageModLocation[loc].test(window.location.href)) {
+ return true;
+ }
+ }
+ }
+ // we haven't found a conforming bugzilla
+ return false;
+}
+
+
+function initialize() {
+
+}
+
+util.loadJSON(jetpack.storage.settings.JSONURL, function(parsedData) {
+ config.gJSONData = parsedData;
+
+ // Get card translation table
+ let keys = "";
+ for (let key in config.gJSONData) {
+ keys += key + " ";
+ }
+ if ("PCIIDsURL" in config.gJSONData.configData) {
+ util.loadJSON(config.gJSONData.configData.PCIIDsURL, function(response) {
+ config.PCI_ID_Array = response;
+ });
+ }
+
+ config.logger = new logger.Logger(myStorage.logs,
+ config.gJSONData.constantData.bugzillalabelAbbreviations);
+
+ let callback = function(doc) {
+ if (config.gJSONData.configData.objectStyle = "RH") {
+ let curPage = new RHBugzillaPage(doc);
+ } else if (config.gJSONData.configData.objectStyle = "MoFo") {
+ let curPage = new MozillaBugzilla(doc);
+ }
+ };
+
+ jetpack.pageMods.add(callback, config);
+}, this);
diff --git a/lib/rhbzpage.js b/lib/rhbzpage.js
index 3aefaee..2370e72 100644
--- a/lib/rhbzpage.js
+++ b/lib/rhbzpage.js
@@ -15,7 +15,7 @@ var clip = require("clipboard");
// ====================================================================================
// RHBugzillaPage object
-exports.RHBugzillaPage = function RHBugzillaPage(doc) {
+exports.RHBugzillaPage = function RHBugzillaPage(doc, config) {
// For identification of graphics card
const manuChipStrs = [ [ "ATI Radeon", "ATI", "1002" ],
[ "ATI Mobility Radeon", "ATI", "1002" ],
@@ -57,7 +57,7 @@ exports.RHBugzillaPage = function RHBugzillaPage(doc) {
}
// inheritance ... call superobject's constructor
- BZPage.call(this,doc);
+ BZPage.call(this,doc, config);
let that = this;
this.reqCounter = 0;