Merge pull request #23 from guillaumewuip/feature-collapse

Feature collapse and line number
This commit is contained in:
Mathew Kurian 2014-12-22 15:27:28 -06:00
commit a2e079c7e4
5 changed files with 122 additions and 40 deletions

View file

@ -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
*

View file

@ -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);
}
};
}]
};
}]);

View file

@ -1,4 +1,15 @@
<p class="log">
<p ng-class="{'log--collapse' : collapse == true, 'log': true}">
<span class="log__item log__number">
{{number}}
</span>
<span class="log__item log__collapse">
<span ng-if="isMultilines()" ng-click="changeState()">
<span ng-if="collapse"></span>
<span ng-if="!collapse"></span>
</span>
</span>
<span class="log__item log__time" ng-if="showDate != 0 && (showDate == 1 || log.show.date) ||
showTime != 0 && (showTime == 1 || log.show.time)">
@ -22,8 +33,12 @@
</span>
</span>
<span class="log__item log__message" ng-if="log.hasOwnProperty('argsString')" >{{log.argsString}}</span>
<span class="log__item log__message" ng-if="log.hasOwnProperty('argsString')">
<span>{{log.argsString}}</span>
</span>
<span class="log__item log__json" ng-if="!log.hasOwnProperty('argsString')">{{log}}</span>
<span class="log__item log__json" ng-if="!log.hasOwnProperty('argsString')">
<span>{{log}}</span>
</span>
</p>

View file

@ -8,6 +8,7 @@
<log
ng-repeat="line in lines | orderBy : order : reverse | filter : search track by $index"
log="line"
number="$index"
show-file="showFile"
show-time="showTime"
show-date="showDate"

View file

@ -439,7 +439,7 @@ body {
/* width: 100%; */
text-align: left;
/* padding: 15px; */
border-left: 15px solid #111;
border-left: 5px solid #111;
}
.log {
display: table-row;
@ -452,28 +452,37 @@ body {
}
.log__item {
display: table-cell;
padding: 0 6px;
padding-right: 6px;
text-align: left;
padding-bottom: 2px;
padding-right: 6px;
padding-left: 0;
}
.log__tags {
background: #111;
}
.log__tag {}
.log__time {
background: #111;
}
.log__number,
.log__collapse,
.log__time,
.log__location {
background: #111;
}
.log__number {
text-align: right;
}
.log__collapse {
font-size: 12px;
}
.log__collapse > 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;