diff --git a/entries/static/entries/js/components/Entries.js b/entries/static/entries/js/components/Entries.js index 27ef80b26788ccf636c8063e2ce4ffbc67b03f07..336a0e4bbf6f01b8bb9ba9d20453bab8da4f9a76 100644 --- a/entries/static/entries/js/components/Entries.js +++ b/entries/static/entries/js/components/Entries.js @@ -47,7 +47,11 @@ export default { template: ` <div id="entries-list" class="col h-100 w-100 px-0"> <div id="entries-list-div" class="col p-0 h-100 w-100 overflow-auto"> - <unification-entries-list :unificationEntriesListRefreshKey="unificationEntriesListRefreshKey" :initialLexicalUnitId="lexicalUnitId" :initialEntryId="entryId" @lexical-unit-selected="lexicalUnitSelected" /> + <unification-entries-list + :unificationEntriesListRefreshKey="unificationEntriesListRefreshKey" + :initialLexicalUnitId="lexicalUnitId" + :initialEntryId="entryId" + @lexical-unit-selected="lexicalUnitSelected" /> </div> </div> <div id="entry-display" class="col h-100 p-0"> diff --git a/entries/static/entries/js/components/LexicalUnitDisplay.js b/entries/static/entries/js/components/LexicalUnitDisplay.js index f1b37ae961460fe7f2cc2472728627952e956c3b..f64ba1ad52a57ea1c60f03b2c1d742e3516f1095 100644 --- a/entries/static/entries/js/components/LexicalUnitDisplay.js +++ b/entries/static/entries/js/components/LexicalUnitDisplay.js @@ -9,7 +9,7 @@ export default { data() { return { frame: null, unifiedFrame: undefined, gettext: window.gettext, hasPermission: window.has_permission } }, - emits: ['refresh', "refreshEntriesList"], + emits: ['refresh', 'refreshEntriesList'], methods: { goToEdit (unifiedFrameId, entryId, lexicalUnitId) { window.location = `/${lang}/entries/unification?unified_frame_id=${unifiedFrameId}&entry_id=${entryId}&lexical_unit_id=${lexicalUnitId}`; diff --git a/entries/static/entries/js/components/LexicalUnitEdit.js b/entries/static/entries/js/components/LexicalUnitEdit.js index 16a36422623d59e22e9b8c7b4bf7bbce0995bb00..cc4ad98b963a4cdbf06dc068e12fe540530198ca 100644 --- a/entries/static/entries/js/components/LexicalUnitEdit.js +++ b/entries/static/entries/js/components/LexicalUnitEdit.js @@ -16,13 +16,16 @@ const FramePreview = { }; }, components: {LexicalUnitEdit, UnificationSwitchableList}, - emits: ['changeFrame', 'changePreviewToEdit'], + emits: ['changeFrame', 'changePreviewToEdit', 'refreshEntriesList'], methods: { changePreviewToEditLocal (unifiedFrameId) { this.$emit('changePreviewToEdit', unifiedFrameId); }, unifiedFrameSelected (unifiedFrameId) { this.$emit('changeFrame', unifiedFrameId); + }, + refreshEntriesList() { + this.$emit('refreshEntriesList') } }, mounted () { @@ -46,6 +49,7 @@ const FramePreview = { :unifiedFrameId="unifiedFrameId" :forceRefresh="forceRefresh" @change-preview-to-edit="changePreviewToEditLocal" + @refresh-entries-list="refreshEntriesList" /> <div v-else class="h-100"> Brak ramy do wyświetlenia @@ -93,7 +97,7 @@ Object.assign(LexicalUnitEdit, { } }, components: {InfoTooltip, Spinner, FramePreview}, - emits: ['goToDisplay', 'refresh', 'swapFrames', 'changePreviewToEdit'], + emits: ['goToDisplay', 'refresh', 'swapFrames', 'changePreviewToEdit', 'refreshEntriesList'], watch: { forceRefresh(newVal, oldVal) { this.loadFrame(); @@ -666,6 +670,7 @@ Object.assign(LexicalUnitEdit, { timeout: 60000, success: function (response) { show_info('Status ramy został zmieniony'); + this.$emit('refreshEntriesList'); this.loadFrame(); }.bind(this), error: function (request, errorType, errorMessage) { diff --git a/entries/static/entries/js/components/UnificationComponent.js b/entries/static/entries/js/components/UnificationComponent.js index 29f9c7978abd799210bf0b4882252db99654635f..2915477fd5cc280f9a10a03c7fa2239650ec97f5 100644 --- a/entries/static/entries/js/components/UnificationComponent.js +++ b/entries/static/entries/js/components/UnificationComponent.js @@ -9,6 +9,7 @@ export default { unifiedFrameId: null, isEdit: false, gettext: window.gettext, + unificationEntriesListRefreshKey: 1, }; }, components: {UnificationSwitchableList, UnificationRightPane}, @@ -22,6 +23,9 @@ export default { this.isEdit = true; this.unifiedFrameId = unifiedFrameId; }, + refreshEntriesList() { + this.unificationEntriesListRefreshKey++; + } }, setup() { const lexicalUnit = new URL(location.href).searchParams.get('lexical_unit_id'); @@ -50,6 +54,7 @@ export default { <div id="entries-list" class="col h-100 w-100 px-0"> <div id="entries-list-div" class="col p-0 h-100 w-100 overflow-auto"> <unification-switchable-list + :unificationEntriesListRefreshKey="unificationEntriesListRefreshKey" :initialLexicalUnitId="initialLexicalUnitId" :initialEntryId="initialEntryId" @lexical-unit-selected="lexicalUnitSelected" @@ -63,6 +68,7 @@ export default { :lexicalUnitId="lexicalUnitId" :initialUnifiedFrameId="unifiedFrameId" :initialIsEdit="isEdit" + @refresh-entries-list="refreshEntriesList" /> </div> ` diff --git a/entries/static/entries/js/components/UnificationEntriesForFramesList.js b/entries/static/entries/js/components/UnificationEntriesForFramesList.js index ccf5cfdce47adcfd548a2e9fb1b25413a7110059..9b062f051be613c4b3e505c17170db12cad3784c 100644 --- a/entries/static/entries/js/components/UnificationEntriesForFramesList.js +++ b/entries/static/entries/js/components/UnificationEntriesForFramesList.js @@ -2,6 +2,7 @@ export default { props: { initialLexicalUnitId: Number, initialEntryId: Number, + unificationEntriesListRefreshKey: Number, }, data () { return { @@ -9,6 +10,17 @@ export default { canViewAssignment: has_permission("users.view_assignment") } }, + watch: { + unificationEntriesListRefreshKey() { + // TODO: reload data and click in selected row + // this.datatableObject.ajax.reload(); + setup_entries_for_frames_list({ + table: this.$refs.table, + lexicalUnitSelected: (lexicalUnitUnifiedFrameId) => { this.$emit('unifiedFrameSelected', lexicalUnitUnifiedFrameId); }, + selectEntryId: this.initialEntryId + }); + } + }, emits: ['unifiedFrameSelected'], mounted () { setup_entries_for_frames_list({ diff --git a/entries/static/entries/js/components/UnificationRightPane.js b/entries/static/entries/js/components/UnificationRightPane.js index 30ea24bfefd74ba2d5579e79486b8db91dea34c8..8982f5d874dd3a60bd1c00b9b125f51a8154e791 100644 --- a/entries/static/entries/js/components/UnificationRightPane.js +++ b/entries/static/entries/js/components/UnificationRightPane.js @@ -70,6 +70,7 @@ export default { :initialRightPaneTab="unifiedFrameId !== previewedUnifiedFrameId ? 'frame_preview' : null" @go-to-display="goToDisplay" @swap-frames="swapFrames" + @refresh-entries-list="refreshEntriesList" /> </div> ` diff --git a/entries/static/entries/js/components/UnificationSwitchableList.js b/entries/static/entries/js/components/UnificationSwitchableList.js index fdffc95ccbf289b81edd642b21feb1c7ce5ea140..170daf2cae94eaabc022edd81ae99c6168b37957 100644 --- a/entries/static/entries/js/components/UnificationSwitchableList.js +++ b/entries/static/entries/js/components/UnificationSwitchableList.js @@ -6,6 +6,7 @@ export default { props: { initialLexicalUnitId: Number, initialEntryId: Number, + unificationEntriesListRefreshKey: Number, }, data () { return { @@ -13,19 +14,27 @@ export default { isFrameView: false } }, - emits: ['lexicalUnitSelected', 'unifiedFrameSelected'], + emits: ['lexicalUnitSelected', 'unifiedFrameSelected', 'refreshEntriesList'], methods: { lexicalUnitSelected (entryId, lexicalUnitId) { this.$emit('lexicalUnitSelected', entryId, lexicalUnitId); }, unifiedFrameSelected (unifiedFrameId) { this.$emit('unifiedFrameSelected', unifiedFrameId); - } + }, }, components: {UnificationEntriesList, UnificationEntriesForFramesList, UnificationFramesList}, template: ` <label class="float-left mt-2"><input type="checkbox" v-model="isFrameView" /> {{ gettext('RAMY') }}</label> - <div v-if="!isFrameView"><unification-entries-for-frames-list :initialLexicalUnitId="initialLexicalUnitId" :initialEntryId="initialEntryId" @unified-frame-selected="unifiedFrameSelected" /></div> - <div v-else><unification-frames-list @unified-frame-selected="unifiedFrameSelected" /></div> + <div v-if="!isFrameView"><unification-entries-for-frames-list + :unificationEntriesListRefreshKey="unificationEntriesListRefreshKey" + :initialLexicalUnitId="initialLexicalUnitId" + :initialEntryId="initialEntryId" + @unified-frame-selected="unifiedFrameSelected" + /></div> + <div v-else><unification-frames-list + :unificationEntriesListRefreshKey="unificationEntriesListRefreshKey" + @unified-frame-selected="unifiedFrameSelected" + /></div> ` };