MT#63432 Add support for "label" definition in the Device provisioning

Allow setting a free-text label when configuring lines
(Forward, Transfer, SpeedDial) with a custom entry.
The label is only applied if a target number is set.

Change-Id: Ida316ac79d454145ae1238ca5d297bff28c92af7
master
Debora Crescenzo 2 months ago committed by Crescenzo Debora
parent 2afefb8048
commit 973b448fd1

@ -261,6 +261,7 @@ export default {
} else if (line !== null) { } else if (line !== null) {
_.set(lines, `${line.index}.subscriber_id`, newLine.subscriber_id) _.set(lines, `${line.index}.subscriber_id`, newLine.subscriber_id)
_.set(lines, `${line.index}.target_number`, newLine.target_number) _.set(lines, `${line.index}.target_number`, newLine.target_number)
_.set(lines, `${line.index}.label`, newLine.label)
_.set(lines, `${line.index}.type`, newLine.type) _.set(lines, `${line.index}.type`, newLine.type)
} else { } else {
newLines.push(newLine) newLines.push(newLine)
@ -272,7 +273,8 @@ export default {
subscriber_id: line.subscriber_id, subscriber_id: line.subscriber_id,
linerange: line.linerange, linerange: line.linerange,
type: line.type, type: line.type,
target_number: line.target_number target_number: line.target_number,
label: line.label
}) })
}) })
this.$emit('keysChanged', newLines) this.$emit('keysChanged', newLines)

@ -66,6 +66,17 @@
:label="$t('Number')" :label="$t('Number')"
@update:model-value="v$.changes.target_number.$touch()" @update:model-value="v$.changes.target_number.$touch()"
/> />
<csc-input
v-if="showCustomNumberToggle && hasTargetNumber"
v-model="changes.label"
:disable="loading"
clearable
dense
hide-bottom-space
hide-hint
:label="$t('Label')"
@update:model-value="v$.changes.label.$touch()"
/>
<csc-list-spinner <csc-list-spinner
v-if="loading" v-if="loading"
/> />
@ -86,7 +97,7 @@
{{ $t('Close') }} {{ $t('Close') }}
</q-btn> </q-btn>
<q-btn <q-btn
v-if="hasTypeChanged || hasSubscriberChanged || hasTargetNumberChanged" v-if="hasTypeChanged || hasSubscriberChanged || hasTargetNumberChanged || hasLabelChanged"
flat flat
icon="undo" icon="undo"
color="white" color="white"
@ -96,7 +107,7 @@
{{ $t('Reset') }} {{ $t('Reset') }}
</q-btn> </q-btn>
<q-btn <q-btn
v-if="hasTypeChanged || hasSubscriberChanged || hasTargetNumberChanged" v-if="hasTypeChanged || hasSubscriberChanged || hasTargetNumberChanged || hasLabelChanged"
:label="$t('Save')" :label="$t('Save')"
:disable="(v$.changes.$invalid && hasTargetNumber) || loading" :disable="(v$.changes.$invalid && hasTargetNumber) || loading"
flat flat
@ -162,6 +173,7 @@ export default {
keyData: this.getKeyData(), keyData: this.getKeyData(),
changes: this.getKeyData(), changes: this.getKeyData(),
hasTargetNumber: !!this.selectedLine?.target_number, hasTargetNumber: !!this.selectedLine?.target_number,
hasLabel: !!this.selectedLine?.label,
v$: useValidate() v$: useValidate()
} }
}, },
@ -178,6 +190,9 @@ export default {
hasTargetNumberChanged () { hasTargetNumberChanged () {
return this.keyData.target_number !== this.changes.target_number return this.keyData.target_number !== this.changes.target_number
}, },
hasLabelChanged () {
return this.keyData.label !== this.changes.label
},
subscriberOptions () { subscriberOptions () {
const options = [] const options = []
this.subscriberList.forEach((subscriber) => { this.subscriberList.forEach((subscriber) => {
@ -302,19 +317,22 @@ export default {
this.changes = this.getKeyData() this.changes = this.getKeyData()
this.keyData = this.getKeyData() this.keyData = this.getKeyData()
this.hasTargetNumber = !!this.selectedLine?.target_number this.hasTargetNumber = !!this.selectedLine?.target_number
this.hasLabel = !!this.selectedLine?.label
} }
}, },
methods: { methods: {
getKeyData () { getKeyData () {
if (this.selectedLine) { if (this.selectedLine) {
this.hasTargetNumber = !!this.selectedLine.target_number this.hasTargetNumber = !!this.selectedLine.target_number
this.hasLabel = !!this.selectedLine.label
return { return {
extension_unit: this.selectedLine.extension_unit, extension_unit: this.selectedLine.extension_unit,
key_num: this.selectedLine.key_num, key_num: this.selectedLine.key_num,
subscriber_id: this.selectedLine.subscriber_id, subscriber_id: this.selectedLine.subscriber_id,
linerange: this.selectedLine.linerange, linerange: this.selectedLine.linerange,
type: this.selectedLine.type, type: this.selectedLine.type,
target_number: this.selectedLine.target_number target_number: this.selectedLine.target_number,
label: this.selectedLine.label
} }
} }
return { return {
@ -323,7 +341,8 @@ export default {
subscriber_id: null, subscriber_id: null,
linerange: this.selectedKey.keySet.name, linerange: this.selectedKey.keySet.name,
type: null, type: null,
target_number: null target_number: null,
label: null
} }
}, },
closeKeyOverlay () { closeKeyOverlay () {
@ -337,11 +356,15 @@ export default {
if (this.changes.type === null) { if (this.changes.type === null) {
this.changes.subscriber_id = null this.changes.subscriber_id = null
this.changes.target_number = null this.changes.target_number = null
this.changes.label = null
this.hasTargetNumber = false this.hasTargetNumber = false
this.hasLabel = false
} }
if (!this.showCustomNumberToggle) { if (!this.showCustomNumberToggle) {
this.changes.target_number = null this.changes.target_number = null
this.changes.label = null
this.hasTargetNumber = false this.hasTargetNumber = false
this.hasLabel = false
} }
}, },
keySubscriberChanged ({ value: subscriberId }) { keySubscriberChanged ({ value: subscriberId }) {
@ -350,6 +373,7 @@ export default {
targetNumberToggleChanged () { targetNumberToggleChanged () {
if (!this.hasTargetNumber) { if (!this.hasTargetNumber) {
this.changes.target_number = null this.changes.target_number = null
this.changes.label = null
} else { } else {
const pbxPilot = this.subscriberList.find((subscriber) => subscriber.is_pbx_pilot) const pbxPilot = this.subscriberList.find((subscriber) => subscriber.is_pbx_pilot)
this.changes.subscriber_id = pbxPilot ? pbxPilot.id : this.subscriberList[0].id this.changes.subscriber_id = pbxPilot ? pbxPilot.id : this.subscriberList[0].id
@ -358,6 +382,7 @@ export default {
resetData () { resetData () {
this.changes = _.clone(this.keyData) this.changes = _.clone(this.keyData)
this.hasTargetNumber = !!this.selectedLine?.target_number this.hasTargetNumber = !!this.selectedLine?.target_number
this.hasLabel = !!this.selectedLine?.label
}, },
onSave () { onSave () {
this.$emit('onSave', this.changes) this.$emit('onSave', this.changes)

Loading…
Cancel
Save