Refactor log view UI into a component.

This commit is contained in:
Kailash Nadh 2020-10-24 11:42:28 +05:30
parent b054ed5adc
commit 966954d8f4
4 changed files with 17 additions and 22 deletions

View file

@ -438,8 +438,9 @@ section.import {
.status {
padding: 60px;
}
.logs {
.log-view .lines {
max-height: 240px;
text-align: left;
}
}
@ -607,7 +608,7 @@ section.campaign {
}
/* Logs */
.logs {
.log-view {
.lines {
height: 70vh;
overflow-y: scroll;

View file

@ -127,10 +127,9 @@
</p>
<br />
<p>
<b-input v-model="logs" id="import-log" class="logs"
type="textarea" readonly placeholder="Import log" />
</p>
<div class="import-logs">
<log-view :lines="logs" :loading="false" />
</div>
</section>
</section>
</template>
@ -139,10 +138,12 @@
import Vue from 'vue';
import { mapState } from 'vuex';
import ListSelector from '../components/ListSelector.vue';
import LogView from '../components/LogView.vue';
export default Vue.extend({
components: {
ListSelector,
LogView,
},
props: {
@ -242,7 +243,7 @@ export default Vue.extend({
getLogs() {
this.$api.getImportLogs().then((data) => {
this.logs = data;
this.logs = data.split('\n');
Vue.nextTick(() => {
// vue.$refs doesn't work as the logs textarea is rendered dynamically.

View file

@ -2,38 +2,31 @@
<section class="logs content relative">
<h1 class="title is-4">Logs</h1>
<hr />
<b-loading :active="loading.logs" :is-full-page="false" />
<pre class="lines" ref="lines">
<template v-for="(l, i) in lines"><span v-html="formatLine(l)" :key="i" class="line"></span>
</template>
</pre>
<log-view :loading="loading.logs" :lines="lines"></log-view>
</section>
</template>
<script>
import Vue from 'vue';
import { mapState } from 'vuex';
const reFormatLine = new RegExp(/^(.*) (.+?)\.go:[0-9]+:\s/g);
import LogView from '../components/LogView.vue';
export default Vue.extend({
components: {
LogView,
},
data() {
return {
lines: '',
lines: [],
pollId: null,
};
},
methods: {
formatLine: (l) => l.replace(reFormatLine, '<span class="stamp">$1</span> '),
getLogs() {
this.$api.getLogs().then((data) => {
this.lines = data;
this.$nextTick(() => {
this.$refs.lines.scrollTop = this.$refs.lines.scrollHeight;
});
});
},
},

View file

@ -139,7 +139,7 @@ func (im *Importer) NewSession(fName, mode string, overWrite bool, listIDs []int
s := &Session{
im: im,
log: log.New(im.status.logBuf, "", log.Ldate|log.Ltime),
log: log.New(im.status.logBuf, "", log.Ldate|log.Ltime|log.Lshortfile),
subQueue: make(chan SubReq, commitBatchSize),
mode: mode,
overwrite: overWrite,