diff --git a/src/pages/CscPagePbxDeviceDetails.vue b/src/pages/CscPagePbxDeviceDetails.vue index 564021e0..a38c50b0 100644 --- a/src/pages/CscPagePbxDeviceDetails.vue +++ b/src/pages/CscPagePbxDeviceDetails.vue @@ -42,132 +42,136 @@ v-if="selectedTab === 'preferences'" class="col-12 column" > -
- + +
- - - - + + - - - - - - + + - - - - - - + + - - - - + + - - - + + - - - - - - - - - - - + + + + + + + + + + + +
@@ -377,12 +381,17 @@ export default { $route: { async handler (to) { this.id = to.params.id + this.changes = null + this.collapseDevice() await this.getData(this.id) } }, deviceSelected () { this.changes = this.getDeviceData() }, + devicePreferencesSelected () { + this.changes = this.getDeviceData() + }, deviceUpdateState (state) { if (state === RequestState.succeeded) { showToast(this.getDeviceUpdateToastMessage) @@ -419,7 +428,8 @@ export default { methods: { ...mapMutations('pbxDevices', [ 'expandDevice', - 'expandDevicePreferences' + 'expandDevicePreferences', + 'collapseDevice' ]), ...mapActions('pbxDevices', [ 'setDeviceKeys', @@ -446,10 +456,15 @@ export default { await this.loadDevice(deviceId) } - const deviceProfileId = this.deviceMapById[deviceId].profile_id + const device = this.deviceMapById[deviceId] + if (!device) { + return + } + + const deviceProfileId = device.profile_id const deviceProfile = this.deviceProfileMap[deviceProfileId] - if (deviceProfile.device_id) { + if (deviceProfile && deviceProfile.device_id) { await this.loadDeviceModel({ type: 'all', deviceId: deviceProfile.device_id @@ -465,18 +480,20 @@ export default { this.loadSubscribers() }, getDeviceData () { - return (this.deviceSelected && this.devicePreferencesSelected) - ? { - station_name: this.deviceSelected.station_name, - identifier: this.deviceSelected.identifier, - profile_id: this.deviceSelected.profile_id, - admin_name: this.devicePreferencesSelected.admin_name ? this.devicePreferencesSelected.admin_name : undefined, - admin_pass: this.devicePreferencesSelected.admin_pass ? this.devicePreferencesSelected.admin_pass : undefined, - web_gui_dis: this.devicePreferencesSelected.web_gui_dis ? this.devicePreferencesSelected.web_gui_dis : false, - user_conf_priority: this.devicePreferencesSelected.user_conf_priority ? this.devicePreferencesSelected.user_conf_priority : false, - FW_upg_dis: this.devicePreferencesSelected.FW_upg_dis ? this.devicePreferencesSelected.FW_upg_dis : false - } - : null + if (!this.deviceSelected) { + return null + } + + return { + station_name: this.deviceSelected.station_name, + identifier: this.deviceSelected.identifier, + profile_id: this.deviceSelected.profile_id, + admin_name: this.devicePreferencesSelected?.admin_name || undefined, + admin_pass: this.devicePreferencesSelected?.admin_pass || undefined, + web_gui_dis: this.devicePreferencesSelected?.web_gui_dis || false, + user_conf_priority: this.devicePreferencesSelected?.user_conf_priority || false, + FW_upg_dis: this.devicePreferencesSelected?.FW_upg_dis || false + } }, resetStationName () { this.changes.station_name = this.deviceSelected?.station_name diff --git a/src/pages/CscPagePbxDevices.vue b/src/pages/CscPagePbxDevices.vue index cdc518c6..ac556d74 100644 --- a/src/pages/CscPagePbxDevices.vue +++ b/src/pages/CscPagePbxDevices.vue @@ -308,12 +308,13 @@ export default { } }, async created () { - await this.loadProfiles() + if (this.deviceProfileList.length === 0) { + await this.loadProfiles() + } }, mounted () { this.$scrollTo(this.$parent.$el) - this.loadDeviceListFiltered() - this.loadDevicePreferencesList() + this.loadDeviceListFiltered(this.deviceListCurrentPage || 1) }, methods: { ...mapActions('pbx', [ @@ -329,7 +330,6 @@ export default { ]), ...mapActions('pbxDevices', [ 'loadDeviceList', - 'loadDevicePreferencesList', 'createDevice', 'removeDevice' ]),