From 40ab0a48d8c6c921b754d17609ae5ab92896207c Mon Sep 17 00:00:00 2001
From: Adam Procter <adamprocter@researchnot.es>
Date: Fri, 10 Apr 2020 16:58:45 +0100
Subject: [PATCH] added list view version 0.000001

added a simple list view you can turn on and off. Shows just your list for now and doesnt hide node (spatial view ) yet
---
 app/src/components/ControlsLayer.vue | 13 ++++-----
 app/src/components/ListLayer.vue     | 40 ++++++++++++++++++++++++++++
 app/src/components/NodesLayer.vue    |  1 +
 app/src/views/Home.vue               | 22 +++++++++++++--
 app/src/views/NotFound.vue           |  2 ++
 5 files changed, 70 insertions(+), 8 deletions(-)
 create mode 100644 app/src/components/ListLayer.vue

diff --git a/app/src/components/ControlsLayer.vue b/app/src/components/ControlsLayer.vue
index b3f2b65..cb58d7b 100644
--- a/app/src/components/ControlsLayer.vue
+++ b/app/src/components/ControlsLayer.vue
@@ -1,12 +1,9 @@
 <template>
   <div class="controls">
     <div class="btn-row">
-      <BaseButton buttonClass="action" @click="addNode()"
-        >Create Node</BaseButton
-      >
-      <BaseButton buttonClass="action" @click="removeLocal()"
-        >Join another microcosm</BaseButton
-      >
+      <BaseButton buttonClass="action" @click="addNode()">Create Node</BaseButton>
+      <BaseButton buttonClass="action" @click="listView()">List View</BaseButton>
+      <BaseButton buttonClass="action" @click="removeLocal()">Join another microcosm</BaseButton>
       <!-- <BaseButton @click="exportStorage()">Export my contributions</BaseButton>
     <BaseButton buttonClass="danger" v-on:click="deleteClient">
       Delete my contributions (inc. attachments) permanently
@@ -49,6 +46,10 @@ export default {
     addNode() {
       this.$store.dispatch('addNode')
     },
+    listView() {
+      // FIXME: add action here to toggle visiblity
+      this.$emit('listView')
+    },
     exportStorage: function() {
       // Save local indexeddb document-store to JSON file
       // or export state.notes to JSON file
diff --git a/app/src/components/ListLayer.vue b/app/src/components/ListLayer.vue
new file mode 100644
index 0000000..7b6509a
--- /dev/null
+++ b/app/src/components/ListLayer.vue
@@ -0,0 +1,40 @@
+<template>
+  <div class="list">
+    <ul v-for="value in myNodes" v-bind:key="value.node_id">
+      <li
+        class="dataeach"
+        v-if="nodeid == value.node_id"
+        :inner-html.prop="value.node_text | marked"
+      ></li>
+    </ul>
+  </div>
+</template>
+
+<script>
+import { mapState } from 'vuex'
+import marked from 'marked'
+
+export default {
+  name: 'ListLayer',
+  props: {
+    nodeid: String,
+    nodetext: String
+  },
+
+  computed: mapState({
+    myNodes: state => state.myNodes,
+    otherNodes: state => state.otherNodes
+  }),
+
+  filters: {
+    // need to write a reverse data filter I suspect here so new data is at the top of list
+    marked: marked
+  }
+}
+</script>
+
+<style lang="css" scoped>
+li {
+  margin-bottom: -15px;
+}
+</style>
\ No newline at end of file
diff --git a/app/src/components/NodesLayer.vue b/app/src/components/NodesLayer.vue
index 9fe4d21..3fcadd9 100644
--- a/app/src/components/NodesLayer.vue
+++ b/app/src/components/NodesLayer.vue
@@ -35,6 +35,7 @@
               ></textarea>
             </div>
           </div>
+          <!-- FIXME: What is this doing below now ? Looks old -->
           <div v-else>
             <p :id="nodeid" :inner-html.prop="nodetext | marked">{{ nodeid }}</p>
           </div>
diff --git a/app/src/views/Home.vue b/app/src/views/Home.vue
index 5d8d2ea..2578261 100644
--- a/app/src/views/Home.vue
+++ b/app/src/views/Home.vue
@@ -15,8 +15,15 @@
         v-bind:nodeid="value.node_id"
         v-bind:nodetext="value.node_text"
       />
-
-      <ControlsLayer />
+      <div v-if="listview">
+        <ListLayer
+          v-for="value in myNodes"
+          v-bind:key="value.node_id"
+          v-bind:nodeid="value.node_id"
+          v-bind:nodetext="value.node_text"
+        />
+      </div>
+      <ControlsLayer @listView="listView()" />
     </div>
     <OnBoard v-else @clientAdded="clientAdded()" />
   </div>
@@ -27,6 +34,7 @@
 import OnBoard from '@/components/OnBoard.vue'
 import NodesLayer from '@/components/NodesLayer.vue'
 import OtherNodeslayer from '@/components/OtherNodeslayer.vue'
+import ListLayer from '@/components/ListLayer.vue'
 import ControlsLayer from '@/components/ControlsLayer.vue'
 
 import { mapState } from 'vuex'
@@ -57,6 +65,7 @@ export default {
   data: function() {
     return {
       clientset: false,
+      listview: false,
       offline: false
     }
   },
@@ -65,6 +74,7 @@ export default {
     OnBoard,
     NodesLayer,
     OtherNodeslayer,
+    ListLayer,
     ControlsLayer
   },
   computed: mapState({
@@ -86,6 +96,14 @@ export default {
       this.$store.dispatch('addNode')
     },
 
+    listView() {
+      if (this.listview == false) {
+        this.listview = true
+      } else {
+        this.listview = false
+      }
+    },
+
     offlineTriggered() {
       this.offline = true
     },
diff --git a/app/src/views/NotFound.vue b/app/src/views/NotFound.vue
index 00a987f..6f67de9 100644
--- a/app/src/views/NotFound.vue
+++ b/app/src/views/NotFound.vue
@@ -2,6 +2,8 @@
   <div>
     <h1>This is a Custom 404</h1>
     <p>Delightful one coming soon</p>
+
+    <!-- FIXME: Put stuffed Monkey here -->
   </div>
 </template>
 
-- 
GitLab