diff --git a/src/pages/CscPagePbxDeviceDetails.vue b/src/pages/CscPagePbxDeviceDetails.vue index 7914e46b..5893f1b1 100644 --- a/src/pages/CscPagePbxDeviceDetails.vue +++ b/src/pages/CscPagePbxDeviceDetails.vue @@ -42,132 +42,136 @@ v-if="selectedTab === 'preferences'" class="col-12 column" > -
- + +
- - - - + + - - - - - - + + - - - - - - + + - - - - + + - - - + + - - - - - - - - - - - + + + + + + + + + + + +
@@ -374,12 +378,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) @@ -416,7 +425,8 @@ export default { methods: { ...mapMutations('pbxDevices', [ 'expandDevice', - 'expandDevicePreferences' + 'expandDevicePreferences', + 'collapseDevice' ]), ...mapActions('pbxDevices', [ 'setDeviceKeys', @@ -443,10 +453,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 @@ -462,18 +477,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 8785c620..0bb3e915 100644 --- a/src/pages/CscPagePbxDevices.vue +++ b/src/pages/CscPagePbxDevices.vue @@ -302,12 +302,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', [ @@ -323,7 +324,6 @@ export default { ]), ...mapActions('pbxDevices', [ 'loadDeviceList', - 'loadDevicePreferencesList', 'createDevice', 'removeDevice' ]),