diff --git a/src/views/Settings/SignatureFlow.vue b/src/views/Settings/SignatureFlow.vue index 720eecf6b..ec981e575 100644 --- a/src/views/Settings/SignatureFlow.vue +++ b/src/views/Settings/SignatureFlow.vue @@ -7,7 +7,26 @@ {{ errorMessage }} -
+ +
+ + {{ t('libresign', 'Set default signing order') }} + + + + + + + + + + +
+ +
- - - + + +
@@ -58,6 +77,7 @@ export default { data() { return { name: t('libresign', 'Signing order'), + enabled: false, selectedFlow: null, availableFlows: [ { @@ -75,6 +95,7 @@ export default { errorMessage: '', saved: false, showErrorIcon: false, + flowChanging: false, } }, async mounted() { @@ -83,25 +104,40 @@ export default { methods: { loadConfig() { try { - const mode = loadState('libresign', 'signature_flow', 'parallel') - - this.selectedFlow = this.availableFlows.find( - flow => flow.value === mode - ) + const mode = loadState('libresign', 'signature_flow', null) - if (!this.selectedFlow) { + if (mode === null || mode === '') { + this.enabled = false this.selectedFlow = this.availableFlows[0] + } else { + this.enabled = true + this.selectedFlow = this.availableFlows.find( + flow => flow.value === mode + ) + + if (!this.selectedFlow) { + this.selectedFlow = this.availableFlows[0] + } } } catch (error) { console.error('Error loading signature flow configuration:', error) this.errorMessage = t('libresign', 'Could not load configuration.') + this.enabled = false this.selectedFlow = this.availableFlows[0] } }, + onToggleChange(value) { + this.enabled = value + this.errorMessage = '' + this.showErrorIcon = false + this.flowChanging = false + this.saveConfig() + }, onFlowChange(value) { this.selectedFlow = this.availableFlows.find(flow => flow.value === value) this.errorMessage = '' this.showErrorIcon = false + this.flowChanging = true this.saveConfig() }, async saveConfig() { @@ -113,12 +149,14 @@ export default { try { const url = generateOcsUrl('apps/libresign/api/v1/admin/signature-flow/config') await axios.post(url, { - mode: this.selectedFlow?.value ?? 'parallel', + enabled: this.enabled, + mode: this.enabled ? (this.selectedFlow?.value ?? 'parallel') : null, }) this.saved = true setTimeout(() => { this.saved = false + this.flowChanging = false }, 3000) } catch (error) { console.error('Error saving signature flow configuration:', error) @@ -134,8 +172,27 @@ export default {