mirror of
https://github.com/portainer/portainer.git
synced 2025-07-19 05:19:39 +02:00
* chore(log-viewer): add the ability to use`since` parameter #1942 https://github.com/portainer/portainer/issues/1942#issuecomment-430246378 * chore(log-viewer): change lineCount to 100 #1942 https://github.com/portainer/portainer/issues/1942#issuecomment-430246378 * fix(log-viewer): js syntax typo for `;` and `'` forget to lint the code, reported by codeclimate * fix(log-viewer): use mementjs to format timestamp 1. use moment lib instead of define a function in filter.js(not the right place for this function, removed) 2. set sinceTimestamp init value to `24 hours ago`, as we just need to focus on the relative latest logs after the log-viewer loading, not all the logs(to speedup the process) 3. use moment().unix() to convert the `sinceTimestamp` to local unix timestamp(not utc) * chore(log-viewer): add the ability to select the datetime for `since` * chore(log-viewer): add the ability to fetch logs from specific time
45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
angular.module('portainer.docker')
|
|
.controller('LogViewerController', ['clipboard',
|
|
function (clipboard) {
|
|
|
|
this.state = {
|
|
availableSinceDatetime: [
|
|
{ desc: 'Last day', value: moment().subtract(1, 'days').format() },
|
|
{ desc: 'Last 4 hours', value: moment().subtract(4, 'hours').format() },
|
|
{ desc: 'Last hour', value: moment().subtract(1, 'hours').format() },
|
|
{ desc: 'Last 10 minutes', value: moment().subtract(10, 'minutes').format() }
|
|
],
|
|
copySupported: clipboard.supported,
|
|
logCollection: true,
|
|
autoScroll: true,
|
|
wrapLines: true,
|
|
search: '',
|
|
filteredLogs: [],
|
|
selectedLines: []
|
|
};
|
|
|
|
this.copy = function() {
|
|
clipboard.copyText(this.state.filteredLogs);
|
|
$('#refreshRateChange').show();
|
|
$('#refreshRateChange').fadeOut(2000);
|
|
};
|
|
|
|
this.copySelection = function() {
|
|
clipboard.copyText(this.state.selectedLines);
|
|
$('#refreshRateChange').show();
|
|
$('#refreshRateChange').fadeOut(2000);
|
|
};
|
|
|
|
this.clearSelection = function() {
|
|
this.state.selectedLines = [];
|
|
};
|
|
|
|
this.selectLine = function(line) {
|
|
var idx = this.state.selectedLines.indexOf(line);
|
|
if (idx === -1) {
|
|
this.state.selectedLines.push(line);
|
|
} else {
|
|
this.state.selectedLines.splice(idx, 1);
|
|
}
|
|
};
|
|
}]);
|