From 3eeaaaad18fb00b3b61a7875bae103400a263978 Mon Sep 17 00:00:00 2001
From: dcz <dcz@ipipan.waw.pl>
Date: Thu, 30 Jun 2022 07:28:14 +0200
Subject: [PATCH] List element selection

---
 .../entries/js/components/LexicalUnitEdit.js  |  4 ++-
 .../js/components/UnificationRightPane.js     | 25 +++++++++++++------
 entries/static/entries/js/components/main.js  | 12 +++++++--
 3 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/entries/static/entries/js/components/LexicalUnitEdit.js b/entries/static/entries/js/components/LexicalUnitEdit.js
index c7e26ff..e84294f 100644
--- a/entries/static/entries/js/components/LexicalUnitEdit.js
+++ b/entries/static/entries/js/components/LexicalUnitEdit.js
@@ -721,7 +721,9 @@ Object.assign(LexicalUnitEdit, {
         },
       });
     }
-    this.loadFrame();
+    if(this.unifiedFrameId) {
+      this.loadFrame();
+    }
   },
   template: `
     <div class="col h-100 px-1 pt-0 pb-0 overflow-auto" id="semantics-frames-pane">
diff --git a/entries/static/entries/js/components/UnificationRightPane.js b/entries/static/entries/js/components/UnificationRightPane.js
index 0b3a52d..fd35468 100644
--- a/entries/static/entries/js/components/UnificationRightPane.js
+++ b/entries/static/entries/js/components/UnificationRightPane.js
@@ -6,6 +6,8 @@ export default {
   props: {
     entryId: Number,
     lexicalUnitId: Number,
+    initialUnifiedFrameId: Number,
+    initialIsEdit: false,
   },
   data () {
     return this.getInitialData();
@@ -13,9 +15,10 @@ export default {
   methods: {
     getInitialData () {
       return {
-        isEdit: false,
+        isEdit: this.initialIsEdit,
         key: this.lexicalUnitId,
-        unifiedFrameId: null,
+        entryIdLocal: this.entryId,
+        unifiedFrameId: this.initialUnifiedFrameId,
         previewedUnifiedFrameId: null
       };
     },
@@ -40,21 +43,29 @@ export default {
     }
   },
   watch: {
+    initialIsEdit () {
+      Object.assign(this, this.getInitialData());
+    },
     lexicalUnitId () {
       Object.assign(this, this.getInitialData());
+    },
+    initialUnifiedFrameId () {
+      Object.assign(this, this.getInitialData());
     }
   },
   template: `
-    <div v-if="key" :key="key" class="row h-100 m-0 p-0 overflow-auto" id="semantics-top-pane">
+    <div v-if="key || unifiedFrameId" :key="(key, entryIdLocal, unifiedFrameId, isEdit)" class="row h-100 m-0 p-0 overflow-auto" id="semantics-top-pane">
       <lexical-unit-display
-        v-if="lexicalUnitId && !isEdit"
-        :entryId="entryId"
-        :lexicalUnitId="lexicalUnitId"
+        v-if="key && !isEdit"
+        :key="key"
+        :entryId="entryIdLocal"
+        :lexicalUnitId="key"
         @go-to-edit="goToEdit"
         @refresh="refresh"
       />
       <lexical-unit-edit
-        v-if="isEdit"
+        v-if="unifiedFrameId && isEdit"
+        :key="unifiedFrameId"
         :readOnly="false"
         :unifiedFrameId="unifiedFrameId"
         :previewedUnifiedFrameId="previewedUnifiedFrameId"
diff --git a/entries/static/entries/js/components/main.js b/entries/static/entries/js/components/main.js
index 5804914..6b4387b 100644
--- a/entries/static/entries/js/components/main.js
+++ b/entries/static/entries/js/components/main.js
@@ -6,6 +6,8 @@ export default {
     return {
       entryId: null,
       lexicalUnitId: null,
+      unifiedFrameId: null,
+      isEdit: false
     };
   },
   components: {UnificationSwitchableList, UnificationRightPane},
@@ -13,9 +15,11 @@ export default {
     lexicalUnitSelected (entryId, lexicalUnitId) {
       this.entryId = entryId;
       this.lexicalUnitId = lexicalUnitId;
+      this.isEdit = false;
     },
     unifiedFrameSelected (unifiedFrameId) {
-      alert("Wybrano ramÄ™ " + unifiedFrameId);
+      this.unifiedFrameId = unifiedFrameId;
+      this.isEdit = true;
     }
   },
   template: `
@@ -28,7 +32,11 @@ export default {
         </div>
     </div>
     <div id="entry-display" class="col h-100 p-0">
-        <unification-right-pane :entryId="entryId" :lexicalUnitId="lexicalUnitId" />
+        <unification-right-pane 
+          :entryId="entryId" 
+          :lexicalUnitId="lexicalUnitId" 
+          :initialUnifiedFrameId="unifiedFrameId"
+          :initialIsEdit="isEdit" />
     </div>
   `
 };
-- 
GitLab