Добавление сервисов, сообщения об ошибках, мелкие фиксы

This commit is contained in:
saber-nyan 2019-11-24 21:32:55 +03:00
parent c58d9023d9
commit a4442bf9e8
No known key found for this signature in database
GPG Key ID: 7B069E9C295E6B4A
6 changed files with 98 additions and 3 deletions

View File

@ -1,6 +1,6 @@
<template> <template>
<div id="app"> <div id="app">
<Navbar/> <Navbar ref="navbar"/>
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<transition name="fade" mode="out-in"> <transition name="fade" mode="out-in">
@ -15,15 +15,18 @@
</div> </div>
</div> </div>
<Settings/> <Settings/>
<AddService @serviceAddComplete="$refs.navbar.updateServices()"/>
</div> </div>
</template> </template>
<script> <script>
import Navbar from './components/Navbar'; import Navbar from './components/Navbar';
import Settings from './views/Settings'; import Settings from './views/Settings';
import AddService from './views/AddService';
export default { export default {
components: { components: {
AddService,
Settings, Settings,
Navbar, Navbar,
}, },

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -14,6 +14,12 @@
:key="service.name" :key="service.name"
:name="service.name" :name="service.name"
:port="service.port"/> :port="service.port"/>
<li class="nav-item text-nowrap" style="padding-left: 1em;">
<div class="my-2 my-lg-0 mr-3 navbar-cogs" style="cursor: pointer;"
@click.stop.prevent="showAddService">
<i class="fas fa-plus-circle"/>
</div>
</li>
</ul> </ul>
<div class="my-2 my-lg-0 mr-3 navbar-cogs" style="cursor: pointer;" <div class="my-2 my-lg-0 mr-3 navbar-cogs" style="cursor: pointer;"
@ -42,6 +48,10 @@
this.$bvModal.show('settingsModal'); this.$bvModal.show('settingsModal');
console.debug('Showing settings...'); console.debug('Showing settings...');
}, },
showAddService() {
this.$bvModal.show('addServiceModal');
console.debug('Showing addService...');
},
updateServices() { updateServices() {
this.$http.get('service/') this.$http.get('service/')
.then(r => this.services = r.data) .then(r => this.services = r.data)

View File

@ -73,6 +73,10 @@
this.streams.push(...data); this.streams.push(...data);
return $state.loaded(); return $state.loaded();
}).catch(e => { }).catch(e => {
this.$bvToast.toast(`Не удалось загрузить стримы: ${e}`, {
title: 'Сбой',
variant: 'danger',
});
console.error('Failed to load portion of streams:', e); console.error('Failed to load portion of streams:', e);
return $state.error(); return $state.error();
}); });

View File

@ -14,8 +14,8 @@ Vue.config.productionTip = false;
Vue.use(BootstrapVue); Vue.use(BootstrapVue);
Vue.use(InfiniteLoading, { Vue.use(InfiniteLoading, {
slots: { slots: {
'no-results': 'Нет результатов...', noResults: 'Нет результатов...',
'no-more': 'Данных больше нет', noMore: 'Данных больше нет',
error: 'Произошла ошибка!', error: 'Произошла ошибка!',
errorBtnText: 'Повторить', errorBtnText: 'Повторить',
}, },

78
src/views/AddService.vue Normal file
View File

@ -0,0 +1,78 @@
<template>
<b-modal @ok="createService" @cancel="reset" id="addServiceModal" title="Добавить сервис" cancel-title="Отмена"
centered scrollable>
<form ref="addServiceForm">
<b-form-group
label-cols-sm="4"
label-cols-lg="3"
label="Название"
label-for="addSvc-name">
<b-form-input @keydown.native.enter="createService" id="addSvc-name" required v-model="svcName"/>
</b-form-group>
<b-form-group
label-cols-sm="4"
label-cols-lg="3"
label="Порт"
label-for="addSvc-port">
<b-form-input @keydown.native.enter="createService" type="number" id="addSvc-port" required
v-model.number="svcPort"/>
</b-form-group>
</form>
</b-modal>
</template>
<script>
export default {
name: 'AddService',
data() {
return {
svcName: String(),
svcPort: Number(),
};
},
methods: {
checkValidity() {
return this.$refs.addServiceForm.reportValidity()
&& this.svcPort >= 1
&& this.svcPort <= 65535;
},
reset() {
this.svcName = '';
this.svcPort = 0;
},
createService(e) {
const name = this.svcName;
const port = this.svcPort;
if (!this.checkValidity()) {
e.preventDefault();
console.debug('Form is invalid');
return;
}
console.debug(`Creating service ${name} (${port})...`);
this.$http.post('service/', {
name,
port,
}).then(response => {
const data = response.data;
console.debug('Done adding service', data);
this.$emit('serviceAddComplete');
this.reset();
this.$bvModal.hide('addServiceModal');
}).catch(e => {
this.$bvToast.toast(`Не удалось добавить сервис: ${e}`, {
title: 'Сбой',
variant: 'danger',
});
console.error('Failed to add service', e);
});
},
},
};
</script>
<style scoped>
</style>