ticketman
Version:
A simple pull-based job/ticket system contians a centeral ticket dispatcher and distributed workers. This system is written in NodeJS, runing on MongoDB
64 lines (58 loc) • 2.1 kB
JavaScript
// Generated by CoffeeScript 1.12.5
(function() {
var TICKET_STATUS_TO_INFO_TYPE, _, helpers;
_ = require("underscore");
TICKET_STATUS_TO_INFO_TYPE = {
pending: 'default',
processing: 'primary',
completed: 'success',
abandoned: 'danger'
};
helpers = {
generateDownloadPathByJson: function(jsonId) {
return "/assets/json/" + jsonId + ".json";
},
genDownloadTagByJsonId: function(jsonId, title) {
var url;
url = helpers.generateDownloadPathByJson(jsonId);
return "<a href='" + url + "' class='btn btn-link'><i class='glyphicon glyphicon-download-alt'> </i> " + (title || jsonId) + "</a>";
},
genDateTag: function(date) {
var dateStr, isoStr;
isoStr = date instanceof Date ? date.toISOString() : date;
dateStr = date instanceof Date ? date.toDateString() : date;
return "<small title='" + isoStr + "' class='muted timeago'>" + dateStr + "</small>";
},
genPagination: function(pageData) {
return pagination.create('search', pageData).render();
},
genLabelByStatus: function(status) {
return "<span class='label label-" + (TICKET_STATUS_TO_INFO_TYPE[status] || 'default') + "'>" + status + "</span>";
},
syntaxHighlight: function(json) {
if (typeof json !== "string") {
json = JSON.stringify(json, undefined, 2);
}
json = json.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function(match) {
var cls;
cls = "number";
if (/^"/.test(match)) {
if (/:$/.test(match)) {
cls = "key";
} else {
cls = "string";
}
} else if (/true|false/.test(match)) {
cls = "boolean";
} else {
if (/null/.test(match)) {
cls = "null";
}
}
return "<span class=\"" + cls + "\">" + match + "</span>";
});
}
};
module.exports = helpers;
}).call(this);