aboutsummaryrefslogtreecommitdiffstats
path: root/lib/logger.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/logger.js')
-rw-r--r--lib/logger.js131
1 files changed, 52 insertions, 79 deletions
diff --git a/lib/logger.js b/lib/logger.js
index 659faac..08ef87a 100644
--- a/lib/logger.js
+++ b/lib/logger.js
@@ -9,61 +9,47 @@ var prompts = require("prompts");
var apiUtils = require("api-utils");
var xrpc = require("xmlrpc");
var myStorage = require("simple-storage");
+var libbz = require("libbugzilla");
-exports.addLogRecord = function addLogRecord(rec) {
- if (myStorage.storage.logs[rec.key]) {
- myStorage.storage.logs[rec.key].comment += "<br/>\n" + comment;
- } else {
- myStorage.storage.logs[rec.key] = rec;
- }
-};
-
-exports.generateTimeSheet = function generateTimeSheet() {
- ; // FIXME
-};
+var EmptyLogsColor = "rgb(0, 255, 0)";
+var FullLogsColor = "rgb(0, 40, 103)";
-exports.clearTimeSheet = function clearTimeSheet() {
- ; // FIXME
-};
-
-exports.importTimeSheet = function importTimeSheet() {
- ; /* FIXME
- jsonPaths = prompts.promptFileOpenPicker(that.win);
- that.log.importOtherStore(jsonPaths, clearLogAElem);
- */
-};
-
-var Logger = exports.Logger = function Logger(abbsMap) {
- this.EmptyLogsColor = rgb(0, 255, 0);
- this.FullLogsColor = rgb(0, 40, 103);
+var abbsMap = {};
+exports.initialize = function initialize(aMap) {
if (!myStorage.storage.logs) {
myStorage.storage.logs = {};
}
+ abbsMap = aMap;
+};
- this.abbsMap = abbsMap;
+exports.addLogRecord = function addLogRecord(rec) {
+ if (myStorage.storage.logs[rec.key]) {
+ myStorage.storage.logs[rec.key].comment += "<br/>\n" + comment;
+ } else {
+ myStorage.storage.logs[rec.key] = rec;
+ }
};
-Logger.prototype.size = function size() {
+function storeSize() {
var size = 0, key;
for (key in myStorage.storage.logs) {
size++;
}
return size;
-};
+}
-Logger.prototype.isEmpty = function isEmpty() {
- return (this.size() === 0);
-};
+function isEmpty() {
+ return (storeSize() === 0);
+}
-Logger.prototype.clearStore = function clearStore(clearLink) {
+exports.clearTimeSheet = function clearTimeSheet() {
myStorage.storage.logs = {};
- var size = this.size();
- clearLink.style.color = this.EmptyLogsColor;
- clearLink.style.fontWeight = "normal";
+ var size = storeSize();
};
-Logger.prototype.importOtherStore = function importOtherStore (filename, clearLink) {
+exports.importTimeSheet = function importTimeSheet() {
+ var filename = prompts.promptFileOpenPicker();
if (fileMod.exists(filename)) {
var otherTS = JSON.parse(fileMod.read(filename));
if (otherTS.logs) {
@@ -76,32 +62,42 @@ Logger.prototype.importOtherStore = function importOtherStore (filename, clearLi
} else {
console.error("File " + filename + " doesn't exist!");
}
- if (this.size() > 0) {
- clearLink.style.color = this.FullLogsColor;
- clearLink.style.fontWeight = "bolder";
- }
};
-Logger.prototype.getBugzillaAbbr = function(url) {
+function getBugzillaAbbr(url) {
// for https://bugzilla.redhat.com/show_bug.cgi?id=579123 get RH
// for https://bugzilla.mozilla.org/show_bug.cgi?id=579123 get MoFo
- var abbr = this.abbsMap[urlMod.URL(url).host];
- return abbr;
-};
+ return abbsMap[urlMod.URL(url).host];
+}
+
+exports.generateTimeSheet = function generateTimeSheet() {
+ var docHTML = timeSheetRecordsPrinter(myStorage.storage.logs);
+ libbz.openURLInNewTab("data:text/html;charset=utf-8," + docHTML);
+};
-Logger.prototype.timeSheetRecordsPrinter = function(body, records) {
- var that = this;
+function timeSheetRecordsPrinter(records) {
var commentBugRE = new RegExp("[bB]ug\\s+([0-9]+)","g");
// sort the records into temporary array
var tmpArr = [];
+ var outStr = '<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">' +
+ "<html><head>\n"+
+ "<meta http-equiv='Content-type' content='text/html;charset=utf-8'/>\n"+
+ "<title>Status report</title>\n</head>\n<body>\n" +
+ "<h1>TimeSheet</h1>\n";
- for ( var i in records) {
+ for (var i in records) {
if (records.hasOwnProperty(i)) {
tmpArr.push( [ i, records[i] ]);
}
}
tmpArr.sort(function(a, b) {
- return a[0] > b[0] ? 1 : -1;
+ if (a[0] > b[0]) {
+ return 1;
+ } else if (a[0] < b[0]) {
+ return -1;
+ } else {
+ return 0;
+ }
});
var currentDay = "";
@@ -110,47 +106,24 @@ Logger.prototype.timeSheetRecordsPrinter = function(body, records) {
var x = rec[1];
var dayStr = utilMod.getISODate(x.date);
var host = urlMod.URL(x.url).host;
- var BZName = that.getBugzillaAbbr(x.url);
+ var BZName = getBugzillaAbbr(x.url);
var bugNo = utilMod.getBugNo(x.url);
if (dayStr != currentDay) {
currentDay = dayStr;
- body.innerHTML += "<hr/><p><strong>" + currentDay
- + "</strong></p>";
+ outStr += "<hr/><p><strong>" + currentDay
+ + "</strong></p>\n";
}
// replace "bug ####" with a hyperlink to the current bugzilla
var comment = x.comment.replace(commentBugRE,
"<a href='http://"+host+"/show_bug.cgi?id=$1'>$&</a>");
- body.innerHTML += "<p><em><a href='"
+ outStr += "<p><em><a href='"
+ x.url
+ "'>Bug "
+ BZName + "/" + bugNo + ": "
+ x.title
+ "</a>"
- + " </em>\n<br/>" + comment + "</p>";
- });
- };
-
-/**
- *
- */
-Logger.prototype.createBlankPage = function (ttl, bodyBuildCB) {
- var title = ttl || "Yet another untitled page";
- var that = this;
-
- var logTab = tabs.open({
- url: "about:blank",
- inBackground: true,
- onOpen: function (tab) {
- var otherDoc = tab.contentDocument;
- otherDoc.title = title;
- otherDoc.body.innerHTML = "<h1>" + title + "</h1>";
- bodyBuildCB.call(that, otherDoc.body);
- tabs.activeTab = tab;
- }
+ + " </em>\n<br/>" + comment + "</p>\n";
});
-};
-
-Logger.prototype.generateTimeSheet = function(body) {
- var doc = body.ownerDocument;
- this.timeSheetRecordsPrinter(body, myStorage.storage.logs);
-};
+ outStr += "</body></html>";
+ return outStr;
+}