mirror of
https://github.com/YunoHost/yunohost-admin.git
synced 2024-09-03 20:06:15 +02:00
[enh] display more lines and paste logs
This commit is contained in:
parent
2cda2ea697
commit
663cbe84d3
11 changed files with 111 additions and 68 deletions
|
@ -7,6 +7,7 @@
|
|||
"bootstrap": "3.3.6",
|
||||
"font-awesome": "4.5.0",
|
||||
"handlebars": "1.3.0",
|
||||
"handlebars-helper-intl": "1.1.2",
|
||||
"sammy": "0.7.6",
|
||||
"js-cookie": "2.1.0",
|
||||
"source-sans-pro": "git://github.com/adobe-fonts/source-sans-pro.git#2.020R-ro/1.075R-it",
|
||||
|
|
|
@ -41,6 +41,7 @@ gulp.task('js', function() {
|
|||
'bower_components/jquery/dist/jquery.js',
|
||||
'bower_components/js-cookie/src/js.cookie.js',
|
||||
'bower_components/handlebars/handlebars.js',
|
||||
'bower_components/handlebars-helper-intl/dist/handlebars-intl-with-locales.js',
|
||||
'bower_components/sammy/lib/sammy.js',
|
||||
'bower_components/sammy/lib/plugins/sammy.handlebars.js',
|
||||
'bower_components/sammy/lib/plugins/sammy.json.js',
|
||||
|
|
|
@ -96,12 +96,11 @@
|
|||
});
|
||||
|
||||
// Display journals list
|
||||
app.get('#/tools/journals', function (c) {
|
||||
c.api("/journals", function(categories) {
|
||||
c.view('tools/tools_journals', {
|
||||
app.get('#/tools/logs', function (c) {
|
||||
c.api("/logs", function(categories) {
|
||||
c.view('tools/tools_logs', {
|
||||
"data": categories,
|
||||
formatDate: function() {
|
||||
console.log("caca");
|
||||
return this.started_at.getDate();
|
||||
}
|
||||
});
|
||||
|
@ -109,10 +108,26 @@
|
|||
});
|
||||
|
||||
// One journal
|
||||
app.get('#/tools/journals/:file_name', function (c) {
|
||||
c.api("/journals/" + c.params["file_name"], function(journal) {
|
||||
c.view('tools/tools_journal', {
|
||||
"journal": journal,
|
||||
app.get(/\#\/tools\/logs\/(.*)(\?number=(\d+))?/, function (c) {
|
||||
var params = "?path=" + c.params["splat"][0];
|
||||
var number = (c.params["number"])?c.params["number"]:50;
|
||||
params += "&number=" + number;
|
||||
|
||||
c.api("/logs/display" + params, function(log) {
|
||||
if ('metadata' in log) {
|
||||
if ('started_at' in log.metadata) {
|
||||
log.metadata.started_at = Date.parse(log.metadata.started_at)
|
||||
}
|
||||
if ('ended_at' in log.metadata) {
|
||||
log.metadata.ended_at = Date.parse(log.metadata.ended_at)
|
||||
}
|
||||
if (!'env' in log.metadata && 'args' in log.metadata) {
|
||||
log.metadata.env = log.metadata.args
|
||||
}
|
||||
}
|
||||
c.view('tools/tools_log', {
|
||||
"log": log,
|
||||
"next_number": log.logs.length == number ? number * 10:false
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -383,7 +383,7 @@
|
|||
|
||||
// Paste <pre>
|
||||
prePaste: function() {
|
||||
var pasteButtons = $('button[data-paste-content]');
|
||||
var pasteButtons = $('button[data-paste-content],a[data-paste-content]');
|
||||
pasteButtons.on('click', function(){
|
||||
// Get paste content element
|
||||
var preElement = $($(this).data('paste-content'));
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
// Plugins
|
||||
sam.use('Handlebars', 'ms');
|
||||
window.HandlebarsIntl.registerWith(Handlebars);
|
||||
|
||||
Handlebars.registerHelper('ucwords', function(str) {
|
||||
return (str + '').replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g, function ($1) {
|
||||
|
@ -122,4 +123,4 @@
|
|||
app.run('#/');
|
||||
});
|
||||
|
||||
})();
|
||||
})();
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
{{#journal}}
|
||||
<div class="btn-breadcrumb">
|
||||
<a href="#/" ><i class="fa-home"></i><span class="sr-only">{{t 'home'}}</span></a>
|
||||
<a href="#/tools">{{t 'tools'}}</a>
|
||||
<a href="#/tools/journals">{{t 'journals'}}</a>
|
||||
<a href="#/tools/journals/" + {{ file_name }}>{{ name }} - {{ started_at }}</a>
|
||||
</div>
|
||||
|
||||
<div class="separator"></div>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h2 class="panel-title"><span class="fa-fw fa-info-circle"></span> {{ name }}</h2>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<dl class="dl-horizontal">
|
||||
<dt>{{t 'started_at'}}</dt> <dd>{{ started_at }}</dd>
|
||||
<dt>{{t 'path'}}</dt> <dd>{{ path }}</dd>
|
||||
{{#each metadata}}
|
||||
<dt>{{@key}}</dt>
|
||||
<dd>{{.}}</dd>
|
||||
{{/each}}
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h2 class="panel-title"><span class="fa-fw fa-file-text"></span> {{t 'logs'}}</h2>
|
||||
</div>
|
||||
<div class="panel-body overflow-auto">
|
||||
<table>
|
||||
<tr>
|
||||
<td> <!-- no indent because pre is sensible to whitespaces -->
|
||||
<pre>{{#logs}}{{datetime}}
|
||||
{{/logs}}</pre>
|
||||
</td>
|
||||
<td class="full-width"> <!-- no indent because pre is sensible to whitespaces -->
|
||||
<pre class="full-width">{{#logs}}{{{line}}}
|
||||
{{/logs}}</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{{/journal}}
|
|
@ -11,9 +11,9 @@
|
|||
<span class="pull-right fa-chevron-right"></span>
|
||||
<h2 class="list-group-item-heading">{{t 'diagnosis'}}</h2>
|
||||
</a>
|
||||
<a href="#/tools/journals" class="list-group-item slide clearfix">
|
||||
<a href="#/tools/logs" class="list-group-item slide clearfix">
|
||||
<span class="pull-right fa-chevron-right"></span>
|
||||
<h2 class="list-group-item-heading">{{t 'journals'}}</h2>
|
||||
<h2 class="list-group-item-heading">{{t 'logs'}}</h2>
|
||||
</a>
|
||||
<a href="#/tools/monitor" class="list-group-item slide clearfix">
|
||||
<span class="pull-right fa-chevron-right"></span>
|
||||
|
|
71
src/views/tools/tools_log.ms
Normal file
71
src/views/tools/tools_log.ms
Normal file
|
@ -0,0 +1,71 @@
|
|||
<div class="btn-breadcrumb">
|
||||
<a href="#/" ><i class="fa-home"></i><span class="sr-only">{{t 'home'}}</span></a>
|
||||
<a href="#/tools">{{t 'tools'}}</a>
|
||||
<a href="#/tools/logs">{{t 'logs'}}</a>
|
||||
<a href="#/tools/logs/{{ log.log_path }}">{{ log.log_path }}</a>
|
||||
</div>
|
||||
|
||||
<div class="actions-group">
|
||||
<a data-paste-content="#log" class="btn btn-success">
|
||||
<span class="fa-cloud-upload"></span> {{t 'upload'}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="separator"></div>
|
||||
|
||||
{{#if log.metadata}}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h2 class="panel-title"><span class="fa-fw fa-info-circle"></span> {{ log.description }}</h2>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<dl class="dl-horizontal">
|
||||
<dt>{{t 'path'}}</dt> <dd>{{ log.log_path }}</dd>
|
||||
{{#if log.metadata.started_at}}
|
||||
<dt>{{t 'started_at'}}</dt>
|
||||
<dd>{{formatTime log.metadata.started_at day="numeric" month="long" year="numeric" hour="numeric" minute="numeric"}}</dd>
|
||||
{{/if}}
|
||||
{{#if log.metadata.ended_at}}
|
||||
<dt>{{t 'ended_at'}}</dt>
|
||||
<dd>{{formatTime log.metadata.ended_at day="numeric" month="long" year="numeric" hour="numeric" minute="numeric"}}</dd>
|
||||
{{/if}}
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
{{#if log.metadata.env}}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="heading-context">
|
||||
<h2 class="panel-title">
|
||||
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse-context" aria-expanded="true" aria-controls="collapse-context">
|
||||
<span class="fa-fw fa-bug"></span>{{t 'Context'}}
|
||||
</a>
|
||||
</h2>
|
||||
</div>
|
||||
<div id="collapse-context" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading-context">
|
||||
<div class="panel-body">
|
||||
<dl class="dl-horizontal">
|
||||
{{#each log.metadata.env}}
|
||||
<dt>{{@key}}</dt>
|
||||
<dd>{{.}}</dd>
|
||||
{{/each}}
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{/if}}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h2 class="panel-title"><span class="fa-fw fa-file-text"></span> {{#if log.metadata}}{{t 'logs'}}{{else}}{{log.log_path}}{{/if}}</h2>
|
||||
</div>
|
||||
<div class="panel-body overflow-auto">
|
||||
{{#if log.metadata.error}}
|
||||
<div class="alert alert-warning" role="alert"><span class="fas fa-exclamation-triangle"></span> <strong>{{t 'Error'}}</strong>: {{log.metadata.error}}</div>
|
||||
{{/if}}
|
||||
<!-- no indent because pre is sensible to whitespaces -->
|
||||
{{#if next_number}}<a href="#/tools/logs/{{ log.log_path }}?number={{ next_number }}">MORE</a>{{/if}}
|
||||
<pre id="log" class="full-width">{{#log.logs}}{{.}}
|
||||
{{/log.logs}}</pre>
|
||||
</div>
|
||||
</div>
|
|
@ -1,30 +1,28 @@
|
|||
<div class="btn-breadcrumb">
|
||||
<a href="#/" ><i class="fa-home"></i><span class="sr-only">{{t 'home'}}</span></a>
|
||||
<a href="#/tools">{{t 'tools'}}</a>
|
||||
<a href="#/tools/journals">{{t 'journals'}}</a>
|
||||
<a href="#/tools/logs">{{t 'logs'}}</a>
|
||||
</div>
|
||||
|
||||
<div class="separator"></div>
|
||||
|
||||
{{#if data}}
|
||||
{{#data}}
|
||||
{{#categories}}
|
||||
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="heading-{{ name }}">
|
||||
<div class="panel-heading" role="tab" id="heading-uo">
|
||||
<h2 class="panel-title">
|
||||
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse-{{ name }}" aria-expanded="true" aria-controls="collapse-{{ name }}">
|
||||
<span class="fa-fw fa-info-circle"></span>{{ name }}
|
||||
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse-uo" aria-expanded="true" aria-controls="collapse-uo">
|
||||
<span class="fa-fw fa-info-circle"></span>{{t 'unit_operation'}}
|
||||
</a>
|
||||
</h2>
|
||||
</div>
|
||||
<div id="collapse-{{ name }}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading-{{ name }}">
|
||||
<div class="list-group">{{#journals}}
|
||||
<a href="#/tools/journals/{{ file_name }}" class="list-group-item"><small>{{ started_at }}</small> {{ name }}</a>
|
||||
{{/journals}}</div>
|
||||
<div id="collapse-uo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading-uo">
|
||||
<div class="list-group">{{#operations}}
|
||||
<a href="#/tools/logs/{{ name }}" class="list-group-item"><small>{{ started_at }}</small> {{ name }}</a>
|
||||
{{/operations}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/categories}}
|
||||
{{/data}}
|
||||
{{/if}}
|
1
src/views/tools/tools_rebooting.ms
Normal file
1
src/views/tools/tools_rebooting.ms
Normal file
|
@ -0,0 +1 @@
|
|||
<div class="alert alert-warning"><i class="fa-refresh"></i> {{t 'tools_rebooting'}}</div>
|
1
src/views/tools/tools_shuttingdown.ms
Normal file
1
src/views/tools/tools_shuttingdown.ms
Normal file
|
@ -0,0 +1 @@
|
|||
<div class="alert alert-warning"><i class="fa-power-off"></i> {{t 'tools_shuttingdown'}}</div>
|
Loading…
Add table
Reference in a new issue