|
70 | 70 | </ToolBar> |
71 | 71 | <div ref="list"> |
72 | 72 | <EditList |
73 | | - v-model="selected" |
| 73 | + v-model="currentSelectedNodes" |
74 | 74 | :nodeIds="nodeIds" |
75 | 75 | @input="enableValidation(nodeIds);" |
76 | 76 | /> |
|
96 | 96 | <EditView |
97 | 97 | v-else |
98 | 98 | ref="editView" |
99 | | - :nodeIds="selected" |
| 99 | + :nodeIds="currentSelectedNodes" |
100 | 100 | :tab="tab" |
101 | 101 | /> |
102 | 102 | </VContent> |
|
123 | 123 | </VLayout> |
124 | 124 | </BottomBar> |
125 | 125 | <InheritAncestorMetadataModal |
| 126 | + ref="inheritModal" |
126 | 127 | :parent="(createMode && detailNodeIds.length) ? parent : null" |
127 | 128 | @inherit="inheritMetadata" |
| 129 | + @updateActive="active => isInheritModalOpen = active" |
128 | 130 | /> |
129 | 131 | </VDialog> |
130 | 132 |
|
|
252 | 254 | listElevated: false, |
253 | 255 | storagePoll: null, |
254 | 256 | openTime: null, |
| 257 | + isInheritModalOpen: false, |
| 258 | + newNodeIds: [], |
255 | 259 | }; |
256 | 260 | }, |
257 | 261 | computed: { |
|
315 | 319 | invalidNodes() { |
316 | 320 | return this.nodeIds.filter(id => !this.getContentNodeIsValid(id)); |
317 | 321 | }, |
| 322 | + currentSelectedNodes: { |
| 323 | + get() { |
| 324 | + if (this.isInheritModalOpen && this.newNodeIds.length) { |
| 325 | + return this.newNodeIds; |
| 326 | + } |
| 327 | + return this.selected; |
| 328 | + }, |
| 329 | + set(value) { |
| 330 | + this.selected = value; |
| 331 | + }, |
| 332 | + }, |
318 | 333 | }, |
319 | 334 | beforeRouteEnter(to, from, next) { |
320 | 335 | if ( |
|
513 | 528 | this.selected = [newNodeId]; |
514 | 529 | }); |
515 | 530 | }, |
516 | | - createNodesFromUploads(fileUploads) { |
517 | | - fileUploads.forEach((file, index) => { |
518 | | - let title; |
519 | | - if (file.metadata.title) { |
520 | | - title = file.metadata.title; |
521 | | - } else { |
522 | | - title = file.original_filename |
523 | | - .split('.') |
524 | | - .slice(0, -1) |
525 | | - .join('.'); |
526 | | - } |
527 | | - this.createNode( |
528 | | - FormatPresets.has(file.preset) && FormatPresets.get(file.preset).kind_id, |
529 | | - { title, ...file.metadata } |
530 | | - ).then(newNodeId => { |
| 531 | + async createNodesFromUploads(fileUploads) { |
| 532 | + this.newNodeIds = await Promise.all( |
| 533 | + fileUploads.map(async (file, index) => { |
| 534 | + let title; |
| 535 | + if (file.metadata.title) { |
| 536 | + title = file.metadata.title; |
| 537 | + } else { |
| 538 | + title = file.original_filename |
| 539 | + .split('.') |
| 540 | + .slice(0, -1) |
| 541 | + .join('.'); |
| 542 | + } |
| 543 | + const newNodeId = await this.createNode( |
| 544 | + FormatPresets.has(file.preset) && FormatPresets.get(file.preset).kind_id, |
| 545 | + { title, ...file.metadata } |
| 546 | + ); |
531 | 547 | if (index === 0) { |
532 | 548 | this.selected = [newNodeId]; |
533 | 549 | } |
534 | 550 | this.updateFile({ |
535 | 551 | ...file, |
536 | 552 | contentnode: newNodeId, |
537 | 553 | }); |
538 | | - }); |
539 | | - }); |
| 554 | + return newNodeId; |
| 555 | + }) |
| 556 | + ); |
| 557 | + this.$refs.inheritModal?.resetClosed(); |
540 | 558 | }, |
541 | 559 | updateTitleForPage() { |
542 | 560 | this.updateTabTitle(this.$store.getters.appendChannelName(this.modalTitle)); |
|
547 | 565 | }); |
548 | 566 | }, |
549 | 567 | inheritMetadata(metadata) { |
550 | | - for (const nodeId of this.nodeIds) { |
| 568 | + for (const nodeId of this.currentSelectedNodes) { |
551 | 569 | this.updateContentNode({ id: nodeId, ...metadata, mergeMapFields: true }); |
552 | 570 | } |
553 | 571 | }, |
|
0 commit comments