diff --git a/src/Components/Request/IdentifySigner.vue b/src/Components/Request/IdentifySigner.vue index e6aab31fd8..695962fa29 100644 --- a/src/Components/Request/IdentifySigner.vue +++ b/src/Components/Request/IdentifySigner.vue @@ -223,7 +223,7 @@ export default { }) try { - await this.filesStore.saveWithVisibleElements({ visibleElements: [] }) + await this.filesStore.saveOrUpdateSignatureRequest({}) } catch (error) { console.error('Error saving signer:', error) } diff --git a/src/Components/Request/VisibleElements.vue b/src/Components/Request/VisibleElements.vue index b7db33aee0..62734950a6 100644 --- a/src/Components/Request/VisibleElements.vue +++ b/src/Components/Request/VisibleElements.vue @@ -432,7 +432,7 @@ export default { const visibleElements = this.buildVisibleElements() try { - const response = await this.filesStore.saveWithVisibleElements({ visibleElements }) + const response = await this.filesStore.saveOrUpdateSignatureRequest({ visibleElements }) showSuccess(t('libresign', response.message)) this.closeModal() this.loading = false diff --git a/src/Components/RightSidebar/RequestSignatureTab.vue b/src/Components/RightSidebar/RequestSignatureTab.vue index d41e2febc1..56a68c895c 100644 --- a/src/Components/RightSidebar/RequestSignatureTab.vue +++ b/src/Components/RightSidebar/RequestSignatureTab.vue @@ -624,8 +624,7 @@ export default { this.debouncedSave = debounce(async () => { try { const file = this.filesStore.getFile() - await this.filesStore.saveWithVisibleElements({ - visibleElements: [], + await this.filesStore.saveOrUpdateSignatureRequest({ signatureFlow: file?.signatureFlow, }) } catch (error) { @@ -874,9 +873,9 @@ export default { } return s }) - await this.filesStore.updateSignatureRequest({ - visibleElements: [], + await this.filesStore.saveOrUpdateSignatureRequest({ signers, + status: 1, }) showSuccess(t('libresign', 'Signature requested')) this.showConfirmRequestSigner = false @@ -910,7 +909,7 @@ export default { async save() { this.hasLoading = true try { - await this.filesStore.saveWithVisibleElements({ visibleElements: [] }) + await this.filesStore.saveOrUpdateSignatureRequest({}) emit('libresign:show-visible-elements') } catch (error) { if (error.response?.data?.ocs?.data?.message) { @@ -927,7 +926,7 @@ export default { async confirmRequest() { this.hasLoading = true try { - const response = await this.filesStore.updateSignatureRequest({ visibleElements: [], status: 1 }) + const response = await this.filesStore.saveOrUpdateSignatureRequest({ status: 1 }) showSuccess(t('libresign', response.message)) this.showConfirmRequest = false } catch (error) { diff --git a/src/store/files.js b/src/store/files.js index 55226b6a6b..4bfa1a373c 100644 --- a/src/store/files.js +++ b/src/store/files.js @@ -509,81 +509,7 @@ export const useFilesStore = function(...args) { filesSorted() { return this.ordered.map(key => this.files[key]) }, - async saveWithVisibleElements({ visibleElements = [], signers = null, uuid = null, fileId = null, signatureFlow = null }) { - const file = this.getFile() - - let flowValue = signatureFlow || file.signatureFlow - if (typeof flowValue === 'number') { - const flowMap = { 0: 'none', 1: 'parallel', 2: 'ordered_numeric' } - flowValue = flowMap[flowValue] || 'parallel' - } - - const config = { - url: generateOcsUrl('/apps/libresign/api/v1/request-signature'), - method: uuid || file.uuid ? 'patch' : 'post', - data: { - name: file?.name, - users: signers || file.signers || [], - visibleElements, - status: 0, - signatureFlow: flowValue, - }, - } - - if (uuid || file.uuid) { - config.data.uuid = uuid || file.uuid - } else if (file.id) { - config.data.file = { fileId: file.id } - } else if (file.files) { - config.data.files = file.files - } else if (!isNaN(file.nodeId)) { - config.data.file = { nodeId: file.nodeId } - } - - if (file.settings) { - if (config.data.file) { - config.data.file.settings = file.settings - } else if (config.data.files) { - config.data.settings = file.settings - } - } - - const { data } = await axios(config) - const responseFile = data?.ocs?.data - - if (file.nodeType === 'envelope' && typeof file.nodeId === 'string' && responseFile.nodeId !== file.nodeId) { - delete this.files[file.nodeId] - const index = this.ordered.indexOf(file.nodeId) - if (index !== -1) { - this.ordered.splice(index, 1) - } - } - - if (responseFile.nodeId) { - const nodeId = responseFile.nodeId - const existingFile = this.files[file.nodeId] || this.files[nodeId] - if (existingFile?.settings) { - responseFile.settings = { ...existingFile.settings, ...responseFile.settings } - } - set(this.files, nodeId, responseFile) - this.addUniqueIdentifierToAllSigners(this.files[nodeId].signers) - if (!this.ordered.includes(nodeId)) { - this.ordered.push(nodeId) - } - if (this.selectedNodeId === file.nodeId) { - this.selectedNodeId = nodeId - } - } else { - this.addFile(responseFile) - } - const eventName = (!uuid && !file.uuid) ? 'libresign:file:created' : 'libresign:file:updated' - emit(eventName, { - path: responseFile.settings?.path, - nodeId: responseFile.nodeId, - }) - return data.ocs.data - }, - async updateSignatureRequest({ visibleElements = [], signers = null, uuid = null, fileId = null, status = 1, signatureFlow = null }) { + async saveOrUpdateSignatureRequest({ visibleElements = [], signers = null, uuid = null, fileId = null, status = 0, signatureFlow = null } = {}) { const file = this.getFile() let flowValue = signatureFlow || file.signatureFlow @@ -621,6 +547,7 @@ export const useFilesStore = function(...args) { config.data.settings = file.settings } } + const { data } = await axios(config) const responseFile = data?.ocs?.data