diff --git a/entries/static/entries/js/components/LexicalUnitDisplay.js b/entries/static/entries/js/components/LexicalUnitDisplay.js index 6905a4d674184df7dd9811b71025928f286f65ce..d2a3b9fa35ef1b2ab1c724478a10efab7deaab9d 100644 --- a/entries/static/entries/js/components/LexicalUnitDisplay.js +++ b/entries/static/entries/js/components/LexicalUnitDisplay.js @@ -11,8 +11,8 @@ export default { }, emits: ['refresh'], methods: { - goToEdit (unifiedFrameId) { - window.location = `/${lang}/entries/unification?unified_frame_id=${unifiedFrameId}`; + goToEdit (unifiedFrameId, entryId, lexicalUnitId) { + window.location = `/${lang}/entries/unification?unified_frame_id=${unifiedFrameId}&entry_id=${entryId}&lexical_unit_id=${lexicalUnitId}`; }, markAsInvalid () { $.ajax({ @@ -30,7 +30,7 @@ export default { timeout : 60000, success: function (response) { show_info('Rama została stworzona oraz przypisana użytkownikowi.'); - this.goToEdit(response.unified_frame_id); + this.goToEdit(response.unified_frame_id, this.entryId, this.lexicalUnitId); }.bind(this), error: function (request, errorType, errorMessage) { show_error(errorType + ' (' + errorMessage + ')'); @@ -102,7 +102,7 @@ export default { <a class="btn btn-sm btn-outline-dark mr-2" v-if="isReadyToProcess()" - @click="goToEdit(this.unifiedFrame.pk)" + @click="goToEdit(this.unifiedFrame.pk, this.entryId, this.lexicalUnitId)" > {{ isLeksykograf() ? gettext('Obrabiaj') : gettext('Sprawdź') }} </a> diff --git a/entries/static/entries/js/components/LexicalUnitEdit.js b/entries/static/entries/js/components/LexicalUnitEdit.js index 6a0aff4d4ebe0a36d543edda3c2d8ff6799ce3e2..cb838cfa17943a4fbdba1a8d4b7452cbe61e4d89 100644 --- a/entries/static/entries/js/components/LexicalUnitEdit.js +++ b/entries/static/entries/js/components/LexicalUnitEdit.js @@ -7,6 +7,7 @@ let LexicalUnitEdit = {}; const FramePreview = { props: { initialUnifiedFrameId: Number, + initialLexicalUnitId: Number, forceRefresh: Number }, data () { @@ -775,7 +776,7 @@ Object.assign(LexicalUnitEdit, { Split(['#semantics-frames-pane', '#semantics-schemata-pane'], { sizes: [40, 60], minSize: 400, - gutterSize: 4, + gutterSize: 2, elementStyle: (dimension, size, gutterSize) => { return { 'flex-basis': 'calc(' + size + '% - ' + gutterSize + 'px)' @@ -787,7 +788,7 @@ Object.assign(LexicalUnitEdit, { Split(['#semantics-unified-frame-pane', '#semantics-slowal-frames-pane'], { sizes: [60, 40], direction: 'vertical', - gutterSize: 4, + gutterSize: 2, }); if(this.unifiedFrameId) { diff --git a/entries/static/entries/js/components/Unification.js b/entries/static/entries/js/components/UnificationComponent.js similarity index 78% rename from entries/static/entries/js/components/Unification.js rename to entries/static/entries/js/components/UnificationComponent.js index b79487c515f6019e8b79668597dd22481167c7d2..4dafededbb7194c9504dd3adf43a6e85b19ac5f8 100644 --- a/entries/static/entries/js/components/Unification.js +++ b/entries/static/entries/js/components/UnificationComponent.js @@ -23,6 +23,14 @@ export default { this.unifiedFrameId = unifiedFrameId; }, }, + setup() { + const lexicalUnit = new URL(location.href).searchParams.get('lexical_unit_id'); + const entryId = new URL(location.href).searchParams.get('entry_id'); + return { + initialLexicalUnitId: parseInt(lexicalUnit), + initialEntryId: parseInt(entryId), + }; + }, mounted () { if (window.initialUnifiedFrameId) { setTimeout(() => { this.unifiedFrameSelected(window.initialUnifiedFrameId); }, 1000); @@ -32,6 +40,8 @@ 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 + :initialLexicalUnitId="initialLexicalUnitId" + :initialEntryId="initialEntryId" @lexical-unit-selected="lexicalUnitSelected" @unified-frame-selected="unifiedFrameSelected" /> diff --git a/entries/static/entries/js/components/UnificationEntriesForFramesList.js b/entries/static/entries/js/components/UnificationEntriesForFramesList.js index af93507523fd081cde6afe39afb0c847a8a459d5..ccf5cfdce47adcfd548a2e9fb1b25413a7110059 100644 --- a/entries/static/entries/js/components/UnificationEntriesForFramesList.js +++ b/entries/static/entries/js/components/UnificationEntriesForFramesList.js @@ -1,4 +1,8 @@ export default { + props: { + initialLexicalUnitId: Number, + initialEntryId: Number, + }, data () { return { gettext: window.gettext, @@ -9,7 +13,8 @@ export default { mounted () { setup_entries_for_frames_list({ table: this.$refs.table, - lexicalUnitSelected: (lexicalUnitUnifiedFrameId) => { this.$emit('unifiedFrameSelected', lexicalUnitUnifiedFrameId); } + lexicalUnitSelected: (lexicalUnitUnifiedFrameId) => { this.$emit('unifiedFrameSelected', lexicalUnitUnifiedFrameId); }, + selectEntryId: this.initialEntryId }); }, template: ` diff --git a/entries/static/entries/js/components/UnificationSwitchableList.js b/entries/static/entries/js/components/UnificationSwitchableList.js index 55529655dcf3abe687bb1f6a01a1b1ddb370c181..fdffc95ccbf289b81edd642b21feb1c7ce5ea140 100644 --- a/entries/static/entries/js/components/UnificationSwitchableList.js +++ b/entries/static/entries/js/components/UnificationSwitchableList.js @@ -3,6 +3,10 @@ import UnificationEntriesList from "./UnificationEntriesList.js"; import UnificationFramesList from "./UnificationFramesList.js"; export default { + props: { + initialLexicalUnitId: Number, + initialEntryId: Number, + }, data () { return { gettext: window.gettext, @@ -21,7 +25,7 @@ export default { 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 @unified-frame-selected="unifiedFrameSelected" /></div> + <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> ` }; diff --git a/entries/static/entries/js/entries.js b/entries/static/entries/js/entries.js index afb2f1155386f166c2783a79928ca130d7d8ce71..f02c81afdf364a407610a69920bf5c0468f6431b 100644 --- a/entries/static/entries/js/entries.js +++ b/entries/static/entries/js/entries.js @@ -986,11 +986,11 @@ function setup_datatable(options) { }, initComplete: function(settings, json) { // display the first entry once it’s loaded - if(options.selectFirst) { - $('.entry', options.element).first().click(); - } else if(options.selectEntryId) { + if (options.selectEntryId) { // display entry of a given id - $('.entry', options.element).filter((rec, b) => b.getAttribute('data-entry') === selectEntryId).click(); + $('.entry', options.element).filter((rec, b) => parseInt(b.getAttribute('data-entry')) === options.selectEntryId).click(); + } else if (options.selectFirst) { + $('.entry', options.element).first().click(); } }, language: { diff --git a/entries/static/entries/js/unification_entries_for_frames_list.js b/entries/static/entries/js/unification_entries_for_frames_list.js index 65a7ece2f51243414d4f45a4e7af1a684752e76f..85d88230d2b3fe2abc61cbf559a2940fb3017a72 100644 --- a/entries/static/entries/js/unification_entries_for_frames_list.js +++ b/entries/static/entries/js/unification_entries_for_frames_list.js @@ -21,7 +21,8 @@ function setup_entries_for_frames_list(options) { { render: data => (data && data.lexical_units && data.lexical_units.some(lu => lu.assignee_username !== null)) ? gettext("nie") : gettext("tak") }, can_see_assignees ? { data: 'assignee_username' } : { render: is_assigned_to_user_renderer }, ], - hidden_columns: can_see_assignees ? [2] : [2,3] + hidden_columns: can_see_assignees ? [2] : [2,3], + selectEntryId: options.selectEntryId, }); datatable.on('click', 'tr.entry', function () { var row = datatable.row(this); diff --git a/entries/static/entries/js/unification_index.js b/entries/static/entries/js/unification_index.js index 78c11b9663ee3ade39ac86430b1ef30856d55d46..e4a7344fca46be90695f573c19169d3b93fa824e 100644 --- a/entries/static/entries/js/unification_index.js +++ b/entries/static/entries/js/unification_index.js @@ -1,6 +1,7 @@ -import Unification from './components/Unification.js'; +import UnificationComponent from './components/UnificationComponent.js'; + const { createApp } = Vue; window.update_entries = function () {} -window.unificationLeftPaneApp = createApp(Unification).mount('#vue-app'); +window.unificationLeftPaneApp = createApp(UnificationComponent).mount('#vue-app');