TT#47517 Change sound item loop flag

Change-Id: Idca3bb1c14f7785b29de0cf961e5a78c6dec4714
changes/02/28402/8
Robert Axelsen 7 years ago
parent 7783fd2361
commit b691f24498

@ -843,3 +843,12 @@ export function abortPreviousSoundFileUpload(handle) {
resolve(); resolve();
}); });
} }
export function setSoundSetItemLoopplay(id, loopplay) {
let loopflag = !loopplay ? 'true' : 'false';
return patchReplace({
path: 'api/soundfiles/' + id,
fieldPath: 'loopplay',
value: loopflag
});
}

@ -13,9 +13,10 @@
:key="item.id" :key="item.id"
:item="item" :item="item"
:group="groupLabel" :group="groupLabel"
:updating="isRemoveFileRequesting(item.id)"
:set-id="setId" :set-id="setId"
:updating="isRemoveFileRequesting(item.id) || isToggleLoopplayRequesting(item.id)"
@remove-file="removeFile" @remove-file="removeFile"
@toggle-loop="toggleLoop"
/> />
</q-list> </q-list>
</q-collapsible> </q-collapsible>
@ -63,7 +64,8 @@
}, },
computed: { computed: {
...mapGetters('pbxConfig', [ ...mapGetters('pbxConfig', [
'isRemoveFileRequesting' 'isRemoveFileRequesting',
'isToggleLoopplayRequesting'
]), ]),
groupLabelClasses() { groupLabelClasses() {
let classes = []; let classes = [];
@ -76,6 +78,9 @@
methods: { methods: {
removeFile(item) { removeFile(item) {
this.$emit('remove-file', item); this.$emit('remove-file', item);
},
toggleLoop(item) {
this.$emit('toggle-loop', item)
} }
}, },
watch: { watch: {

@ -28,12 +28,13 @@
slot="additional" slot="additional"
> >
<q-toggle <q-toggle
v-if="file"
v-model="loop" v-model="loop"
unchecked-icon="loop"
checked-icon="loop" checked-icon="loop"
:disable="true" unchecked-icon="loop"
:class="loopClasses" :class="loopClasses"
:label="$t('pbxConfig.playingInLoop')" :label="$t('pbxConfig.playingInLoop')"
@change="toggleLoop"
/> />
<q-tooltip> <q-tooltip>
{{ loopTooltipLabel }} {{ loopTooltipLabel }}
@ -167,6 +168,9 @@
resetFile() { resetFile() {
this.$refs.uploadSoundFile.reset(); this.$refs.uploadSoundFile.reset();
this.$store.commit('pbxConfig/resetSoundFileProgress', this.item.handle); this.$store.commit('pbxConfig/resetSoundFileProgress', this.item.handle);
},
toggleLoop() {
this.$emit('toggle-loop', this.item)
} }
}, },
watch: { watch: {

@ -109,6 +109,7 @@
:set-id="set.id" :set-id="set.id"
:key="index" :key="index"
@remove-file="removeFile" @remove-file="removeFile"
@toggle-loop="toggleLoop"
/> />
</q-item-tile> </q-item-tile>
</q-item-main> </q-item-main>
@ -453,6 +454,14 @@
soundSet: this.setModel soundSet: this.setModel
}; };
this.$emit('remove-file', options); this.$emit('remove-file', options);
},
toggleLoop(item) {
let options = {
id: item.id,
loopplay: item.loopplay,
soundSet: this.setModel
};
this.$emit('toggle-loop', options);
} }
}, },
watch: { watch: {

@ -55,6 +55,7 @@
@save-description="saveSoundSetDescription" @save-description="saveSoundSetDescription"
@save-contract-default="saveContractDefault" @save-contract-default="saveContractDefault"
@remove-file="removeSoundFileDialog" @remove-file="removeSoundFileDialog"
@toggle-loop="toggleLoop"
/> />
</q-list> </q-list>
<div <div
@ -194,6 +195,9 @@
}, },
removeFile() { removeFile() {
this.$store.dispatch('pbxConfig/removeSoundFile', this.currentRemovingSoundFile); this.$store.dispatch('pbxConfig/removeSoundFile', this.currentRemovingSoundFile);
},
toggleLoop(item) {
this.$store.dispatch('pbxConfig/setLoopplay', item);
} }
}, },
watch: { watch: {

@ -49,7 +49,8 @@ import {
createSoundSet, createSoundSet,
removeSoundFile, removeSoundFile,
uploadSoundFile, uploadSoundFile,
abortPreviousSoundFileUpload abortPreviousSoundFileUpload,
setSoundSetItemLoopplay
} from '../../api/pbx-config' } from '../../api/pbx-config'
export default { export default {
@ -569,8 +570,8 @@ export default {
context.commit('listSoundSetsSucceeded', data); context.commit('listSoundSetsSucceeded', data);
return data; return data;
}).then((sets) => { }).then((sets) => {
sets.items.forEach((set) => { sets.items.forEach((soundSet) => {
context.dispatch('loadFilesForSoundSet', set.id); context.dispatch('loadFilesForSoundSet', soundSet.id);
}); });
}).catch((err) => { }).catch((err) => {
context.commit('listSoundSetsFailed', err.message) context.commit('listSoundSetsFailed', err.message)
@ -603,48 +604,48 @@ export default {
context.commit('removeItemFailed', err.message); context.commit('removeItemFailed', err.message);
}); });
}, },
saveSoundSetName(context, set) { saveSoundSetName(context, soundSet) {
context.commit('updateItemRequesting', set); context.commit('updateItemRequesting', soundSet);
context.commit('lastUpdatedField', {name: set.name, type: 'sound set name'}); context.commit('lastUpdatedField', {name: soundSet.name, type: 'sound set name'});
setSoundSetName(set.id, set.name).then(() => { setSoundSetName(soundSet.id, soundSet.name).then(() => {
return context.dispatch('reloadSoundSet', set); return context.dispatch('reloadSoundSet', soundSet);
}).then(() => { }).then(() => {
context.commit('updateItemSucceeded'); context.commit('updateItemSucceeded');
}).catch((err) => { }).catch((err) => {
context.commit('updateItemFailed', err.message); context.commit('updateItemFailed', err.message);
}); });
}, },
saveSoundSetDescription(context, set) { saveSoundSetDescription(context, soundSet) {
context.commit('updateItemRequesting', set); context.commit('updateItemRequesting', soundSet);
context.commit('lastUpdatedField', {name: set.description, type: 'sound set description'}); context.commit('lastUpdatedField', {name: soundSet.description, type: 'sound set description'});
setSoundSetDescription(set.id, set.description).then(() => { setSoundSetDescription(soundSet.id, soundSet.description).then(() => {
return context.dispatch('reloadSoundSet', set); return context.dispatch('reloadSoundSet', soundSet);
}).then(() => { }).then(() => {
context.commit('updateItemSucceeded'); context.commit('updateItemSucceeded');
}).catch((err) => { }).catch((err) => {
context.commit('updateItemFailed', err.message); context.commit('updateItemFailed', err.message);
}); });
}, },
saveContractDefault(context, set) { saveContractDefault(context, soundSet) {
let defaultName = set.contract_default ? 'on' : 'off'; let defaultName = soundSet.contract_default ? 'on' : 'off';
context.commit('updateItemRequesting', set); context.commit('updateItemRequesting', soundSet);
context.commit('lastUpdatedField', {name: defaultName, type: 'default for subscribers'}); context.commit('lastUpdatedField', {name: defaultName, type: 'default for subscribers'});
setSoundSetContractDefault(set.id, set.contract_default).then(() => { setSoundSetContractDefault(soundSet.id, soundSet.contract_default).then(() => {
return context.dispatch('reloadSoundSet', set); return context.dispatch('reloadSoundSet', soundSet);
}).then(() => { }).then(() => {
context.commit('updateItemSucceeded'); context.commit('updateItemSucceeded');
}).catch((err) => { }).catch((err) => {
context.commit('updateItemFailed', err.message); context.commit('updateItemFailed', err.message);
}); });
}, },
reloadSoundSet(context, set) { reloadSoundSet(context, soundSet) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
context.commit('soundSetReloading', set); context.commit('soundSetReloading', soundSet);
getSoundSetWithFiles(set.id).then(($set) => { getSoundSetWithFiles(soundSet.id).then(($soundSet) => {
context.commit('soundSetReloaded', $set); context.commit('soundSetReloaded', $soundSet);
}).catch((err)=>{ }).catch((err)=>{
context.commit('soundSetReloadingFailed', { context.commit('soundSetReloadingFailed', {
set: set, set: soundSet,
error: err.message error: err.message
}); });
}).then(() => { }).then(() => {
@ -702,5 +703,17 @@ export default {
}, },
abortPreviousSoundFileUpload(state, handle) { abortPreviousSoundFileUpload(state, handle) {
abortPreviousSoundFileUpload(handle); abortPreviousSoundFileUpload(handle);
},
setLoopplay(context, options) {
let loopName = options.loopplay ? 'off' : 'on';
context.commit('updateItemRequesting', options.id);
context.commit('lastUpdatedField', {name: loopName, type: 'playing in loop'});
setSoundSetItemLoopplay(options.id, options.loopplay).then(() => {
return context.dispatch('reloadSoundSet', options.soundSet);
}).then(() => {
context.commit('updateItemSucceeded');
}).catch((err) => {
context.commit('updateItemFailed', err.message);
});
} }
} }

@ -390,7 +390,12 @@ export default {
}, },
isRemoveFileRequesting(state) { isRemoveFileRequesting(state) {
return (id) => { return (id) => {
return id ? state.removeItem === id : false; return state.removeState === 'requesting' && id ? state.removeItem === id : false;
}
},
isToggleLoopplayRequesting(state) {
return (id) => {
return state.updateState === 'requesting' && id ? state.updateItem === id : false;
} }
}, },
uploadSoundFileRequesting(state) { uploadSoundFileRequesting(state) {

Loading…
Cancel
Save