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

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

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

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

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

Loading…
Cancel
Save