- cleaned some code.

- routing offline
- pushNotification
This commit is contained in:
Paolo Arena
2019-02-12 12:06:01 +01:00
parent e755ada1ff
commit a024b78e95
21 changed files with 560 additions and 247 deletions

View File

@@ -182,10 +182,10 @@
}
create () {
mounted () {
// Test this by running the code snippet below and then
// use the "Offline" checkbox in DevTools Network panel
// use the "Offline" checkbox in DevTools Network panel
let mythis = this
console.log('Event LOAD')
@@ -195,12 +195,12 @@
function updateOnlineStatus(event) {
if (navigator.onLine) {
console.log('ONLINE!')
console.log('EVENT ONLINE!')
// handle online status
GlobalStore.mutations.setStateConnection('online')
mythis.changeIconConn()
} else {
console.log('OFFLINE!')
console.log('EVENT OFFLINE!')
// handle offline status
GlobalStore.mutations.setStateConnection('offline')
mythis.changeIconConn()

View File

@@ -0,0 +1 @@
export {default as Offline} from './offline.vue'

View File

@@ -0,0 +1,29 @@
.svgclass{
color: white;
transform: translateY(0px);
}
.svgclass_animate {
transform: translateY(-70px);
color: red;
}
#sun {
animation: gravity 5s infinite;
}
@keyframes gravity{
0%{
transform: rotateY(0deg);
}
100%{
transform: rotateY(360deg);
}
}
#smile{
opacity: 0.1 !important;
fill: red;
}

View File

@@ -0,0 +1,53 @@
import Vue from 'vue'
import { Component } from 'vue-property-decorator'
import { TimelineLite, Back } from 'gsap'
import $ from 'jquery'
import Timeout = NodeJS.Timeout
@Component({
})
export default class Offline extends Vue {
logoimg: string = ''
created() {
this.logoimg = 'statics/images/' + process.env.LOGO_REG
this.animate()
}
animate () {
const timeline = new TimelineLite()
/*
let mysmile = $('#smile')
mysmile.attr('class', 'smile_hide')
setTimeout(() => {
mysmile.removeClass('smilevisible')
mysmile.addClass('smile_hide')
}, 1000)
setTimeout(() => {
mysmile.addClass('smilevisible')
mysmile.removeClass('smile_hide')
}, 10000)
*/
/*
timeline.to('#smile', 5, {
cy: 20,
cx: 60,
ease: Back.easeInOut // Specify an ease
})
*/
}
}

View File

@@ -0,0 +1,11 @@
<template>
<div id="offline">
Offline Page !
</div>
</template>
<script lang="ts" src="./offline.ts">
</script>
<style lang="scss" scoped>
@import './offline.scss';
</style>

View File

@@ -39,6 +39,7 @@ export default class SingleTodo extends Vue {
public colProgress: string = 'blue'
public togglemenu: boolean = false
public percentageProgress: number = 0
public itemtodoPrec: ITodo
$q: any
@Prop({ required: true }) itemtodo: ITodo
@@ -292,6 +293,9 @@ export default class SingleTodo extends Vue {
this.itemtodo.descr = this.precDescr
console.log('updateTodo', this.precDescr, this.itemtodo.descr)
console.log('itemtodo', this.itemtodo)
console.log('Prec:', this.itemtodoPrec)
this.watchupdate()
this.inEdit = false
// this.precDescr = this.itemtodo.descr

View File

@@ -60,7 +60,7 @@
</div>
</div>
<!--<div class="flex-item btn-item">-->
<!--{{classPosItemPopup}}-->
<!--{{itemtodo.expiring_at}}-->
<!--</div>-->
<!--<div class="flex-item btn-item">-->
<!--<q-btn class="mybtn" round color="" icon="delete" @click.native="removeitem(itemtodo._id)"></q-btn>-->

View File

@@ -287,7 +287,7 @@ export default class Todo extends Vue {
let update = false
await this.todos_arr.forEach((elem: ITodo) => {
if (elem.modified) {
// console.log('calling MODIFY 3')
console.log('calling MODIFY 3')
this.modify(elem, false)
update = true
elem.modified = false
@@ -448,17 +448,17 @@ export default class Todo extends Vue {
cmdSw = rescodes.DB.CMD_SYNC_TODOS
}
if (process.env.DEV) {
console.log('serviceWorker ', ('serviceWorker' in navigator) ? 'PRESENT!' : 'DOESN\'T EXIST!')
console.log('SyncManager ', ('SyncManager' in window) ? 'PRESENT!' : 'DOESN\'T EXIST!')
}
// if (process.env.DEV) {
// console.log('serviceWorker ', ('serviceWorker' in navigator) ? 'PRESENT!' : 'DOESN\'T EXIST!')
// console.log('SyncManager ', ('SyncManager' in window) ? 'PRESENT!' : 'DOESN\'T EXIST!')
// }
const mythis = this
if ('serviceWorker' in navigator) {
await navigator.serviceWorker.ready
.then(function (sw) {
// _id: new Date().toISOString(),
console.log('---------------------- navigator.serviceWorker.ready')
// console.log('---------------------- navigator.serviceWorker.ready')
// mythis.sendMessageToSW(item, method)
@@ -469,20 +469,20 @@ export default class Todo extends Vue {
})
const sep = '|'
let multiparams = cmdSw + sep + table + sep + method + sep + UserStore.state.idToken + sep + UserStore.state.lang
let multiparams = cmdSw + sep + table + sep + method + sep + UserStore.state.x_auth_token + sep + UserStore.state.lang
let mymsgkey = {
_id: multiparams,
value: multiparams
}
globalroutines(mythis, 'write', 'swmsg', mymsgkey, multiparams)
.then(ris => {
if ('SyncManager' in window) {
console.log(' SENDING... sw.sync.register', multiparams)
return sw.sync.register(multiparams)
} else {
// if ('SyncManager' in window) {
// console.log(' SENDING... sw.sync.register', multiparams)
// return sw.sync.register(multiparams)
// } else {
// #Todo ++ Alternative 2 to SyncManager
Api.syncAlternative(multiparams)
}
// }
})
.then(function () {
@@ -515,12 +515,12 @@ export default class Todo extends Vue {
}
async saveItemToSyncAndDb(table: String, method, item: ITodo, update: boolean) {
return await this.cmdToSyncAndDb(rescodes.DB.CMD_SYNC_NEW_TODOS, table, method, item, 0, 'Your Post was saved for syncing!', update)
return await this.cmdToSyncAndDb(rescodes.DB.CMD_SYNC_NEW_TODOS, table, method, item, 0, '', update)
}
deleteItemToSyncAndDb(table: String, item: ITodo, id, update: boolean) {
return this.cmdToSyncAndDb(rescodes.DB.CMD_DELETE_TODOS, table, 'DELETE', item, id, 'Your Post was canceled for syncing!', update)
return this.cmdToSyncAndDb(rescodes.DB.CMD_DELETE_TODOS, table, 'DELETE', item, id, '', update)
}
/*
@@ -561,14 +561,14 @@ export default class Todo extends Vue {
if (myobjprev !== null) {
myobjprev.id_next = myobjtrov.id_next
myobjprev.modified = true
// console.log('calling MODIFY 2')
console.log('calling MODIFY 2')
this.modify(myobjprev, false)
}
if (myobjnext !== null) {
myobjnext.id_prev = myobjtrov.id_prev
myobjnext.modified = true
// console.log('calling MODIFY 1')
console.log('calling MODIFY 1')
this.modify(myobjnext, false)
}
@@ -703,7 +703,7 @@ export default class Todo extends Vue {
}
updateitem(myobj) {
// console.log('updateitem')
console.log('calling MODIFY 4 updateitem')
this.modify(myobj, true)
}
@@ -751,8 +751,10 @@ export default class Todo extends Vue {
// }
modifyField(recOut, recIn, field) {
if (recOut[field] !== recIn[field]) {
// console.log('*************** CAMPO ', field, 'MODIFICATO!', recOut[field])
if (String(recOut[field]) !== String(recIn[field])) {
console.log('*************** CAMPO ', field, 'MODIFICATO!')
console.log(recOut[field])
console.log(recIn[field])
recOut.modified = true
recOut[field] = recIn[field]
return true