- Activated Workbox precache PWA !
importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.0.0/workbox-sw.js');
if (!workbox) {
workbox = new self.WorkboxSW();
}
if (workbox) {
workbox.core.setCacheNameDetails({prefix: "freeplanet"});
/**
* The workboxSW.precacheAndRoute() method efficiently caches and responds to
* requests for URLs in the manifest.
* See https://goo.gl/S9QRab
*/
self.__precacheManifest = [].concat(self.__precacheManifest || []);
workbox.precaching.suppressWarnings();
workbox.precaching.precacheAndRoute(self.__precacheManifest, {});
workbox.routing.registerRoute(/^http/, workbox.strategies.networkFirst(), 'GET');
}
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
SERVICE_WORKER_FILE='sw.js'
|
||||
SERVICE_WORKER_FILE='service-worker.js'
|
||||
APP_ID='1'
|
||||
VUE_APP_URL='prova SVILUPPO!'
|
||||
PROVA_PAOLO='PROVA SVILUPPO'
|
||||
|
||||
22
package-lock.json
generated
22
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "freeplanet",
|
||||
"version": "0.0.1",
|
||||
"version": "0.0.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -21098,7 +21098,7 @@
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
||||
"dev": true
|
||||
}
|
||||
@@ -24014,7 +24014,7 @@
|
||||
"graceful-fs": "4.1.15",
|
||||
"make-dir": "1.3.0",
|
||||
"unique-string": "1.0.0",
|
||||
"write-file-atomic": "2.3.0",
|
||||
"write-file-atomic": "2.4.2",
|
||||
"xdg-basedir": "3.0.0"
|
||||
}
|
||||
},
|
||||
@@ -24028,9 +24028,9 @@
|
||||
}
|
||||
},
|
||||
"write-file-atomic": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
|
||||
"integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz",
|
||||
"integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.15",
|
||||
@@ -25489,9 +25489,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-escapes": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
|
||||
"integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
|
||||
"integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
|
||||
"dev": true
|
||||
},
|
||||
"chardet": {
|
||||
@@ -25502,7 +25502,7 @@
|
||||
},
|
||||
"external-editor": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
|
||||
"integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@@ -25537,7 +25537,7 @@
|
||||
"integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-escapes": "3.1.0",
|
||||
"ansi-escapes": "3.2.0",
|
||||
"chalk": "2.4.1",
|
||||
"cli-cursor": "2.1.0",
|
||||
"cli-width": "2.2.0",
|
||||
|
||||
13
package.json
13
package.json
@@ -1,7 +1,13 @@
|
||||
{
|
||||
"name": "freeplanet",
|
||||
"version": "0.0.1",
|
||||
"version": "0.0.2",
|
||||
"private": true,
|
||||
"keywords": [
|
||||
"freeplanet",
|
||||
"free social"
|
||||
],
|
||||
"author": "Paolo Arena",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"lint": "tslint --project tsconfig.json",
|
||||
"lint:fix": "tslint --project tsconfig.json --fix",
|
||||
@@ -10,11 +16,12 @@
|
||||
"pwa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m pwa",
|
||||
"test:unit": "jest",
|
||||
"test:cover": "jest --coverage",
|
||||
"build": "quasar build -m pwa && workbox generateSW workbox-config.js",
|
||||
"build": "quasar build -m pwa",
|
||||
"build:clean": "quasar clean",
|
||||
"serve": "quasar serve ./dist/pwa-mat",
|
||||
"serve:coverage": "quasar serve test/coverage/lcov-report/ --cache 0 --port 8788",
|
||||
"deploy": "deploy.sh"
|
||||
"deploy": "deploy.sh",
|
||||
"generate-sw": "workbox generateSW workbox-config.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/vuelidate": "^0.7.0",
|
||||
|
||||
@@ -180,8 +180,18 @@ module.exports = function (ctx) {
|
||||
}
|
||||
},
|
||||
pwa: {
|
||||
// runtimeCaching: [
|
||||
// {
|
||||
// urlPattern: '/statics',
|
||||
// handler: 'networkFirst'
|
||||
// }
|
||||
// ],
|
||||
|
||||
// workboxPluginMode: 'GenerateSW',
|
||||
workboxPluginMode: 'InjectManifest',
|
||||
// workboxOptions: {},
|
||||
workboxOptions: {
|
||||
// swSrc: 'src/sw.js',
|
||||
},
|
||||
manifest: {
|
||||
name: 'Free Planet',
|
||||
short_name: 'freeplanet',
|
||||
|
||||
@@ -4,21 +4,45 @@
|
||||
* quasar.conf > pwa > workboxPluginMode is set to "InjectManifest"
|
||||
*/
|
||||
|
||||
self.addEventListener('install', function(event) {
|
||||
console.log('[Service Worker] Installing Service Worker ...', event);
|
||||
});
|
||||
// Questo è il swSrc
|
||||
|
||||
self.addEventListener('activate', function(event) {
|
||||
console.log('[Service Worker] Activating Service Worker ...', event);
|
||||
return self.clients.claim();
|
||||
});
|
||||
console.log('___________________________ PAO: this is my custom service worker');
|
||||
|
||||
self.addEventListener('fetch', function(event) {
|
||||
//console.log('[Service Worker] Fetching something ....', event);
|
||||
if (event.request.cache === 'only-if-cached' && event.request.mode !== 'same-origin') {
|
||||
console.log('SAME ORIGIN!', event);
|
||||
return;
|
||||
}
|
||||
event.respondWith(fetch(event.request));
|
||||
});
|
||||
importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.0.0/workbox-sw.js');
|
||||
|
||||
if (!workbox) {
|
||||
workbox = new self.WorkboxSW();
|
||||
}
|
||||
|
||||
if (workbox) {
|
||||
workbox.core.setCacheNameDetails({prefix: "freeplanet"});
|
||||
|
||||
/**
|
||||
* The workboxSW.precacheAndRoute() method efficiently caches and responds to
|
||||
* requests for URLs in the manifest.
|
||||
* See https://goo.gl/S9QRab
|
||||
*/
|
||||
self.__precacheManifest = [].concat(self.__precacheManifest || []);
|
||||
workbox.precaching.suppressWarnings();
|
||||
workbox.precaching.precacheAndRoute(self.__precacheManifest, {});
|
||||
|
||||
workbox.routing.registerRoute(/^http/, workbox.strategies.networkFirst(), 'GET');
|
||||
|
||||
}
|
||||
|
||||
if ('serviceWorker' in navigator) {
|
||||
|
||||
console.log('***************** Entering in custom-service-worker.js:')
|
||||
|
||||
self.addEventListener('fetch', function (event) {
|
||||
console.log('[Service Worker] Fetching something ....', event);
|
||||
console.log('event.request.cache=', event.request.cache)
|
||||
if (event.request.cache === 'only-if-cached' && event.request.mode !== 'same-origin') {
|
||||
console.log('SAME ORIGIN!', event);
|
||||
return;
|
||||
}
|
||||
event.respondWith(fetch(event.request));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -8,9 +8,11 @@ import {register} from 'register-service-worker'
|
||||
register(process.env.SERVICE_WORKER_FILE, {
|
||||
ready() {
|
||||
console.log('READY::: App is being served from cache by a service worker.')
|
||||
|
||||
},
|
||||
registered(registration) { // registration -> a ServiceWorkerRegistration instance
|
||||
console.log('REGISTERED::: !!!')
|
||||
console.log('REGISTERED::: !!!', process.env.SERVICE_WORKER_FILE)
|
||||
|
||||
},
|
||||
cached(registration) { // registration -> a ServiceWorkerRegistration instance
|
||||
console.log('CACHED::: Content has been cached for offline use.')
|
||||
@@ -33,3 +35,6 @@ register(process.env.SERVICE_WORKER_FILE, {
|
||||
// ServiceWorkerRegistration: https://developer.mozilla.org/en-uk/docs/Web/API/ServiceWorkerRegistration
|
||||
|
||||
|
||||
|
||||
|
||||
// "build": "quasar build -m pwa && workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
// dynamic import, so loading on demand only
|
||||
import(`quasar-framework/i18n/${lang}`).then(lang => {
|
||||
this.$q.i18n.set(lang.default)
|
||||
import(`src/i18n`).then(function () {
|
||||
import(`src/statics/i18n`).then(function () {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -284,7 +284,7 @@ export default class SingleTodo extends Vue {
|
||||
}
|
||||
|
||||
updateicon() {
|
||||
console.log('updateicon')
|
||||
// console.log('updateicon')
|
||||
if (this.itemtodo.completed)
|
||||
this.iconCompleted = 'check_circle'
|
||||
else
|
||||
|
||||
@@ -6,7 +6,7 @@ import { ITodo } from '@src/model'
|
||||
|
||||
import { rescodes } from '../../../store/Modules/rescodes'
|
||||
|
||||
import { UserStore } from '@modules'
|
||||
import { UserStore } from '@store'
|
||||
|
||||
import _ from 'lodash'
|
||||
|
||||
@@ -45,7 +45,7 @@ export default class Todo extends Vue {
|
||||
}
|
||||
|
||||
@Watch('$route.params.category') changecat() {
|
||||
console.log('changecat')
|
||||
// console.log('changecat')
|
||||
this.load()
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ export default class Todo extends Vue {
|
||||
|
||||
async updateLinkedList(init: boolean, arr: ITodo[] = this.todos_arr) {
|
||||
|
||||
console.log('updateLinkedList', this.todos_arr)
|
||||
// console.log('updateLinkedList', this.todos_arr)
|
||||
|
||||
let idprev = -1
|
||||
let idnext = -1
|
||||
@@ -123,7 +123,7 @@ export default class Todo extends Vue {
|
||||
|
||||
pos++
|
||||
|
||||
this.logelem('updateLinked', elem)
|
||||
// this.logelem('updateLinked', elem)
|
||||
|
||||
})
|
||||
}
|
||||
@@ -240,7 +240,7 @@ export default class Todo extends Vue {
|
||||
arr.forEach(rec => {
|
||||
this.arrPrior.push(rec.value)
|
||||
})
|
||||
console.log('Array PRIOR:', this.arrPrior)
|
||||
// console.log('Array PRIOR:', this.arrPrior)
|
||||
}
|
||||
|
||||
|
||||
@@ -251,15 +251,17 @@ export default class Todo extends Vue {
|
||||
for (let todosKey in rescodes.Todos) {
|
||||
this.listPriorityLabel.push(rescodes.Todos[todosKey])
|
||||
}
|
||||
console.log('Priority:' + this.listPriorityLabel)
|
||||
// console.log('Priority:' + this.listPriorityLabel)
|
||||
this.setarrPriority()
|
||||
this.clearArr()
|
||||
|
||||
await this.updatetable()
|
||||
|
||||
/*
|
||||
this.todos_arr.forEach((elem, index) => {
|
||||
this.logelem('LOAD ' + index, elem)
|
||||
})
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
@@ -273,8 +275,8 @@ export default class Todo extends Vue {
|
||||
priority: rescodes.Todos.PRIORITY_NORMAL,
|
||||
completed: false,
|
||||
created_at: new Date(),
|
||||
category: '',
|
||||
modify_at: new Date(),
|
||||
category: '',
|
||||
expiring_at: mydateexp,
|
||||
enableExpiring: false,
|
||||
id_prev: 0,
|
||||
@@ -310,6 +312,12 @@ export default class Todo extends Vue {
|
||||
objtodo.pos = (lastelem !== null) ? lastelem.pos + 1 : 1
|
||||
objtodo.modified = true
|
||||
|
||||
if (objtodo.userId === undefined) {
|
||||
this.$q.notify(this.$t('todo.usernotdefined'))
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
// Add to Indexdb
|
||||
await this.$db.todos.add(objtodo
|
||||
).then((id) => {
|
||||
@@ -442,7 +450,7 @@ export default class Todo extends Vue {
|
||||
}
|
||||
|
||||
async filtertodos(refresh: boolean = false) {
|
||||
console.log('filtertodos')
|
||||
// console.log('filtertodos')
|
||||
|
||||
let arrtemp = []
|
||||
|
||||
@@ -515,7 +523,7 @@ export default class Todo extends Vue {
|
||||
//
|
||||
|
||||
deselectAllRows(item, check, onlythis: boolean = false) {
|
||||
console.log('deselectAllRows : ', item)
|
||||
// console.log('deselectAllRows : ', item)
|
||||
|
||||
for (let i = 0; i < this.$refs.single.length; i++) {
|
||||
|
||||
@@ -574,7 +582,7 @@ export default class Todo extends Vue {
|
||||
if (miorec.modified) {
|
||||
miorec.modify_at = new Date()
|
||||
|
||||
this.logelem('modify', miorec)
|
||||
// this.logelem('modify', miorec)
|
||||
|
||||
await this.$db.todos.put(miorec)
|
||||
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
<meta name="viewport"
|
||||
content="user-scalable=no, initial-scale=1, minimum-scale=1, width=device-width<% if (htmlWebpackPlugin.options.ctx.mode.cordova) { %>, viewport-fit=cover<% } %>">
|
||||
|
||||
<link rel="icon" href="statics/freeplanet-logo.png" type="image/x-icon">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="statics/icons/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="statics/icons/favicon-16x16.png">
|
||||
<script defer src="statics/js/material.min.js"></script>
|
||||
<script src="statics/js/promise.js"></script>
|
||||
<script src="statics/js/fetch.js"></script>
|
||||
<script src="statics/js/idb.js"></script>
|
||||
<link rel="icon" href="/statics/freeplanet-logo.png" type="image/x-icon">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/statics/icons/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/statics/icons/favicon-16x16.png">
|
||||
<script defer src="/statics/js/material.min.js"></script>
|
||||
<script src="/statics/js/promise.js"></script>
|
||||
<script src="/statics/js/fetch.js"></script>
|
||||
<script src="/statics/js/idb.js"></script>
|
||||
|
||||
<link type="text/css" rel="stylesheet" href="statics/firebaseui.css" />
|
||||
<!--<link type="text/css" rel="stylesheet" href="statics/firebaseui.css" />-->
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
links
|
||||
|
||||
created() {
|
||||
console.log('Drawer created...')
|
||||
// console.log('Drawer created...')
|
||||
|
||||
let listatodo = []
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// src/plugins/i18n.js
|
||||
import VueI18n from 'vue-i18n';
|
||||
import messages from 'src/i18n';
|
||||
import messages from 'src/statics/i18n';
|
||||
|
||||
export default ({ app, store, Vue }) => {
|
||||
Vue.use(VueI18n);
|
||||
|
||||
@@ -19,12 +19,12 @@ export default class Home extends Vue {
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
console.log('Home constructor...')
|
||||
// console.log('Home constructor...')
|
||||
this.initprompt()
|
||||
}
|
||||
|
||||
created() {
|
||||
console.log('Home created...')
|
||||
// console.log('Home created...')
|
||||
}
|
||||
|
||||
mystilecard() {
|
||||
|
||||
@@ -101,7 +101,8 @@ const messages = {
|
||||
titleprioritymenu: 'Priorità:',
|
||||
insert: 'Inserisci il Task',
|
||||
edit: 'Descrizione Task:',
|
||||
completed: 'Completati'
|
||||
completed: 'Completati',
|
||||
usernotdefined: 'Attenzione, occorre essere Loggati per poter aggiungere un Todo'
|
||||
}
|
||||
},
|
||||
enUk: {
|
||||
@@ -206,7 +207,8 @@ const messages = {
|
||||
titleprioritymenu: 'Priority:',
|
||||
insert: 'Insert Task',
|
||||
edit: 'Task Description:',
|
||||
completed: 'Completed'
|
||||
completed: 'Completed',
|
||||
usernotdefined: 'Attention, you need to be Signed In to add a new Task'
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -39,7 +39,7 @@ export default class Vreg extends Vue {
|
||||
}
|
||||
|
||||
load() {
|
||||
console.log('load')
|
||||
// console.log('load')
|
||||
let param: ILinkReg
|
||||
param = { idlink: this.$route.query.idlink.toString() }
|
||||
console.log('idlink = ', param)
|
||||
|
||||
13
workbox-config.js
Normal file
13
workbox-config.js
Normal file
@@ -0,0 +1,13 @@
|
||||
module.exports = {
|
||||
"globDirectory": "dist/pwa-mat/",
|
||||
"globPatterns": [
|
||||
"**/*.{css,woff2,woff,svg,html,js,json,ico}"
|
||||
// "src/images/*.{jpg,png}"
|
||||
],
|
||||
// "swSrc": "dist/pwa-mat/src-sw.js",
|
||||
"swDest": "dist/pwa-mat/service-worker.js",
|
||||
"globIgnores": [
|
||||
"../workbox-config.js",
|
||||
"help/**"
|
||||
],
|
||||
};
|
||||
Reference in New Issue
Block a user