From 9608a3f60e623a3ea8e6b2e412061a64ba155157 Mon Sep 17 00:00:00 2001
From: Adam Procter <adamprocter@researchnot.es>
Date: Mon, 2 Nov 2020 17:35:24 +0000
Subject: [PATCH] naming updated and fix to shortcuts

---
 CHANGELOG.md                             |  28 +++--
 app/package.json                         |   2 +-
 app/src/components/CardsLayer.vue        | 135 +++++++++++++++--------
 app/src/components/ModesCard.vue         |  21 +++-
 app/src/router/index.js                  |   4 +-
 app/src/store/index.js                   |   1 +
 app/src/views/Cards.vue                  |   5 +
 app/src/views/List.vue                   |   4 +-
 app/src/views/{Home.vue => Organise.vue} |   2 +
 9 files changed, 136 insertions(+), 66 deletions(-)
 rename app/src/views/{Home.vue => Organise.vue} (99%)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 12809a9..f2f870a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,21 @@
+# 0.1.32
+
+_30th October 2020_
+
+### Added
+
+- Read Mode in Cards view for your nodes now
+
+### Fixed
+
+- Put back in place the quick switching so your device name is not wiped unless you say so, regression that I missed !
+- missing markdown guide link in collect view explainer card
+- fixed so shortcuts now work all the time
+
+### Known Issue
+
+- If you are in a microcosm and use URL scheme to create a new microcosm the data will not refresh until you create a new node or switch routes.
+
 # 0.1.31
 
 _30th October 2020_
@@ -17,11 +35,6 @@ _30th October 2020_
 - Duplicate key issue for welcome node
 - iOS router based blank screen issue
 
-### Known Issues
-
-- Shortcuts don't start working until you have touched in and out of a textarea
-- If you are in a microcosm and use URL scheme to create a new microcosm the data will not refresh until you create a new node or switch routes.
-
 # 0.1.30
 
 _23rd October 2020_
@@ -30,11 +43,6 @@ _23rd October 2020_
 
 - Deployed a work around for switching between pre-made microcosms.
 
-### Known Issues
-
-- If you are in a microcosm and use URL scheme to create a new microcosm the data will not refresh until you create a new node or switch routes.
-- iOS router
-
 # 0.1.29
 
 _16th October 2020_
