now supporting commands
This commit is contained in:
7173
package-lock.json
generated
7173
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -115,7 +115,7 @@
|
||||
<span v-if="!formEditField[command.id+'_recorder_id']">{{command.recorder_id}}
|
||||
<div v-if="command.recorder">
|
||||
<p class="card-text"><strong>{{ $t('Recorder') }}:</strong> {{command.recorder.name}}
|
||||
({{command.recorder.ip}}) / ({{command.recorder.network_name}})
|
||||
({{command.recorder.ip}}) / ({{command.recorder.network_name}})</p>
|
||||
</div>
|
||||
<div v-else>
|
||||
<p class="card-text"><strong>{{ $t('Recorder') }}:</strong> {{
|
||||
@@ -360,7 +360,7 @@
|
||||
mounted() {
|
||||
this.$parent.$data.isLoading = true;
|
||||
this.$parent.$data.showAlert = false;
|
||||
this.$store.dispatch('loadcommands')
|
||||
this.$store.dispatch('loadCommands')
|
||||
.then(() => {
|
||||
this.$store.dispatch('loadRecorders')
|
||||
.then(() => {
|
||||
@@ -378,7 +378,7 @@
|
||||
};
|
||||
},
|
||||
commands() {
|
||||
return this.$store.state.commands;
|
||||
return this.$store.state.recorderCommands;
|
||||
},
|
||||
recorders() {
|
||||
return this.$store.state.recorders;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<template>
|
||||
<div>
|
||||
<b-form-group class="container">
|
||||
<section class="section">
|
||||
|
||||
@@ -243,24 +244,13 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<b-form-group label-cols-sm="4"
|
||||
label-cols-lg="3"
|
||||
description="Use telnet instead of ssh."
|
||||
label-for="use_telnet_instead_ssh_input"
|
||||
:label="$t('use_telnet_instead_ssh')">
|
||||
<b-form-checkbox id="use_telnet_instead_ssh_input"
|
||||
v-model="form.use_telnet_instead_ssh" name="check-button" switch>
|
||||
<b>(Telnet: {{ form.use_telnet_instead_ssh }})</b>
|
||||
</b-form-checkbox>
|
||||
</b-form-group>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="label col-sm-2 col-form-label">{{ $t('recorder_model') }}</label>
|
||||
<div class="col-sm-6">
|
||||
<select class="form-control" v-model="form.recorder_model_id">
|
||||
<option disabled value="">No recorder_model selected</option>
|
||||
<option v-for="recorderModel in recorderModels"
|
||||
v-bind:value="recorder_model.id">
|
||||
v-bind:value="recorderModel.id">
|
||||
{{ recorderModel.name }}
|
||||
</option>
|
||||
</select>
|
||||
@@ -305,39 +295,13 @@
|
||||
<b-card class="mb-2" style="max-width: 30rem; min-width:20rem;" v-for="(recorderModel) in recorderModels"
|
||||
:header="recorderModel.name"
|
||||
v-bind:key="recorderModel.id">
|
||||
{{recorderModel}}
|
||||
<b-card-text>
|
||||
<h5 class="card-title">{{ $t('model_name') }}:
|
||||
<span v-if="!formEditField['model_'+recorderModel.id+'_model_name']">{{recorderModel.model_name}}
|
||||
<a class="float-right badge badge-pill badge-primary">
|
||||
<font-awesome-icon
|
||||
@click="initRecorderModelUpdate(recorderModel, 'model_name')"
|
||||
icon="pencil-alt"/>
|
||||
</a>
|
||||
</span>
|
||||
<b-input-group v-else>
|
||||
<b-form-input :id="recorderModel.id+'_model_name'" name="model_name"
|
||||
v-model="updateValues[recorderModel.id+'_model_name']"
|
||||
v-validate="'required|min:3'"
|
||||
v-bind:class="{'is-danger': errors.has('name'), 'is-invalid': errors.has('name')}"
|
||||
class="form-control" type="text"
|
||||
:placeholder="'Model Name ('+recorderModel.model_name +')'"
|
||||
required></b-form-input>
|
||||
<b-input-group-append>
|
||||
<b-button :disabled="errors.has('model_name')"
|
||||
@click="updateRecorder(recorderModel.id, 'model_name')"
|
||||
variant="outline-success">
|
||||
<font-awesome-icon icon="check"></font-awesome-icon>
|
||||
</b-button>
|
||||
</b-input-group-append>
|
||||
</b-input-group>
|
||||
</h5>
|
||||
<p class="card-text">
|
||||
<small><strong>{{ $t('notes') }}:</strong>
|
||||
<strong>{{ $t('notes') }}:</strong>
|
||||
<span v-if="!formEditField['model_'+recorderModel.id+'notes']">{{recorderModel.notes}}
|
||||
<a class="float-right badge badge-pill badge-info">
|
||||
<font-awesome-icon
|
||||
@click="initrecorderModelUpdate(room, 'notes')"
|
||||
@click="initrecorderModelUpdate(recorderModel, 'notes')"
|
||||
icon="pencil-alt"/>
|
||||
</a>
|
||||
</span>
|
||||
@@ -345,145 +309,34 @@
|
||||
v-model="updateValues['model_'+recorderModel.id+'_notes']"
|
||||
:placeholder="'Notes ('+recorderModel.notes +')'"
|
||||
@blur="updaterecorderModel(recorderModel.id, 'notes')"></textarea>
|
||||
</small>
|
||||
|
||||
</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
<span v-if="!formEditField[room.id+'_recorder_id']">{{room.recorder_id}}
|
||||
<div v-if="room.recorder">
|
||||
<p class="card-text"><strong>{{ $t('Recorder') }}:</strong> {{room.recorder.name}}
|
||||
({{room.recorder.ip}}) / ({{room.recorder.network_name}})
|
||||
</div>
|
||||
<div v-else>
|
||||
<p class="card-text"><strong>{{ $t('Recorder') }}:</strong> {{
|
||||
$t('no_recorder_defined')}}</p>
|
||||
</div>
|
||||
<a class="float-right badge badge-pill badge-info">
|
||||
<font-awesome-icon
|
||||
@click="initRoomUpdate(room, 'recorder_id')" icon="pencil-alt"/>
|
||||
</a>
|
||||
</span>
|
||||
<b-form v-else>
|
||||
<b-input-group>
|
||||
<b-form-group>
|
||||
<b-form-checkbox-group v-model="updateValues['model_'+room.id+'_recorder_command_ids']">
|
||||
<b-form-checkbox v-for="recorderCommand in recorderCommands"
|
||||
v-bind:value="recorderCommand.id">{{recorderCommand.name}}</b-form-checkbox>
|
||||
<b-form-checkbox value="that">Check that out</b-form-checkbox>
|
||||
</b-form-checkbox-group>
|
||||
</b-form-group>
|
||||
<select class="form-control" v-model="updateValues[room.id+'_recorder_id']">
|
||||
<option value="">No recorder selected</option>
|
||||
<option v-for="recorder in recorders" v-bind:value="recorder.id">
|
||||
{{ recorder.name }}
|
||||
</option>
|
||||
</select>
|
||||
<b-input-group-append>
|
||||
<b-button :disabled="errors.has('recorder_id')"
|
||||
@click="updateRoom(room.id, 'recorder_id')"
|
||||
variant="outline-success">
|
||||
<font-awesome-icon icon="check"></font-awesome-icon>
|
||||
</b-button>
|
||||
</b-input-group-append>
|
||||
</b-input-group>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox"
|
||||
v-model="show_assigned_recorders" id="defaultCheck1">
|
||||
<label class="form-check-label" for="defaultCheck1">
|
||||
Show already assigned recorders
|
||||
</label>
|
||||
</div>
|
||||
</b-form>
|
||||
<b-list-group style="max-height: 200px; overflow-y:scroll;">
|
||||
<strong>Recorder Model {{ $t('Commands') }}:</strong>
|
||||
<b-list-group-item v-for="command in recorderModel.commands">
|
||||
{{command.name}}
|
||||
<b-badge v-for="(a_type, arg) in command.parameters" v-if="command.parameters !== null" style="margin-right: 10px;">
|
||||
<small>{{arg}}: {{a_type}}</small>
|
||||
</b-badge>
|
||||
|
||||
</b-list-group-item>
|
||||
</b-list-group>
|
||||
|
||||
</b-card-text>
|
||||
<div slot="footer">
|
||||
<small class="text-muted">
|
||||
<p>{{ $t('created')}}: {{recorder.created_at | moment("dddd, MMMM Do YYYY")}}
|
||||
<span class="pull-right">
|
||||
<button type="button" v-on:click="deleteRecorder(recorder.id)"
|
||||
class="btn btn-sm btn-danger">{{
|
||||
$t('delete') }} <font-awesome-icon
|
||||
icon="trash"/>
|
||||
</button>
|
||||
</span>
|
||||
</p>
|
||||
<p>{{ $t('created')}}: {{recorderModel.created_at | moment("dddd, MMMM Do YYYY")}}</p>
|
||||
</small>
|
||||
</div>
|
||||
</b-card>
|
||||
</b-card-group>
|
||||
</b-tab>
|
||||
<b-tab title="Create recorder model">
|
||||
<template slot="title">
|
||||
<font-awesome-icon icon="plus"/>
|
||||
<i>create</i> Recorder <font-awesome-icon icon="scroll"/>
|
||||
<strong>Model</strong>
|
||||
</template>
|
||||
<b-card-text>
|
||||
<p>{{ $t('Create a new recorder model')}}:</p>
|
||||
<!-- form starts here -->
|
||||
<form v-on:submit.prevent="saveRecorder()">
|
||||
<section class="form">
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="label required col-sm-2 col-form-label">{{ $t('model_name') }}</label>
|
||||
<div class="col-sm-6">
|
||||
<input name="model_name"
|
||||
v-model="form.model_name"
|
||||
v-validate="'required|min:3'"
|
||||
v-bind:class="{'is-danger': errors.has('model_name'), 'is-invalid': errors.has('model_name')}"
|
||||
class="form-control" type="text" placeholder="Recorder Model name" required>
|
||||
</div>
|
||||
<p class="col-sm-4" v-show="errors.has('model_name')">
|
||||
{{ errors.first('model_name') }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="label col-sm-2 col-form-label">{{ $t('notes') }}</label>
|
||||
<div class="col-sm-6">
|
||||
<textarea class="textarea form-control"
|
||||
placeholder="Comments, remarks, notes, etc."
|
||||
v-model="form.notes"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="label col-sm-2 col-form-label">{{ $t('recorder_commands') }}</label>
|
||||
<div class="col-sm-6">
|
||||
<b-form-group>
|
||||
<b-form-checkbox-group v-model="recorder_command_ids">
|
||||
<b-form-checkbox v-for="recorderCommand in recorderCommands"
|
||||
v-bind:value="recorderCommand.id">{{recorderCommand.name}}</b-form-checkbox>
|
||||
<b-form-checkbox value="that">Check that out</b-form-checkbox>
|
||||
</b-form-checkbox-group>
|
||||
</b-form-group>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="field is-grouped">
|
||||
<div class="control">
|
||||
<button
|
||||
v-bind:disabled="errors.any()"
|
||||
type="submit"
|
||||
class="btn btn-primary">
|
||||
Create recorder
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
||||
</b-card-text>
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
</section>
|
||||
|
||||
</b-form-group>
|
||||
<hr>
|
||||
|
||||
<div class="column">
|
||||
@@ -526,13 +379,13 @@
|
||||
updateValues: {},
|
||||
formEditField: {},
|
||||
show_assigned_recorders: false,
|
||||
show_assigned_rooms: true,
|
||||
form: {
|
||||
name: '',
|
||||
description: '',
|
||||
ip: '',
|
||||
telnet_port: 23,
|
||||
ssh_port: 22,
|
||||
use_telnet_instead_ssh: false,
|
||||
network_name: '',
|
||||
recorder_model: null,
|
||||
room: null,
|
||||
@@ -580,6 +433,7 @@
|
||||
this.$parent.$data.isLoading = false;
|
||||
});
|
||||
});
|
||||
this.$store.dispatch('loadRecorderModels');
|
||||
},
|
||||
computed: {
|
||||
rooms() {
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
<span v-if="!formEditField[room.id+'_recorder_id']">{{room.recorder_id}}
|
||||
<div v-if="room.recorder">
|
||||
<p class="card-text"><strong>{{ $t('Recorder') }}:</strong> {{room.recorder.name}}
|
||||
({{room.recorder.ip}}) / ({{room.recorder.network_name}})
|
||||
({{room.recorder.ip}}) / ({{room.recorder.network_name}})</p>
|
||||
</div>
|
||||
<div v-else>
|
||||
<p class="card-text"><strong>{{ $t('Recorder') }}:</strong> {{
|
||||
|
||||
19
src/store.ts
19
src/store.ts
@@ -73,6 +73,7 @@ const actions = {
|
||||
.then((response: any) => {
|
||||
Vue.$log.debug(response);
|
||||
Vue.$log.debug(response.data);
|
||||
Vue.$log.debug('Loaded recorder models');
|
||||
context.commit('setRecorderModels', {recorderModels: response.data});
|
||||
EventBus.$emit('recorderModelsLoaded', response.data);
|
||||
})
|
||||
@@ -94,6 +95,24 @@ const actions = {
|
||||
EventBus.$emit('failedLoadingRecorderCommands', error);
|
||||
});
|
||||
},
|
||||
loadVirtualCommands(context: any) {
|
||||
return RecordRepository.getRecorderCommands()
|
||||
.then((response: any) => {
|
||||
Vue.$log.debug(response);
|
||||
Vue.$log.debug(response.data);
|
||||
context.commit('setRecorderCommands', {recorderCommands: response.data});
|
||||
EventBus.$emit('recorderCommandsLoaded', response.data);
|
||||
})
|
||||
.catch((error: any) => {
|
||||
Vue.$log.warn('Error loading recorder commands!', error);
|
||||
EventBus.$emit('failedLoadingRecorderCommands', error);
|
||||
});
|
||||
},
|
||||
loadCommands(context: any) {
|
||||
return context.dispatch('loadRecorderCommands').then(() => {
|
||||
return context.dispatch('loadVirtualCommands');
|
||||
});
|
||||
},
|
||||
loadUsers(context: any) {
|
||||
return fetchUsers(context.state.access_token)
|
||||
.then((response) => {
|
||||
|
||||
Reference in New Issue
Block a user