add documents editor
This commit is contained in:
@@ -320,6 +320,7 @@
|
||||
@replace="onDocumentReplace"
|
||||
@up="moveDocument(item, -1)"
|
||||
@reorder="reorderFields"
|
||||
@edit="editModalDocumentUuid = item.attachment_uuid"
|
||||
@down="moveDocument(item, 1)"
|
||||
@change="save"
|
||||
/>
|
||||
@@ -685,6 +686,17 @@
|
||||
@close="isRevisionsModalOpen = false"
|
||||
@apply="onRevisionApply"
|
||||
/>
|
||||
<DocumentsEditorModal
|
||||
v-if="editModalDocumentUuid"
|
||||
:template="template"
|
||||
:authenticity-token="authenticityToken"
|
||||
:accept-file-types="acceptFileTypes"
|
||||
:base-url="baseUrl"
|
||||
:page-preview-format="pagePreviewFormat"
|
||||
:scroll-to-attachment-uuid="editModalDocumentUuid"
|
||||
@saved="onDocumentsModified"
|
||||
@close="editModalDocumentUuid = null"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -704,6 +716,7 @@ import DocumentControls from './controls'
|
||||
import MobileFields from './mobile_fields'
|
||||
import FieldSubmitter from './field_submitter'
|
||||
import RevisionsModal from './revisions_modal'
|
||||
import DocumentsEditorModal from './documents_editor_modal'
|
||||
import { IconPlus, IconUsersPlus, IconDeviceFloppy, IconChevronDown, IconEye, IconWritingSign, IconInnerShadowTop, IconInfoCircle, IconAdjustments, IconDownload, IconHistory, IconX } from '@tabler/icons-vue'
|
||||
import { v4 } from 'uuid'
|
||||
import { ref, computed, toRaw, defineAsyncComponent } from 'vue'
|
||||
@@ -747,7 +760,8 @@ export default {
|
||||
IconHistory,
|
||||
IconDeviceFloppy,
|
||||
IconX,
|
||||
RevisionsModal
|
||||
RevisionsModal,
|
||||
DocumentsEditorModal
|
||||
},
|
||||
provide () {
|
||||
return {
|
||||
@@ -1103,6 +1117,7 @@ export default {
|
||||
isDragFile: false,
|
||||
isMathLoaded: false,
|
||||
isRevisionsModalOpen: false,
|
||||
editModalDocumentUuid: null,
|
||||
revisions: [],
|
||||
beforeRevisionSnapshot: null,
|
||||
zoomLevel: 1
|
||||
@@ -1678,7 +1693,7 @@ export default {
|
||||
|
||||
ref.x = e.clientX - ref.offsetX
|
||||
ref.y = e.clientY - ref.offsetY
|
||||
} else if (e.dataTransfer?.types?.includes('Files')) {
|
||||
} else if (e.dataTransfer?.types?.includes('Files') && !this.editModalDocumentUuid) {
|
||||
this.isDragFile = true
|
||||
}
|
||||
},
|
||||
@@ -2121,6 +2136,10 @@ export default {
|
||||
}
|
||||
},
|
||||
onKeyDown (event) {
|
||||
if (this.editModalDocumentUuid) {
|
||||
return
|
||||
}
|
||||
|
||||
if (event.key === 'Tab' && document.activeElement === document.body) {
|
||||
event.stopImmediatePropagation()
|
||||
event.preventDefault()
|
||||
@@ -3139,6 +3158,22 @@ export default {
|
||||
onDocumentsReplaceAndTemplateClone (template) {
|
||||
window.Turbo.visit(`/templates/${template.id}/edit`)
|
||||
},
|
||||
onDocumentsModified (data) {
|
||||
this.template.schema = data.schema
|
||||
this.template.fields = data.fields
|
||||
this.template.submitters = data.submitters
|
||||
this.template.documents = data.documents
|
||||
|
||||
this.selectedAreasRef.value = []
|
||||
|
||||
if (!this.template.submitters.find((s) => s.uuid === this.selectedSubmitter?.uuid)) {
|
||||
this.selectedSubmitter = this.template.submitters[0]
|
||||
}
|
||||
|
||||
this.editModalDocumentUuid = null
|
||||
|
||||
this.save()
|
||||
},
|
||||
moveDocument (item, direction) {
|
||||
const currentIndex = this.template.schema.indexOf(item)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user