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'
]),