From 7022ab738bdc2cd9de78262a1dd1b603e3d823f6 Mon Sep 17 00:00:00 2001 From: Tobias Kurze Date: Fri, 26 Apr 2019 15:34:58 +0200 Subject: [PATCH] fixed room mgmt and recorder mgmt basically working --- src/api/Repository.js | 3 +- src/api/recorderRepository.ts | 27 ++++++++++---- src/api/roomRepository.ts | 5 +-- src/components/Recorders.vue | 13 ++++--- src/components/Rooms.vue | 66 +++++++++++++++++++++-------------- src/main.ts | 6 ++++ src/utils/index.ts | 23 ++++++++++++ 7 files changed, 101 insertions(+), 42 deletions(-) diff --git a/src/api/Repository.js b/src/api/Repository.js index b3306ef..fbd1ca5 100644 --- a/src/api/Repository.js +++ b/src/api/Repository.js @@ -15,7 +15,6 @@ api.interceptors.request.use(async function(config) { if (store.getters.isAuthenticated) { const token = store.state.access_token; config.headers.Authorization = `Bearer ${token}`; - return config; } else { Vue.$log.warn("the access_token is not valid anymore."); if(store.getters.isRefreshTokenValid){ @@ -47,8 +46,8 @@ api.interceptors.request.use(async function(config) { } }); } - return config; } + return config; }); api.interceptors.response.use(function (response) { diff --git a/src/api/recorderRepository.ts b/src/api/recorderRepository.ts index cdb6452..453e66f 100644 --- a/src/api/recorderRepository.ts +++ b/src/api/recorderRepository.ts @@ -7,6 +7,8 @@ const recorderResource = '/recorder'; const recorderModelResource = '/recorder/model'; const recorderCommandResource = '/recorder/command'; +import {dictEmptyValToNull} from '@/utils'; + export default { getRecorders() { return Repository.get(`${recorderResource}`); @@ -16,12 +18,16 @@ export default { return Repository.get(`${recorderResource}/${recorderId}`); }, + deleteRecorder(recorderId: number) { + return Repository.delete(`${recorderResource}/${recorderId}`); + }, + createRecorder(recorderData: any) { - return Repository.post(`${recorderResource}`, recorderData); + return Repository.post(`${recorderResource}`, dictEmptyValToNull(recorderData)); }, updateRecorder(recorderId: number, recorderData: any) { - return Repository.put(`${recorderResource}/${recorderId}`, recorderData); + return Repository.put(`${recorderResource}/${recorderId}`, dictEmptyValToNull(recorderData)); }, @@ -33,12 +39,16 @@ export default { return Repository.get(`${recorderModelResource}/${recorderModelId}`); }, + deleteRecorderModel(recorderModelId: number) { + return Repository.delete(`${recorderModelResource}/${recorderModelId}`); + }, + createRecorderModel(recorderModelData: any) { - return Repository.post(`${recorderModelResource}`, recorderModelData); + return Repository.post(`${recorderModelResource}`, dictEmptyValToNull(recorderModelData)); }, updateRecorderModel(recorderModelId: number, recorderModelData: any) { - return Repository.put(`${recorderModelResource}/${recorderModelId}`, recorderModelData); + return Repository.put(`${recorderModelResource}/${recorderModelId}`, dictEmptyValToNull(recorderModelData)); }, @@ -50,11 +60,16 @@ export default { return Repository.get(`${recorderCommandResource}/${recorderCommandId}`); }, + deleteRecorderCommand(recorderCommandId: number) { + return Repository.delete(`${recorderCommandResource}/${recorderCommandId}`); + }, + createRecorderCommand(recorderCommandData: any) { - return Repository.post(`${recorderCommandResource}`, recorderCommandData); + return Repository.post(`${recorderCommandResource}`, dictEmptyValToNull(recorderCommandData)); }, updateRecorderCommand(recorderCommandId: number, recorderCommandData: any) { - return Repository.put(`${recorderCommandResource}/${recorderCommandId}`, recorderCommandData); + return Repository.put(`${recorderCommandResource}/${recorderCommandId}`, + dictEmptyValToNull(recorderCommandData)); }, }; diff --git a/src/api/roomRepository.ts b/src/api/roomRepository.ts index 52d8046..f23cc11 100644 --- a/src/api/roomRepository.ts +++ b/src/api/roomRepository.ts @@ -2,6 +2,7 @@ // @ts-ignore import Repository from './Repository'; +import {dictEmptyValToNull} from '@/utils'; const resource = '/room'; @@ -19,10 +20,10 @@ export default { }, createRoom(roomData: any) { - return Repository.post(`${resource}`, roomData); + return Repository.post(`${resource}`, dictEmptyValToNull(roomData)); }, updateRoom(roomId: number, roomData: any) { - return Repository.put(`${resource}/${roomId}`, roomData); + return Repository.put(`${resource}/${roomId}`, dictEmptyValToNull(roomData)); }, }; diff --git a/src/components/Recorders.vue b/src/components/Recorders.vue index b61d9fd..232424a 100644 --- a/src/components/Recorders.vue +++ b/src/components/Recorders.vue @@ -21,6 +21,7 @@ + {{recorder}}
{{ $t('name') }}:  {{recorder.name}}  @@ -112,7 +113,7 @@
- + + + - - - -
- + {{room.recorder_id}}  +
+

{{ $t('Recorder') }}: {{room.recorder.name}}  + ({{room.recorder.ip}}) / ({{room.recorder.network_name}})

+
+

{{ $t('Recorder') }}: {{ + $t('no_recorder_defined')}}

+
+ + + +
+ + + + + + + + + +
@@ -139,7 +150,8 @@ Show already assigned recorders
-
+ +
@@ -218,8 +230,8 @@
- + @@ -289,11 +301,11 @@ formEditField: {}, show_assigned_recorders: false, form: { - name: '', - alternate_name: '', - number: '', - comment: '', - recorder: null, + name: null, + alternate_name: null, + number: null, + comment: null, + recorder_id: null, }, }; }, diff --git a/src/main.ts b/src/main.ts index 6e371f6..413a693 100644 --- a/src/main.ts +++ b/src/main.ts @@ -72,6 +72,12 @@ Vue.use(VueMoment); Vue.config.productionTip = false; + +// @ts-ignore +String.prototype.isEmpty = function() { + return (this.length === 0 || !this.trim()); +}; + new Vue({ i18n, router, diff --git a/src/utils/index.ts b/src/utils/index.ts index 3668a75..7511444 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -2,6 +2,11 @@ import Vue from 'vue'; +// @ts-ignore +String.prototype.isEmpty = function() { + return (this.length === 0 || !this.trim()); +}; + export const EventBus = new Vue(); export function isValidJwt(jwt: any) { @@ -26,3 +31,21 @@ export function getRemainingJwtValiditySeconds(jwt: any) { } return Math.round(diff / 1000 * 100) / 100; } + +export function isEmpty(str: string) { + return (0 === str.length || !str.trim()); +} + +export function dictEmptyValToNull(dict: object): object { + const newDict: { [key: string]: string | null | object; } = Object.assign({}, dict); + for (const [key, value] of Object.entries(dict)) { + if (typeof value === 'string') { + if (isEmpty(value)) { + newDict[key] = null; + } + } else if (value && value.constructor === Object) { // check if "dictionary" + newDict[key] = dictEmptyValToNull(value); + } + } + return newDict; +}