From 570cbca889072c3c1f2d97708b9efcf1baac549a Mon Sep 17 00:00:00 2001 From: Adam Procter <adamprocter@researchnot.es> Date: Thu, 4 Jun 2020 18:20:51 +0100 Subject: [PATCH] updated added readmode to state, added icon for iOS home screen. --- app/src/components/NodesLayer.vue | 116 ++++++++++++++++++------------ app/src/store/index.js | 42 ++++++----- app/src/views/Sandbox.vue | 2 +- 3 files changed, 94 insertions(+), 66 deletions(-) diff --git a/app/src/components/NodesLayer.vue b/app/src/components/NodesLayer.vue index cc367d5..ac547ba 100644 --- a/app/src/components/NodesLayer.vue +++ b/app/src/components/NodesLayer.vue @@ -1,23 +1,21 @@ <template> <div ref="nodes" class="node"> - <div v-for="(value, index) in configPositions" v-bind:key="index"> + <div v-for="(posvalue, index) in configPositions" v-bind:key="index"> <div v-if="toolmode == 'move'"> - <!-- make draggable false as we are panning around --> <vue-draggable-resizable class="innernode" - v-if="nodeid == value.node_id" - :w="value.width" - :h="value.height" - :x="value.x_pos" - :y="value.y_pos" - :z="value.z_index" + v-if="nodeid == posvalue.node_id" + :w="posvalue.width" + :h="posvalue.height" + :x="posvalue.x_pos" + :y="posvalue.y_pos" + :z="posvalue.z_index" :draggable="false" 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="value.readmode == false"> + <div v-if="posvalue.read_mode == false"> + <div v-for="value in myNodes" v-bind:key="value.node_id"> <textarea v-if="nodeid == value.node_id" @focus="editTrue(true)" @@ -31,11 +29,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> + <div v-if="posvalue.read_mode == true"> + <p :id="nodeid" :inner-html.prop="nodetext | marked"></p> + </div> + <h3>Reactions</h3> <div v-for="(emojis, index) in configEmoji" :key="index"> @@ -49,26 +47,38 @@ <BaseButton buttonClass="danger" @click="deleteFlag()" >Delete</BaseButton > - <BaseButton - class="read" - buttonClass="action" - @click="readFlag()" - >{{ mode }}</BaseButton - > + <div v-if="posvalue.read_mode == true"> + <BaseButton + class="read" + buttonClass="action" + @click="readFlag()" + >Edit + </BaseButton> + </div> + <div v-else> + <BaseButton + class="read" + buttonClass="action" + @click="readFlag()" + >Read</BaseButton + > + </div> </div> </form> </vue-draggable-resizable> </div> + <!-- Same code as above when in any other mode other than move so you can drag nodes--> + <div v-else> <vue-draggable-resizable class="innernode" - v-if="nodeid == value.node_id" - :w="value.width" - :h="value.height" - :x="value.x_pos" - :y="value.y_pos" - :z="value.z_index" + v-if="nodeid == posvalue.node_id" + :w="posvalue.width" + :h="posvalue.height" + :x="posvalue.x_pos" + :y="posvalue.y_pos" + :z="posvalue.z_index" @activated="onActivated" @dragging="onDrag" @resizing="onResize" @@ -78,8 +88,8 @@ style="background-color: rgb(205, 234, 255);" > <form> - <div v-for="value in myNodes" v-bind:key="value.node_id"> - <div v-if="value.readmode == false"> + <div v-if="posvalue.read_mode == false"> + <div v-for="value in myNodes" v-bind:key="value.node_id"> <textarea v-if="nodeid == value.node_id" @focus="editTrue(true)" @@ -93,15 +103,11 @@ 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> + <div v-if="posvalue.read_mode == true"> + <p :id="nodeid" :inner-html.prop="nodetext | marked"></p> + </div> + <h3>Reactions</h3> <div v-for="(emojis, index) in configEmoji" :key="index"> @@ -115,12 +121,22 @@ <BaseButton buttonClass="danger" @click="deleteFlag()" >Delete</BaseButton > - <BaseButton - class="read" - buttonClass="action" - @click="readFlag()" - >{{ mode }}</BaseButton - > + <div v-if="posvalue.read_mode == true"> + <BaseButton + class="read" + buttonClass="action" + @click="readFlag()" + >Edit + </BaseButton> + </div> + <div v-else> + <BaseButton + class="read" + buttonClass="action" + @click="readFlag()" + >Read</BaseButton + > + </div> </div> </form> </vue-draggable-resizable> @@ -143,14 +159,13 @@ export default { nodewidth: Number, nodeheight: Number, deleted: Boolean, - readmode: Boolean, }, data() { return { pickupz: 99, - // localreadmode: this.readmode, - mode: 'Read', + localreadmode: false, + mode: '', } }, @@ -261,7 +276,14 @@ export default { readFlag(e) { e = this.nodeid - if (readmode == true) { + 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' diff --git a/app/src/store/index.js b/app/src/store/index.js index 262211b..daf70c3 100644 --- a/app/src/store/index.js +++ b/app/src/store/index.js @@ -185,7 +185,6 @@ const store = new Vuex.Store({ content_type: 'sheet', // NOTE: first node is hidden due to no position deleted: true, - readmode: false, attachment_name: '', }, ], @@ -325,7 +324,6 @@ const store = new Vuex.Store({ node_owner: state.myclient, content_type: 'sheet', deleted: false, - readmode: false, attachment_name: e, }) } @@ -363,6 +361,7 @@ const store = new Vuex.Store({ width: 200, height: 275, z_index: 1, + read_mode: false, }) return pouchdb .put({ @@ -443,27 +442,29 @@ 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 + console.log(e.e) + for (i = 0; i < Object.keys(state.configPositions).length; i++) { + if (e.e == state.configPositions[i].node_id) { + state.configPositions[i].read_mode = e.readmode } } + pouchdb - .get(state.myclient) + .get(state.global_pos_name) .then(function (doc) { + // console.log(doc) // put the store into pouchdb return pouchdb.bulkDocs([ { - _id: state.myclient, + _id: state.global_pos_name, _rev: doc._rev, - _attachments: doc._attachments, - nodes: state.myNodes, + positions: state.configPositions, }, ]) }) .then(function () { - return pouchdb.get(state.myclient).then(function (doc) { - state.myNodes = doc.nodes + return pouchdb.get(state.global_pos_name).then(function (doc) { + state.configPositions = doc.positions }) }) .catch(function (err) { @@ -472,6 +473,7 @@ const store = new Vuex.Store({ } }) }, + GET_EMOJI(state) { console.log pouchdb @@ -528,7 +530,12 @@ const store = new Vuex.Store({ store.commit('GET_EMOJI') // turn on two-way, continuous, retriable sync pouchdb - .sync(remote, { live: true, retry: true, attachments: true }) + .sync(remote, { + live: true, + since: 'now', + retry: true, + attachments: true, + }) .on('change', function () { // pop info into function to find out more store.commit('GET_ALL_NODES') @@ -550,7 +557,6 @@ const store = new Vuex.Store({ }) .on('complete', function () { // handle complete - //console.log('complete') }) .on('error', function (err) { console.log(err) @@ -567,7 +573,10 @@ const store = new Vuex.Store({ movePos: ({ commit }, nodeid, xpos, ypos, width, height, zindex) => { commit('MOVE_POS', nodeid, xpos, ypos, width, height, zindex) }, - + readFlag: ({ commit }, e) => { + // var text = e.target.value + commit('READ_FLAG', e) + }, addNode: ({ commit }, e) => { commit('ADD_NODE', e) }, @@ -597,10 +606,7 @@ 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 00db019..67c9a5c 100644 --- a/app/src/views/Sandbox.vue +++ b/app/src/views/Sandbox.vue @@ -24,7 +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