public/webconsole.js in rack-webconsole-pry-0.1.6 vs public/webconsole.js in rack-webconsole-pry-0.1.7
- old
+ new
@@ -8,84 +8,74 @@
$('#rack-webconsole form').submit(function(e){
e.preventDefault();
});
- function componentToHex(c) {
- var hex = c.toString(16);
- return hex.length == 1 ? "0" + hex : hex;
- }
-
- function rgbToHex(r, g, b) {
- return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
- }
var prevStyle = {
color: "#ffffff",
bold: false,
underline: false
}
+
+ // colors
+ var colors = {
+ 30: "#eeeeee",
+ 31: "#ff6c60",
+ 32: "#a8ff60",
+ 33: "#ffffb6",
+ 34: "#96cbfe",
+ 35: "#ff73fd",
+ 36: "#c6c5fe",
+ 37: "#eeeeee"
+ }
+ var boldColors = {
+ 30: "#7c7c7c",
+ 31: "#ffb6b0",
+ 32: "#ceffac",
+ 33: "#ffffcb",
+ 34: "#b5dcfe",
+ 35: "#ff9cfe",
+ 36: "#dfdffe",
+ 37: "#ffffff"
+ }
+
+ function resetBashStyle()
+ {
+ prevStyle = {
+ color: colors[37],
+ bold: 'normal',
+ underline: 'none'
+ };
+ }
function bashColorToHtml(bcolor)
{
- // colors
- var textColor = rgbToHex(238, 238, 238);
- var boldColor = rgbToHex(255, 255, 255);
- var strColors = "[0;30m 238 238 238 \
- [1;37m 255 255 255 \
- [0;34m 150 203 254 \
- [1;34m 181 220 254 \
- [0;32m 168 255 96 \
- [1;32m 206 255 172 \
- [0;36m 198 197 254 \
- [1;36m 223 223 254 \
- [0;31m 255 108 96 \
- [1;31m 255 182 176 \
- [0;35m 255 115 253 \
- [1;35m 255 156 254 \
- [0;33m 255 255 182 \
- [1;33m 255 255 203 \
- [1;30m 124 124 124 \
- [0;37m 238 238 238";
- var colors = {};
- var boldColors = {};
- var matcher = /\[([0-9;]+)m\s+(\d+)\s+(\d+)\s+(\d+)/gm;
- while ((r = matcher.exec(strColors)) != null) {
- components = r[1].split(";")
- if (components[0] == "0")
- colors[components[1]] = rgbToHex(parseInt(r[2]), parseInt(r[3]), parseInt(r[4]));
- else
- boldColors[components[1]] = rgbToHex(parseInt(r[2]), parseInt(r[3]), parseInt(r[4]));
- }
// set values
- all = bcolor.split(/;/g)
- if (all.indexOf("0") >= 0 && all.indexOf("0") > 0) // ignore anything before 0, since 0 resets
+ var all = bcolor.split(/;/g)
+ if (all.indexOf("0") > 0) // ignore anything before 0, since 0 resets
all.splice(0, all.indexOf("0"));
if (all.indexOf("0") >= 0)
- prevStyle = {
- color: textColor,
- bold: false,
- underline: false
- };
+ resetBashStyle();
if (all.indexOf("1") >= 0)
- prevStyle['bold'] = true;
+ prevStyle['bold'] = 'bold';
if (all.indexOf("4") >= 0)
- prevStyle['underline'] = true;
- if (prevStyle['bold'])
+ prevStyle['underline'] = 'underline';
+ if (prevStyle['bold'] == 'bold')
colorMap = boldColors;
else
colorMap = colors;
$.each(all, function(idx, val) {
- if (colorMap[val] != undefined)
- prevStyle['color'] = colorMap[val];
+ var i = parseInt(val);
+ if (i > 10 && colorMap[i] != undefined)
+ prevStyle['color'] = colorMap[i];
});
- return 'color:'+prevStyle['color']+';font-weight:'+(prevStyle['bold'] ? 'bold' : 'normal')+
- ';text-decoration:'+(prevStyle['underline'] ? 'underline' : 'none');
+ return 'color:'+prevStyle['color']+';font-weight:'+prevStyle['bold']+
+ ';text-decoration:'+prevStyle['underline'];
}
function parseBashString(str)
{
str = str.replace(/\u001B\[([0-9;]+)m/g, function(fm, sm) {
return '</span><span style="'+bashColorToHtml(sm)+'">';
- });
- str = str.replace(/\n/g, "<br>");
+ }).replace(/\n/g, "<br>");
return '<span>'+str+'</span>';
}
$("#rack-webconsole form input").keyup(function(event) {
function escapeHTML(string) {
return(string.replace(/&/g,'&').