diff --git a/lib/console2.js b/lib/console2.js index 29bcebd..28d9262 100644 --- a/lib/console2.js +++ b/lib/console2.js @@ -86,7 +86,9 @@ length = 0; tags.forEach(function (tag) { - if(typeof tag === "undefined" || tag === null) return; + if(typeof tag === "undefined" || tag === null) { + return; + } if (typeof tag === 'object') { result += applyColors('[' + tag.msg + ']', tag.colors); length += tag.msg.toString().length + 2; @@ -173,6 +175,26 @@ return msg; }; + /** + * spaceLUT + * + * Save offset space strings + */ + var spaceLUT = {}; + + /** + * getSpaces + * + * @param {int} offset + * @return {String} A string of [offset] space + */ + var getSpaces = function(offset){ + if(typeof spaceLUT[offset] === "undefined"){ + spaceLUT[offset] = new Array(offset).join(' '); + } + return spaceLUT[offset]; + }; + /* * Console2 * @@ -342,14 +364,6 @@ return this; }; - var spaceLUT = {}; - var getSpaces = function(offset){ - if(typeof spaceLUT[offset] === "undefined"){ - spaceLUT[offset] = new Array(offset).join(' '); - } - return spaceLUT[offset]; - } - /** * Console2.prototype.buildArgs * diff --git a/static/js/directives/log.js b/static/js/directives/log.js index 1542897..25710b3 100644 --- a/static/js/directives/log.js +++ b/static/js/directives/log.js @@ -9,7 +9,7 @@ */ window.app.directive('log', [function () { - + return { scope : { @@ -21,40 +21,48 @@ */ log : "=", + /** + * number + * + * Line number + * @type {Int} + */ + number : "=", + /** * showFile - * + * * Force to show file ? * - * @type {Boolean} - */ + * @type {Boolean} + */ showFile : "=", /** * showTime - * + * * Force to show time ? * - * @type {Boolean} - */ + * @type {Boolean} + */ showTime : "=", /** * showDate - * + * * Force to show date ? * - * @type {Boolean} - */ + * @type {Boolean} + */ showDate : "=", /** * showTags - * + * * Force to show tags ? * - * @type {Boolean} - */ + * @type {Boolean} + */ showTags : "=" }, restrict : 'E', @@ -78,14 +86,41 @@ } else if (typeof tag === 'object') { return tag.msg || ''; } else { - return tag; + return tag; } }; + /** + * scope.collapse + * + * @type {Boolean} True to collapse the log + */ + $scope.collapse = false; + + /** + * $scope.changeState + */ + $scope.changeState = function () { + $scope.collapse = !$scope.collapse; + }; + + /** + * $scope.isMultilines + * + * @return {Boolean} true if log is multilines + */ + $scope.isMultilines = function () { + if ($scope.log.hasOwnProperty('argsString')) { + return (/\n/).test($scope.log.argsString); + } else { + return (/\n/).test($scope.log); + } + }; + }] }; - + }]); diff --git a/static/partials/elements/log.html b/static/partials/elements/log.html index c7d3e79..b82a7d8 100644 --- a/static/partials/elements/log.html +++ b/static/partials/elements/log.html @@ -1,4 +1,15 @@ -

+

+ + + {{number}} + + + + + + + + @@ -22,8 +33,12 @@ - {{log.argsString}} + + {{log.argsString}} + - {{log}} + + {{log}} +

diff --git a/static/partials/logs.html b/static/partials/logs.html index 4aa221a..670675f 100644 --- a/static/partials/logs.html +++ b/static/partials/logs.html @@ -8,6 +8,7 @@ span { + display: block; + width: 12px; /* fix size between states */ + padding: 2px 4px; + cursor: pointer; +} + .log__tags { background: #111; } .log__location > span { color: #2980b9; } .log__message { - white-space: pre; - color: #FFF; line-height: 13px; /* margin-top: -10px; */ @@ -482,6 +491,14 @@ body { border-left: 1px solid #222; /* box-shadow: inset 2px 0 2px -2px #000; */ padding-left: 6px; +} + .log__message > span { + display: block; + overflow: hidden; + white-space: pre; +} + .log--collapse .log__message > span { + height : 15px; } .log__json { white-space: pre-wrap;