From bce6dbaafb1c55775fd9f0eb2d259aa539dc1cad Mon Sep 17 00:00:00 2001 From: Adam Procter <adamprocter@researchnot.es> Date: Wed, 3 Jun 2020 21:27:31 +0100 Subject: [PATCH] almost read mode in couchdb --- app/public/index.html | 1 + app/src/components/NodesLayer.vue | 54 ++++++++++++++++--------------- app/src/store/index.js | 40 +++++++++++++++++++++++ app/src/views/Sandbox.vue | 1 + 4 files changed, 70 insertions(+), 26 deletions(-) diff --git a/app/public/index.html b/app/public/index.html index 730b64f..41053a2 100644 --- a/app/public/index.html +++ b/app/public/index.html @@ -33,6 +33,7 @@ <meta property="twitter:creator" content="@nodenoggin" /> <link rel="icon" href="<%= BASE_URL %>favicon.ico" /> + <link rel="apple-touch-icon" href="<%= BASE_URL %>favicon.ico"> <title><%= htmlWebpackPlugin.options.title %></title> </head> diff --git a/app/src/components/NodesLayer.vue b/app/src/components/NodesLayer.vue index 5088fdd..cc367d5 100644 --- a/app/src/components/NodesLayer.vue +++ b/app/src/components/NodesLayer.vue @@ -15,9 +15,9 @@ style="background-color: rgb(205, 234, 255);" > <form> - <div v-if="readmode == false"> - <div v-for="value in myNodes" v-bind:key="value.node_id"> - <!-- <div v-if="readmode == false"> --> + <!-- <div v-if="readmode == false"> --> + <div v-for="value in myNodes" v-bind:key="value.node_id"> + <div v-if="value.readmode == false"> <textarea v-if="nodeid == value.node_id" @focus="editTrue(true)" @@ -31,14 +31,11 @@ placeholder="Idea goes here!" ></textarea> </div> + <!-- FIXME: What is this doing below now ? Looks old --> + <div v-else> + <p :id="nodeid" :inner-html.prop="nodetext | marked"></p> + </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> - <h3>Reactions</h3> <div v-for="(emojis, index) in configEmoji" :key="index"> @@ -81,9 +78,8 @@ style="background-color: rgb(205, 234, 255);" > <form> - <div v-if="readmode == false"> - <div v-for="value in myNodes" v-bind:key="value.node_id"> - <!-- <div v-if="readmode == false"> --> + <div v-for="value in myNodes" v-bind:key="value.node_id"> + <div v-if="value.readmode == false"> <textarea v-if="nodeid == value.node_id" @focus="editTrue(true)" @@ -97,14 +93,15 @@ placeholder="Idea goes here!" ></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> + <!-- </div> --> + <!-- FIXME: What is this doing below now ? Looks old --> + <div v-else> + <p :id="nodeid" :inner-html.prop="nodetext | marked"> + <!-- {{ nodeid }} --> + </p> + </div> + </div> <h3>Reactions</h3> <div v-for="(emojis, index) in configEmoji" :key="index"> @@ -135,6 +132,7 @@ <script> import { mapState } from 'vuex' import marked from 'marked' +var readmode export default { name: 'NodesLayer', @@ -145,12 +143,13 @@ export default { nodewidth: Number, nodeheight: Number, deleted: Boolean, + readmode: Boolean, }, data() { return { pickupz: 99, - readmode: false, + // localreadmode: this.readmode, mode: 'Read', } }, @@ -259,12 +258,16 @@ export default { e = this.nodeid this.$store.dispatch('deleteFlag', { e }) }, - readFlag() { - if (this.readmode == true) { - this.readmode = false + readFlag(e) { + e = this.nodeid + + if (readmode == true) { + readmode = false + this.$store.dispatch('readFlag', { e, readmode }) this.mode = 'Read' } else { - this.readmode = true + readmode = true + this.$store.dispatch('readFlag', { e, readmode }) this.mode = 'Edit' } }, @@ -278,7 +281,6 @@ export default { position: relative; } - .info { font-size: 0.8em; } diff --git a/app/src/store/index.js b/app/src/store/index.js index 520424d..262211b 100644 --- a/app/src/store/index.js +++ b/app/src/store/index.js @@ -36,6 +36,8 @@ var remote = microcosm + '/' +//var remotetwo = 'http://127.0.0.1:5984/' + console.log(remote) const store = new Vuex.Store({ state: { @@ -183,6 +185,7 @@ const store = new Vuex.Store({ content_type: 'sheet', // NOTE: first node is hidden due to no position deleted: true, + readmode: false, attachment_name: '', }, ], @@ -322,6 +325,7 @@ const store = new Vuex.Store({ node_owner: state.myclient, content_type: 'sheet', deleted: false, + readmode: false, attachment_name: e, }) } @@ -436,6 +440,38 @@ const store = new Vuex.Store({ } }) }, + + READ_FLAG(state, e) { + var i + for (i = 0; i < Object.keys(state.myNodes).length; i++) { + if (e.e == state.myNodes[i].node_id) { + state.myNodes[i].readmode = e.readmode + } + } + pouchdb + .get(state.myclient) + .then(function (doc) { + // put the store into pouchdb + return pouchdb.bulkDocs([ + { + _id: state.myclient, + _rev: doc._rev, + _attachments: doc._attachments, + nodes: state.myNodes, + }, + ]) + }) + .then(function () { + return pouchdb.get(state.myclient).then(function (doc) { + state.myNodes = doc.nodes + }) + }) + .catch(function (err) { + if (err.status == 404) { + // pouchdb.put({ }) + } + }) + }, GET_EMOJI(state) { console.log pouchdb @@ -561,6 +597,10 @@ const store = new Vuex.Store({ // var text = e.target.value commit('DELETE_FLAG', e) }, + readFlag: ({ commit }, e) => { + // var text = e.target.value + commit('READ_FLAG', e) + }, addEmoji: ({ commit }, { nodeid, emojitext }) => { commit('ADD_EMOJI', { nodeid, diff --git a/app/src/views/Sandbox.vue b/app/src/views/Sandbox.vue index 7b69b74..00db019 100644 --- a/app/src/views/Sandbox.vue +++ b/app/src/views/Sandbox.vue @@ -24,6 +24,7 @@ v-bind:key="value.node_id" v-bind:nodeid="value.node_id" v-bind:nodetext="value.node_text" + v-bind:readmode="value.readmode" /> </PanZoomContainer> <!-- <SelectionLayer -- GitLab