From e8e009bde05a75369e0ce50727e927871ea0454a Mon Sep 17 00:00:00 2001
From: dcz2 <dcz@ipipan.waw.pl>
Date: Fri, 1 Jul 2022 21:31:12 +0200
Subject: [PATCH] Redirection from the display to the edit page

---
 .../entries/js/components/LexicalUnitDisplay.js       | 11 +++++++----
 entries/static/entries/js/components/Unification.js   | 10 ++++++++--
 .../entries/js/components/UnificationRightPane.js     |  6 ------
 entries/static/entries/js/entries.js                  |  2 +-
 entries/templates/unification.html                    |  8 ++++++++
 entries/views.py                                      |  1 +
 6 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/entries/static/entries/js/components/LexicalUnitDisplay.js b/entries/static/entries/js/components/LexicalUnitDisplay.js
index da0ec6b..6905a4d 100644
--- a/entries/static/entries/js/components/LexicalUnitDisplay.js
+++ b/entries/static/entries/js/components/LexicalUnitDisplay.js
@@ -9,8 +9,11 @@ export default {
   data() {
     return { frame: null, unifiedFrame: undefined, gettext: window.gettext, hasPermission: window.has_permission }
   },
-  emits: ['goToEdit', 'refresh'],
+  emits: ['refresh'],
   methods: {
+    goToEdit (unifiedFrameId) {
+      window.location = `/${lang}/entries/unification?unified_frame_id=${unifiedFrameId}`;
+    },
     markAsInvalid () {
       $.ajax({
         type: 'post',
@@ -27,7 +30,7 @@ export default {
         timeout  : 60000,
         success: function (response) {
           show_info('Rama została stworzona oraz przypisana użytkownikowi.');
-          this.$emit('goToEdit', response.unified_frame_id);
+          this.goToEdit(response.unified_frame_id);
         }.bind(this),
         error: function (request, errorType, errorMessage) {
           show_error(errorType + ' (' + errorMessage + ')');
@@ -99,14 +102,14 @@ export default {
           <a
             class="btn btn-sm btn-outline-dark mr-2"
             v-if="isReadyToProcess()"
-            @click="$emit('goToEdit', this.unifiedFrame.pk)"
+            @click="goToEdit(this.unifiedFrame.pk)"
           >
             {{ isLeksykograf() ? gettext('Obrabiaj') : gettext('Sprawdź') }}
           </a>
           <a
             class="btn btn-sm btn-outline-dark mr-2"
             v-if="frame?.status === 'S' && unifiedFrame?.status === 'S'"
-            @click="$emit('goToEdit', this.unifiedFrame.pk)"
+            @click="goToEdit(this.unifiedFrame.pk)"
           >
             {{ gettext('Obejrzyj') }}
           </a>
diff --git a/entries/static/entries/js/components/Unification.js b/entries/static/entries/js/components/Unification.js
index cf67c46..b79487c 100644
--- a/entries/static/entries/js/components/Unification.js
+++ b/entries/static/entries/js/components/Unification.js
@@ -19,8 +19,13 @@ export default {
       this.isEdit = false;
     },
     unifiedFrameSelected (unifiedFrameId) {
-      this.unifiedFrameId = unifiedFrameId;
       this.isEdit = true;
+      this.unifiedFrameId = unifiedFrameId;
+    },
+  },
+  mounted () {
+    if (window.initialUnifiedFrameId) {
+      setTimeout(() => { this.unifiedFrameSelected(window.initialUnifiedFrameId); }, 1000);
     }
   },
   template: `
@@ -37,7 +42,8 @@ export default {
           :entryId="entryId" 
           :lexicalUnitId="lexicalUnitId" 
           :initialUnifiedFrameId="unifiedFrameId"
-          :initialIsEdit="isEdit" />
+          :initialIsEdit="isEdit"
+        />
     </div>
   `
 };
diff --git a/entries/static/entries/js/components/UnificationRightPane.js b/entries/static/entries/js/components/UnificationRightPane.js
index fd35468..3e63504 100644
--- a/entries/static/entries/js/components/UnificationRightPane.js
+++ b/entries/static/entries/js/components/UnificationRightPane.js
@@ -22,11 +22,6 @@ export default {
         previewedUnifiedFrameId: null
       };
     },
-    goToEdit (unifiedFrameId) {
-      this.isEdit = true;
-      this.unifiedFrameId = unifiedFrameId;
-      this.previewedUnifiedFrameId = -1;
-    },
     goToDisplay () {
       this.isEdit = false;
       this.unifiedFrameId = null;
@@ -60,7 +55,6 @@ export default {
         :key="key"
         :entryId="entryIdLocal"
         :lexicalUnitId="key"
-        @go-to-edit="goToEdit"
         @refresh="refresh"
       />
       <lexical-unit-edit
diff --git a/entries/static/entries/js/entries.js b/entries/static/entries/js/entries.js
index 1bbaad7..afb2f11 100644
--- a/entries/static/entries/js/entries.js
+++ b/entries/static/entries/js/entries.js
@@ -1109,7 +1109,7 @@ $(document).ready(function() {
         },
     });
     
-    $('#semantics-top-pane').length && Split(['#semantics-top-pane', '#semantics-examples-pane'], {
+    $('#semantics-top-pane').length && $('#semantics-examples-pane').length && Split(['#semantics-top-pane', '#semantics-examples-pane'], {
         direction: 'vertical',
         sizes: [75, 25],
         gutterSize: 4,
diff --git a/entries/templates/unification.html b/entries/templates/unification.html
index 349d0b2..9bf5d2f 100644
--- a/entries/templates/unification.html
+++ b/entries/templates/unification.html
@@ -15,9 +15,17 @@
     <script src="{% static 'entries/js/selectional_preference.js' %}"></script>
     <script src="{% static 'entries/js/jquery-impromptu.min.js' %}"></script>
     <script src="https://unpkg.com/vue@3"></script>
+    <script>
+        window.initialUnifiedFrameId = {{ unified_frame_id|default:'null' }};
+    </script>
     <script type="module" src="{% static 'entries/js/unification_index.js' %}"></script>
 {% endblock %}
 
+{% block left_pane %}<div id="unification-left-pane"></div>{% endblock %}
+
+{% block right_pane %}{% include "unification_lexical_unit_display.html" %}{% endblock %}
+
+
 {% block content %}
     <div id="lexical-unit-notes-template" class="d-none">{% include 'notes.html' %}</div>
     <div id="vue-app" class="row h-100 m-0 p-0 bg-secondary"></div>
diff --git a/entries/views.py b/entries/views.py
index 8bafae5..d69fd47 100644
--- a/entries/views.py
+++ b/entries/views.py
@@ -76,6 +76,7 @@ def unification(request):
         request,
         'unification.html',
         {
+            'unified_frame_id': request.GET.get("unified_frame_id"),
             'entries_form' : EntryForm(),
             'frames_form': FrameFormFactory.get_form(as_subform=False),
             'schemata_form': SchemaFormFactory.get_form(as_subform=False)
-- 
GitLab