diff --git a/app/package.json b/app/package.json
index 050d047..a711882 100644
--- a/app/package.json
+++ b/app/package.json
@@ -1,6 +1,6 @@
 {
   "name": "nodenogg.in",
-  "version": "0.1.31",
+  "version": "0.1.32",
   "private": true,
   "scripts": {
     "serve": "vue-cli-service serve",
diff --git a/app/src/components/CardsLayer.vue b/app/src/components/CardsLayer.vue
index c74ab29..1b2c7b1 100644
--- a/app/src/components/CardsLayer.vue
+++ b/app/src/components/CardsLayer.vue
@@ -1,60 +1,76 @@
 <template>
   <div>
-    <div v-if="deleted == false">
-      <form class="nodes">
-        <div v-for="value in $options.myArray" v-bind:key="value.node_id">
-          <textarea
-            v-if="nodeid == value.node_id"
-            @focus="editTrue(true)"
-            @blur="editTrue(false)"
-            autofocus
-            v-model="value.node_text"
-            @input="editNode"
-            :id="value.node_id"
-            ref="nodetext"
-            placeholder="Idea goes here!"
-          ></textarea>
-        </div>
-
-        <div class="allemoji">
-          <div
-            class="eachemoji"
-            v-for="(emojis, index) in configEmoji"
-            :key="index"
-          >
-            <p v-if="nodeid == emojis.node_id">
-              {{ emojis.emoji_text }}
-            </p>
+    <div v-for="(value, index) in configPositions" v-bind:key="index">
+      <div v-if="nodeid == value.node_id && deleted == false">
+        <form class="nodes">
+          <div v-if="value.read_mode == false">
+            <div v-for="value in $options.myArray" v-bind:key="value.node_id">
+              <textarea
+                v-if="nodeid == value.node_id"
+                @focus="editTrue(true)"
+                @blur="editTrue(false)"
+                autofocus
+                v-model="value.node_text"
+                @input="editNode"
+                :id="nodeid"
+                ref="nodetext"
+                placeholder="Idea goes here!"
+              ></textarea>
+            </div>
           </div>
-        </div>
-        <p class="info">*markdown supported &amp; autosaves</p>
-        <div class="btn-row">
-          <BaseButton buttonClass="danger" @click="deleteFlag()"
-            >Discard</BaseButton
-          >
-        </div>
-      </form>
+          <div v-if="value.read_mode && deleted == false">
+            <p
+              class="readmode"
+              :id="nodeid"
+              :inner-html.prop="nodetext | marked"
+            ></p>
+          </div>
+          <div class="allemoji">
+            <div
+              class="eachemoji"
+              v-for="(emojis, index) in configEmoji"
+              :key="index"
+            >
+              <p v-if="nodeid == emojis.node_id">
+                {{ emojis.emoji_text }}
+              </p>
+            </div>
+          </div>
+          <p class="info">*markdown supported &amp; autosaves</p>
+          <div class="btn-row">
+            <BaseButton buttonClass="danger" @click="deleteFlag()"
+              >Discard</BaseButton
+            >
+            <div v-if="value.read_mode == true && deleted == false">
+              <BaseButton class="read" buttonClass="action" @click="readFlag()"
+                >Edit Mode
+              </BaseButton>
+            </div>
+            <div v-else>
+              <BaseButton class="read" buttonClass="action" @click="readFlag()"
+                >Read Mode</BaseButton
+              >
+            </div>
+          </div>
+        </form>
+      </div>
     </div>
   </div>
 </template>
 
 <script>
 import { mapState } from 'vuex'
-//var readmode
+import marked from 'marked'
+var readmode
+
 export default {
   name: 'CardsLayer',
 
-  // data: function () {
-  //   return {}
-  // },
-
-  // watch: {
-  //   currentFocus(val) {
-  //     if (val) {
-  //       val.$el.focus()
-  //     }
-  //   },
-  // },
+  data: function () {
+    return {
+      localreadmode: false,
+    }
+  },
 
   props: {
     nodeid: String,
@@ -62,6 +78,10 @@ export default {
     deleted: Boolean,
   },
 
+  filters: {
+    marked: marked,
+  },
+
   computed: mapState({
     myNodes: (state) => state.myNodes,
     configPositions: (state) => state.configPositions,
@@ -93,6 +113,26 @@ export default {
         // nothing happens
       }
     },
+    readFlag(e) {
+      e = this.nodeid
+
+      var i
+      for (i = 0; i < Object.keys(this.configPositions).length; i++) {
+        if (this.configPositions[i].node_id == this.nodeid) {
+          this.localreadmode = this.configPositions[i].read_mode
+        }
+      }
+
+      if (this.localreadmode == true) {
+        readmode = false
+        this.$store.dispatch('readFlag', { e, readmode })
+        this.mode = 'Read'
+      } else {
+        readmode = true
+        this.$store.dispatch('readFlag', { e, readmode })
+        this.mode = 'Edit'
+      }
+    },
     // setFocus() {
     //   this.$refs.nodetext.focus()
     // },
@@ -113,6 +153,11 @@ h2 {
   margin-left: 1em;
 }
 
+.readmode {
+  margin-top: 1em;
+  margin-left: 1em;
+}
+
 textarea {
   width: 90%;
   height: 175px;
diff --git a/app/src/components/ModesCard.vue b/app/src/components/ModesCard.vue
index bb96ae8..27cf1d5 100644
--- a/app/src/components/ModesCard.vue
+++ b/app/src/components/ModesCard.vue
@@ -31,9 +31,12 @@
         (shortcut <strong>n</strong>)
       </p>
       <p>
-        Don't forget you can use <a href="#">markdown</a> to quickly format your
-        text and add images from websources, you can even use html and embed
-        codes.
+        Don't forget you can use
+        <a href="https://guides.github.com/features/mastering-markdown/"
+          >markdown</a
+        >
+        to quickly format your text and add images from websources, you can even
+        use html and embed codes.
       </p>
       <p>
         To see what everyone else has collected in your team and to start
@@ -50,6 +53,7 @@
 
 <script>
 import marked from 'marked'
+import { mapState } from 'vuex'
 
 export default {
   data: function () {
@@ -58,17 +62,22 @@ export default {
     }
   },
 
-  mounted() {},
+  mounted() {
+    // this.tipsplease = this.hidetipsstate
+  },
   filters: {
     marked: marked,
   },
 
+  computed: mapState({
+    hidetipsstate: (state) => state.hidetipsstate,
+  }),
+
   methods: {
     hideTips() {
       this.tipsplease = false
+      //  this.hidetipsstate = false
     },
-
-    
   },
 }
 </script>
diff --git a/app/src/router/index.js b/app/src/router/index.js
index af73514..8489e75 100644
--- a/app/src/router/index.js
+++ b/app/src/router/index.js
@@ -1,7 +1,7 @@
 import Vue from 'vue'
 import VueRouter from 'vue-router'
 import List from '../views/List.vue'
-import Home from '../views/Home.vue'
+import Organise from '../views/Organise.vue'
 import Cards from '../views/Cards.vue'
 import Discarded from '../views/Discarded.vue'
 import Leave from '../views/Leave.vue'
@@ -22,7 +22,7 @@ export const routes = [
   {
     path: '/organise',
     name: 'Organise',
-    component: Home,
+    component: Organise,
   },
 
   {
diff --git a/app/src/store/index.js b/app/src/store/index.js
index 773cc60..05a22ee 100644
--- a/app/src/store/index.js
+++ b/app/src/store/index.js
@@ -42,6 +42,7 @@ var remote =
 const store = new Vuex.Store({
   state: {
     shortcutstate: false,
+    hidetipsstate: true,
     //  connectionstate: false,
     version: process.env.VUE_APP_VERSION,
     localnodeid: '',
diff --git a/app/src/views/Cards.vue b/app/src/views/Cards.vue
index cf55886..d4c19f1 100644
--- a/app/src/views/Cards.vue
+++ b/app/src/views/Cards.vue
@@ -101,6 +101,11 @@ export default {
     }
   },
 
+  mounted() {
+    var e = false
+    this.$store.dispatch('shortcutState', e)
+  },
+
   methods: {
     clientAdded() {
       this.clientset = !this.clientset
diff --git a/app/src/views/List.vue b/app/src/views/List.vue
index f4ee762..a690eb4 100644
--- a/app/src/views/List.vue
+++ b/app/src/views/List.vue
@@ -36,7 +36,6 @@
               <line class="c" x2="41" transform="translate(1406.5 884.5)" />
               <line class="c" y2="41" transform="translate(1426.5 863.5)" />
             </g>
-            
           </svg>
 
           <BaseButton class="new" buttonClass="action" @click="uploadAdded()"
@@ -104,7 +103,8 @@ export default {
   },
 
   mounted() {
-    // this.shortcutstate = false
+    var e = false
+    this.$store.dispatch('shortcutState', e)
   },
 
   beforeDestroy() {
diff --git a/app/src/views/Home.vue b/app/src/views/Organise.vue
similarity index 99%
rename from app/src/views/Home.vue
rename to app/src/views/Organise.vue
index ab3c016..89a9361 100644
--- a/app/src/views/Home.vue
+++ b/app/src/views/Organise.vue
@@ -162,8 +162,10 @@ export default {
     }),
   },
   mounted() {
+    var e = false
     window.addEventListener('resize', this.handleResize)
     this.handleResize()
+    this.$store.dispatch('shortcutState', e)
   },
 
   created() {
-- 
GitLab