101 lines
3.4 KiB
HTML
101 lines
3.4 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block body %}
|
|
<div id="app">
|
|
<div class="md-layout">
|
|
<div class="md-layout-item">
|
|
<md-card id="main-card">
|
|
<md-card-header>
|
|
<div class="md-title">
|
|
<md-button href="/" class="md-icon-button md-primary">
|
|
<md-icon>home</md-icon>
|
|
</md-button>
|
|
Diffido
|
|
<md-button href="/schedule.html" class="md-icon-button md-primary">
|
|
<md-icon>add_circle_outline</md-icon>
|
|
</md-button>
|
|
</div>
|
|
</md-card-header>
|
|
|
|
<md-card-content>
|
|
<md-table id="schedules-table" v-model="schedules">
|
|
<md-table-row slot="md-table-row" slot-scope="{item}">
|
|
<md-table-cell md-label="#" md-sort-by="id" md-numeric><a :href="'/schedule.html?id=' + item.id">${ item.id }</a></md-table-cell>
|
|
<md-table-cell md-label="title" md-sort-by="title"><a :href="'/schedule.html?id=' + item.id">${ item.title }</a></md-table-cell>
|
|
<md-table-cell md-label="url" md-sort-by="email"><a :href="item.url" target="_new">${ item.url }</a></md-table-cell>
|
|
<md-table-cell md-label="trigger" md-sort-by="trigger">${ triggerString(item) }</md-table-cell>
|
|
<md-table-cell md-label="history" md-sort-by="email">
|
|
<md-button :href="'/history.html?id=' + item.id" class="md-icon-button md-primary">
|
|
<md-icon>history</md-icon>
|
|
</md-button>
|
|
</md-table-cell>
|
|
</md-table-row>
|
|
</md-table>
|
|
</md-card-content>
|
|
</md-card>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Vue.use(VueMaterial.default);
|
|
|
|
var app = new Vue({
|
|
el: '#app',
|
|
delimiters: ['${', '}'],
|
|
data: {
|
|
schedules: []
|
|
},
|
|
mounted: function() {
|
|
this.getSchedules();
|
|
},
|
|
computed: {
|
|
},
|
|
methods: {
|
|
getSchedules: function() {
|
|
self = this;
|
|
var data = axios.get('/api/schedules').then(function(response) {
|
|
var schedules = [];
|
|
_.forEach(response.data.schedules || {}, function(value, key) {
|
|
value.id = key;
|
|
schedules.push(value);
|
|
});
|
|
self.schedules = schedules;
|
|
});
|
|
},
|
|
triggerString: function(item) {
|
|
if (item.trigger == 'cron') {
|
|
return 'cron: ' + item.cron_crontab;
|
|
}
|
|
if (item.trigger == 'interval') {
|
|
trigger = 'interval: ';
|
|
_.each(['weeks', 'days', 'hours', 'minutes', 'seconds'], function(value, key) {
|
|
if ('interval_' + value) {
|
|
if (trigger) {
|
|
trigger = trigger + ' ';
|
|
}
|
|
trigger = trigger + ''
|
|
}
|
|
});
|
|
return trigger;
|
|
}
|
|
return '';
|
|
}
|
|
}
|
|
});
|
|
|
|
</script>
|
|
<style>
|
|
|
|
body {
|
|
background-color: white;
|
|
padding: 6px;
|
|
}
|
|
|
|
.md-table {
|
|
height: 80%;
|
|
}
|
|
|
|
</style>
|
|
{% end %}
|