fix "Todo Completati"
statics instead of assets
This commit is contained in:
@@ -13,3 +13,4 @@ TEST_USERNAME='paoloar77'
|
|||||||
TEST_PASSWORD='mypassword@1A'
|
TEST_PASSWORD='mypassword@1A'
|
||||||
PUBLICKEY_PUSH='BGxRrFWnPoa_ImUaWXmeEOFVI9VNKVKaAPsvsM1XY6wn24yxp9MyOQ4crNYCJKxSXV65Y1GblW5_VLoamedcZ1I'
|
PUBLICKEY_PUSH='BGxRrFWnPoa_ImUaWXmeEOFVI9VNKVKaAPsvsM1XY6wn24yxp9MyOQ4crNYCJKxSXV65Y1GblW5_VLoamedcZ1I'
|
||||||
IN_CONSTRUCTION='0'
|
IN_CONSTRUCTION='0'
|
||||||
|
DEBUG='1'
|
||||||
|
|||||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -2,6 +2,7 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
.thumbs.db
|
.thumbs.db
|
||||||
.env
|
.env
|
||||||
|
.env.development
|
||||||
.env.production
|
.env.production
|
||||||
.env.production.bak
|
.env.production.bak
|
||||||
.env.prod.bak
|
.env.prod.bak
|
||||||
@@ -12,7 +13,6 @@ node_modules
|
|||||||
/src-cordova/platforms
|
/src-cordova/platforms
|
||||||
/src-cordova/plugins
|
/src-cordova/plugins
|
||||||
/src-cordova/www
|
/src-cordova/www
|
||||||
/src-pwa
|
|
||||||
/src-ssr
|
/src-ssr
|
||||||
npm-debug.log*
|
npm-debug.log*
|
||||||
yarn-debug.log*
|
yarn-debug.log*
|
||||||
@@ -34,3 +34,8 @@ deploy.sh
|
|||||||
deploy_on_production.sh
|
deploy_on_production.sh
|
||||||
deploy_on_test_server.sh
|
deploy_on_test_server.sh
|
||||||
send_to_production.sh
|
send_to_production.sh
|
||||||
|
compileandserve.sh
|
||||||
|
deploy_all.sh
|
||||||
|
deploy_frontend.sh
|
||||||
|
mongodb_delete_pc_locale_paolo.sh
|
||||||
|
serve_on_localhost.sh
|
||||||
|
|||||||
6
package-lock.json
generated
6
package-lock.json
generated
@@ -17708,9 +17708,9 @@
|
|||||||
"wordwrap": "0.0.3"
|
"wordwrap": "0.0.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"optimize-css-assets-webpack-plugin": {
|
"optimize-css-statics-webpack-plugin": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/optimize-css-statics-webpack-plugin/-/optimize-css-statics-webpack-plugin-5.0.1.tgz",
|
||||||
"integrity": "sha512-Rqm6sSjWtx9FchdP0uzTQDc7GXDKnwVEGoSxjezPkzMewx7gEWE9IMUYKmigTRC4U3RaNSwYVnUDLuIdtTpm0A==",
|
"integrity": "sha512-Rqm6sSjWtx9FchdP0uzTQDc7GXDKnwVEGoSxjezPkzMewx7gEWE9IMUYKmigTRC4U3RaNSwYVnUDLuIdtTpm0A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
@@ -19341,7 +19341,7 @@
|
|||||||
"net": "1.0.2",
|
"net": "1.0.2",
|
||||||
"node-loader": "0.6.0",
|
"node-loader": "0.6.0",
|
||||||
"opn": "5.3.0",
|
"opn": "5.3.0",
|
||||||
"optimize-css-assets-webpack-plugin": "5.0.1",
|
"optimize-css-statics-webpack-plugin": "5.0.1",
|
||||||
"ouch": "2.0.0",
|
"ouch": "2.0.0",
|
||||||
"postcss-loader": "3.0.0",
|
"postcss-loader": "3.0.0",
|
||||||
"postcss-rtl": "1.3.2",
|
"postcss-rtl": "1.3.2",
|
||||||
|
|||||||
@@ -17,9 +17,9 @@ const extendTypescriptToWebpack = (config) => {
|
|||||||
.set('@views', helpers.root('src/components/views/index.ts'))
|
.set('@views', helpers.root('src/components/views/index.ts'))
|
||||||
// .set('@views', helpers.root('src/components/views'))
|
// .set('@views', helpers.root('src/components/views'))
|
||||||
.set('@src', helpers.root('src'))
|
.set('@src', helpers.root('src'))
|
||||||
.set('@css', helpers.root('src/assets/css/*'))
|
.set('@css', helpers.root('src/statics/css/*'))
|
||||||
.set('@icons', helpers.root('src/statics/icons/*'))
|
.set('@icons', helpers.root('src/statics/icons/*'))
|
||||||
.set('@images', helpers.root('src/assets/images/*'))
|
.set('@images', helpers.root('src/statics/images/*'))
|
||||||
.set('@classes', helpers.root('src/classes/index.ts'))
|
.set('@classes', helpers.root('src/classes/index.ts'))
|
||||||
.set('@utils', helpers.root('src/utils/index.ts'))
|
.set('@utils', helpers.root('src/utils/index.ts'))
|
||||||
.set('@utils', helpers.root('src/utils/*'))
|
.set('@utils', helpers.root('src/utils/*'))
|
||||||
@@ -59,7 +59,7 @@ module.exports = function (ctx) {
|
|||||||
store: 'src/store/index.ts'
|
store: 'src/store/index.ts'
|
||||||
},
|
},
|
||||||
// app plugins (/src/plugins)
|
// app plugins (/src/plugins)
|
||||||
plugins: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'vue-idb', 'dragula'],
|
plugins: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'vue-idb', 'dragula', 'guard'],
|
||||||
css: [
|
css: [
|
||||||
'app.styl'
|
'app.styl'
|
||||||
],
|
],
|
||||||
@@ -72,6 +72,12 @@ module.exports = function (ctx) {
|
|||||||
'fontawesome'
|
'fontawesome'
|
||||||
],
|
],
|
||||||
supportIE: false,
|
supportIE: false,
|
||||||
|
aliases: {
|
||||||
|
quasar: path.resolve(__dirname, '../node_modules/quasar-framework/'),
|
||||||
|
src: path.resolve(__dirname, '../src'),
|
||||||
|
statics: path.resolve(__dirname, '../src/statics'),
|
||||||
|
components: path.resolve(__dirname, '../src/components')
|
||||||
|
},
|
||||||
build: {
|
build: {
|
||||||
showProgress: true,
|
showProgress: true,
|
||||||
env: envparser(),
|
env: envparser(),
|
||||||
@@ -180,7 +186,7 @@ module.exports = function (ctx) {
|
|||||||
pwa: {
|
pwa: {
|
||||||
runtimeCaching: [
|
runtimeCaching: [
|
||||||
{
|
{
|
||||||
urlPattern: '/assets',
|
urlPattern: '/statics',
|
||||||
handler: 'networkFirst'
|
handler: 'networkFirst'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -189,7 +195,7 @@ module.exports = function (ctx) {
|
|||||||
pwa: {
|
pwa: {
|
||||||
// runtimeCaching: [
|
// runtimeCaching: [
|
||||||
// {
|
// {
|
||||||
// urlPattern: '/assets',
|
// urlPattern: '/statics',
|
||||||
// handler: 'networkFirst'
|
// handler: 'networkFirst'
|
||||||
// }
|
// }
|
||||||
// ],
|
// ],
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
console.log(' [ VER-0.0.27 ] _---------________------ PAO: this is my custom service worker');
|
console.log(' [ VER-0.0.27 ] _---------________------ PAO: this is my custom service worker');
|
||||||
|
|
||||||
importScripts('../assets/js/idb.js');
|
importScripts('../statics/js/idb.js');
|
||||||
importScripts('../assets/js/storage.js');
|
importScripts('../statics/js/storage.js');
|
||||||
importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.0.0/workbox-sw.js'); //++Todo: Replace with local workbox.js
|
importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.0.0/workbox-sw.js'); //++Todo: Replace with local workbox.js
|
||||||
|
|
||||||
|
|
||||||
@@ -206,7 +206,7 @@ if (workbox) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
workbox.routing.registerRoute(
|
workbox.routing.registerRoute(
|
||||||
new RegExp(/.*\/(?:assets\/icons).*$/),
|
new RegExp(/.*\/(?:statics\/icons).*$/),
|
||||||
workbox.strategies.cacheFirst({
|
workbox.strategies.cacheFirst({
|
||||||
cacheName: 'image-cache',
|
cacheName: 'image-cache',
|
||||||
plugins: [
|
plugins: [
|
||||||
@@ -258,9 +258,9 @@ if (workbox) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
workbox.routing.registerRoute(
|
workbox.routing.registerRoute(
|
||||||
new RegExp(/.*\/(?:assets).*$/),
|
new RegExp(/.*\/(?:statics).*$/),
|
||||||
workbox.strategies.cacheFirst({
|
workbox.strategies.cacheFirst({
|
||||||
cacheName: 'assets',
|
cacheName: 'statics',
|
||||||
plugins: [
|
plugins: [
|
||||||
new workbox.expiration.Plugin({
|
new workbox.expiration.Plugin({
|
||||||
maxAgeSeconds: 10 * 24 * 60 * 60,
|
maxAgeSeconds: 10 * 24 * 60 * 60,
|
||||||
|
|||||||
@@ -1,418 +0,0 @@
|
|||||||
const messages = {
|
|
||||||
it: {
|
|
||||||
dialog: {
|
|
||||||
ok: 'Ok',
|
|
||||||
yes: 'Si',
|
|
||||||
no: 'No',
|
|
||||||
delete: 'Elimina',
|
|
||||||
cancel: 'Annulla',
|
|
||||||
msg: {
|
|
||||||
titledeleteTask: 'Elimina Task',
|
|
||||||
deleteTask: "Vuoi Eliminare {mytodo}?"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
comp:{
|
|
||||||
Conta: "Conta",
|
|
||||||
},
|
|
||||||
msg: {
|
|
||||||
hello: 'Buongiorno',
|
|
||||||
myAppName: 'FreePlanet',
|
|
||||||
underconstruction: 'App in costruzione...',
|
|
||||||
myDescriz: '',
|
|
||||||
sottoTitoloApp: 'Il primo Vero Social',
|
|
||||||
sottoTitoloApp2: 'Libero, Equo e Solidale',
|
|
||||||
sottoTitoloApp3: 'dove Vive Consapevolezza e Aiuto Comunitario'
|
|
||||||
},
|
|
||||||
pages: {
|
|
||||||
home: 'Principale',
|
|
||||||
SignUp: 'Registrazione',
|
|
||||||
SignIn: 'Login',
|
|
||||||
vreg: 'Verifica Reg',
|
|
||||||
Test: 'Test',
|
|
||||||
Category: 'Categorie',
|
|
||||||
Todo: 'Todo',
|
|
||||||
personal: 'Personale',
|
|
||||||
work: 'Lavoro',
|
|
||||||
shopping: 'Spesa',
|
|
||||||
Admin: 'Admin',
|
|
||||||
Test1: 'Test1',
|
|
||||||
Test2: 'Test2',
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
authentication:{
|
|
||||||
login: {
|
|
||||||
facebook: 'Facebook'
|
|
||||||
},
|
|
||||||
email_verification: {
|
|
||||||
title: 'Inizia la tua registrazione',
|
|
||||||
introduce_email: 'inserisci la tua email',
|
|
||||||
email: 'Email',
|
|
||||||
invalid_email: 'La tua email è invalida',
|
|
||||||
verify_email: 'Verifica la tua email',
|
|
||||||
go_login: 'Torna al Login',
|
|
||||||
incorrect_input: 'Inserimento incorretto.',
|
|
||||||
link_sent: 'Per confermare la Registrazione, leggi la tua casella di posta e Clicca su "Verifica Email".\nSe non la trovi, cerca nella cartella Spam.'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
fetch: {
|
|
||||||
errore_generico: 'Errore Generico',
|
|
||||||
errore_server: 'Impossibile accedere al Server. Riprovare Grazie',
|
|
||||||
error_doppiologin: 'Rieseguire il Login. Accesso aperto da un altro dispositivo.',
|
|
||||||
},
|
|
||||||
user: {
|
|
||||||
notregistered: 'Devi registrarti al servizio prima di porter memorizzare i dati'
|
|
||||||
},
|
|
||||||
reg: {
|
|
||||||
incorso: 'Registrazione in corso...',
|
|
||||||
richiesto: 'Campo Richiesto',
|
|
||||||
email: 'Email',
|
|
||||||
username : 'Nome Utente',
|
|
||||||
username_login : 'Nome Utente o email',
|
|
||||||
password: 'Password',
|
|
||||||
repeatPassword: 'Ripeti password',
|
|
||||||
terms: "Accetto i termini e le condizioni",
|
|
||||||
submit: "Registrati",
|
|
||||||
title_verif_reg: "Verifica Registrazione",
|
|
||||||
verificato: "Verificato",
|
|
||||||
non_verificato: "Non Verificato",
|
|
||||||
forgetpassword:"Password dimenticata?",
|
|
||||||
err: {
|
|
||||||
required: 'è richiesto',
|
|
||||||
email: 'dev\'essere una email valida',
|
|
||||||
errore_generico: 'Si prega di compilare correttamente i campi',
|
|
||||||
atleast: 'dev\'essere lungo almeno di',
|
|
||||||
complexity: 'deve contenere almeno 1 carattere minuscolo, 1 maiuscola e 1 cifra',
|
|
||||||
notmore: 'non dev\'essere lungo più di',
|
|
||||||
char: 'caratteri',
|
|
||||||
terms: 'Devi accettare le condizioni, per continuare.',
|
|
||||||
duplicate_email: 'l\'Email è già stata registrata',
|
|
||||||
duplicate_username: 'L\'Username è stato già utilizzato',
|
|
||||||
sameaspassword: 'Le password devono essere identiche',
|
|
||||||
}
|
|
||||||
},
|
|
||||||
login:{
|
|
||||||
incorso: 'Login in corso',
|
|
||||||
enter: 'Login',
|
|
||||||
errato: "Username o password errata. Riprovare",
|
|
||||||
completato: 'Login effettuato!',
|
|
||||||
},
|
|
||||||
reset: {
|
|
||||||
title_reset_pwd: "Reimposta la tua Password",
|
|
||||||
send_reset_pwd: 'Invia Reimposta la password',
|
|
||||||
incorso: 'Richiesta Nuova Email...',
|
|
||||||
email_sent:'Email inviata',
|
|
||||||
check_email: 'Controlla la tua email, ti arriverà un messaggio con un link per reimpostare la tua password. Questo link, per sicurezza, scadrà dopo 4 ore.',
|
|
||||||
title_update_pwd: 'Aggiorna la tua password',
|
|
||||||
update_password: 'Aggiorna Password',
|
|
||||||
},
|
|
||||||
logout:{
|
|
||||||
uscito: 'Sei Uscito',
|
|
||||||
},
|
|
||||||
errors: {
|
|
||||||
graphql: {
|
|
||||||
undefined: 'non definito'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
todo: {
|
|
||||||
titleprioritymenu: 'Priorità:',
|
|
||||||
inserttop: 'Inserisci il Task in alto',
|
|
||||||
insertbottom: 'Inserisci il Task in basso',
|
|
||||||
edit: 'Descrizione Task:',
|
|
||||||
completed: 'Ultimi Completati',
|
|
||||||
usernotdefined: 'Attenzione, occorre essere Loggati per poter aggiungere un Todo'
|
|
||||||
},
|
|
||||||
notification : {
|
|
||||||
status: 'Stato',
|
|
||||||
ask: 'Attiva le Notifiche',
|
|
||||||
waitingconfirm: 'Conferma la richiesta di Notifica',
|
|
||||||
confirmed: 'Notifiche Attivate!',
|
|
||||||
denied: 'Notifiche Disabilitate! Attenzione così non vedrai arrivarti i messaggi. Riabilitali per vederli.',
|
|
||||||
titlegranted: 'Permesso Notifiche Abilitato!',
|
|
||||||
statusnot: 'Stato Notifiche',
|
|
||||||
titledenied: 'Permesso Notifiche Disabilitato!',
|
|
||||||
title_subscribed: 'Sottoscrizione a FreePlanet.app!',
|
|
||||||
subscribed: 'Ora potrai ricevere i messaggi e le notifiche.',
|
|
||||||
newVersionAvailable: 'Nuova Versione!'
|
|
||||||
},
|
|
||||||
connection: 'Connessione',
|
|
||||||
},
|
|
||||||
'esEs': {
|
|
||||||
dialog: {
|
|
||||||
ok: 'Vale',
|
|
||||||
yes: 'Sí',
|
|
||||||
no: 'No',
|
|
||||||
delete: 'Borrar',
|
|
||||||
cancel: 'Cancelar',
|
|
||||||
msg: {
|
|
||||||
titledeleteTask: 'Borrar Tarea',
|
|
||||||
deleteTask: 'Quieres borrar {mytodo}?'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
comp:{
|
|
||||||
Conta: "Conta",
|
|
||||||
},
|
|
||||||
msg: {
|
|
||||||
hello: 'Buenos Días',
|
|
||||||
myAppName: 'FreePlanet',
|
|
||||||
underconstruction: 'App en construcción...',
|
|
||||||
myDescriz: '',
|
|
||||||
sottoTitoloApp: 'El primer Verdadero Social',
|
|
||||||
sottoTitoloApp2: 'Libre, justo y Solidario',
|
|
||||||
sottoTitoloApp3: 'Donde vive Conciencia y Ayuda comunitaria'
|
|
||||||
},
|
|
||||||
pages: {
|
|
||||||
home: 'Principal',
|
|
||||||
SignUp: 'Nueva Cuenta',
|
|
||||||
SignIn: 'Entrar',
|
|
||||||
vreg: 'Verifica Reg',
|
|
||||||
Test: 'Test',
|
|
||||||
Category: 'Categorías',
|
|
||||||
Todo: 'Tareas',
|
|
||||||
personal: 'Personal',
|
|
||||||
work: 'Trabajo',
|
|
||||||
shopping: 'Compras',
|
|
||||||
Admin: 'Administración',
|
|
||||||
Test1: 'Test1',
|
|
||||||
Test2: 'Test2',
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
authentication:{
|
|
||||||
login: {
|
|
||||||
facebook: 'Facebook'
|
|
||||||
},
|
|
||||||
email_verification: {
|
|
||||||
title: 'Crea una cuenta',
|
|
||||||
introduce_email: 'ingrese su dirección de correo electrónico',
|
|
||||||
email: 'Email',
|
|
||||||
invalid_email: 'Tu correo electrónico no es válido',
|
|
||||||
verify_email: 'Revisa tu email',
|
|
||||||
go_login: 'Vuelve al Login',
|
|
||||||
incorrect_input: 'Entrada correcta.',
|
|
||||||
link_sent: 'Para confirmar el registro, lea su buzón y haga clic en "Verificar correo electrónico".\n' + 'Si no lo encuentras, busca en la carpeta Spam.'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
fetch: {
|
|
||||||
errore_generico: 'Error genérico',
|
|
||||||
errore_server: 'No se puede acceder al Servidor. Inténtalo de nuevo, Gracias',
|
|
||||||
error_doppiologin: 'Vuelva a iniciar sesión. Acceso abierto por otro dispositivo.',
|
|
||||||
},
|
|
||||||
user: {
|
|
||||||
notregistered: 'Debe registrarse en el servicio antes de poder almacenar los datos'
|
|
||||||
},
|
|
||||||
reg: {
|
|
||||||
incorso: 'Registro en curso...',
|
|
||||||
richiesto: 'Campo requerido',
|
|
||||||
email: 'Email',
|
|
||||||
username : 'Nombre usuario',
|
|
||||||
username_login : 'Nombre usuario o email',
|
|
||||||
password: 'contraseña',
|
|
||||||
repeatPassword: 'Repetir contraseña',
|
|
||||||
terms: "Acepto los términos y condiciones",
|
|
||||||
submit: "Registrarse",
|
|
||||||
title_verif_reg: "Verifica registro",
|
|
||||||
verificato: "Verificado",
|
|
||||||
non_verificato: "No Verificado",
|
|
||||||
forgetpassword:"¿Olvidaste tu contraseña?",
|
|
||||||
err: {
|
|
||||||
required: 'se requiere',
|
|
||||||
email: 'Debe ser una email válida.',
|
|
||||||
errore_generico: 'Por favor, rellene los campos correctamente',
|
|
||||||
atleast: 'debe ser al menos largo',
|
|
||||||
complexity: 'debe contener al menos 1 minúscula, 1 mayúscula y 1 dígito',
|
|
||||||
notmore: 'no tiene que ser más largo que',
|
|
||||||
char: 'caracteres',
|
|
||||||
terms: 'Debes aceptar las condiciones, para continuar..',
|
|
||||||
duplicate_email: 'La email ya ha sido registrada',
|
|
||||||
duplicate_username: 'El nombre de usuario ya ha sido utilizado',
|
|
||||||
sameaspassword: 'Las contraseñas deben ser idénticas',
|
|
||||||
}
|
|
||||||
},
|
|
||||||
login:{
|
|
||||||
incorso: 'Login en curso',
|
|
||||||
enter: 'Entrar',
|
|
||||||
errato: "Nombre de usuario, correo o contraseña incorrectos. inténtelo de nuevo",
|
|
||||||
completato: 'Login realizado!',
|
|
||||||
},
|
|
||||||
reset: {
|
|
||||||
title_reset_pwd: "Restablece tu contraseña",
|
|
||||||
send_reset_pwd: 'Enviar restablecer contraseña',
|
|
||||||
incorso: 'Solicitar nueva Email...',
|
|
||||||
email_sent:'Email enviada',
|
|
||||||
check_email: 'Revise su correo electrónico, recibirá un mensaje con un enlace para restablecer su contraseña. Este enlace, por razones de seguridad, expirará después de 4 horas.',
|
|
||||||
title_update_pwd: 'Actualiza tu contraseña',
|
|
||||||
update_password: 'Actualizar contraseña',
|
|
||||||
},
|
|
||||||
logout:{
|
|
||||||
uscito: 'Estás desconectado',
|
|
||||||
},
|
|
||||||
errors: {
|
|
||||||
graphql: {
|
|
||||||
undefined: 'no definido'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
todo: {
|
|
||||||
titleprioritymenu: 'Prioridad:',
|
|
||||||
inserttop: 'Ingrese una nueva Tarea arriba',
|
|
||||||
insertbottom: 'Ingrese una nueva Tarea abajo',
|
|
||||||
edit: 'Descripción Tarea:',
|
|
||||||
completed: 'Ultimos Completados',
|
|
||||||
usernotdefined: 'Atención, debes iniciar sesión para agregar una Tarea'
|
|
||||||
},
|
|
||||||
notification : {
|
|
||||||
status: 'Estado',
|
|
||||||
ask: 'Activar notificaciones',
|
|
||||||
waitingconfirm: 'Confirmar la solicitud de notificación.',
|
|
||||||
confirmed: 'Notificaciones activadas!',
|
|
||||||
denied: 'Notificaciones deshabilitadas! Ten cuidado, así no verás llegar los mensajes. Rehabilítalos para verlos.',
|
|
||||||
titlegranted: 'Notificaciones permitidas habilitadas!',
|
|
||||||
statusnot: 'Estado Notificaciones',
|
|
||||||
titledenied: 'Notificaciones permitidas deshabilitadas!',
|
|
||||||
title_subscribed: 'Suscripción a FreePlanet.app!',
|
|
||||||
subscribed: 'Ahora puedes recibir mensajes y notificaciones.',
|
|
||||||
newVersionAvailable: 'Nueva Versión!'
|
|
||||||
},
|
|
||||||
connection: 'Connection',
|
|
||||||
},
|
|
||||||
'enUs': {
|
|
||||||
dialog: {
|
|
||||||
ok: 'Ok',
|
|
||||||
yes: 'Yes',
|
|
||||||
no: 'No',
|
|
||||||
delete: 'Delete',
|
|
||||||
cancel: 'Cancel',
|
|
||||||
msg: {
|
|
||||||
titledeleteTask: 'Delete Task',
|
|
||||||
deleteTask: 'Delete Task {mytodo}?'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
comp:{
|
|
||||||
Conta: "Count",
|
|
||||||
},
|
|
||||||
msg: {
|
|
||||||
hello: 'Hello!',
|
|
||||||
myAppName: 'FreePlanet',
|
|
||||||
underconstruction: 'App in constuction...',
|
|
||||||
myDescriz: '',
|
|
||||||
sottoTitoloApp: 'The first Real Social',
|
|
||||||
sottoTitoloApp2: 'Free, Fair and solidarity',
|
|
||||||
sottoTitoloApp3: 'Where the conscience and community help live'
|
|
||||||
},
|
|
||||||
pages: {
|
|
||||||
home: 'Dashboard',
|
|
||||||
SignUp: 'SignUp',
|
|
||||||
SignIn: 'SignIn',
|
|
||||||
vreg: 'Verify Reg',
|
|
||||||
Test: 'Test',
|
|
||||||
Category: 'Category',
|
|
||||||
Todo: 'Todo',
|
|
||||||
personal: 'Personal',
|
|
||||||
work: 'Work',
|
|
||||||
shopping: 'Shopping',
|
|
||||||
Admin: 'Admin',
|
|
||||||
Test1: 'Test1',
|
|
||||||
Test2: 'Test2',
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
authentication:{
|
|
||||||
login: {
|
|
||||||
facebook: 'Facebook'
|
|
||||||
},
|
|
||||||
email_verification: {
|
|
||||||
title: 'Begin your registration',
|
|
||||||
introduce_email: 'Enter your email',
|
|
||||||
email: 'Email',
|
|
||||||
invalid_email: 'Your email is invalid',
|
|
||||||
verify_email: 'Verify your email',
|
|
||||||
go_login: 'Back to Login',
|
|
||||||
incorrect_input: 'Incorrect input.',
|
|
||||||
link_sent: 'To confirm the Registration, read your mailbox and click on "Verify email".\nIf you can not find it check your junk mail or spam.'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
fetch: {
|
|
||||||
errore_generico: 'Generic Error',
|
|
||||||
errore_server: 'Unable to access to the Server. Retry. Thank you.',
|
|
||||||
error_doppiologin: 'Signup again. Another access was made with another device.',
|
|
||||||
},
|
|
||||||
user: {
|
|
||||||
notregistered: 'You need first to SignUp before storing data'
|
|
||||||
},
|
|
||||||
reg: {
|
|
||||||
incorso: 'Registration please wait...',
|
|
||||||
richiesto: 'Field Required',
|
|
||||||
email: 'Email',
|
|
||||||
username_login : 'Username or email',
|
|
||||||
username : 'Username',
|
|
||||||
password: 'Password',
|
|
||||||
repeatPassword: 'Repeat password',
|
|
||||||
terms: "I agree with the terms and conditions",
|
|
||||||
submit: "Submit",
|
|
||||||
title_verif_reg: "Verify Registration",
|
|
||||||
verificato: "Verified",
|
|
||||||
non_verificato: "Not Verified",
|
|
||||||
forgetpassword:"Forget Password?",
|
|
||||||
err: {
|
|
||||||
required: 'is required',
|
|
||||||
email: 'must be a valid email',
|
|
||||||
errore_generico: 'Please review fields again',
|
|
||||||
atleast: 'must be at least',
|
|
||||||
complexity: 'must contains at least 1 lowercase letter, 1 uppercase letter, and 1 digit',
|
|
||||||
notmore: 'must not be more than',
|
|
||||||
char: 'characters long',
|
|
||||||
terms: 'You need to agree with the terms & conditions.',
|
|
||||||
duplicate_email: 'Email was already registered',
|
|
||||||
duplicate_username: 'Username is already taken',
|
|
||||||
sameaspassword: 'Passwords must be identical',
|
|
||||||
}
|
|
||||||
},
|
|
||||||
login:{
|
|
||||||
incorso: 'Login...',
|
|
||||||
enter: 'Login',
|
|
||||||
errato: "Username or password wrong. Please retry again",
|
|
||||||
completato: 'Login successfully!',
|
|
||||||
},
|
|
||||||
reset: {
|
|
||||||
title_reset_pwd: "Reset your Password",
|
|
||||||
send_reset_pwd: 'Send password request',
|
|
||||||
incorso: 'Request New Email...',
|
|
||||||
email_sent:'Email sent',
|
|
||||||
check_email: 'Check your email for a message with a link to update your password. This link will expire in 4 hours for security reasons.',
|
|
||||||
title_update_pwd: 'Update your password',
|
|
||||||
update_password: 'Update Password',
|
|
||||||
},
|
|
||||||
logout:{
|
|
||||||
uscito: 'Logout successfully',
|
|
||||||
},
|
|
||||||
errors: {
|
|
||||||
graphql: {
|
|
||||||
undefined: 'undefined'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
todo: {
|
|
||||||
titleprioritymenu: 'Priority:',
|
|
||||||
inserttop: 'Insert Task at the top',
|
|
||||||
insertbottom: 'Insert Task at the bottom',
|
|
||||||
edit: 'Task Description:',
|
|
||||||
completed: 'Lasts Completed',
|
|
||||||
usernotdefined: 'Attention, you need to be Signed In to add a new Task'
|
|
||||||
},
|
|
||||||
notification : {
|
|
||||||
status: 'Status',
|
|
||||||
ask: 'Enable Notification',
|
|
||||||
waitingconfirm: 'Confirm the Request Notification',
|
|
||||||
confirmed: 'Notifications Enabled!',
|
|
||||||
denied: 'Notifications Disabled! Attention, you will not see your messages incoming. Reenable it for see it',
|
|
||||||
titlegranted: 'Notification Permission Granted!',
|
|
||||||
statusnot: 'status Notification',
|
|
||||||
titledenied: 'Notification Permission Denied!',
|
|
||||||
title_subscribed: 'Subscribed to FreePlanet.app!',
|
|
||||||
subscribed: 'You can now receive Notification and Messages.',
|
|
||||||
newVersionAvailable: 'New Version!'
|
|
||||||
},
|
|
||||||
connection: 'Conexión',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
export default messages;
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 90 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 40 KiB |
@@ -1,461 +0,0 @@
|
|||||||
(function(self) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
if (self.fetch) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var support = {
|
|
||||||
searchParams: 'URLSearchParams' in self,
|
|
||||||
iterable: 'Symbol' in self && 'iterator' in Symbol,
|
|
||||||
blob: 'FileReader' in self && 'Blob' in self && (function() {
|
|
||||||
try {
|
|
||||||
new Blob()
|
|
||||||
return true
|
|
||||||
} catch(e) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
})(),
|
|
||||||
formData: 'FormData' in self,
|
|
||||||
arrayBuffer: 'ArrayBuffer' in self
|
|
||||||
}
|
|
||||||
|
|
||||||
if (support.arrayBuffer) {
|
|
||||||
var viewClasses = [
|
|
||||||
'[object Int8Array]',
|
|
||||||
'[object Uint8Array]',
|
|
||||||
'[object Uint8ClampedArray]',
|
|
||||||
'[object Int16Array]',
|
|
||||||
'[object Uint16Array]',
|
|
||||||
'[object Int32Array]',
|
|
||||||
'[object Uint32Array]',
|
|
||||||
'[object Float32Array]',
|
|
||||||
'[object Float64Array]'
|
|
||||||
]
|
|
||||||
|
|
||||||
var isDataView = function(obj) {
|
|
||||||
return obj && DataView.prototype.isPrototypeOf(obj)
|
|
||||||
}
|
|
||||||
|
|
||||||
var isArrayBufferView = ArrayBuffer.isView || function(obj) {
|
|
||||||
return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function normalizeName(name) {
|
|
||||||
if (typeof name !== 'string') {
|
|
||||||
name = String(name)
|
|
||||||
}
|
|
||||||
if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) {
|
|
||||||
throw new TypeError('Invalid character in header field name')
|
|
||||||
}
|
|
||||||
return name.toLowerCase()
|
|
||||||
}
|
|
||||||
|
|
||||||
function normalizeValue(value) {
|
|
||||||
if (typeof value !== 'string') {
|
|
||||||
value = String(value)
|
|
||||||
}
|
|
||||||
return value
|
|
||||||
}
|
|
||||||
|
|
||||||
// Build a destructive iterator for the value list
|
|
||||||
function iteratorFor(items) {
|
|
||||||
var iterator = {
|
|
||||||
next: function() {
|
|
||||||
var value = items.shift()
|
|
||||||
return {done: value === undefined, value: value}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (support.iterable) {
|
|
||||||
iterator[Symbol.iterator] = function() {
|
|
||||||
return iterator
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return iterator
|
|
||||||
}
|
|
||||||
|
|
||||||
function Headers(headers) {
|
|
||||||
this.map = {}
|
|
||||||
|
|
||||||
if (headers instanceof Headers) {
|
|
||||||
headers.forEach(function(value, name) {
|
|
||||||
this.append(name, value)
|
|
||||||
}, this)
|
|
||||||
} else if (Array.isArray(headers)) {
|
|
||||||
headers.forEach(function(header) {
|
|
||||||
this.append(header[0], header[1])
|
|
||||||
}, this)
|
|
||||||
} else if (headers) {
|
|
||||||
Object.getOwnPropertyNames(headers).forEach(function(name) {
|
|
||||||
this.append(name, headers[name])
|
|
||||||
}, this)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Headers.prototype.append = function(name, value) {
|
|
||||||
name = normalizeName(name)
|
|
||||||
value = normalizeValue(value)
|
|
||||||
var oldValue = this.map[name]
|
|
||||||
this.map[name] = oldValue ? oldValue+','+value : value
|
|
||||||
}
|
|
||||||
|
|
||||||
Headers.prototype['delete'] = function(name) {
|
|
||||||
delete this.map[normalizeName(name)]
|
|
||||||
}
|
|
||||||
|
|
||||||
Headers.prototype.get = function(name) {
|
|
||||||
name = normalizeName(name)
|
|
||||||
return this.has(name) ? this.map[name] : null
|
|
||||||
}
|
|
||||||
|
|
||||||
Headers.prototype.has = function(name) {
|
|
||||||
return this.map.hasOwnProperty(normalizeName(name))
|
|
||||||
}
|
|
||||||
|
|
||||||
Headers.prototype.set = function(name, value) {
|
|
||||||
this.map[normalizeName(name)] = normalizeValue(value)
|
|
||||||
}
|
|
||||||
|
|
||||||
Headers.prototype.forEach = function(callback, thisArg) {
|
|
||||||
for (var name in this.map) {
|
|
||||||
if (this.map.hasOwnProperty(name)) {
|
|
||||||
callback.call(thisArg, this.map[name], name, this)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Headers.prototype.keys = function() {
|
|
||||||
var items = []
|
|
||||||
this.forEach(function(value, name) { items.push(name) })
|
|
||||||
return iteratorFor(items)
|
|
||||||
}
|
|
||||||
|
|
||||||
Headers.prototype.values = function() {
|
|
||||||
var items = []
|
|
||||||
this.forEach(function(value) { items.push(value) })
|
|
||||||
return iteratorFor(items)
|
|
||||||
}
|
|
||||||
|
|
||||||
Headers.prototype.entries = function() {
|
|
||||||
var items = []
|
|
||||||
this.forEach(function(value, name) { items.push([name, value]) })
|
|
||||||
return iteratorFor(items)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (support.iterable) {
|
|
||||||
Headers.prototype[Symbol.iterator] = Headers.prototype.entries
|
|
||||||
}
|
|
||||||
|
|
||||||
function consumed(body) {
|
|
||||||
if (body.bodyUsed) {
|
|
||||||
return Promise.reject(new TypeError('Already read'))
|
|
||||||
}
|
|
||||||
body.bodyUsed = true
|
|
||||||
}
|
|
||||||
|
|
||||||
function fileReaderReady(reader) {
|
|
||||||
return new Promise(function(resolve, reject) {
|
|
||||||
reader.onload = function() {
|
|
||||||
resolve(reader.result)
|
|
||||||
}
|
|
||||||
reader.onerror = function() {
|
|
||||||
reject(reader.error)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function readBlobAsArrayBuffer(blob) {
|
|
||||||
var reader = new FileReader()
|
|
||||||
var promise = fileReaderReady(reader)
|
|
||||||
reader.readAsArrayBuffer(blob)
|
|
||||||
return promise
|
|
||||||
}
|
|
||||||
|
|
||||||
function readBlobAsText(blob) {
|
|
||||||
var reader = new FileReader()
|
|
||||||
var promise = fileReaderReady(reader)
|
|
||||||
reader.readAsText(blob)
|
|
||||||
return promise
|
|
||||||
}
|
|
||||||
|
|
||||||
function readArrayBufferAsText(buf) {
|
|
||||||
var view = new Uint8Array(buf)
|
|
||||||
var chars = new Array(view.length)
|
|
||||||
|
|
||||||
for (var i = 0; i < view.length; i++) {
|
|
||||||
chars[i] = String.fromCharCode(view[i])
|
|
||||||
}
|
|
||||||
return chars.join('')
|
|
||||||
}
|
|
||||||
|
|
||||||
function bufferClone(buf) {
|
|
||||||
if (buf.slice) {
|
|
||||||
return buf.slice(0)
|
|
||||||
} else {
|
|
||||||
var view = new Uint8Array(buf.byteLength)
|
|
||||||
view.set(new Uint8Array(buf))
|
|
||||||
return view.buffer
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function Body() {
|
|
||||||
this.bodyUsed = false
|
|
||||||
|
|
||||||
this._initBody = function(body) {
|
|
||||||
this._bodyInit = body
|
|
||||||
if (!body) {
|
|
||||||
this._bodyText = ''
|
|
||||||
} else if (typeof body === 'string') {
|
|
||||||
this._bodyText = body
|
|
||||||
} else if (support.blob && Blob.prototype.isPrototypeOf(body)) {
|
|
||||||
this._bodyBlob = body
|
|
||||||
} else if (support.formData && FormData.prototype.isPrototypeOf(body)) {
|
|
||||||
this._bodyFormData = body
|
|
||||||
} else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
|
|
||||||
this._bodyText = body.toString()
|
|
||||||
} else if (support.arrayBuffer && support.blob && isDataView(body)) {
|
|
||||||
this._bodyArrayBuffer = bufferClone(body.buffer)
|
|
||||||
// IE 10-11 can't handle a DataView body.
|
|
||||||
this._bodyInit = new Blob([this._bodyArrayBuffer])
|
|
||||||
} else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {
|
|
||||||
this._bodyArrayBuffer = bufferClone(body)
|
|
||||||
} else {
|
|
||||||
throw new Error('unsupported BodyInit type')
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.headers.get('content-type')) {
|
|
||||||
if (typeof body === 'string') {
|
|
||||||
this.headers.set('content-type', 'text/plain;charset=UTF-8')
|
|
||||||
} else if (this._bodyBlob && this._bodyBlob.type) {
|
|
||||||
this.headers.set('content-type', this._bodyBlob.type)
|
|
||||||
} else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
|
|
||||||
this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (support.blob) {
|
|
||||||
this.blob = function() {
|
|
||||||
var rejected = consumed(this)
|
|
||||||
if (rejected) {
|
|
||||||
return rejected
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this._bodyBlob) {
|
|
||||||
return Promise.resolve(this._bodyBlob)
|
|
||||||
} else if (this._bodyArrayBuffer) {
|
|
||||||
return Promise.resolve(new Blob([this._bodyArrayBuffer]))
|
|
||||||
} else if (this._bodyFormData) {
|
|
||||||
throw new Error('could not read FormData body as blob')
|
|
||||||
} else {
|
|
||||||
return Promise.resolve(new Blob([this._bodyText]))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.arrayBuffer = function() {
|
|
||||||
if (this._bodyArrayBuffer) {
|
|
||||||
return consumed(this) || Promise.resolve(this._bodyArrayBuffer)
|
|
||||||
} else {
|
|
||||||
return this.blob().then(readBlobAsArrayBuffer)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.text = function() {
|
|
||||||
var rejected = consumed(this)
|
|
||||||
if (rejected) {
|
|
||||||
return rejected
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this._bodyBlob) {
|
|
||||||
return readBlobAsText(this._bodyBlob)
|
|
||||||
} else if (this._bodyArrayBuffer) {
|
|
||||||
return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))
|
|
||||||
} else if (this._bodyFormData) {
|
|
||||||
throw new Error('could not read FormData body as text')
|
|
||||||
} else {
|
|
||||||
return Promise.resolve(this._bodyText)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (support.formData) {
|
|
||||||
this.formData = function() {
|
|
||||||
return this.text().then(decode)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.json = function() {
|
|
||||||
return this.text().then(JSON.parse)
|
|
||||||
}
|
|
||||||
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
// HTTP methods whose capitalization should be normalized
|
|
||||||
var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']
|
|
||||||
|
|
||||||
function normalizeMethod(method) {
|
|
||||||
var upcased = method.toUpperCase()
|
|
||||||
return (methods.indexOf(upcased) > -1) ? upcased : method
|
|
||||||
}
|
|
||||||
|
|
||||||
function Request(input, options) {
|
|
||||||
options = options || {}
|
|
||||||
var body = options.body
|
|
||||||
|
|
||||||
if (input instanceof Request) {
|
|
||||||
if (input.bodyUsed) {
|
|
||||||
throw new TypeError('Already read')
|
|
||||||
}
|
|
||||||
this.url = input.url
|
|
||||||
this.credentials = input.credentials
|
|
||||||
if (!options.headers) {
|
|
||||||
this.headers = new Headers(input.headers)
|
|
||||||
}
|
|
||||||
this.method = input.method
|
|
||||||
this.mode = input.mode
|
|
||||||
if (!body && input._bodyInit != null) {
|
|
||||||
body = input._bodyInit
|
|
||||||
input.bodyUsed = true
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.url = String(input)
|
|
||||||
}
|
|
||||||
|
|
||||||
this.credentials = options.credentials || this.credentials || 'omit'
|
|
||||||
if (options.headers || !this.headers) {
|
|
||||||
this.headers = new Headers(options.headers)
|
|
||||||
}
|
|
||||||
this.method = normalizeMethod(options.method || this.method || 'GET')
|
|
||||||
this.mode = options.mode || this.mode || null
|
|
||||||
this.referrer = null
|
|
||||||
|
|
||||||
if ((this.method === 'GET' || this.method === 'HEAD') && body) {
|
|
||||||
throw new TypeError('Body not allowed for GET or HEAD requests')
|
|
||||||
}
|
|
||||||
this._initBody(body)
|
|
||||||
}
|
|
||||||
|
|
||||||
Request.prototype.clone = function() {
|
|
||||||
return new Request(this, { body: this._bodyInit })
|
|
||||||
}
|
|
||||||
|
|
||||||
function decode(body) {
|
|
||||||
var form = new FormData()
|
|
||||||
body.trim().split('&').forEach(function(bytes) {
|
|
||||||
if (bytes) {
|
|
||||||
var split = bytes.split('=')
|
|
||||||
var name = split.shift().replace(/\+/g, ' ')
|
|
||||||
var value = split.join('=').replace(/\+/g, ' ')
|
|
||||||
form.append(decodeURIComponent(name), decodeURIComponent(value))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return form
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseHeaders(rawHeaders) {
|
|
||||||
var headers = new Headers()
|
|
||||||
rawHeaders.split(/\r?\n/).forEach(function(line) {
|
|
||||||
var parts = line.split(':')
|
|
||||||
var key = parts.shift().trim()
|
|
||||||
if (key) {
|
|
||||||
var value = parts.join(':').trim()
|
|
||||||
headers.append(key, value)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return headers
|
|
||||||
}
|
|
||||||
|
|
||||||
Body.call(Request.prototype)
|
|
||||||
|
|
||||||
function Response(bodyInit, options) {
|
|
||||||
if (!options) {
|
|
||||||
options = {}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.type = 'default'
|
|
||||||
this.status = 'status' in options ? options.status : 200
|
|
||||||
this.ok = this.status >= 200 && this.status < 300
|
|
||||||
this.statusText = 'statusText' in options ? options.statusText : 'OK'
|
|
||||||
this.headers = new Headers(options.headers)
|
|
||||||
this.url = options.url || ''
|
|
||||||
this._initBody(bodyInit)
|
|
||||||
}
|
|
||||||
|
|
||||||
Body.call(Response.prototype)
|
|
||||||
|
|
||||||
Response.prototype.clone = function() {
|
|
||||||
return new Response(this._bodyInit, {
|
|
||||||
status: this.status,
|
|
||||||
statusText: this.statusText,
|
|
||||||
headers: new Headers(this.headers),
|
|
||||||
url: this.url
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
Response.error = function() {
|
|
||||||
var response = new Response(null, {status: 0, statusText: ''})
|
|
||||||
response.type = 'error'
|
|
||||||
return response
|
|
||||||
}
|
|
||||||
|
|
||||||
var redirectStatuses = [301, 302, 303, 307, 308]
|
|
||||||
|
|
||||||
Response.redirect = function(url, status) {
|
|
||||||
if (redirectStatuses.indexOf(status) === -1) {
|
|
||||||
throw new RangeError('Invalid status code')
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Response(null, {status: status, headers: {location: url}})
|
|
||||||
}
|
|
||||||
|
|
||||||
self.Headers = Headers
|
|
||||||
self.Request = Request
|
|
||||||
self.Response = Response
|
|
||||||
|
|
||||||
self.fetch = function(input, init) {
|
|
||||||
return new Promise(function(resolve, reject) {
|
|
||||||
var request = new Request(input, init)
|
|
||||||
var xhr = new XMLHttpRequest()
|
|
||||||
|
|
||||||
xhr.onload = function() {
|
|
||||||
var options = {
|
|
||||||
status: xhr.status,
|
|
||||||
statusText: xhr.statusText,
|
|
||||||
headers: parseHeaders(xhr.getAllResponseHeaders() || '')
|
|
||||||
}
|
|
||||||
options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')
|
|
||||||
var body = 'response' in xhr ? xhr.response : xhr.responseText
|
|
||||||
resolve(new Response(body, options))
|
|
||||||
}
|
|
||||||
|
|
||||||
xhr.onerror = function() {
|
|
||||||
reject(new TypeError('Network request failed'))
|
|
||||||
}
|
|
||||||
|
|
||||||
xhr.ontimeout = function() {
|
|
||||||
reject(new TypeError('Network request failed'))
|
|
||||||
}
|
|
||||||
|
|
||||||
xhr.open(request.method, request.url, true)
|
|
||||||
|
|
||||||
if (request.credentials === 'include') {
|
|
||||||
xhr.withCredentials = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('responseType' in xhr && support.blob) {
|
|
||||||
xhr.responseType = 'blob'
|
|
||||||
}
|
|
||||||
|
|
||||||
request.headers.forEach(function(value, name) {
|
|
||||||
xhr.setRequestHeader(name, value)
|
|
||||||
})
|
|
||||||
|
|
||||||
xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
self.fetch.polyfill = true
|
|
||||||
})(typeof self !== 'undefined' ? self : this);
|
|
||||||
@@ -1,311 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
function toArray(arr) {
|
|
||||||
return Array.prototype.slice.call(arr);
|
|
||||||
}
|
|
||||||
|
|
||||||
function promisifyRequest(request) {
|
|
||||||
return new Promise(function(resolve, reject) {
|
|
||||||
request.onsuccess = function() {
|
|
||||||
resolve(request.result);
|
|
||||||
};
|
|
||||||
|
|
||||||
request.onerror = function() {
|
|
||||||
reject(request.error);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function promisifyRequestCall(obj, method, args) {
|
|
||||||
var request;
|
|
||||||
var p = new Promise(function(resolve, reject) {
|
|
||||||
request = obj[method].apply(obj, args);
|
|
||||||
promisifyRequest(request).then(resolve, reject);
|
|
||||||
});
|
|
||||||
|
|
||||||
p.request = request;
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
function promisifyCursorRequestCall(obj, method, args) {
|
|
||||||
var p = promisifyRequestCall(obj, method, args);
|
|
||||||
return p.then(function(value) {
|
|
||||||
if (!value) return;
|
|
||||||
return new Cursor(value, p.request);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function proxyProperties(ProxyClass, targetProp, properties) {
|
|
||||||
properties.forEach(function(prop) {
|
|
||||||
Object.defineProperty(ProxyClass.prototype, prop, {
|
|
||||||
get: function() {
|
|
||||||
return this[targetProp][prop];
|
|
||||||
},
|
|
||||||
set: function(val) {
|
|
||||||
this[targetProp][prop] = val;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function proxyRequestMethods(ProxyClass, targetProp, Constructor, properties) {
|
|
||||||
properties.forEach(function(prop) {
|
|
||||||
if (!(prop in Constructor.prototype)) return;
|
|
||||||
ProxyClass.prototype[prop] = function() {
|
|
||||||
return promisifyRequestCall(this[targetProp], prop, arguments);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function proxyMethods(ProxyClass, targetProp, Constructor, properties) {
|
|
||||||
properties.forEach(function(prop) {
|
|
||||||
if (!(prop in Constructor.prototype)) return;
|
|
||||||
ProxyClass.prototype[prop] = function() {
|
|
||||||
return this[targetProp][prop].apply(this[targetProp], arguments);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function proxyCursorRequestMethods(ProxyClass, targetProp, Constructor, properties) {
|
|
||||||
properties.forEach(function(prop) {
|
|
||||||
if (!(prop in Constructor.prototype)) return;
|
|
||||||
ProxyClass.prototype[prop] = function() {
|
|
||||||
return promisifyCursorRequestCall(this[targetProp], prop, arguments);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function Index(index) {
|
|
||||||
this._index = index;
|
|
||||||
}
|
|
||||||
|
|
||||||
proxyProperties(Index, '_index', [
|
|
||||||
'name',
|
|
||||||
'keyPath',
|
|
||||||
'multiEntry',
|
|
||||||
'unique'
|
|
||||||
]);
|
|
||||||
|
|
||||||
proxyRequestMethods(Index, '_index', IDBIndex, [
|
|
||||||
'get',
|
|
||||||
'getKey',
|
|
||||||
'getAll',
|
|
||||||
'getAllKeys',
|
|
||||||
'count'
|
|
||||||
]);
|
|
||||||
|
|
||||||
proxyCursorRequestMethods(Index, '_index', IDBIndex, [
|
|
||||||
'openCursor',
|
|
||||||
'openKeyCursor'
|
|
||||||
]);
|
|
||||||
|
|
||||||
function Cursor(cursor, request) {
|
|
||||||
this._cursor = cursor;
|
|
||||||
this._request = request;
|
|
||||||
}
|
|
||||||
|
|
||||||
proxyProperties(Cursor, '_cursor', [
|
|
||||||
'direction',
|
|
||||||
'key',
|
|
||||||
'primaryKey',
|
|
||||||
'value'
|
|
||||||
]);
|
|
||||||
|
|
||||||
proxyRequestMethods(Cursor, '_cursor', IDBCursor, [
|
|
||||||
'update',
|
|
||||||
'delete'
|
|
||||||
]);
|
|
||||||
|
|
||||||
// proxy 'next' methods
|
|
||||||
['advance', 'continue', 'continuePrimaryKey'].forEach(function(methodName) {
|
|
||||||
if (!(methodName in IDBCursor.prototype)) return;
|
|
||||||
Cursor.prototype[methodName] = function() {
|
|
||||||
var cursor = this;
|
|
||||||
var args = arguments;
|
|
||||||
return Promise.resolve().then(function() {
|
|
||||||
cursor._cursor[methodName].apply(cursor._cursor, args);
|
|
||||||
return promisifyRequest(cursor._request).then(function(value) {
|
|
||||||
if (!value) return;
|
|
||||||
return new Cursor(value, cursor._request);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
function ObjectStore(store) {
|
|
||||||
this._store = store;
|
|
||||||
}
|
|
||||||
|
|
||||||
ObjectStore.prototype.createIndex = function() {
|
|
||||||
return new Index(this._store.createIndex.apply(this._store, arguments));
|
|
||||||
};
|
|
||||||
|
|
||||||
ObjectStore.prototype.index = function() {
|
|
||||||
return new Index(this._store.index.apply(this._store, arguments));
|
|
||||||
};
|
|
||||||
|
|
||||||
proxyProperties(ObjectStore, '_store', [
|
|
||||||
'name',
|
|
||||||
'keyPath',
|
|
||||||
'indexNames',
|
|
||||||
'autoIncrement'
|
|
||||||
]);
|
|
||||||
|
|
||||||
proxyRequestMethods(ObjectStore, '_store', IDBObjectStore, [
|
|
||||||
'put',
|
|
||||||
'add',
|
|
||||||
'delete',
|
|
||||||
'clear',
|
|
||||||
'get',
|
|
||||||
'getAll',
|
|
||||||
'getKey',
|
|
||||||
'getAllKeys',
|
|
||||||
'count'
|
|
||||||
]);
|
|
||||||
|
|
||||||
proxyCursorRequestMethods(ObjectStore, '_store', IDBObjectStore, [
|
|
||||||
'openCursor',
|
|
||||||
'openKeyCursor'
|
|
||||||
]);
|
|
||||||
|
|
||||||
proxyMethods(ObjectStore, '_store', IDBObjectStore, [
|
|
||||||
'deleteIndex'
|
|
||||||
]);
|
|
||||||
|
|
||||||
function Transaction(idbTransaction) {
|
|
||||||
this._tx = idbTransaction;
|
|
||||||
this.complete = new Promise(function(resolve, reject) {
|
|
||||||
idbTransaction.oncomplete = function() {
|
|
||||||
resolve();
|
|
||||||
};
|
|
||||||
idbTransaction.onerror = function() {
|
|
||||||
reject(idbTransaction.error);
|
|
||||||
};
|
|
||||||
idbTransaction.onabort = function() {
|
|
||||||
reject(idbTransaction.error);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Transaction.prototype.objectStore = function() {
|
|
||||||
return new ObjectStore(this._tx.objectStore.apply(this._tx, arguments));
|
|
||||||
};
|
|
||||||
|
|
||||||
proxyProperties(Transaction, '_tx', [
|
|
||||||
'objectStoreNames',
|
|
||||||
'mode'
|
|
||||||
]);
|
|
||||||
|
|
||||||
proxyMethods(Transaction, '_tx', IDBTransaction, [
|
|
||||||
'abort'
|
|
||||||
]);
|
|
||||||
|
|
||||||
function UpgradeDB(db, oldVersion, transaction) {
|
|
||||||
this._db = db;
|
|
||||||
this.oldVersion = oldVersion;
|
|
||||||
this.transaction = new Transaction(transaction);
|
|
||||||
}
|
|
||||||
|
|
||||||
UpgradeDB.prototype.createObjectStore = function() {
|
|
||||||
return new ObjectStore(this._db.createObjectStore.apply(this._db, arguments));
|
|
||||||
};
|
|
||||||
|
|
||||||
proxyProperties(UpgradeDB, '_db', [
|
|
||||||
'name',
|
|
||||||
'version',
|
|
||||||
'objectStoreNames'
|
|
||||||
]);
|
|
||||||
|
|
||||||
proxyMethods(UpgradeDB, '_db', IDBDatabase, [
|
|
||||||
'deleteObjectStore',
|
|
||||||
'close'
|
|
||||||
]);
|
|
||||||
|
|
||||||
function DB(db) {
|
|
||||||
this._db = db;
|
|
||||||
}
|
|
||||||
|
|
||||||
DB.prototype.transaction = function() {
|
|
||||||
return new Transaction(this._db.transaction.apply(this._db, arguments));
|
|
||||||
};
|
|
||||||
|
|
||||||
proxyProperties(DB, '_db', [
|
|
||||||
'name',
|
|
||||||
'version',
|
|
||||||
'objectStoreNames'
|
|
||||||
]);
|
|
||||||
|
|
||||||
proxyMethods(DB, '_db', IDBDatabase, [
|
|
||||||
'close'
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Add cursor iterators
|
|
||||||
// TODO: remove this once browsers do the right thing with promises
|
|
||||||
['openCursor', 'openKeyCursor'].forEach(function(funcName) {
|
|
||||||
[ObjectStore, Index].forEach(function(Constructor) {
|
|
||||||
Constructor.prototype[funcName.replace('open', 'iterate')] = function() {
|
|
||||||
var args = toArray(arguments);
|
|
||||||
var callback = args[args.length - 1];
|
|
||||||
var nativeObject = this._store || this._index;
|
|
||||||
var request = nativeObject[funcName].apply(nativeObject, args.slice(0, -1));
|
|
||||||
request.onsuccess = function() {
|
|
||||||
callback(request.result);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// polyfill getAll
|
|
||||||
[Index, ObjectStore].forEach(function(Constructor) {
|
|
||||||
if (Constructor.prototype.getAll) return;
|
|
||||||
Constructor.prototype.getAll = function(query, count) {
|
|
||||||
var instance = this;
|
|
||||||
var items = [];
|
|
||||||
|
|
||||||
return new Promise(function(resolve) {
|
|
||||||
instance.iterateCursor(query, function(cursor) {
|
|
||||||
if (!cursor) {
|
|
||||||
resolve(items);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
items.push(cursor.value);
|
|
||||||
|
|
||||||
if (count !== undefined && items.length == count) {
|
|
||||||
resolve(items);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
cursor.continue();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
var exp = {
|
|
||||||
open: function(name, version, upgradeCallback) {
|
|
||||||
var p = promisifyRequestCall(indexedDB, 'open', [name, version]);
|
|
||||||
var request = p.request;
|
|
||||||
|
|
||||||
request.onupgradeneeded = function(event) {
|
|
||||||
if (upgradeCallback) {
|
|
||||||
upgradeCallback(new UpgradeDB(request.result, event.oldVersion, request.transaction));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return p.then(function(db) {
|
|
||||||
return new DB(db);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
delete: function(name) {
|
|
||||||
return promisifyRequestCall(indexedDB, 'deleteDatabase', [name]);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if (typeof module !== 'undefined') {
|
|
||||||
module.exports = exp;
|
|
||||||
module.exports.default = module.exports;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
self.idb = exp;
|
|
||||||
}
|
|
||||||
}());
|
|
||||||
10
src/assets/js/material.min.js
vendored
10
src/assets/js/material.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,372 +0,0 @@
|
|||||||
/**
|
|
||||||
* setImmediate polyfill v1.0.1, supports IE9+
|
|
||||||
* © 2014–2015 Dmitry Korobkin
|
|
||||||
* Released under the MIT license
|
|
||||||
* github.com/Octane/setImmediate
|
|
||||||
*/
|
|
||||||
window.setImmediate || function () {'use strict';
|
|
||||||
|
|
||||||
var uid = 0;
|
|
||||||
var storage = {};
|
|
||||||
var firstCall = true;
|
|
||||||
var slice = Array.prototype.slice;
|
|
||||||
var message = 'setImmediatePolyfillMessage';
|
|
||||||
|
|
||||||
function fastApply(args) {
|
|
||||||
var func = args[0];
|
|
||||||
switch (args.length) {
|
|
||||||
case 1:
|
|
||||||
return func();
|
|
||||||
case 2:
|
|
||||||
return func(args[1]);
|
|
||||||
case 3:
|
|
||||||
return func(args[1], args[2]);
|
|
||||||
}
|
|
||||||
return func.apply(window, slice.call(args, 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
function callback(event) {
|
|
||||||
var key = event.data;
|
|
||||||
var data;
|
|
||||||
if (typeof key == 'string' && key.indexOf(message) == 0) {
|
|
||||||
data = storage[key];
|
|
||||||
if (data) {
|
|
||||||
delete storage[key];
|
|
||||||
fastApply(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
window.setImmediate = function setImmediate() {
|
|
||||||
var id = uid++;
|
|
||||||
var key = message + id;
|
|
||||||
var i = arguments.length;
|
|
||||||
var args = new Array(i);
|
|
||||||
while (i--) {
|
|
||||||
args[i] = arguments[i];
|
|
||||||
}
|
|
||||||
storage[key] = args;
|
|
||||||
if (firstCall) {
|
|
||||||
firstCall = false;
|
|
||||||
window.addEventListener('message', callback);
|
|
||||||
}
|
|
||||||
window.postMessage(key, '*');
|
|
||||||
return id;
|
|
||||||
};
|
|
||||||
|
|
||||||
window.clearImmediate = function clearImmediate(id) {
|
|
||||||
delete storage[message + id];
|
|
||||||
};
|
|
||||||
|
|
||||||
}();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Promise polyfill v1.0.10
|
|
||||||
* requires setImmediate
|
|
||||||
*
|
|
||||||
* © 2014–2015 Dmitry Korobkin
|
|
||||||
* Released under the MIT license
|
|
||||||
* github.com/Octane/Promise
|
|
||||||
*/
|
|
||||||
(function (global) {'use strict';
|
|
||||||
|
|
||||||
var STATUS = '[[PromiseStatus]]';
|
|
||||||
var VALUE = '[[PromiseValue]]';
|
|
||||||
var ON_FUlFILLED = '[[OnFulfilled]]';
|
|
||||||
var ON_REJECTED = '[[OnRejected]]';
|
|
||||||
var ORIGINAL_ERROR = '[[OriginalError]]';
|
|
||||||
var PENDING = 'pending';
|
|
||||||
var INTERNAL_PENDING = 'internal pending';
|
|
||||||
var FULFILLED = 'fulfilled';
|
|
||||||
var REJECTED = 'rejected';
|
|
||||||
var NOT_ARRAY = 'not an array.';
|
|
||||||
var REQUIRES_NEW = 'constructor Promise requires "new".';
|
|
||||||
var CHAINING_CYCLE = 'then() cannot return same Promise that it resolves.';
|
|
||||||
|
|
||||||
var setImmediate = global.setImmediate || require('timers').setImmediate;
|
|
||||||
var isArray = Array.isArray || function (anything) {
|
|
||||||
return Object.prototype.toString.call(anything) == '[object Array]';
|
|
||||||
};
|
|
||||||
|
|
||||||
function InternalError(originalError) {
|
|
||||||
this[ORIGINAL_ERROR] = originalError;
|
|
||||||
}
|
|
||||||
|
|
||||||
function isInternalError(anything) {
|
|
||||||
return anything instanceof InternalError;
|
|
||||||
}
|
|
||||||
|
|
||||||
function isObject(anything) {
|
|
||||||
//Object.create(null) instanceof Object → false
|
|
||||||
return Object(anything) === anything;
|
|
||||||
}
|
|
||||||
|
|
||||||
function isCallable(anything) {
|
|
||||||
return typeof anything == 'function';
|
|
||||||
}
|
|
||||||
|
|
||||||
function isPromise(anything) {
|
|
||||||
return anything instanceof Promise;
|
|
||||||
}
|
|
||||||
|
|
||||||
function identity(value) {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
function thrower(reason) {
|
|
||||||
throw reason;
|
|
||||||
}
|
|
||||||
|
|
||||||
function enqueue(promise, onFulfilled, onRejected) {
|
|
||||||
if (!promise[ON_FUlFILLED]) {
|
|
||||||
promise[ON_FUlFILLED] = [];
|
|
||||||
promise[ON_REJECTED] = [];
|
|
||||||
}
|
|
||||||
promise[ON_FUlFILLED].push(onFulfilled);
|
|
||||||
promise[ON_REJECTED].push(onRejected);
|
|
||||||
}
|
|
||||||
|
|
||||||
function clearAllQueues(promise) {
|
|
||||||
delete promise[ON_FUlFILLED];
|
|
||||||
delete promise[ON_REJECTED];
|
|
||||||
}
|
|
||||||
|
|
||||||
function callEach(queue) {
|
|
||||||
var i;
|
|
||||||
var length = queue.length;
|
|
||||||
for (i = 0; i < length; i++) {
|
|
||||||
queue[i]();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function call(resolve, reject, value) {
|
|
||||||
var anything = toPromise(value);
|
|
||||||
if (isPromise(anything)) {
|
|
||||||
anything.then(resolve, reject);
|
|
||||||
} else if (isInternalError(anything)) {
|
|
||||||
reject(anything[ORIGINAL_ERROR]);
|
|
||||||
} else {
|
|
||||||
resolve(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function toPromise(anything) {
|
|
||||||
var then;
|
|
||||||
if (isPromise(anything)) {
|
|
||||||
return anything;
|
|
||||||
}
|
|
||||||
if(isObject(anything)) {
|
|
||||||
try {
|
|
||||||
then = anything.then;
|
|
||||||
} catch (error) {
|
|
||||||
return new InternalError(error);
|
|
||||||
}
|
|
||||||
if (isCallable(then)) {
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
setImmediate(function () {
|
|
||||||
try {
|
|
||||||
then.call(anything, resolve, reject);
|
|
||||||
} catch (error) {
|
|
||||||
reject(error);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
function resolvePromise(promise, resolver) {
|
|
||||||
function resolve(value) {
|
|
||||||
if (promise[STATUS] == PENDING) {
|
|
||||||
fulfillPromise(promise, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function reject(reason) {
|
|
||||||
if (promise[STATUS] == PENDING) {
|
|
||||||
rejectPromise(promise, reason);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
resolver(resolve, reject);
|
|
||||||
} catch(error) {
|
|
||||||
reject(error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function fulfillPromise(promise, value) {
|
|
||||||
var queue;
|
|
||||||
var anything = toPromise(value);
|
|
||||||
if (isPromise(anything)) {
|
|
||||||
promise[STATUS] = INTERNAL_PENDING;
|
|
||||||
anything.then(
|
|
||||||
function (value) {
|
|
||||||
fulfillPromise(promise, value);
|
|
||||||
},
|
|
||||||
function (reason) {
|
|
||||||
rejectPromise(promise, reason);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
} else if (isInternalError(anything)) {
|
|
||||||
rejectPromise(promise, anything[ORIGINAL_ERROR]);
|
|
||||||
} else {
|
|
||||||
promise[STATUS] = FULFILLED;
|
|
||||||
promise[VALUE] = value;
|
|
||||||
queue = promise[ON_FUlFILLED];
|
|
||||||
if (queue && queue.length) {
|
|
||||||
clearAllQueues(promise);
|
|
||||||
callEach(queue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function rejectPromise(promise, reason) {
|
|
||||||
var queue = promise[ON_REJECTED];
|
|
||||||
promise[STATUS] = REJECTED;
|
|
||||||
promise[VALUE] = reason;
|
|
||||||
if (queue && queue.length) {
|
|
||||||
clearAllQueues(promise);
|
|
||||||
callEach(queue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function Promise(resolver) {
|
|
||||||
var promise = this;
|
|
||||||
if (!isPromise(promise)) {
|
|
||||||
throw new TypeError(REQUIRES_NEW);
|
|
||||||
}
|
|
||||||
promise[STATUS] = PENDING;
|
|
||||||
promise[VALUE] = undefined;
|
|
||||||
resolvePromise(promise, resolver);
|
|
||||||
}
|
|
||||||
|
|
||||||
Promise.prototype.then = function (onFulfilled, onRejected) {
|
|
||||||
var promise = this;
|
|
||||||
var nextPromise;
|
|
||||||
onFulfilled = isCallable(onFulfilled) ? onFulfilled : identity;
|
|
||||||
onRejected = isCallable(onRejected) ? onRejected : thrower;
|
|
||||||
nextPromise = new Promise(function (resolve, reject) {
|
|
||||||
function tryCall(func) {
|
|
||||||
var value;
|
|
||||||
try {
|
|
||||||
value = func(promise[VALUE]);
|
|
||||||
} catch (error) {
|
|
||||||
reject(error);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (value === nextPromise) {
|
|
||||||
reject(new TypeError(CHAINING_CYCLE));
|
|
||||||
} else {
|
|
||||||
call(resolve, reject, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function asyncOnFulfilled() {
|
|
||||||
setImmediate(tryCall, onFulfilled);
|
|
||||||
}
|
|
||||||
function asyncOnRejected() {
|
|
||||||
setImmediate(tryCall, onRejected);
|
|
||||||
}
|
|
||||||
switch (promise[STATUS]) {
|
|
||||||
case FULFILLED:
|
|
||||||
asyncOnFulfilled();
|
|
||||||
break;
|
|
||||||
case REJECTED:
|
|
||||||
asyncOnRejected();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
enqueue(promise, asyncOnFulfilled, asyncOnRejected);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return nextPromise;
|
|
||||||
};
|
|
||||||
|
|
||||||
Promise.prototype['catch'] = function (onRejected) {
|
|
||||||
return this.then(identity, onRejected);
|
|
||||||
};
|
|
||||||
|
|
||||||
Promise.resolve = function (value) {
|
|
||||||
var anything = toPromise(value);
|
|
||||||
if (isPromise(anything)) {
|
|
||||||
return anything;
|
|
||||||
}
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
if (isInternalError(anything)) {
|
|
||||||
reject(anything[ORIGINAL_ERROR]);
|
|
||||||
} else {
|
|
||||||
resolve(value);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
Promise.reject = function (reason) {
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
reject(reason);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
Promise.race = function (values) {
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
var i;
|
|
||||||
var length;
|
|
||||||
if (isArray(values)) {
|
|
||||||
length = values.length;
|
|
||||||
for (i = 0; i < length; i++) {
|
|
||||||
call(resolve, reject, values[i]);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
reject(new TypeError(NOT_ARRAY));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
Promise.all = function (values) {
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
var fulfilledCount = 0;
|
|
||||||
var promiseCount = 0;
|
|
||||||
var anything;
|
|
||||||
var length;
|
|
||||||
var value;
|
|
||||||
var i;
|
|
||||||
if (isArray(values)) {
|
|
||||||
values = values.slice(0);
|
|
||||||
length = values.length;
|
|
||||||
for (i = 0; i < length; i++) {
|
|
||||||
value = values[i];
|
|
||||||
anything = toPromise(value);
|
|
||||||
if (isPromise(anything)) {
|
|
||||||
promiseCount++;
|
|
||||||
anything.then(
|
|
||||||
function (index) {
|
|
||||||
return function (value) {
|
|
||||||
values[index] = value;
|
|
||||||
fulfilledCount++;
|
|
||||||
if (fulfilledCount == promiseCount) {
|
|
||||||
resolve(values);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}(i),
|
|
||||||
reject
|
|
||||||
);
|
|
||||||
} else if (isInternalError(anything)) {
|
|
||||||
reject(anything[ORIGINAL_ERROR]);
|
|
||||||
} else {
|
|
||||||
//[1, , 3] → [1, undefined, 3]
|
|
||||||
values[i] = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!promiseCount) {
|
|
||||||
resolve(values);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
reject(new TypeError(NOT_ARRAY));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
if (typeof module != 'undefined' && module.exports) {
|
|
||||||
module.exports = global.Promise || Promise;
|
|
||||||
} else if (!global.Promise) {
|
|
||||||
global.Promise = Promise;
|
|
||||||
}
|
|
||||||
|
|
||||||
}(this));
|
|
||||||
@@ -1,126 +0,0 @@
|
|||||||
let idbKeyval = (() => {
|
|
||||||
let db;
|
|
||||||
// console.log('idbKeyval...')
|
|
||||||
|
|
||||||
function getDB() {
|
|
||||||
if (!db) {
|
|
||||||
// console.log('CREO DB STORAGE JS !')
|
|
||||||
db = new Promise((resolve, reject) => {
|
|
||||||
const openreq = indexedDB.open('mydb3', 11);
|
|
||||||
|
|
||||||
openreq.onerror = () => {
|
|
||||||
reject(openreq.error);
|
|
||||||
};
|
|
||||||
|
|
||||||
openreq.onupgradeneeded = () => {
|
|
||||||
// First time setup: create an empty object store
|
|
||||||
openreq.result.createObjectStore('todos', { keyPath: '_id' });
|
|
||||||
openreq.result.createObjectStore('categories', { keyPath: '_id' });
|
|
||||||
openreq.result.createObjectStore('sync_todos', { keyPath: '_id' });
|
|
||||||
openreq.result.createObjectStore('sync_todos_patch', { keyPath: '_id' });
|
|
||||||
openreq.result.createObjectStore('delete_todos', { keyPath: '_id' });
|
|
||||||
openreq.result.createObjectStore('config', { keyPath: '_id' });
|
|
||||||
openreq.result.createObjectStore('swmsg', { keyPath: '_id' });
|
|
||||||
};
|
|
||||||
|
|
||||||
openreq.onsuccess = () => {
|
|
||||||
resolve(openreq.result);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return db;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function withStore(type, table, callback, ) {
|
|
||||||
const db = await getDB();
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
const transaction = db.transaction(table, type);
|
|
||||||
transaction.oncomplete = () => resolve();
|
|
||||||
transaction.onerror = () => reject(transaction.error);
|
|
||||||
callback(transaction.objectStore(table));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
async get(key) {
|
|
||||||
let req;
|
|
||||||
await withStore('readonly', 'keyval', store => {
|
|
||||||
req = store.get(key);
|
|
||||||
});
|
|
||||||
return req.result;
|
|
||||||
},
|
|
||||||
|
|
||||||
// jsonCopy(src) {
|
|
||||||
// return JSON.parse(JSON.stringify(src));
|
|
||||||
// },
|
|
||||||
|
|
||||||
// contains(a, b) {
|
|
||||||
// // array matches
|
|
||||||
// if (Array.isArray(b)) {
|
|
||||||
// return b.some(x => a.indexOf(x) > -1);
|
|
||||||
// }
|
|
||||||
// // string match
|
|
||||||
// return a.indexOf(b) > -1;
|
|
||||||
// },
|
|
||||||
|
|
||||||
async getdata(table, key) {
|
|
||||||
let req;
|
|
||||||
|
|
||||||
await withStore('readonly', table, store => {
|
|
||||||
// console.log('store', store, 'key', key)
|
|
||||||
req = store.get(key);
|
|
||||||
});
|
|
||||||
|
|
||||||
return req.result;
|
|
||||||
},
|
|
||||||
async getalldata(table) {
|
|
||||||
let req;
|
|
||||||
await withStore('readonly', table, store => {
|
|
||||||
req = store.getAll();
|
|
||||||
});
|
|
||||||
return req.result;
|
|
||||||
},
|
|
||||||
async set(key, value) {
|
|
||||||
let req;
|
|
||||||
await withStore('readwrite', 'keyval', store => {
|
|
||||||
req = store.put(value, key);
|
|
||||||
});
|
|
||||||
return req.result;
|
|
||||||
},
|
|
||||||
async setdata(table, value) {
|
|
||||||
let req;
|
|
||||||
// console.log('setdata', table, value)
|
|
||||||
|
|
||||||
await withStore('readwrite', table, store => {
|
|
||||||
req = store.put(value);
|
|
||||||
});
|
|
||||||
return req.result;
|
|
||||||
},
|
|
||||||
async delete(key) {
|
|
||||||
return await withStore('readwrite', 'keyval', store => {
|
|
||||||
store.delete(key);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
async deletedata(table, key) {
|
|
||||||
return await withStore('readwrite', table, store => {
|
|
||||||
store.delete(key);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
async clearalldata(table) {
|
|
||||||
// console.log('clearalldata', table)
|
|
||||||
return await withStore('readwrite', table, store => {
|
|
||||||
store.clear();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
})();
|
|
||||||
|
|
||||||
// iOS add-to-homescreen is missing IDB, or at least it used to.
|
|
||||||
// I haven't tested this in a while.
|
|
||||||
if (!self.indexedDB) {
|
|
||||||
idbKeyval = {
|
|
||||||
get: key => Promise.resolve(localStorage.getItem(key)),
|
|
||||||
set: (key, val) => Promise.resolve(localStorage.setItem(key, val)),
|
|
||||||
delete: key => Promise.resolve(localStorage.removeItem(key))
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -237,10 +237,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public selectOpLang = [
|
public selectOpLang = [
|
||||||
{ label: 'English', icon: 'fa-flag-us', value: 'enUs', image: '../assets/images/gb.png', short: 'EN' },
|
{ label: 'English', icon: 'fa-flag-us', value: 'enUs', image: '../statics/images/gb.png', short: 'EN' },
|
||||||
// { label: 'German', icon: 'fa-flag-de', value: 'de', image: '../assets/images/de.png', short: 'DE' },
|
// { label: 'German', icon: 'fa-flag-de', value: 'de', image: '../statics/images/de.png', short: 'DE' },
|
||||||
{ label: 'Italiano', icon: 'fa-facebook', value: 'it', image: '../assets/images/it.png', short: 'IT' },
|
{ label: 'Italiano', icon: 'fa-facebook', value: 'it', image: '../statics/images/it.png', short: 'IT' },
|
||||||
{ label: 'Español', icon: 'fa-flag-es', value: 'esEs', image: '../assets/images/es.png', short: 'ES' }
|
{ label: 'Español', icon: 'fa-flag-es', value: 'esEs', image: '../statics/images/es.png', short: 'ES' }
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@@ -329,7 +329,7 @@
|
|||||||
// dynamic import, so loading on demand only
|
// dynamic import, so loading on demand only
|
||||||
import(`quasar-framework/i18n/${mylangtopass}`).then(lang => {
|
import(`quasar-framework/i18n/${mylangtopass}`).then(lang => {
|
||||||
this.$q.i18n.set(lang.default)
|
this.$q.i18n.set(lang.default)
|
||||||
import(`src/assets/i18n`).then(function () {
|
import(`src/statics/i18n`).then(function () {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default class Logo extends Vue {
|
|||||||
logoimg: string = ''
|
logoimg: string = ''
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
this.logoimg = 'assets/images/' + process.env.LOGO_REG
|
this.logoimg = 'statics/images/' + process.env.LOGO_REG
|
||||||
this.animate()
|
this.animate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default class Offline extends Vue {
|
|||||||
logoimg: string = ''
|
logoimg: string = ''
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
this.logoimg = '/assets/images/' + process.env.LOGO_REG
|
this.logoimg = '/statics/images/' + process.env.LOGO_REG
|
||||||
this.animate()
|
this.animate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ export default class Todo extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set showtype (value) {
|
set showtype (value) {
|
||||||
// console.log('showtype', value)
|
console.log('showtype', value)
|
||||||
GlobalStore.mutations.setShowType(value)
|
GlobalStore.mutations.setShowType(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { UserStore } from "../store/Modules";
|
import { UserStore } from "../store/Modules";
|
||||||
import messages from "../assets/i18n";
|
import messages from "../statics/i18n";
|
||||||
|
|
||||||
function translate(params) {
|
function translate(params) {
|
||||||
let msg = params.split('.')
|
let msg = params.split('.')
|
||||||
|
|||||||
@@ -13,12 +13,12 @@
|
|||||||
<link rel="icon" href="<%= htmlWebpackPlugin.files.publicPath %>statics/icons/favicon.ico" type="image/x-icon">
|
<link rel="icon" href="<%= htmlWebpackPlugin.files.publicPath %>statics/icons/favicon.ico" type="image/x-icon">
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="<%= htmlWebpackPlugin.files.publicPath %>statics/icons/favicon-32x32.png">
|
<link rel="icon" type="image/png" sizes="32x32" href="<%= htmlWebpackPlugin.files.publicPath %>statics/icons/favicon-32x32.png">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="<%= htmlWebpackPlugin.files.publicPath %>statics/icons/favicon-16x16.png">
|
<link rel="icon" type="image/png" sizes="16x16" href="<%= htmlWebpackPlugin.files.publicPath %>statics/icons/favicon-16x16.png">
|
||||||
<link rel="stylesheet" type="text/css" href="<%= htmlWebpackPlugin.files.publicPath %>assets/css/dragula.css">
|
<link rel="stylesheet" type="text/css" href="<%= htmlWebpackPlugin.files.publicPath %>statics/css/dragula.css">
|
||||||
<script defer src="<%= htmlWebpackPlugin.files.publicPath %>assets/js/material.min.js"></script>
|
<script defer src="<%= htmlWebpackPlugin.files.publicPath %>statics/js/material.min.js"></script>
|
||||||
<!--<script src="<%= htmlWebpackPlugin.files.publicPath %>assets/js/promise.js"></script>-->
|
<!--<script src="<%= htmlWebpackPlugin.files.publicPath %>statics/js/promise.js"></script>-->
|
||||||
<!--<script src="<%= htmlWebpackPlugin.files.publicPath %>assets/js/fetch.js"></script>-->
|
<!--<script src="<%= htmlWebpackPlugin.files.publicPath %>statics/js/fetch.js"></script>-->
|
||||||
<!--<script src="<%= htmlWebpackPlugin.files.publicPath %>assets/js/idb.js"></script>-->
|
<!--<script src="<%= htmlWebpackPlugin.files.publicPath %>statics/js/idb.js"></script>-->
|
||||||
<!--<script src="<%= htmlWebpackPlugin.files.publicPath %>assets/js/storage.js"></script>-->
|
<!--<script src="<%= htmlWebpackPlugin.files.publicPath %>statics/js/storage.js"></script>-->
|
||||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|||||||
12
src/middleware/auth.js
Normal file
12
src/middleware/auth.js
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import { tools } from "../store/Modules/tools";
|
||||||
|
|
||||||
|
import { RouteNames } from '../router/route-names'
|
||||||
|
|
||||||
|
export default function auth({ next, router }) {
|
||||||
|
const tok = tools.getItemLS(tools.localStorage.token)
|
||||||
|
if (!tok) {
|
||||||
|
return router.push({ name: RouteNames.login });
|
||||||
|
}
|
||||||
|
|
||||||
|
return next();
|
||||||
|
}
|
||||||
@@ -8,8 +8,47 @@ export default ({ app, router, store, Vue }) => {
|
|||||||
// *** Per non permettere di accedere alle pagine in cui è necessario essere Loggati ! ***
|
// *** Per non permettere di accedere alle pagine in cui è necessario essere Loggati ! ***
|
||||||
// ******************************************
|
// ******************************************
|
||||||
|
|
||||||
/*
|
// Creates a `nextMiddleware()` function which not only
|
||||||
|
// runs the default `next()` callback but also triggers
|
||||||
|
// the subsequent Middleware function.
|
||||||
|
function nextFactory(context, middleware, index) {
|
||||||
|
const subsequentMiddleware = middleware[index]
|
||||||
|
// If no subsequent Middleware exists,
|
||||||
|
// the default `next()` callback is returned.
|
||||||
|
if (!subsequentMiddleware) return context.next
|
||||||
|
|
||||||
|
return (...parameters) => {
|
||||||
|
// Run the default Vue Router `next()` callback first.
|
||||||
|
context.next(...parameters)
|
||||||
|
// Then run the subsequent Middleware with a new
|
||||||
|
// `nextMiddleware()` callback.
|
||||||
|
const nextMiddleware = nextFactory(context, middleware, index + 1)
|
||||||
|
subsequentMiddleware({ ...context, next: nextMiddleware })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
router.beforeEach((to, from, next) => {
|
router.beforeEach((to, from, next) => {
|
||||||
|
if (to.meta.middleware) {
|
||||||
|
const middleware = Array.isArray(to.meta.middleware)
|
||||||
|
? to.meta.middleware
|
||||||
|
: [to.meta.middleware];
|
||||||
|
|
||||||
|
const context = {
|
||||||
|
from,
|
||||||
|
next,
|
||||||
|
router,
|
||||||
|
to,
|
||||||
|
};
|
||||||
|
const nextMiddleware = nextFactory(context, middleware, 1)
|
||||||
|
|
||||||
|
return middleware[0]({ ...context, next: nextMiddleware })
|
||||||
|
}
|
||||||
|
|
||||||
|
return next()
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
/*router.beforeEach((to, from, next) => {
|
||||||
var accessToken = store.state.session.userSession.accessToken
|
var accessToken = store.state.session.userSession.accessToken
|
||||||
// ESTANDO LOGEADO
|
// ESTANDO LOGEADO
|
||||||
if (accessToken) {
|
if (accessToken) {
|
||||||
@@ -45,6 +84,6 @@ export default ({ app, router, store, Vue }) => {
|
|||||||
next('/')
|
next('/')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})*/
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// src/plugins/i18n.js
|
// src/plugins/i18n.js
|
||||||
import VueI18n from 'vue-i18n';
|
import VueI18n from 'vue-i18n';
|
||||||
import messages from 'src/assets/i18n';
|
import messages from 'src/statics/i18n';
|
||||||
import { tools } from "../store/Modules/tools";
|
import { tools } from "../store/Modules/tools";
|
||||||
|
|
||||||
export default ({ app, store, Vue }) => {
|
export default ({ app, store, Vue }) => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.landing {
|
.landing {
|
||||||
background: #000 url(../../assets/images/cover.jpg) no-repeat 50% fixed;
|
background: #000 url(../../statics/images/cover.jpg) no-repeat 50% fixed;
|
||||||
background-size: cover
|
background-size: cover
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,7 +142,7 @@ body.mobile .landing:before {
|
|||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
background: #000 url(../../assets/images/cover.jpg) 50%;
|
background: #000 url(../../statics/images/cover.jpg) 50%;
|
||||||
background-size: cover
|
background-size: cover
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ export default class Home extends Vue {
|
|||||||
options = {
|
options = {
|
||||||
body: 'You successfully subscribed to our Notification service!',
|
body: 'You successfully subscribed to our Notification service!',
|
||||||
icon: '/statics/icons/app-icon-96x96.png',
|
icon: '/statics/icons/app-icon-96x96.png',
|
||||||
image: '/assets/images/sf-boat.jpg',
|
image: '/statics/images/sf-boat.jpg',
|
||||||
dir: 'ltr',
|
dir: 'ltr',
|
||||||
lang: 'enUs', // BCP 47,
|
lang: 'enUs', // BCP 47,
|
||||||
vibrate: [100, 50, 200],
|
vibrate: [100, 50, 200],
|
||||||
@@ -169,7 +169,7 @@ export default class Home extends Vue {
|
|||||||
options = {
|
options = {
|
||||||
body: mythis.$t('notification.subscribed'),
|
body: mythis.$t('notification.subscribed'),
|
||||||
icon: '/statics/icons/android-chrome-192x192.png',
|
icon: '/statics/icons/android-chrome-192x192.png',
|
||||||
image: '/assets/images/freeplanet.png',
|
image: '/statics/images/freeplanet.png',
|
||||||
dir: 'ltr',
|
dir: 'ltr',
|
||||||
lang: 'enUs', // BCP 47,
|
lang: 'enUs', // BCP 47,
|
||||||
vibrate: [100, 50, 200],
|
vibrate: [100, 50, 200],
|
||||||
|
|||||||
@@ -18,16 +18,6 @@
|
|||||||
<div class="text-subtitle2 shadow text-italic q-pl-sm ">{{$t('msg.sottoTitoloApp3')}}
|
<div class="text-subtitle2 shadow text-italic q-pl-sm ">{{$t('msg.sottoTitoloApp3')}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
|
||||||
<q-btn v-if="getPermission() !== 'granted'" class="enable-notifications shadow"
|
|
||||||
color="primary" rounded
|
|
||||||
size="lg"
|
|
||||||
icon="notifications" @click="askfornotification"
|
|
||||||
:label="$t('notification.ask')"/>
|
|
||||||
<!--<q-btn v-if="getPermission() === 'granted'" class="enable-notifications" color="primary" rounded size="lg" icon="notifications" @click="showNotificationExample" label="Send Notification"/>-->
|
|
||||||
<!--<q-btn v-if="getPermission() === 'granted'" class="enable-notifications" color="secondary" rounded size="lg" icon="notifications" @click="createPushSubscription" label="Create Push Subscription !"/>-->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<q-btn>
|
<q-btn>
|
||||||
@@ -75,6 +65,17 @@
|
|||||||
</q-field>
|
</q-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<q-btn v-if="getPermission() !== 'granted'" class="enable-notifications shadow"
|
||||||
|
color="primary" rounded
|
||||||
|
size="lg"
|
||||||
|
icon="notifications" @click="askfornotification"
|
||||||
|
:label="$t('notification.ask')"/>
|
||||||
|
<!--<q-btn v-if="getPermission() === 'granted'" class="enable-notifications" color="primary" rounded size="lg" icon="notifications" @click="showNotificationExample" label="Send Notification"/>-->
|
||||||
|
<!--<q-btn v-if="getPermission() === 'granted'" class="enable-notifications" color="secondary" rounded size="lg" icon="notifications" @click="createPushSubscription" label="Create Push Subscription !"/>-->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<!--<div class="q-pt-md q-pl-sm">-->
|
<!--<div class="q-pt-md q-pl-sm">-->
|
||||||
<!--<div class="landing__hero-btns q-gutter-md row items-center"><a tabindex="0"-->
|
<!--<div class="landing__hero-btns q-gutter-md row items-center"><a tabindex="0"-->
|
||||||
<!--type="button"-->
|
<!--type="button"-->
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
<!--<div>-->
|
<!--<div>-->
|
||||||
<!--<!– the row with a type of gutter –>-->
|
<!--<!– the row with a type of gutter –>-->
|
||||||
<!--<q-alert-->
|
<!--<q-alert-->
|
||||||
<!--avatar="assets/boy-avatar.png"-->
|
<!--avatar="statics/boy-avatar.png"-->
|
||||||
<!--color="primary"-->
|
<!--color="primary"-->
|
||||||
<!--message="Jack"-->
|
<!--message="Jack"-->
|
||||||
<!--detail="Per un mondo più Consapevole"-->
|
<!--detail="Per un mondo più Consapevole"-->
|
||||||
|
|||||||
@@ -1,54 +1,59 @@
|
|||||||
import { RouteConfig as VueRouteConfig } from 'vue-router'
|
import { RouteConfig as VueRouteConfig } from 'vue-router'
|
||||||
|
|
||||||
import { RouteNames } from './route-names'
|
import { RouteNames } from './route-names'
|
||||||
|
import { tools } from '@src/store/Modules/tools'
|
||||||
|
|
||||||
|
import auth from '../middleware/auth'
|
||||||
|
|
||||||
|
|
||||||
export const RouteConfig: VueRouteConfig[] = [
|
export const RouteConfig: VueRouteConfig[] = [
|
||||||
{
|
{
|
||||||
component: () => import('@/root/home/home.vue'),
|
|
||||||
name: RouteNames.home,
|
|
||||||
path: '/',
|
path: '/',
|
||||||
meta: { name: 'Home' }
|
name: RouteNames.home,
|
||||||
|
component: () => import('@/root/home/home.vue')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/signup',
|
path: '/signup',
|
||||||
component: () => import('@/views/login/signup/signup.vue'),
|
name: 'Registration',
|
||||||
meta: { name: 'Registration' }
|
component: () => import('@/views/login/signup/signup.vue')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/signin',
|
path: '/signin',
|
||||||
component: () => import('@/views/login/signin/signin.vue'),
|
name: RouteNames.login,
|
||||||
meta: { name: 'Login' }
|
component: () => import('@/views/login/signin/signin.vue')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/vreg',
|
path: '/vreg',
|
||||||
component: () => import('@/views/login/vreg/vreg.vue'),
|
name: 'Verify Reg',
|
||||||
meta: { name: 'Verify Reg' }
|
component: () => import('@/views/login/vreg/vreg.vue')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/todo/:category',
|
path: '/todo/:category',
|
||||||
|
name: 'Todos',
|
||||||
component: () => import('@/components/todos/todo/todo.vue'),
|
component: () => import('@/components/todos/todo/todo.vue'),
|
||||||
// props: { category: 'personal' },
|
meta: {
|
||||||
meta: { name: 'Todos' }
|
middleware: [auth]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/category',
|
path: '/category',
|
||||||
component: () => import('@/components/categories/category/category.vue'),
|
name: 'category',
|
||||||
meta: { name: 'Categories' }
|
component: () => import('@/components/categories/category/category.vue')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/admin/cfgserv',
|
path: '/admin/cfgserv',
|
||||||
component: () => import('@/components/admin/cfgServer/cfgServer.vue'),
|
name: 'cfgserv',
|
||||||
meta: { name: 'Categories' }
|
component: () => import('@/components/admin/cfgServer/cfgServer.vue')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/admin/testp1/:category',
|
path: '/admin/testp1/:category',
|
||||||
component: () => import('@/components/admin/testp1/testp1.vue'),
|
name: 'Categories',
|
||||||
meta: { name: 'Categories' }
|
component: () => import('@/components/admin/testp1/testp1.vue')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/offline',
|
path: '/offline',
|
||||||
component: () => import('@/components/offline/offline.vue'),
|
name: 'Offline',
|
||||||
meta: { name: 'Offline' }
|
component: () => import('@/components/offline/offline.vue')
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
{
|
{
|
||||||
@@ -74,4 +79,3 @@ export const RouteConfig: VueRouteConfig[] = [
|
|||||||
meta: { name: 'Embeeded' }
|
meta: { name: 'Embeeded' }
|
||||||
}*/
|
}*/
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import * as Types from '@src/store/Api/ApiTypes'
|
|||||||
|
|
||||||
async function sendRequest(url: string, method: string, mydata: any) {
|
async function sendRequest(url: string, method: string, mydata: any) {
|
||||||
|
|
||||||
|
if (!process.env.DEBUG)
|
||||||
console.log('sendRequest', method, url)
|
console.log('sendRequest', method, url)
|
||||||
|
|
||||||
let request
|
let request
|
||||||
|
|||||||
@@ -17,11 +17,13 @@ export const axiosInstance: AxiosInstance = axios.create({
|
|||||||
|
|
||||||
axiosInstance.interceptors.response.use(
|
axiosInstance.interceptors.response.use(
|
||||||
(response) => {
|
(response) => {
|
||||||
|
if (process.env.DEBUG === '1')
|
||||||
console.log(response)
|
console.log(response)
|
||||||
return response
|
return response
|
||||||
},
|
},
|
||||||
(error) => {
|
(error) => {
|
||||||
if (error.response) {
|
if (error.response) {
|
||||||
|
if (process.env.DEBUG === '1')
|
||||||
console.log(error.response.status)
|
console.log(error.response.status)
|
||||||
console.log('Request Error: ', error.response)
|
console.log('Request Error: ', error.response)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import translate from './../../globalroutines/util'
|
|||||||
|
|
||||||
import urlBase64ToUint8Array from '../../js/utility'
|
import urlBase64ToUint8Array from '../../js/utility'
|
||||||
|
|
||||||
import messages from '../../assets/i18n'
|
import messages from '../../statics/i18n'
|
||||||
import { GlobalStore, Todos, UserStore } from '@store'
|
import { GlobalStore, Todos, UserStore } from '@store'
|
||||||
import globalroutines from './../../globalroutines/index'
|
import globalroutines from './../../globalroutines/index'
|
||||||
import Api from '@api'
|
import Api from '@api'
|
||||||
@@ -62,12 +62,16 @@ async function getConfig(id) {
|
|||||||
async function getstateConnSaved() {
|
async function getstateConnSaved() {
|
||||||
const config = await getConfig(costanti.CONFIG_ID_CFG)
|
const config = await getConfig(costanti.CONFIG_ID_CFG)
|
||||||
console.log('config', config)
|
console.log('config', config)
|
||||||
|
if (config) {
|
||||||
if (config.length > 1) {
|
if (config.length > 1) {
|
||||||
const cfgstateconn = config[1]
|
const cfgstateconn = config[1]
|
||||||
return cfgstateconn.stateconn
|
return cfgstateconn.stateconn
|
||||||
} else {
|
} else {
|
||||||
return 'online'
|
return 'online'
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
return 'offline'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -84,12 +88,12 @@ namespace Getters {
|
|||||||
const testpao1_getter_array = b.read(state => param1 => state.testp1.mioarray.filter(item => item).map(item => item.valore), 'testpao1_getter_array')
|
const testpao1_getter_array = b.read(state => param1 => state.testp1.mioarray.filter(item => item).map(item => item.valore), 'testpao1_getter_array')
|
||||||
|
|
||||||
const getConfigbyId = b.read(state => id => state.arrConfig.find(item => item._id === id), 'getConfigbyId')
|
const getConfigbyId = b.read(state => id => state.arrConfig.find(item => item._id === id), 'getConfigbyId')
|
||||||
const getConfigStringbyId = b.read(state => id => {
|
const getConfigStringbyId = b.read(state => params => {
|
||||||
const config = state.arrConfig.find(item => item._id === id)
|
const config = state.arrConfig.find(item => item._id === params.id)
|
||||||
if (config) {
|
if (config) {
|
||||||
return config.value
|
return config.value
|
||||||
} else {
|
} else {
|
||||||
return ''
|
return params.default
|
||||||
}
|
}
|
||||||
}, 'getConfigStringbyId')
|
}, 'getConfigStringbyId')
|
||||||
|
|
||||||
@@ -199,15 +203,18 @@ namespace Mutations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setShowType(state: IGlobalState, showtype: number) {
|
function setShowType(state: IGlobalState, showtype: number) {
|
||||||
// console.log('setShowType', showtype)
|
console.log('setShowType', showtype)
|
||||||
const config = Getters.getters.getConfigbyId(costanti.CONFIG_ID_SHOW_TYPE_TODOS)
|
const config = Getters.getters.getConfigbyId(costanti.CONFIG_ID_SHOW_TYPE_TODOS)
|
||||||
// console.log('config', config)
|
console.log('config', config)
|
||||||
if (config) {
|
if (config) {
|
||||||
config.value = String(showtype)
|
config.value = String(showtype)
|
||||||
Todos.state.showtype = parseInt(config.value)
|
Todos.state.showtype = parseInt(config.value)
|
||||||
// console.log('Todos.state.showtype', Todos.state.showtype)
|
} else {
|
||||||
GlobalStore.mutations.saveConfig({ _id: costanti.CONFIG_ID_SHOW_TYPE_TODOS, value: String(showtype) })
|
Todos.state.showtype = showtype
|
||||||
}
|
}
|
||||||
|
console.log('Todos.state.showtype', Todos.state.showtype)
|
||||||
|
GlobalStore.mutations.saveConfig({ _id: costanti.CONFIG_ID_SHOW_TYPE_TODOS, value: String(showtype) })
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const mutations = {
|
export const mutations = {
|
||||||
|
|||||||
@@ -404,6 +404,7 @@ namespace Actions {
|
|||||||
return sendSwMsgIfAvailable()
|
return sendSwMsgIfAvailable()
|
||||||
.then(something => {
|
.then(something => {
|
||||||
if (something) {
|
if (something) {
|
||||||
|
if (process.env.DEBUG === '1')
|
||||||
console.log('something')
|
console.log('something')
|
||||||
// Refresh data
|
// Refresh data
|
||||||
return waitAndRefreshData(context)
|
return waitAndRefreshData(context)
|
||||||
@@ -482,12 +483,12 @@ namespace Actions {
|
|||||||
|
|
||||||
// console.log('PRIMA showtype = ', state.showtype)
|
// console.log('PRIMA showtype = ', state.showtype)
|
||||||
|
|
||||||
state.showtype = parseInt(GlobalStore.getters.getConfigStringbyId(costanti.CONFIG_ID_SHOW_TYPE_TODOS))
|
state.showtype = parseInt(GlobalStore.getters.getConfigStringbyId({id: costanti.CONFIG_ID_SHOW_TYPE_TODOS, default: costanti.ShowTypeTask.SHOW_LAST_N_COMPLETED }))
|
||||||
|
|
||||||
// console.log('showtype = ', state.showtype)
|
// console.log('showtype = ', state.showtype)
|
||||||
|
|
||||||
// console.log('ARRAY TODOS = ', state.todos)
|
// console.log('ARRAY TODOS = ', state.todos)
|
||||||
|
if (process.env.DEBUG === '1')
|
||||||
console.log('dbLoadTodo', 'state.todos', state.todos, 'state.categories', state.categories)
|
console.log('dbLoadTodo', 'state.todos', state.todos, 'state.categories', state.categories)
|
||||||
|
|
||||||
return res
|
return res
|
||||||
@@ -499,6 +500,7 @@ namespace Actions {
|
|||||||
})
|
})
|
||||||
|
|
||||||
if (ris.status !== 200) {
|
if (ris.status !== 200) {
|
||||||
|
if (process.env.DEBUG === '1')
|
||||||
console.log('ris.status', ris.status)
|
console.log('ris.status', ris.status)
|
||||||
if (ris.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
|
if (ris.status === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) {
|
||||||
consolelogpao('UNAUTHORIZING... TOKEN EXPIRED... !! ')
|
consolelogpao('UNAUTHORIZING... TOKEN EXPIRED... !! ')
|
||||||
|
|||||||
@@ -367,7 +367,7 @@ namespace Actions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function signin(context, authData: ISigninOptions) {
|
async function signin(context, authData: ISigninOptions) {
|
||||||
console.log('LOGIN signin')
|
// console.log('LOGIN signin')
|
||||||
|
|
||||||
// console.log('MYLANG = ' + state.lang)
|
// console.log('MYLANG = ' + state.lang)
|
||||||
|
|
||||||
@@ -406,7 +406,7 @@ namespace Actions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// console.log('PASSO 4')
|
// console.log('PASSO 4')
|
||||||
|
if (process.env.DEBUG === '1')
|
||||||
console.log(usertosend)
|
console.log(usertosend)
|
||||||
|
|
||||||
Mutations.mutations.setServerCode(tools.CALLING)
|
Mutations.mutations.setServerCode(tools.CALLING)
|
||||||
|
|||||||
@@ -147,11 +147,16 @@ export default class Signin extends Vue {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$q.loading.show({ message: this.$t('login.incorso') })
|
let msg = this.$t('login.incorso')
|
||||||
|
if (process.env.DEBUG)
|
||||||
|
msg += ' ' + process.env.MONGODB_HOST
|
||||||
|
this.$q.loading.show({ message: msg})
|
||||||
// disable Button Login:
|
// disable Button Login:
|
||||||
this.iswaitingforRes = true
|
this.iswaitingforRes = true
|
||||||
|
|
||||||
console.log(this.signin)
|
if (process.env.DEBUG)
|
||||||
|
console.log('this.signin', this.signin)
|
||||||
|
|
||||||
UserStore.actions.signin(this.signin)
|
UserStore.actions.signin(this.signin)
|
||||||
.then((riscode) => {
|
.then((riscode) => {
|
||||||
// console.log('signin FINITO CALL: riscode=', riscode)
|
// console.log('signin FINITO CALL: riscode=', riscode)
|
||||||
|
|||||||
@@ -25,10 +25,10 @@
|
|||||||
"paths": {
|
"paths": {
|
||||||
"@src/*": ["./*"],
|
"@src/*": ["./*"],
|
||||||
"@components": ["./components/index.ts"],
|
"@components": ["./components/index.ts"],
|
||||||
"@css/*": ["./assets/css/*"],
|
"@css/*": ["./statics/css/*"],
|
||||||
"@icons/*": ["./statics/icons/*"],
|
"@icons/*": ["./statics/icons/*"],
|
||||||
"@images/*": ["./assets/images/*"],
|
"@images/*": ["./statics/images/*"],
|
||||||
"@js/*": ["./assets/js/*"],
|
"@js/*": ["./statics/js/*"],
|
||||||
"@classes": ["./classes/index.ts"],
|
"@classes": ["./classes/index.ts"],
|
||||||
"@utils/*": ["./utils/*"],
|
"@utils/*": ["./utils/*"],
|
||||||
"@validators": ["./utils/validators.ts"],
|
"@validators": ["./utils/validators.ts"],
|
||||||
|
|||||||
@@ -10189,9 +10189,9 @@ optimist@^0.6.1:
|
|||||||
minimist "~0.0.1"
|
minimist "~0.0.1"
|
||||||
wordwrap "~0.0.2"
|
wordwrap "~0.0.2"
|
||||||
|
|
||||||
optimize-css-assets-webpack-plugin@5.0.1:
|
optimize-css-statics-webpack-plugin@5.0.1:
|
||||||
version "5.0.1"
|
version "5.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz#9eb500711d35165b45e7fd60ba2df40cb3eb9159"
|
resolved "https://registry.yarnpkg.com/optimize-css-statics-webpack-plugin/-/optimize-css-statics-webpack-plugin-5.0.1.tgz#9eb500711d35165b45e7fd60ba2df40cb3eb9159"
|
||||||
integrity sha512-Rqm6sSjWtx9FchdP0uzTQDc7GXDKnwVEGoSxjezPkzMewx7gEWE9IMUYKmigTRC4U3RaNSwYVnUDLuIdtTpm0A==
|
integrity sha512-Rqm6sSjWtx9FchdP0uzTQDc7GXDKnwVEGoSxjezPkzMewx7gEWE9IMUYKmigTRC4U3RaNSwYVnUDLuIdtTpm0A==
|
||||||
dependencies:
|
dependencies:
|
||||||
cssnano "^4.1.0"
|
cssnano "^4.1.0"
|
||||||
@@ -11751,7 +11751,7 @@ quasar-cli@^0.17.23:
|
|||||||
net "1.0.2"
|
net "1.0.2"
|
||||||
node-loader "0.6.0"
|
node-loader "0.6.0"
|
||||||
opn "5.3.0"
|
opn "5.3.0"
|
||||||
optimize-css-assets-webpack-plugin "5.0.1"
|
optimize-css-statics-webpack-plugin "5.0.1"
|
||||||
ouch "2.0.0"
|
ouch "2.0.0"
|
||||||
postcss-loader "3.0.0"
|
postcss-loader "3.0.0"
|
||||||
postcss-rtl "1.3.2"
|
postcss-rtl "1.3.2"
|
||||||
|
|||||||
Reference in New Issue
Block a user