Skip to content
Snippets Groups Projects
Commit a5c68b50 authored by Adam Procter's avatar Adam Procter
Browse files

starting to add exit and offline

parent a9c9a135
No related branches found
No related tags found
No related merge requests found
...@@ -15,11 +15,16 @@ ...@@ -15,11 +15,16 @@
</template> </template>
<script> <script>
var serverUrl = 'https://nodenogg.in'
import { mapState, mapGetters } from 'vuex' import { mapState, mapGetters } from 'vuex'
import * as allModes from '@/experimental/modes' import * as allModes from '@/experimental/modes'
export default { export default {
mounted() {
window.addEventListener('online', this.handleConnection)
window.addEventListener('offline', this.handleConnection)
},
computed: { computed: {
...mapState({ ...mapState({
mode: (state) => state.ui.mode, mode: (state) => state.ui.mode,
...@@ -34,6 +39,50 @@ export default { ...@@ -34,6 +39,50 @@ export default {
}, },
isActive(mode) { isActive(mode) {
return this.mode === mode.name return this.mode === mode.name
// if (mode.name == 'exit') {
// console.log('exit')
// }
},
removeLocal: function () {
localStorage.removeItem('myNNClient')
localStorage.removeItem('mylastMicrocosm')
location.assign(
process.env.VUE_APP_HTTP + '://' + process.env.VUE_APP_URL + '/'
)
},
handleConnection: function () {
var ref = this
if (navigator.onLine) {
this.isReachable(this.getServerUrl()).then(function (online) {
if (online) {
// handle online status
console.log('online')
location.reload()
} else {
console.log('no connectivity')
}
})
} else {
// handle offline status
console.log('offline')
ref.$emit('offlineTriggered')
}
},
isReachable: function (url) {
return fetch(url, { method: 'HEAD', mode: 'no-cors' })
.then(function (resp) {
return resp && (resp.ok || resp.type === 'opaque')
})
.catch(function (err) {
console.warn('[conn test failure]:', err)
})
},
getServerUrl: function () {
return serverUrl || window.location.origin
}, },
}, },
data() { data() {
......
...@@ -63,3 +63,14 @@ export const upload = { ...@@ -63,3 +63,14 @@ export const upload = {
cursor: 'copy', cursor: 'copy',
shortcut: false, shortcut: false,
} }
export const exit = {
name: 'exit',
view: {
pan: false,
zoom: false,
},
icon: 'exit',
cursor: 'initial',
shortcut: false,
}
...@@ -11,19 +11,22 @@ ...@@ -11,19 +11,22 @@
v-bind:scale="scale" v-bind:scale="scale"
v-bind:translation="translation" v-bind:translation="translation"
> >
<OtherNodeslayer <div v-if="clientset">
v-for="value in otherNodes" <OtherNodeslayer
v-bind:key="value.node_id" v-for="value in otherNodes"
v-bind:nodeid="value.node_id" v-bind:key="value.node_id"
v-bind:nodetext="value.node_text" v-bind:nodeid="value.node_id"
/> v-bind:nodetext="value.node_text"
<NodesLayer />
@editTrue="(e) => editTrue(e)" <NodesLayer
v-for="value in myNodes" @editTrue="(e) => editTrue(e)"
v-bind:key="value.node_id" v-for="value in myNodes"
v-bind:nodeid="value.node_id" v-bind:key="value.node_id"
v-bind:nodetext="value.node_text" v-bind:nodeid="value.node_id"
/> v-bind:nodetext="value.node_text"
/>
</div>
<OnBoard v-else @clientAdded="clientAdded()" />
</PanZoomContainer> </PanZoomContainer>
<!-- <SelectionLayer <!-- <SelectionLayer
v-if="domContainerReady" v-if="domContainerReady"
...@@ -41,6 +44,7 @@ import PanZoomContainer from '@/experimental/PanZoomContainer' ...@@ -41,6 +44,7 @@ import PanZoomContainer from '@/experimental/PanZoomContainer'
import ConnectionsLayer from '@/experimental/layers/ConnectionsLayer' import ConnectionsLayer from '@/experimental/layers/ConnectionsLayer'
import NodesLayer from '@/components/NodesLayer' import NodesLayer from '@/components/NodesLayer'
import OtherNodeslayer from '@/components/OtherNodeslayer.vue' import OtherNodeslayer from '@/components/OtherNodeslayer.vue'
import OnBoard from '@/components/OnBoard.vue'
import ModeToolbar from '@/experimental/ModeToolbar' import ModeToolbar from '@/experimental/ModeToolbar'
import ViewToolbar from '@/experimental/ViewToolbar' import ViewToolbar from '@/experimental/ViewToolbar'
// import SelectionLayer from '@/experimental/layers/SelectionLayer' // import SelectionLayer from '@/experimental/layers/SelectionLayer'
...@@ -56,6 +60,9 @@ export default { ...@@ -56,6 +60,9 @@ export default {
elementHeight: undefined, elementHeight: undefined,
width: 2000, width: 2000,
height: 2000, height: 2000,
clientset: false,
listview: false,
offline: false,
} }
}, },
computed: { computed: {
...@@ -103,14 +110,27 @@ export default { ...@@ -103,14 +110,27 @@ export default {
this.elementHeight = offsetHeight this.elementHeight = offsetHeight
}, },
clientAdded() {
this.clientset = !this.clientset
},
editTrue(e) { editTrue(e) {
this.$store.dispatch('shortcutState', e) this.$store.dispatch('shortcutState', e)
}, },
// This is here to support the shortcuts // This is here to support the shortcuts
addNode() { addNode() {
this.$store.dispatch('addNode') this.$store.dispatch('addNode')
}, },
offlineTriggered() {
this.offline = true
},
onlineTriggered() {
this.offline = false
},
}, },
components: { components: {
ModeToolbar, ModeToolbar,
...@@ -120,6 +140,7 @@ export default { ...@@ -120,6 +140,7 @@ export default {
NodesLayer, NodesLayer,
OtherNodeslayer, OtherNodeslayer,
ConnectionsLayer, ConnectionsLayer,
OnBoard,
}, },
} }
</script> </script>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment