TT#47518 Get alerted about invalid soundsets

Change-Id: Ia6c5e2e8b0e1aec80623c4b61fb73ab7a31931ca
changes/26/28326/9
Robert Axelsen 6 years ago
parent fa7f91faab
commit 35e9c8d4bf

@ -1,6 +1,7 @@
<template> <template>
<q-collapsible <q-collapsible
:label="groupLabel" :label="groupLabel"
:class="groupLabelClasses"
> >
<q-list <q-list
striped-odd striped-odd
@ -34,7 +35,8 @@
name: 'csc-pbx-sound-group', name: 'csc-pbx-sound-group',
props: { props: {
group: Object, group: Object,
groupLabel: String groupLabel: String,
invalidGroup: Boolean
}, },
components: { components: {
CscPbxSoundItem, CscPbxSoundItem,
@ -52,9 +54,14 @@
return { return {
} }
}, },
mounted() {
},
computed: { computed: {
groupLabelClasses() {
let classes = [];
if (this.invalidGroup) {
classes.push('csc-collapsible-label-warning');
}
return classes;
}
}, },
methods: { methods: {
}, },

@ -1,7 +1,7 @@
<template> <template>
<q-item <q-item
highlight highlight
class="csc-sound-item" :class="itemClasses"
> >
<q-item-main> <q-item-main>
<csc-sound-file-upload <csc-sound-file-upload
@ -16,6 +16,7 @@
:uploaded="file" :uploaded="file"
:disable="true" :disable="true"
@init="initSoundFileAudio" @init="initSoundFileAudio"
:invalid="isInvalid"
> >
<div <div
slot="additional" slot="additional"
@ -105,6 +106,16 @@
}, },
soundFileFormat() { soundFileFormat() {
return this.platform.mozilla ? 'ogg' : 'mp3'; return this.platform.mozilla ? 'ogg' : 'mp3';
},
isInvalid() {
return !this.file;
},
itemClasses() {
let classes = ['csc-sound-item'];
if(this.isInvalid) {
classes.push('csc-item-invalid');
}
return classes;
} }
}, },
methods: { methods: {

@ -90,6 +90,7 @@
</div> </div>
<csc-pbx-sound-group <csc-pbx-sound-group
v-for="(group, index) in set.groups" v-for="(group, index) in set.groups"
:invalid-group="invalidGroup(group)"
:group="group" :group="group"
:group-label="groupLabel(group.name)" :group-label="groupLabel(group.name)"
:key="index" :key="index"
@ -101,6 +102,17 @@
class="csc-list-actions-pinned" class="csc-list-actions-pinned"
> >
<q-item-tile> <q-item-tile>
<q-btn
v-if="invalid"
icon="info"
:big="mobile"
color="negative"
flat
>
<q-tooltip>
{{ tooltipLabel }}
</q-tooltip>
</q-btn>
<q-btn <q-btn
v-show="expanded" v-show="expanded"
icon="delete" icon="delete"
@ -140,7 +152,8 @@
QInput, QInput,
QInnerLoading, QInnerLoading,
QSpinnerMat, QSpinnerMat,
QToggle QToggle,
QTooltip
} from 'quasar-framework' } from 'quasar-framework'
import { import {
maxLength maxLength
@ -156,7 +169,9 @@
props: { props: {
set: Object, set: Object,
mobile: Boolean, mobile: Boolean,
loading: Boolean loading: Boolean,
invalid: Boolean,
invalidCount: Number
}, },
components: { components: {
CscPbxSoundGroup, CscPbxSoundGroup,
@ -170,7 +185,8 @@
QInput, QInput,
QInnerLoading, QInnerLoading,
QSpinnerMat, QSpinnerMat,
QToggle QToggle,
QTooltip
}, },
data () { data () {
return { return {
@ -338,6 +354,14 @@
else { else {
return this.set.description; return this.set.description;
} }
},
tooltipLabel() {
if (this.invalidCount === 1) {
return this.$t('pbxConfig.invalidFileTooltip', { amount: this.invalidCount });
}
else if (this.invalidCount > 1) {
return this.$t('pbxConfig.invalidFilesTooltip', { amount: this.invalidCount });
}
} }
}, },
methods: { methods: {
@ -383,6 +407,15 @@
else { else {
this.$emit('save-contract-default', this.setModel); this.$emit('save-contract-default', this.setModel);
} }
},
invalidGroup(group) {
let count = 0;
group.handles.forEach((handle) => {
if (handle.filename.length === 0) {
count++;
}
});
return count > 0;
} }
}, },
watch: { watch: {

@ -48,6 +48,8 @@
:key="set.id" :key="set.id"
:set="set" :set="set"
:mobile="isMobile" :mobile="isMobile"
:invalid="isSoundSetInvalid(set.id)"
:invalid-count="soundSetInvalidCount(set.id)"
@remove="removeSoundSetDialog" @remove="removeSoundSetDialog"
@save-name="saveSoundSetName" @save-name="saveSoundSetName"
@save-description="saveSoundSetDescription" @save-description="saveSoundSetDescription"
@ -119,7 +121,8 @@
'isListLoadingVisible', 'isListLoadingVisible',
'isAdding', 'isAdding',
'addState', 'addState',
'lastAddedSoundSet' 'lastAddedSoundSet',
'soundSetInvalidCount'
]), ]),
isMobile() { isMobile() {
return !!Platform.is.mobile; return !!Platform.is.mobile;
@ -130,7 +133,7 @@
set: this.currentRemovingSoundSet.name set: this.currentRemovingSoundSet.name
}); });
} }
} },
}, },
methods: { methods: {
removeSoundSetDialog(soundSet) { removeSoundSetDialog(soundSet) {
@ -166,6 +169,9 @@
}, },
addSoundSet(soundSet) { addSoundSet(soundSet) {
this.$store.dispatch('pbxConfig/createSoundSet', soundSet); this.$store.dispatch('pbxConfig/createSoundSet', soundSet);
},
isSoundSetInvalid(setId) {
return this.soundSetInvalidCount(setId) > 0;
} }
}, },
watch: { watch: {

@ -450,7 +450,9 @@
"loadFiles": "Load Files", "loadFiles": "Load Files",
"createSoundSet": "Create sound set", "createSoundSet": "Create sound set",
"addSoundSet": "Add Sound Set", "addSoundSet": "Add Sound Set",
"language": "Language" "language": "Language",
"invalidFileTooltip": "This sound set is incomplete ({amount} file is missing)",
"invalidFilesTooltip": "This sound set is incomplete ({amount} files are missing)"
}, },
"callBlocking": { "callBlocking": {
"privacyEnabledToast": "Your number is hidden to the callee", "privacyEnabledToast": "Your number is hidden to the callee",

@ -369,5 +369,21 @@ export default {
let regex = /[-_]/g; let regex = /[-_]/g;
return _.capitalize(name.replace(regex, ' ')); return _.capitalize(name.replace(regex, ' '));
} }
},
soundSetInvalidCount(state) {
return (id) => {
let count = 0;
let soundSet = _.get(state, 'soundSets', {})[id];
if (soundSet.hasOwnProperty('groups')) {
soundSet.groups.forEach((group) => {
group.handles.forEach((handle) => {
if (handle.filename.length === 0) {
count++;
}
})
});
}
return count;
}
} }
} }

@ -227,3 +227,9 @@ input.q-input-target
background alpha(white, 0.04) background alpha(white, 0.04)
.q-item-link:hover .q-item-link:hover
background alpha(white, 0.10) background alpha(white, 0.10)
.csc-collapsible-label-warning
.q-item-link
border-left .2rem solid $negative
.csc-item-invalid
border-bottom .2rem solid $negative

Loading…
Cancel
Save