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,'&amp;').