Compare commits
10 Commits
cfb830a0ad
...
89a8d10eae
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
89a8d10eae | ||
|
|
6fdb101092 | ||
|
|
f238630dd7 | ||
|
|
a22eca0f58 | ||
|
|
a4ca394e49 | ||
|
|
5d35930dc8 | ||
|
|
a51bc5a8a2 | ||
|
|
8b6a636a96 | ||
|
|
2abdda3b44 | ||
|
|
3018542868 |
4
.env
4
.env
@@ -1,6 +1,6 @@
|
||||
VITE_APP_VERSION="1.2.85"
|
||||
VITE_APP_VERSION="1.2.86"
|
||||
VITE_LANG_DEFAULT="it"
|
||||
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||
VITE_SERVICE_WORKER_FILE="sw-1.2.85.js"
|
||||
VITE_SERVICE_WORKER_FILE="sw-1.2.86.js"
|
||||
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||
VITE_VUE_ROUTER_MODE="history"
|
||||
@@ -1,11 +1,11 @@
|
||||
VITE_APP_ID="13"
|
||||
VITE_APP_URL="https://test.riso.app"
|
||||
VITE_MONGODB_HOST="https://testapi.riso.app"
|
||||
VITE_LOGO_REG="riso-logo-full.png"
|
||||
VITE_APP_URL="https://riso.app"
|
||||
VITE_MONGODB_HOST="https://api.riso.app"
|
||||
VITE_LOGO_REG='riso-logo-full.png'
|
||||
VITE_PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
|
||||
VITE_DEBUG="1"
|
||||
VITE_VUE_APP_ISTEST="1"
|
||||
DIRECTORY_LOCAL="myprojplanet_vite"
|
||||
DIRECTORY_SERVER="/var/www/nodejs_test.riso_server"
|
||||
SERVERDIR_WEBSITE="/var/www/test.riso.app"
|
||||
VITE_DEBUG="0"
|
||||
VITE_VUE_APP_ISTEST="0"
|
||||
DIRECTORY_LOCAL=myprojplanet_vite
|
||||
DIRECTORY_SERVER=/var/www/nodejs_riso_server
|
||||
SERVERDIR_WEBSITE="/var/www/riso.app"
|
||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||
1778
_LIMBO/Casi d'Uso Ollama - Esempi Pratici.html
Normal file
1778
_LIMBO/Casi d'Uso Ollama - Esempi Pratici.html
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
1026
_LIMBO/aaa.scss
Normal file
1026
_LIMBO/aaa.scss
Normal file
File diff suppressed because it is too large
Load Diff
2969
_LIMBO/faq_ris.html
Normal file
2969
_LIMBO/faq_ris.html
Normal file
File diff suppressed because it is too large
Load Diff
0
_LIMBO/grid.html
Normal file
0
_LIMBO/grid.html
Normal file
2293
_LIMBO/risospiegazione.html
Normal file
2293
_LIMBO/risospiegazione.html
Normal file
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@
|
||||
<meta name="description" content="<%= productDescription %>">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
<meta name="version" content="1.2.85">
|
||||
<meta name="version" content="1.2.86">
|
||||
<meta name="viewport"
|
||||
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
|
||||
|
||||
|
||||
111
package.json
111
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "riso",
|
||||
"version": "1.2.85",
|
||||
"version": "1.2.86",
|
||||
"productName": "Riso 💚 - Rete Italiana Scambio orizzontale",
|
||||
"description": "Progetto RISO (Rete Italiana Scambio orizzontale) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "APP_VERSION='1.2.85' PORT=8084 quasar dev",
|
||||
"dev": "APP_VERSION='1.2.86' PORT=8084 quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,35 +21,35 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.85' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.85' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.86' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
"postinstall": "quasar prepare"
|
||||
},
|
||||
"dependencies": {
|
||||
"@cubejs-client/core": "^1.3.21",
|
||||
"@cubejs-client/core": "^1.5.11",
|
||||
"@quasar/extras": "^1.17.0",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.1.2",
|
||||
"@types/jsbarcode": "^3.11.4",
|
||||
"@types/leaflet": "^1.9.18",
|
||||
"@vue/compat": "^3.5.16",
|
||||
"@vue/compiler-sfc": "^3.5.16",
|
||||
"@types/leaflet": "^1.9.21",
|
||||
"@vue/compat": "^3.5.25",
|
||||
"@vue/compiler-sfc": "^3.5.25",
|
||||
"@vuelidate/core": "^2.0.3",
|
||||
"@vuelidate/validators": "^2.0.4",
|
||||
"acorn": "^8.15.0",
|
||||
"animate.css": "^4.1.1",
|
||||
"apexcharts": "^4.7.0",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"axios": "^1.9.0",
|
||||
"bcryptjs": "^3.0.2",
|
||||
"chart.js": "^4.4.9",
|
||||
"core-js": "^3.43.0",
|
||||
"apexcharts": "^5.3.6",
|
||||
"autoprefixer": "^10.4.22",
|
||||
"axios": "^1.13.2",
|
||||
"bcryptjs": "^3.0.3",
|
||||
"chart.js": "^4.5.1",
|
||||
"core-js": "^3.47.0",
|
||||
"crypto-browserify": "^3.12.1",
|
||||
"date-fns": "^4.1.0",
|
||||
"echarts": "5.6.0",
|
||||
"eslint-plugin-n": "^17.19.0",
|
||||
"echarts": "6.0.0",
|
||||
"eslint-plugin-n": "^17.23.1",
|
||||
"eslint-plugin-quasar": "^1.1.0",
|
||||
"gsap": "^3.13.0",
|
||||
"jquery": "^3.7.1",
|
||||
@@ -63,76 +63,77 @@
|
||||
"mongoose-paginate-v2": "^1.9.1",
|
||||
"normalize.css": "^8.0.1",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^3.0.3",
|
||||
"quasar": "^2.18.1",
|
||||
"pinia": "^3.0.4",
|
||||
"qrcode-vue3": "^1.7.1",
|
||||
"quasar": "^2.18.6",
|
||||
"quasar-extras": "^2.0.9",
|
||||
"register-service-worker": "^1.7.2",
|
||||
"scrollreveal": "^4.0.9",
|
||||
"typescript-eslint": "^8.34.0",
|
||||
"typescript-eslint": "^8.48.1",
|
||||
"vee-validate": "^4.15.1",
|
||||
"vue": "^3.5.16",
|
||||
"vue": "^3.5.25",
|
||||
"vue-class-component": "^8.0.0-rc.1",
|
||||
"vue-country-code": "^1.1.3",
|
||||
"vue-echarts": "^7.0.3",
|
||||
"vue-i18n": "^11.1.5",
|
||||
"vue-echarts": "^8.0.1",
|
||||
"vue-i18n": "^11.2.2",
|
||||
"vue-idb": "^0.2.0",
|
||||
"vue-property-decorator": "^10.0.0-rc.3",
|
||||
"vue-router": "^4.5.1",
|
||||
"vue-router": "^4.6.3",
|
||||
"vue-scroll-reveal": "^2.1.0",
|
||||
"vue-social-sharing": "^4.0.0-alpha4",
|
||||
"vue-svgicon": "^4.0.0-alpha.3",
|
||||
"vue-timeago3": "^2.3.2",
|
||||
"vue2-dragula": "^2.5.5",
|
||||
"vue3-apexcharts": "^1.8.0",
|
||||
"vue3-apexcharts": "^1.10.0",
|
||||
"vue3-qr-reader": "^1.0.0",
|
||||
"vuedraggable": "^4.1.0",
|
||||
"vuex": "^4.1.0",
|
||||
"vuex-router-sync": "^6.0.0-rc.1",
|
||||
"workbox-core": "^7.3.0",
|
||||
"workbox-precaching": "^7.3.0",
|
||||
"workbox-routing": "^7.3.0",
|
||||
"workbox-strategies": "^7.3.0",
|
||||
"workbox-window": "^7.3.0",
|
||||
"workbox-core": "^7.4.0",
|
||||
"workbox-precaching": "^7.4.0",
|
||||
"workbox-routing": "^7.4.0",
|
||||
"workbox-strategies": "^7.4.0",
|
||||
"workbox-window": "^7.4.0",
|
||||
"xlsx": "^0.18.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.28.0",
|
||||
"@intlify/unplugin-vue-i18n": "^6.0.8",
|
||||
"@quasar/app-vite": "^2.2.1",
|
||||
"@eslint/js": "^9.39.1",
|
||||
"@intlify/unplugin-vue-i18n": "^11.0.1",
|
||||
"@quasar/app-vite": "^2.4.0",
|
||||
"@types/google.maps": "^3.58.1",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/js-cookie": "^3.0.6",
|
||||
"@types/node": "^24.0.1",
|
||||
"@types/node": "^24.10.1",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/vue-tel-input": "^2.1.7",
|
||||
"@types/vuelidate": "^0.7.22",
|
||||
"@vue/devtools": "^7.7.6",
|
||||
"@vue/devtools": "^8.0.5",
|
||||
"@vue/eslint-config-prettier": "^10.2.0",
|
||||
"@vue/eslint-config-typescript": "^14.5.0",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"@vue/eslint-config-typescript": "^14.6.0",
|
||||
"autoprefixer": "^10.4.22",
|
||||
"eslint": "9",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-vue": "^10.2.0",
|
||||
"eslint-plugin-import": "^2.32.0",
|
||||
"eslint-plugin-vue": "^10.6.2",
|
||||
"file-loader": "^6.2.0",
|
||||
"globals": "^16.2.0",
|
||||
"globals": "^16.5.0",
|
||||
"http-proxy-middleware": "^3.0.5",
|
||||
"jest": "^30.0.0",
|
||||
"jest": "^30.2.0",
|
||||
"json-loader": "^0.5.7",
|
||||
"nodemon": "^3.1.10",
|
||||
"npm-check-updates": "^18.0.1",
|
||||
"parcel": "^2.15.2",
|
||||
"postcss": "^8.5.5",
|
||||
"postcss-loader": "^8.1.1",
|
||||
"nodemon": "^3.1.11",
|
||||
"npm-check-updates": "^19.1.2",
|
||||
"parcel": "^2.16.1",
|
||||
"postcss": "^8.5.6",
|
||||
"postcss-loader": "^8.2.0",
|
||||
"prettier": "3",
|
||||
"strip-ansi": "=7.1.0",
|
||||
"ts-jest": "^29.4.0",
|
||||
"typescript": "5.8.3",
|
||||
"vite-plugin-checker": "^0.9.3",
|
||||
"strip-ansi": "=7.1.2",
|
||||
"ts-jest": "^29.4.6",
|
||||
"typescript": "5.9.3",
|
||||
"vite-plugin-checker": "^0.11.0",
|
||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||
"vue-eslint-parser": "^10.1.3",
|
||||
"vue-tsc": "^2.2.10",
|
||||
"vue-eslint-parser": "^10.2.0",
|
||||
"vue-tsc": "^3.1.5",
|
||||
"vueify": "^9.4.1",
|
||||
"workbox-build": "^7.3.0"
|
||||
"workbox-build": "^7.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^28 || ^26 || ^24 || ^22 || ^20 || ^18",
|
||||
|
||||
329
quasar.config.ts
329
quasar.config.ts
@@ -1,21 +1,9 @@
|
||||
import { defineConfig } from '#q-app/wrappers';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
import path from 'path';
|
||||
|
||||
// console.log(process.env)
|
||||
|
||||
export default defineConfig((ctx) => {
|
||||
return {
|
||||
// https://v2.quasar.dev/quasar-cli/supporting-ts
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/prefetch-feature
|
||||
// preFetch: true,
|
||||
|
||||
// app boot file (/src/boot)
|
||||
// --> boot files are part of "main.js"
|
||||
// https://v2.quasar.dev/quasar-cli/boot-files
|
||||
// boot: ['vue-i18n', 'vue-meta', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'vue-idb', 'dragula', 'guard'],
|
||||
boot: [
|
||||
'i18n',
|
||||
'axios',
|
||||
@@ -31,56 +19,89 @@ export default defineConfig((ctx) => {
|
||||
'trackPageViews',
|
||||
],
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
|
||||
css: [
|
||||
'app.scss',
|
||||
// '~quasar-ui-qcalendar/src/css/calendar-day.sass'
|
||||
],
|
||||
css: ['app.scss'],
|
||||
|
||||
// https://github.com/quasarframework/quasar/tree/dev/extras
|
||||
extras: [
|
||||
// 'ionicons-v4',
|
||||
// 'mdi-v5',
|
||||
// 'eva-icons',
|
||||
// 'themify',
|
||||
// 'line-awesome',
|
||||
'ionicons-v4',
|
||||
// 'mdi-v3',
|
||||
'fontawesome-v5',
|
||||
'roboto-font', // optional, you are not bound to it
|
||||
'material-icons', // optional, you are not bound to it
|
||||
'roboto-font',
|
||||
'material-icons',
|
||||
'material-icons-outlined',
|
||||
],
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
|
||||
|
||||
build: {
|
||||
target: {
|
||||
browser: ['es2021', 'chrome100', 'firefox100', 'safari14'],
|
||||
node: 'node20',
|
||||
},
|
||||
|
||||
// ✅ AGGIUNTO: Importa automaticamente variables.scss ovunque
|
||||
sassVariables: 'src/css/variables.scss',
|
||||
|
||||
vueRouterMode: 'history',
|
||||
analyze: false,
|
||||
transpile: true,
|
||||
transpileDependencies: [/quasar-ui-qcalendar[\\/]src/],
|
||||
|
||||
typescript: {
|
||||
strict: false,
|
||||
vueShim: true,
|
||||
},
|
||||
|
||||
// ✅ AGGIUNTO: Config SCSS globale per Vite
|
||||
extendViteConf(viteConf, { isServer, isClient }) {
|
||||
// Alias puliti
|
||||
viteConf.resolve = {
|
||||
...(viteConf.resolve || {}),
|
||||
alias: {
|
||||
...viteConf.resolve.alias,
|
||||
'#q-app': path.resolve(__dirname, 'node_modules/quasar/app'),
|
||||
|
||||
// Alias essenziali (rimuovi duplicati)
|
||||
'@': path.resolve(__dirname, 'src'),
|
||||
'@components': path.resolve(__dirname, 'src/components'),
|
||||
'@views': path.resolve(__dirname, 'src/views'),
|
||||
'@boot': path.resolve(__dirname, 'src/boot'),
|
||||
'@store': path.resolve(__dirname, 'src/store'),
|
||||
'@storemod': path.resolve(__dirname, 'src/store/Modules'),
|
||||
'@tools': path.resolve(__dirname, 'src/store/Modules/tools.ts'), // ✅ AGGIUNTO
|
||||
'@costanti': path.resolve(__dirname, 'src/store/Modules/costanti.ts'), // ✅ AGGIUNTO
|
||||
'@api': path.resolve(__dirname, 'src/store/Api'),
|
||||
'@utils': path.resolve(__dirname, 'src/utils'),
|
||||
'@model': path.resolve(__dirname, 'src/model'),
|
||||
'@classes': path.resolve(__dirname, 'src/classes'),
|
||||
'@router': path.resolve(__dirname, 'src/router'),
|
||||
'@css': path.resolve(__dirname, 'src/css'),
|
||||
'@paths': path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'),
|
||||
'@images': path.resolve(__dirname, 'src/assets/images'),
|
||||
'@icons': path.resolve(__dirname, 'src/public/myicons'),
|
||||
},
|
||||
};
|
||||
|
||||
// ✅ AGGIUNTO: SCSS preprocessor con variables.scss globale
|
||||
viteConf.css = {
|
||||
...(viteConf.css || {}),
|
||||
preprocessorOptions: {
|
||||
scss: {
|
||||
additionalData: `@use "sass:color"; @use "@/css/variables.scss" as *;`,
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
viteConf: {
|
||||
server: {
|
||||
hmr: {
|
||||
protocol: 'wss', // o 'ws' se usi HTTP
|
||||
protocol: 'wss',
|
||||
host: 'localhost',
|
||||
port: 8094,
|
||||
},
|
||||
},
|
||||
},
|
||||
target: {
|
||||
browser: ['es2022', 'firefox115', 'chrome115', 'safari14'],
|
||||
node: 'node20',
|
||||
},
|
||||
sassVariables: 'src/css/variables.scss',
|
||||
// env: envparser(),
|
||||
// versionCode: package.version,
|
||||
vueRouterMode: 'history',
|
||||
analyze: false, // true
|
||||
transpile: true,
|
||||
transpileDependencies: [/quasar-ui-qcalendar[\\/]src/],
|
||||
|
||||
beforeDev(api) {
|
||||
// Se la variabile d'ambiente SKIP_TSC è impostata, disabilita il type checking
|
||||
if (process.env.SKIP_TSC === 'true') {
|
||||
console.log('⚠️ TypeScript type checking is disabled');
|
||||
|
||||
// Disattiva TypeScript checking per Vite
|
||||
if (api && api.chainWebpack) {
|
||||
api.chainWebpack((chain) => {
|
||||
chain.plugin('fork-ts-checker').tap((args) => {
|
||||
@@ -91,113 +112,19 @@ export default defineConfig((ctx) => {
|
||||
}
|
||||
}
|
||||
},
|
||||
// @quasar/app-vite v2.0.3+
|
||||
|
||||
envFilter(originalEnv) {
|
||||
const newEnv = {};
|
||||
for (const key in originalEnv) {
|
||||
/* ...decide if it goes in or not... */
|
||||
if (true) {
|
||||
newEnv[key] = originalEnv[key];
|
||||
}
|
||||
}
|
||||
|
||||
// remember to return your processed env
|
||||
return newEnv;
|
||||
},
|
||||
|
||||
typescript: {
|
||||
strict: false,
|
||||
vueShim: true,
|
||||
extendTsConfig(tsConfig) {
|
||||
// You can use this hook to extend tsConfig dynamically
|
||||
// For basic use cases, you can still update the usual tsconfig.json file to override some settings
|
||||
},
|
||||
|
||||
/**
|
||||
* Folder where Quasar CLI should look for .env* files.
|
||||
* Can be an absolute path or a relative path to project root directory.
|
||||
*
|
||||
* @default project root directory
|
||||
*/
|
||||
// envFolder?: string
|
||||
/**
|
||||
* Additional .env* files to be loaded.
|
||||
* Each entry can be an absolute path or a relative path to quasar.config > build > envFolder.
|
||||
*
|
||||
* @example ['.env.somefile', '../.env.someotherfile']
|
||||
*/
|
||||
// envFiles?: string[];
|
||||
},
|
||||
|
||||
extendViteConf(viteConf, { isServer, isClient }) {
|
||||
viteConf.resolve = {
|
||||
...(viteConf.resolve || {}),
|
||||
alias: {
|
||||
...viteConf.resolve.alias,
|
||||
'#q-app': path.resolve(__dirname, 'node_modules/quasar/app'), // Alias per #q-app
|
||||
app: path.resolve(__dirname),
|
||||
boot: path.resolve(__dirname, 'src/boot'),
|
||||
src: path.resolve(__dirname, 'src'),
|
||||
statics: path.resolve(__dirname, 'src/statics'),
|
||||
components: path.resolve(__dirname, 'src/components'),
|
||||
views: path.resolve(__dirname, 'src/views/index.ts'),
|
||||
images: path.resolve(__dirname, 'src/assets/images'),
|
||||
maps: path.resolve(__dirname, 'public/maps'),
|
||||
classes: path.resolve(__dirname, 'src/classes/index.ts'),
|
||||
fonts: path.resolve(__dirname, 'src/assets/fonts'),
|
||||
utils: path.resolve(__dirname, 'src/utils/index.ts'),
|
||||
css: path.resolve(__dirname, 'src/css/variables.scss'),
|
||||
router: path.resolve(__dirname, 'src/router/index.ts'),
|
||||
validators: path.resolve(__dirname, 'src/utils/validators.ts'),
|
||||
methods: path.resolve(__dirname, 'src/utils/methods.ts'),
|
||||
filters: path.resolve(__dirname, 'src/utils/filters.ts'),
|
||||
api: path.resolve(__dirname, 'src/store/Api/index.ts'),
|
||||
paths: path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'),
|
||||
modules: path.resolve(__dirname, 'src/store/Modules/index.ts'),
|
||||
model: path.resolve(__dirname, 'src/model/index.ts'),
|
||||
'@components': path.resolve(__dirname, 'src/components'),
|
||||
'@boot': path.resolve(__dirname, 'src/boot'),
|
||||
'@costanti': path.resolve(__dirname, 'src/store/Modules/costanti.ts'),
|
||||
'@views': path.resolve(__dirname, 'src/views/index.ts'),
|
||||
'@src': path.resolve(__dirname, 'src'),
|
||||
'@css': path.resolve(__dirname, 'src/public/css/variables.scss'),
|
||||
'@icons': path.resolve(__dirname, 'src/public/public/myicons'),
|
||||
'@images': path.resolve(__dirname, 'src/public/images/*'),
|
||||
'@maps': path.resolve(__dirname, 'src/public/maps/*'),
|
||||
'@classes': path.resolve(__dirname, 'src/classes/index.ts'),
|
||||
'@utils': path.resolve(__dirname, 'src/utils/index.ts'),
|
||||
'@router': path.resolve(__dirname, 'src/router/index.ts'),
|
||||
'@validators': path.resolve(__dirname, 'src/utils/validators.ts'),
|
||||
'@methods': path.resolve(__dirname, 'src/utils/methods.ts'),
|
||||
'@api': path.resolve(__dirname, 'src/store/Api/index.ts'),
|
||||
'@paths': path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'),
|
||||
'@storemod': path.resolve(__dirname, 'src/store/Modules'),
|
||||
'@store': path.resolve(__dirname, 'src/store'),
|
||||
'@tools': path.resolve(__dirname, 'src/store/Modules/tools.ts'),
|
||||
'@modules': path.resolve(__dirname, 'src/store/Modules/index.ts'),
|
||||
'@model': path.resolve(__dirname, 'src/model/index.ts'),
|
||||
},
|
||||
};
|
||||
return originalEnv; // Ritorna tutto per semplicità
|
||||
},
|
||||
|
||||
vitePlugins: [
|
||||
[
|
||||
'@intlify/unplugin-vue-i18n/vite',
|
||||
{
|
||||
// if you want to use Vue I18n Legacy API, you need to set `compositionOnly: false`
|
||||
// compositionOnly: false,
|
||||
|
||||
// if you want to use named tokens in your Vue I18n messages, such as 'Hello {name}',
|
||||
// you need to set `runtimeOnly: false`
|
||||
// runtimeOnly: false,
|
||||
|
||||
ssr: ctx.modeName === 'ssr',
|
||||
|
||||
// you need to set i18n resource including paths !
|
||||
include: [fileURLToPath(new URL('./src/i18n', import.meta.url))],
|
||||
},
|
||||
],
|
||||
|
||||
[
|
||||
'vite-plugin-checker',
|
||||
{
|
||||
@@ -211,60 +138,25 @@ export default defineConfig((ctx) => {
|
||||
{ server: false },
|
||||
],
|
||||
],
|
||||
|
||||
// polyfillModulePreload: true,
|
||||
|
||||
// viteVuePluginOptions: {},
|
||||
|
||||
// extractCSS: false,
|
||||
// transpile: false,
|
||||
|
||||
// Add dependencies for transpiling with Babel (Array of string/regex)
|
||||
// (from node_modules, which are by default not transpiled).
|
||||
// Applies only if "transpile" is set to true.
|
||||
// transpileDependencies: [],
|
||||
|
||||
// rtl: true, // https://v2.quasar.dev/options/rtl-supg
|
||||
// preloadChunks: true,
|
||||
// showProgress: false,
|
||||
// gzip: true,
|
||||
// analyze: true,
|
||||
|
||||
// Options below are automatically set depending on the env, set them if you want to override
|
||||
// extractCSS: false,
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/handling-webpack
|
||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||
},
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer
|
||||
devServer: {
|
||||
https: {
|
||||
key: path.resolve(__dirname, 'localhost-key.pem'),
|
||||
cert: path.resolve(__dirname, 'localhost.pem'),
|
||||
},
|
||||
|
||||
port: parseInt(process.env.PORT, 10),
|
||||
vueDevtools: false, // automatically opening remote Vue Devtools
|
||||
open: false, // opens browser window automatically
|
||||
hot: true, // Enable hot module replacement
|
||||
vueDevtools: false,
|
||||
open: false,
|
||||
hot: true,
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
'Access-Control-Allow-Headers': '*',
|
||||
},
|
||||
},
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
|
||||
framework: {
|
||||
config: {},
|
||||
|
||||
// iconSet: 'material-icons', // Quasar icon set
|
||||
// lang: 'en-US', // Quasar language pack
|
||||
|
||||
// For special cases outside of where the auto-import strategy can have an impact
|
||||
// (like functional components as one of the examples),
|
||||
// you can manually specify Quasar components/directives to be available everywhere:
|
||||
//
|
||||
components: [
|
||||
'QLayout',
|
||||
'QDrawer',
|
||||
@@ -332,9 +224,10 @@ export default defineConfig((ctx) => {
|
||||
'QTabPanel',
|
||||
'QTree',
|
||||
'QSeparator',
|
||||
'QPageSticky',
|
||||
],
|
||||
directives: ['Ripple', 'ClosePopup'],
|
||||
_plugins: [
|
||||
plugins: [
|
||||
'Meta',
|
||||
'Dialog',
|
||||
'Notify',
|
||||
@@ -344,59 +237,27 @@ export default defineConfig((ctx) => {
|
||||
'LocalStorage',
|
||||
'SessionStorage',
|
||||
],
|
||||
get plugins_1() {
|
||||
return this._plugins;
|
||||
},
|
||||
set plugins_1(value) {
|
||||
this._plugins = value;
|
||||
},
|
||||
get plugins() {
|
||||
return this._plugins;
|
||||
},
|
||||
set plugins(value) {
|
||||
this._plugins = value;
|
||||
},
|
||||
// iconSet: 'fontawesome-v5',
|
||||
iconSet: 'material-icons',
|
||||
lang: 'it', // Quasar language
|
||||
lang: 'it',
|
||||
},
|
||||
|
||||
animations: 'all', // --- includes all animations
|
||||
// https://v2.quasar.dev/options/animations
|
||||
// animations: [],
|
||||
animations: 'all',
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
|
||||
ssr: {
|
||||
pwa: false,
|
||||
|
||||
// manualStoreHydration: true,
|
||||
// manualPostHydrationTrigger: true,
|
||||
|
||||
prodPort: 3000, // The default port that the production server should use
|
||||
// (gets superseded if import.meta.env.PORT is specified at runtime)
|
||||
|
||||
prodPort: 3000,
|
||||
maxAge: 1000 * 60 * 60 * 24 * 30,
|
||||
// Tell browser when a file from the server should expire from cache (in ms)
|
||||
|
||||
middlewares: [
|
||||
ctx.prod ? 'compression' : '',
|
||||
'render', // keep this as last one
|
||||
],
|
||||
middlewares: [ctx.prod ? 'compression' : '', 'render'],
|
||||
},
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
|
||||
pwa: {
|
||||
workboxMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
|
||||
workboxMode: 'InjectManifest',
|
||||
swFilename: 'sw-' + process.env.APP_VERSION + '.js',
|
||||
workboxOptions: {
|
||||
swSrc: 'src-pwa/custom-service-worker.js', // Assicurati che il file esista
|
||||
include: [/\.html$/, /\.js$/, /\.css$/, /\.png$/, /\.svg$/, /\.json$/], // File da precacheare
|
||||
swSrc: 'src-pwa/custom-service-worker.js',
|
||||
include: [/\.html$/, /\.js$/, /\.css$/, /\.png$/, /\.svg$/, /\.json$/],
|
||||
},
|
||||
suppressWarnings: true,
|
||||
/*extendGenerateSWOptions(cfg) {
|
||||
cfg.skipWaiting = false
|
||||
cfg.clientsClaim = false
|
||||
},*/
|
||||
},
|
||||
|
||||
sourceFiles: {
|
||||
@@ -405,36 +266,12 @@ export default defineConfig((ctx) => {
|
||||
pwaManifestFile: 'src-pwa/manifest.json',
|
||||
},
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
|
||||
cordova: {
|
||||
// noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
|
||||
},
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor
|
||||
capacitor: {
|
||||
hideSplashscreen: true,
|
||||
},
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
|
||||
cordova: {},
|
||||
capacitor: { hideSplashscreen: true },
|
||||
electron: {
|
||||
bundler: 'packager', // 'packager' or 'builder'
|
||||
|
||||
packager: {
|
||||
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
|
||||
// OS X / Mac App Store
|
||||
// appBundleId: '',
|
||||
// appCategoryType: '',
|
||||
// osxSign: '',
|
||||
// protocol: 'myapp://path',
|
||||
// Windows only
|
||||
// win32metadata: { ... }
|
||||
},
|
||||
|
||||
builder: {
|
||||
// https://www.electron.build/configuration/configuration
|
||||
|
||||
appId: '-',
|
||||
},
|
||||
bundler: 'packager',
|
||||
packager: {},
|
||||
builder: { appId: '-' },
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cnm",
|
||||
"version": "1.2.85",
|
||||
"version": "1.2.86",
|
||||
"description": "Comunita Nuovo Mondo",
|
||||
"productName": "ComunitaNuovoMondo",
|
||||
"author": "Surya",
|
||||
@@ -9,7 +9,7 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.85' quasar dev",
|
||||
"dev": "PORT=8083 APP_VERSION='1.2.86' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production quasar build -m pwa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.85' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.85' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.86' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -36,7 +36,7 @@ const firstPage = {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -51,7 +51,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -62,7 +62,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/test',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.test',
|
||||
component: () => import('@src/views/testServer/testServer.vue'),
|
||||
component: () => import('@/views/testServer/testServer.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
@@ -72,7 +72,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/goods',
|
||||
materialIcon: 'fas fa-tshirt',
|
||||
name: 'mypages.goods',
|
||||
component: () => import('@src/root/goods/goods.vue'),
|
||||
component: () => import('@/root/goods/goods.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -83,7 +83,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/services',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.services',
|
||||
component: () => import('@src/root/services/services.vue'),
|
||||
component: () => import('@/root/services/services.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -94,7 +94,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/activities',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.activities',
|
||||
component: () => import('@src/root/activities/activities.vue'),
|
||||
component: () => import('@/root/activities/activities.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -105,7 +105,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/provapao',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.provapao',
|
||||
component: () => import('@src/root/provapao/provapao.vue'),
|
||||
component: () => import('@/root/provapao/provapao.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -116,7 +116,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/hosps',
|
||||
materialIcon: 'fas fa-bed',
|
||||
name: 'mypages.hosp',
|
||||
component: () => import('@src/root/hosp/hosp.vue'),
|
||||
component: () => import('@/root/hosp/hosp.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -127,7 +127,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuits',
|
||||
materialIcon: 'fas fa-coins',
|
||||
name: 'mypages.circuits',
|
||||
component: () => import('@src/views/user/mycircuits/mycircuits.vue'),
|
||||
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -138,7 +138,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
name: 'mypages.events',
|
||||
component: () => import('@src/root/eventi/eventi.vue'),
|
||||
component: () => import('@/root/eventi/eventi.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -149,7 +149,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/install_site',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.install_site',
|
||||
component: () => import('@src/views/admin/install_site/install_site.vue'),
|
||||
component: () => import('@/views/admin/install_site/install_site.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -160,7 +160,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@src/views/user/myprofile/myprofile.vue'),
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -171,7 +171,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/editprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile3',
|
||||
component: () => import('@src/views/user/editprofile/editprofile.vue'),
|
||||
component: () => import('@/views/user/editprofile/editprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -182,7 +182,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@src/views/user/myfriends/myfriends.vue'),
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -193,7 +193,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/groups',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'mypages.groups',
|
||||
component: () => import('@src/views/user/mygroups/mygroups.vue'),
|
||||
component: () => import('@/views/user/mygroups/mygroups.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: false,
|
||||
@@ -204,7 +204,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/grp/:groupname',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.group2',
|
||||
component: () => import('@src/views/user/mygroup/mygroup.vue'),
|
||||
component: () => import('@/views/user/mygroup/mygroup.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -215,7 +215,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuit/:path',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.circuit2',
|
||||
component: () => import('@src/views/user/mycircuit/mycircuit.vue'),
|
||||
component: () => import('@/views/user/mycircuit/mycircuit.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -234,7 +234,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mypage/:idBacheca',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.mypage2',
|
||||
component: () => import('@src/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -245,7 +245,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myservice/:idSkill',
|
||||
materialIcon: '',
|
||||
name: 'pages.myservice2',
|
||||
component: () => import('@src/views/user/myservice/myservice.vue'),
|
||||
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -256,7 +256,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myhosps/:idHosp',
|
||||
materialIcon: '',
|
||||
name: 'pages.myhosps2',
|
||||
component: () => import('@src/views/user/mypagehosp/mypagehosp.vue'),
|
||||
component: () => import('@/views/user/mypagehosp/mypagehosp.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -267,7 +267,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mygood/:idGood',
|
||||
materialIcon: '',
|
||||
name: 'pages.mygood2',
|
||||
component: () => import('@src/views/user/mypagegood/mypagegood.vue'),
|
||||
component: () => import('@/views/user/mypagegood/mypagegood.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -278,7 +278,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/sostieniilprogetto',
|
||||
materialIcon: 'fas fa-hand-holding-heart',
|
||||
name: 'pages.fundraising',
|
||||
component: () => import('@src/root/fundraising/fundraising.vue'),
|
||||
component: () => import('@/root/fundraising/fundraising.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
@@ -288,7 +288,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/calendario-eventi',
|
||||
materialIcon: 'event',
|
||||
name: 'ris.calendario_eventi_riso',
|
||||
component: () => import('@src/root/calendarioeventi/calendarioeventi.vue'),
|
||||
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
|
||||
extraclass: 'isCalendar',
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
|
||||
@@ -62,7 +62,7 @@ const routes_admin: IListRoutes[] = [
|
||||
path: '/admin/sites',
|
||||
materialIcon: 'event_seat',
|
||||
name: 'pages.Sites',
|
||||
component: () => import('@src/rootgen/admin/sites/sites.vue'),
|
||||
component: () => import('@/rootgen/admin/sites/sites.vue'),
|
||||
level_parent: 0.0,
|
||||
level_child: 0.5,
|
||||
inmenu: true,
|
||||
@@ -75,7 +75,7 @@ const routes_admin: IListRoutes[] = [
|
||||
path: '/admin/cfgserv',
|
||||
materialIcon: 'event_seat',
|
||||
name: 'pages.Admin',
|
||||
component: () => import('@src/views/admin/cfgServer/cfgServer.vue'),
|
||||
component: () => import('@/views/admin/cfgServer/cfgServer.vue'),
|
||||
level_parent: 0.0,
|
||||
level_child: 0.5,
|
||||
inmenu: true,
|
||||
@@ -88,7 +88,7 @@ const routes_admin: IListRoutes[] = [
|
||||
path: '/admin/dbop',
|
||||
materialIcon: 'event_seat',
|
||||
name: 'pages.dbop',
|
||||
component: () => import('@src/views/admin/dbop/dbop.vue'),
|
||||
component: () => import('@/views/admin/dbop/dbop.vue'),
|
||||
level_parent: 0.0,
|
||||
level_child: 0.5,
|
||||
inmenu: true,
|
||||
@@ -101,7 +101,7 @@ const routes_admin: IListRoutes[] = [
|
||||
path: '/admin/importfile',
|
||||
materialIcon: 'event_seat',
|
||||
name: 'otherpages.manage.importfile',
|
||||
component: () => import('@src/rootgen/admin/importdata/importdata.vue'),
|
||||
component: () => import('@/rootgen/admin/importdata/importdata.vue'),
|
||||
level_parent: 0.0,
|
||||
level_child: 0.5,
|
||||
inmenu: true,
|
||||
@@ -117,7 +117,7 @@ const routes_manager: IListRoutes[] = [
|
||||
path: '/admin/usereventlist',
|
||||
materialIcon: 'edit',
|
||||
name: 'otherpages.admin.usereventlist',
|
||||
component: () => import('@src/rootgen/admin/eventlist/eventlist.vue'),
|
||||
component: () => import('@/rootgen/admin/eventlist/eventlist.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
@@ -133,7 +133,7 @@ const routes_manager: IListRoutes[] = [
|
||||
path: '/admin/userlist',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'otherpages.admin.userlist',
|
||||
component: () => import('@src/rootgen/admin/usersList/usersList.vue'),
|
||||
component: () => import('@/rootgen/admin/usersList/usersList.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
@@ -148,7 +148,7 @@ const routes_manager: IListRoutes[] = [
|
||||
path: '/admin/iscritticonacreis',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'otherpages.admin.iscritticonacreis',
|
||||
component: () => import('@src/rootgen/admin/iscritticonacreis/iscritticonacreis.vue'),
|
||||
component: () => import('@/rootgen/admin/iscritticonacreis/iscritticonacreis.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
@@ -164,7 +164,7 @@ const routes_manager: IListRoutes[] = [
|
||||
path: '/admin/zoomlist',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'otherpages.admin.zoomlist',
|
||||
component: () => import('@src/rootgen/admin/zoomList/zoomList.vue'),
|
||||
component: () => import('@/rootgen/admin/zoomList/zoomList.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
@@ -178,7 +178,7 @@ const routes_manager: IListRoutes[] = [
|
||||
path: '/admin/tableslist',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'otherpages.admin.tableslist',
|
||||
component: () => import('@src/rootgen/admin/tablesList/tablesList.vue'),
|
||||
component: () => import('@/rootgen/admin/tablesList/tablesList.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
@@ -192,7 +192,7 @@ const routes_manager: IListRoutes[] = [
|
||||
path: '/admin/pages',
|
||||
materialIcon: 'fas fa-file-alt',
|
||||
name: 'otherpages.admin.pages',
|
||||
component: () => import('@src/rootgen/admin/pages/pages.vue'),
|
||||
component: () => import('@/rootgen/admin/pages/pages.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
@@ -206,7 +206,7 @@ const routes_manager: IListRoutes[] = [
|
||||
path: '/admin/bot',
|
||||
materialIcon: 'fas fa-file-alt',
|
||||
name: 'otherpages.admin.bot',
|
||||
component: () => import('@src/rootgen/admin/bot/bot.vue'),
|
||||
component: () => import('@/rootgen/admin/bot/bot.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
@@ -240,7 +240,7 @@ const routes_manager: IListRoutes[] = [
|
||||
path: '/admin/msg_template',
|
||||
materialIcon: 'fas fa-file-alt',
|
||||
name: 'msgs.messages',
|
||||
component: () => import('@src/rootgen/admin/msg_template/msg_template.vue'),
|
||||
component: () => import('@/rootgen/admin/msg_template/msg_template.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
@@ -255,7 +255,7 @@ const routes_manager: IListRoutes[] = [
|
||||
path: '/admin/sendpushnotif',
|
||||
materialIcon: 'event_seat',
|
||||
name: 'otherpages.manage.sendpushnotif',
|
||||
component: () => import('@src/rootgen/admin/sendpushnotif/sendpushnotif.vue'),
|
||||
component: () => import('@/rootgen/admin/sendpushnotif/sendpushnotif.vue'),
|
||||
level_parent: 0.0,
|
||||
level_child: 0.5,
|
||||
inmenu: true,
|
||||
@@ -269,7 +269,7 @@ const routes_manager: IListRoutes[] = [
|
||||
path: '/admin/gallery',
|
||||
materialIcon: 'fas fa-file-alt',
|
||||
name: 'otherpages.admin.gallery',
|
||||
component: () => import('@src/rootgen/admin/gallery/gallery.vue'),
|
||||
component: () => import('@/rootgen/admin/gallery/gallery.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
@@ -283,7 +283,7 @@ const routes_manager: IListRoutes[] = [
|
||||
path: '/admin/media',
|
||||
materialIcon: 'fas fa-file-alt',
|
||||
name: 'otherpages.admin.media',
|
||||
component: () => import('@src/rootgen/admin/uploader/uploader.vue'),
|
||||
component: () => import('@/rootgen/admin/uploader/uploader.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
@@ -301,7 +301,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -312,7 +312,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
name: 'mypages.events',
|
||||
component: () => import('@src/root/eventi/eventi.vue'),
|
||||
component: () => import('@/root/eventi/eventi.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -323,7 +323,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/goods',
|
||||
materialIcon: 'fas fa-briefcase',
|
||||
name: 'mypages.goods',
|
||||
component: () => import('@src/root/goods/goods.vue'),
|
||||
component: () => import('@/root/goods/goods.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -334,7 +334,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/services',
|
||||
materialIcon: 'fas fa-briefcase',
|
||||
name: 'mypages.services',
|
||||
component: () => import('@src/root/services/services.vue'),
|
||||
component: () => import('@/root/services/services.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -345,7 +345,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/presentazione',
|
||||
materialIcon: 'fas fa-info',
|
||||
name: 'pages.presentazione',
|
||||
component: () => import('@src/root/presentazione/presentazione.vue'),
|
||||
component: () => import('@/root/presentazione/presentazione.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -356,7 +356,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@src/views/user/myprofile/myprofile.vue'),
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -367,7 +367,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/editprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile3',
|
||||
component: () => import('@src/views/user/editprofile/editprofile.vue'),
|
||||
component: () => import('@/views/user/editprofile/editprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -378,7 +378,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.friends',
|
||||
component: () => import('@src/views/user/myfriends/myfriends.vue'),
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -389,7 +389,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/groups',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'mypages.groups',
|
||||
component: () => import('@src/views/user/mygroups/mygroups.vue'),
|
||||
component: () => import('@/views/user/mygroups/mygroups.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -400,7 +400,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/my/:username',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile2',
|
||||
component: () => import('@src/views/user/myprofile/myprofile.vue'),
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -411,7 +411,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/grp/:groupname',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.group2',
|
||||
component: () => import('@src/views/user/mygroup/mygroup.vue'),
|
||||
component: () => import('@/views/user/mygroup/mygroup.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -422,7 +422,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/mypage/:idBacheca',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.mypage2',
|
||||
component: () => import('@src/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -433,7 +433,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/myservice/:idSkill',
|
||||
materialIcon: '',
|
||||
name: 'pages.myservice2',
|
||||
component: () => import('@src/views/user/myservice/myservice.vue'),
|
||||
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -444,7 +444,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/test',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.test',
|
||||
component: () => import('@src/views/testServer/testServer.vue'),
|
||||
component: () => import('@/views/testServer/testServer.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -484,7 +484,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/404error',
|
||||
materialIcon: 'fas fa-calendar-plus',
|
||||
name: 'otherpages.error404',
|
||||
component: () => import('@src/root/My404page/My404page.vue'),
|
||||
component: () => import('@/root/My404page/My404page.vue'),
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
},
|
||||
@@ -494,7 +494,7 @@ const baseroutes: IListRoutes[] = [
|
||||
order: 8,
|
||||
path: '/policy',
|
||||
name: 'pages.policy',
|
||||
component: () => import('@src/root/policy/policy.vue'),
|
||||
component: () => import('@/root/policy/policy.vue'),
|
||||
},*/
|
||||
{
|
||||
active: functionality.ENABLE_REGISTRATION,
|
||||
@@ -502,7 +502,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/signup/:invited',
|
||||
materialIcon: 'how_to_reg',
|
||||
name: 'pages.SignUp',
|
||||
component: () => import('@src/views/login/signup/signup.vue'),
|
||||
component: () => import('@/views/login/signup/signup.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
separator: false
|
||||
@@ -513,7 +513,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/regok',
|
||||
materialIcon: 'how_to_reg',
|
||||
name: 'pages.regok',
|
||||
component: () => import('@src/views/login/regok/regok.vue'),
|
||||
component: () => import('@/views/login/regok/regok.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
separator: false,
|
||||
@@ -524,7 +524,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/signin',
|
||||
materialIcon: 'account_circle',
|
||||
name: 'pages.SignIn',
|
||||
component: () => import('@src/views/login/signin_noreg/signin_noreg.vue'),
|
||||
component: () => import('@/views/login/signin_noreg/signin_noreg.vue'),
|
||||
inmenu: true,
|
||||
infooter: true
|
||||
},
|
||||
@@ -533,28 +533,28 @@ const baseroutes: IListRoutes[] = [
|
||||
order: 1000,
|
||||
path: '/vreg',
|
||||
name: 'pages.vreg',
|
||||
component: () => import('@src/views/login/vreg/vreg.vue')
|
||||
component: () => import('@/views/login/vreg/vreg.vue')
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 1000,
|
||||
path: '/requestresetpwd',
|
||||
name: 'pages.requestresetpwd',
|
||||
component: () => import('@src/views/requestresetpwd/requestresetpwd.vue')
|
||||
component: () => import('@/views/requestresetpwd/requestresetpwd.vue')
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 1000,
|
||||
path: '/updatepassword',
|
||||
name: 'pages.updatepassword',
|
||||
component: () => import('@src/views/updatepassword/updatepassword.vue')
|
||||
component: () => import('@/views/updatepassword/updatepassword.vue')
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 1000,
|
||||
path: '/offline',
|
||||
name: 'Offline',
|
||||
component: () => import('@src/views/offline/offline.vue')
|
||||
component: () => import('@/views/offline/offline.vue')
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
@@ -570,7 +570,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/calendario-eventi',
|
||||
materialIcon: 'event',
|
||||
name: 'pages.calendarioeventi',
|
||||
component: () => import('@src/root/calendarioeventi/calendarioeventi.vue'),
|
||||
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
|
||||
extraclass: 'isCalendar',
|
||||
inmenu: true,
|
||||
infooter: true
|
||||
@@ -581,7 +581,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/admin/newsletter/:idparam',
|
||||
materialIcon: 'event',
|
||||
name: 'pages.newsletter.menu',
|
||||
component: () => import('@src/rootgen/admin/newsletter/newsletter.vue'),
|
||||
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
},
|
||||
@@ -591,7 +591,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/event/:typol/:eventid',
|
||||
materialIcon: 'event',
|
||||
name: 'pages.evento',
|
||||
component: () => import('@src/root/evento/evento.vue'),
|
||||
component: () => import('@/root/evento/evento.vue'),
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
},
|
||||
@@ -601,7 +601,7 @@ const baseroutes: IListRoutes[] = [
|
||||
path: '/event/:typol',
|
||||
materialIcon: 'event',
|
||||
name: 'pages.eventodef',
|
||||
component: () => import('@src/root/evento/evento.vue'),
|
||||
component: () => import('@/root/evento/evento.vue'),
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "freeplanet",
|
||||
"version": "1.2.85",
|
||||
"version": "1.2.86",
|
||||
"description": "freeplanet",
|
||||
"productName": "freeplanet",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8087 APP_VERSION='1.2.85' quasar dev",
|
||||
"dev": "PORT=8087 APP_VERSION='1.2.86' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.85' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.85' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.86' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "riso",
|
||||
"version": "1.2.85",
|
||||
"version": "1.2.86",
|
||||
"productName": "Riso 💚 - Rete Italiana Scambio orizzontale",
|
||||
"description": "Progetto RISO (Rete Italiana Scambio orizzontale) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "APP_VERSION='1.2.85' PORT=8084 quasar dev",
|
||||
"dev": "APP_VERSION='1.2.86' PORT=8084 quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.85' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.85' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.86' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -38,7 +38,7 @@ const firstPage = {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -53,7 +53,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -64,7 +64,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/test',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.test',
|
||||
component: () => import('@src/views/testServer/testServer.vue'),
|
||||
component: () => import('@/views/testServer/testServer.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
@@ -74,7 +74,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/goods',
|
||||
materialIcon: 'fas fa-tshirt',
|
||||
name: 'mypages.goods',
|
||||
component: () => import('@src/root/goods/goods.vue'),
|
||||
component: () => import('@/root/goods/goods.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -85,7 +85,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/services',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.services',
|
||||
component: () => import('@src/root/services/services.vue'),
|
||||
component: () => import('@/root/services/services.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -96,7 +96,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/activities',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.activities',
|
||||
component: () => import('@src/root/activities/activities.vue'),
|
||||
component: () => import('@/root/activities/activities.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -107,7 +107,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/provapao',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.provapao',
|
||||
component: () => import('@src/root/provapao/provapao.vue'),
|
||||
component: () => import('@/root/provapao/provapao.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -118,7 +118,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/hosps',
|
||||
materialIcon: 'fas fa-bed',
|
||||
name: 'mypages.hosp',
|
||||
component: () => import('@src/root/hosp/hosp.vue'),
|
||||
component: () => import('@/root/hosp/hosp.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -129,7 +129,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuits',
|
||||
materialIcon: 'fas fa-coins',
|
||||
name: 'mypages.circuits',
|
||||
component: () => import('@src/views/user/mycircuits/mycircuits.vue'),
|
||||
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -140,7 +140,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
name: 'mypages.events',
|
||||
component: () => import('@src/root/eventi/eventi.vue'),
|
||||
component: () => import('@/root/eventi/eventi.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -151,7 +151,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/install_site',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.install_site',
|
||||
component: () => import('@src/views/admin/install_site/install_site.vue'),
|
||||
component: () => import('@/views/admin/install_site/install_site.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -162,7 +162,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@src/views/user/myprofile/myprofile.vue'),
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -184,7 +184,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@src/views/user/myfriends/myfriends.vue'),
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -195,7 +195,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/groups',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'mypages.groups',
|
||||
component: () => import('@src/views/user/mygroups/mygroups.vue'),
|
||||
component: () => import('@/views/user/mygroups/mygroups.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: false,
|
||||
@@ -206,7 +206,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/grp/:groupname',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.group2',
|
||||
component: () => import('@src/views/user/mygroup/mygroup.vue'),
|
||||
component: () => import('@/views/user/mygroup/mygroup.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -217,7 +217,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuit/:path',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.circuit2',
|
||||
component: () => import('@src/views/user/mycircuit/mycircuit.vue'),
|
||||
component: () => import('@/views/user/mycircuit/mycircuit.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -236,7 +236,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mypage/:idBacheca',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.mypage2',
|
||||
component: () => import('@src/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -247,7 +247,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myservice/:idSkill',
|
||||
materialIcon: '',
|
||||
name: 'pages.myservice2',
|
||||
component: () => import('@src/views/user/myservice/myservice.vue'),
|
||||
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -258,7 +258,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myhosps/:idHosp',
|
||||
materialIcon: '',
|
||||
name: 'pages.myhosps2',
|
||||
component: () => import('@src/views/user/mypagehosp/mypagehosp.vue'),
|
||||
component: () => import('@/views/user/mypagehosp/mypagehosp.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -269,7 +269,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mygood/:idGood',
|
||||
materialIcon: '',
|
||||
name: 'pages.mygood2',
|
||||
component: () => import('@src/views/user/mypagegood/mypagegood.vue'),
|
||||
component: () => import('@/views/user/mypagegood/mypagegood.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -280,7 +280,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/sostieniilprogetto',
|
||||
materialIcon: 'fas fa-hand-holding-heart',
|
||||
name: 'pages.fundraising',
|
||||
component: () => import('@src/root/fundraising/fundraising.vue'),
|
||||
component: () => import('@/root/fundraising/fundraising.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
@@ -290,7 +290,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/calendario-eventi',
|
||||
materialIcon: 'event',
|
||||
name: 'ris.calendario_eventi_riso',
|
||||
component: () => import('@src/root/calendarioeventi/calendarioeventi.vue'),
|
||||
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
|
||||
extraclass: 'isCalendar',
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gruppomacro",
|
||||
"version": "1.2.85",
|
||||
"version": "1.2.86",
|
||||
"productName": "Gruppo Macro",
|
||||
"description": "Il Gruppo Editoriale Macro, attivo dal 1987, è leader europeo nella pubblicazione di libri per il benessere e la consapevolezza. Con oltre 1.500 titoli, promuove una visione armonica del mondo, offrendo opere di autori internazionali e italiani come Gregg Braden, Bruce Lipton, Joe Dispenza, Louise Hay, Eckhart Tolle e molti altri. Scopri un'editoria che abbraccia il corpo, la mente, lo spirito e l'ecologia.",
|
||||
"author": "Surya",
|
||||
@@ -9,20 +9,20 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.85' quasar dev",
|
||||
"dev": "PORT=8089 APP_VERSION='1.2.86' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "APP_VERSION='1.2.85' quasar build -m spa",
|
||||
"buildspa": "APP_VERSION='1.2.86' quasar build -m spa",
|
||||
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.85' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.85' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.86' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -38,7 +38,7 @@ const firstPage = {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -54,7 +54,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -65,7 +65,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/test',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.test',
|
||||
component: () => import('@src/views/testServer/testServer.vue'),
|
||||
component: () => import('@/views/testServer/testServer.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
@@ -75,7 +75,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/test-lungo',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.test_lungo',
|
||||
component: () => import('@src/views/testLungo/testLungo.vue'),
|
||||
component: () => import('@/views/testLungo/testLungo.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
@@ -85,7 +85,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/provapao',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.provapao',
|
||||
component: () => import('@src/root/provapao/provapao.vue'),
|
||||
component: () => import('@/root/provapao/provapao.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -96,7 +96,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuits',
|
||||
materialIcon: 'fas fa-coins',
|
||||
name: 'mypages.circuits',
|
||||
component: () => import('@src/views/user/mycircuits/mycircuits.vue'),
|
||||
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -107,7 +107,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
name: 'mypages.events',
|
||||
component: () => import('@src/root/eventi/eventi.vue'),
|
||||
component: () => import('@/root/eventi/eventi.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -118,7 +118,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/install_site',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.install_site',
|
||||
component: () => import('@src/views/admin/install_site/install_site.vue'),
|
||||
component: () => import('@/views/admin/install_site/install_site.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -129,7 +129,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@src/views/user/myprofile/myprofile.vue'),
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -140,7 +140,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@src/views/user/myfriends/myfriends.vue'),
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -151,7 +151,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/groups',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'mypages.groups',
|
||||
component: () => import('@src/views/user/mygroups/mygroups.vue'),
|
||||
component: () => import('@/views/user/mygroups/mygroups.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: false,
|
||||
@@ -162,7 +162,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/grp/:groupname',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.group2',
|
||||
component: () => import('@src/views/user/mygroup/mygroup.vue'),
|
||||
component: () => import('@/views/user/mygroup/mygroup.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -173,7 +173,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuit/:path',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.circuit2',
|
||||
component: () => import('@src/views/user/mycircuit/mycircuit.vue'),
|
||||
component: () => import('@/views/user/mycircuit/mycircuit.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -192,7 +192,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mypage/:idBacheca',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.mypage2',
|
||||
component: () => import('@src/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -203,7 +203,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myservice/:idSkill',
|
||||
materialIcon: '',
|
||||
name: 'pages.myservice2',
|
||||
component: () => import('@src/views/user/myservice/myservice.vue'),
|
||||
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -214,7 +214,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myhosps/:idHosp',
|
||||
materialIcon: '',
|
||||
name: 'pages.myhosps2',
|
||||
component: () => import('@src/views/user/mypagehosp/mypagehosp.vue'),
|
||||
component: () => import('@/views/user/mypagehosp/mypagehosp.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -225,7 +225,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mygood/:idGood',
|
||||
materialIcon: '',
|
||||
name: 'pages.mygood2',
|
||||
component: () => import('@src/views/user/mypagegood/mypagegood.vue'),
|
||||
component: () => import('@/views/user/mypagegood/mypagegood.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -236,7 +236,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/calendario-eventi',
|
||||
materialIcon: 'event',
|
||||
name: 'ris.calendario_eventi_riso',
|
||||
component: () => import('@src/root/calendarioeventi/calendarioeventi.vue'),
|
||||
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
|
||||
extraclass: 'isCalendar',
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nuovomondo",
|
||||
"version": "1.2.85",
|
||||
"version": "1.2.86",
|
||||
"description": "Nuovo Mondo",
|
||||
"productName": "Nuovo Mondo",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "APP_VERSION='1.2.85' PORT=8083 quasar dev",
|
||||
"dev": "APP_VERSION='1.2.86' PORT=8083 quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.85' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.85' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.86' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -14,7 +14,7 @@ const firstPage = {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -29,7 +29,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -40,7 +40,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/test',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.test',
|
||||
component: () => import('@src/views/testServer/testServer.vue'),
|
||||
component: () => import('@/views/testServer/testServer.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -52,7 +52,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
name: 'mypages.events',
|
||||
component: () => import('@src/root/eventi/eventi.vue'),
|
||||
component: () => import('@/root/eventi/eventi.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -63,7 +63,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@src/views/user/myprofile/myprofile.vue'),
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -74,7 +74,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/install_site',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.install_site',
|
||||
component: () => import('@src/views/admin/install_site/install_site.vue'),
|
||||
component: () => import('@/views/admin/install_site/install_site.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -85,7 +85,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/editprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile3',
|
||||
component: () => import('@src/views/user/editprofile/editprofile.vue'),
|
||||
component: () => import('@/views/user/editprofile/editprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -96,7 +96,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@src/views/user/myfriends/myfriends.vue'),
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -107,7 +107,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuits',
|
||||
materialIcon: 'fas fa-coins',
|
||||
name: 'mypages.circuits',
|
||||
component: () => import('@src/views/user/mycircuits/mycircuits.vue'),
|
||||
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -120,7 +120,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/groups',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'mypages.groups',
|
||||
component: () => import('@src/views/user/mygroups/mygroups.vue'),
|
||||
component: () => import('@/views/user/mygroups/mygroups.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: false,
|
||||
@@ -133,7 +133,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/grp/:groupname',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.group2',
|
||||
component: () => import('@src/views/user/mygroup/mygroup.vue'),
|
||||
component: () => import('@/views/user/mygroup/mygroup.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -144,7 +144,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuit/:path',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.circuit2',
|
||||
component: () => import('@src/views/user/mycircuit/mycircuit.vue'),
|
||||
component: () => import('@/views/user/mycircuit/mycircuit.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -163,7 +163,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mypage/:idBacheca',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.mypage2',
|
||||
component: () => import('@src/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -174,7 +174,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myservice/:idSkill',
|
||||
materialIcon: '',
|
||||
name: 'pages.myservice2',
|
||||
component: () => import('@src/views/user/myservice/myservice.vue'),
|
||||
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -185,7 +185,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myhosps/:idHosp',
|
||||
materialIcon: '',
|
||||
name: 'pages.myhosps2',
|
||||
component: () => import('@src/views/user/mypagehosp/mypagehosp.vue'),
|
||||
component: () => import('@/views/user/mypagehosp/mypagehosp.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -196,7 +196,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mygood/:idGood',
|
||||
materialIcon: '',
|
||||
name: 'pages.mygood2',
|
||||
component: () => import('@src/views/user/mypagegood/mypagegood.vue'),
|
||||
component: () => import('@/views/user/mypagegood/mypagegood.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -207,7 +207,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/fundraising',
|
||||
materialIcon: 'fas fa-hand-holding-heart',
|
||||
name: 'pages.fundraising',
|
||||
component: () => import('@src/root/fundraising/fundraising.vue'),
|
||||
component: () => import('@/root/fundraising/fundraising.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
@@ -217,7 +217,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/calendario-eventi',
|
||||
materialIcon: 'event',
|
||||
name: 'ris.calendario_eventi_riso',
|
||||
component: () => import('@src/root/calendarioeventi/calendarioeventi.vue'),
|
||||
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
|
||||
extraclass: 'isCalendar',
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nutriben",
|
||||
"version": "1.2.85",
|
||||
"version": "1.2.86",
|
||||
"description": "Nutriben",
|
||||
"productName": "Nutriben",
|
||||
"author": "Surya",
|
||||
@@ -9,20 +9,20 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8093 APP_VERSION='1.2.85' quasar dev",
|
||||
"dev": "PORT=8093 APP_VERSION='1.2.86' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "APP_VERSION='1.2.85' quasar build -m spa",
|
||||
"buildspa": "APP_VERSION='1.2.86' quasar build -m spa",
|
||||
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.85' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.85' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.86' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -38,7 +38,7 @@ const firstPage = {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/nutriben/home/home.vue'),
|
||||
component: () => import('@/root/nutriben/home/home.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -54,7 +54,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -65,7 +65,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/test',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.test',
|
||||
component: () => import('@src/views/testServer/testServer.vue'),
|
||||
component: () => import('@/views/testServer/testServer.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
@@ -75,7 +75,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/provapao',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.provapao',
|
||||
component: () => import('@src/root/provapao/provapao.vue'),
|
||||
component: () => import('@/root/provapao/provapao.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -86,7 +86,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuits',
|
||||
materialIcon: 'fas fa-coins',
|
||||
name: 'mypages.circuits',
|
||||
component: () => import('@src/views/user/mycircuits/mycircuits.vue'),
|
||||
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -97,7 +97,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
name: 'mypages.events',
|
||||
component: () => import('@src/root/eventi/eventi.vue'),
|
||||
component: () => import('@/root/eventi/eventi.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -108,7 +108,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/install_site',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.install_site',
|
||||
component: () => import('@src/views/admin/install_site/install_site.vue'),
|
||||
component: () => import('@/views/admin/install_site/install_site.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -119,7 +119,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@src/views/user/myprofile/myprofile.vue'),
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -130,7 +130,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/editprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile3',
|
||||
component: () => import('@src/views/user/editprofile/editprofile.vue'),
|
||||
component: () => import('@/views/user/editprofile/editprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -141,7 +141,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@src/views/user/myfriends/myfriends.vue'),
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -152,7 +152,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/groups',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'mypages.groups',
|
||||
component: () => import('@src/views/user/mygroups/mygroups.vue'),
|
||||
component: () => import('@/views/user/mygroups/mygroups.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: false,
|
||||
@@ -163,7 +163,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/grp/:groupname',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.group2',
|
||||
component: () => import('@src/views/user/mygroup/mygroup.vue'),
|
||||
component: () => import('@/views/user/mygroup/mygroup.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -174,7 +174,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuit/:path',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.circuit2',
|
||||
component: () => import('@src/views/user/mycircuit/mycircuit.vue'),
|
||||
component: () => import('@/views/user/mycircuit/mycircuit.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -193,7 +193,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mypage/:idBacheca',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.mypage2',
|
||||
component: () => import('@src/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -204,7 +204,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myservice/:idSkill',
|
||||
materialIcon: '',
|
||||
name: 'pages.myservice2',
|
||||
component: () => import('@src/views/user/myservice/myservice.vue'),
|
||||
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -215,7 +215,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myhosps/:idHosp',
|
||||
materialIcon: '',
|
||||
name: 'pages.myhosps2',
|
||||
component: () => import('@src/views/user/mypagehosp/mypagehosp.vue'),
|
||||
component: () => import('@/views/user/mypagehosp/mypagehosp.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -226,7 +226,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mygood/:idGood',
|
||||
materialIcon: '',
|
||||
name: 'pages.mygood2',
|
||||
component: () => import('@src/views/user/mypagegood/mypagegood.vue'),
|
||||
component: () => import('@/views/user/mypagegood/mypagegood.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -237,7 +237,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/calendario-eventi',
|
||||
materialIcon: 'event',
|
||||
name: 'ris.calendario_eventi_riso',
|
||||
component: () => import('@src/root/calendarioeventi/calendarioeventi.vue'),
|
||||
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
|
||||
extraclass: 'isCalendar',
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "piuchebuono",
|
||||
"version": "1.2.85",
|
||||
"version": "1.2.86",
|
||||
"description": "PiuCheBuono",
|
||||
"productName": "PiuCheBuono",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "PORT=8085 APP_VERSION='1.2.85' quasar dev",
|
||||
"dev": "PORT=8085 APP_VERSION='1.2.86' quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.85' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.85' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.86' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -14,7 +14,7 @@ const firstPage = {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -29,7 +29,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -40,7 +40,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/test',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.test',
|
||||
component: () => import('@src/views/testServer/testServer.vue'),
|
||||
component: () => import('@/views/testServer/testServer.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -52,7 +52,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
name: 'mypages.events',
|
||||
component: () => import('@src/root/eventi/eventi.vue'),
|
||||
component: () => import('@/root/eventi/eventi.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -63,7 +63,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@src/views/user/myprofile/myprofile.vue'),
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -74,7 +74,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/install_site',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.install_site',
|
||||
component: () => import('@src/views/admin/install_site/install_site.vue'),
|
||||
component: () => import('@/views/admin/install_site/install_site.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -85,7 +85,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/editprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile3',
|
||||
component: () => import('@src/views/user/editprofile/editprofile.vue'),
|
||||
component: () => import('@/views/user/editprofile/editprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -96,7 +96,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@src/views/user/myfriends/myfriends.vue'),
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -107,7 +107,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuits',
|
||||
materialIcon: 'fas fa-coins',
|
||||
name: 'mypages.circuits',
|
||||
component: () => import('@src/views/user/mycircuits/mycircuits.vue'),
|
||||
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -120,7 +120,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/groups',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'mypages.groups',
|
||||
component: () => import('@src/views/user/mygroups/mygroups.vue'),
|
||||
component: () => import('@/views/user/mygroups/mygroups.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: false,
|
||||
@@ -133,7 +133,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/grp/:groupname',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.group2',
|
||||
component: () => import('@src/views/user/mygroup/mygroup.vue'),
|
||||
component: () => import('@/views/user/mygroup/mygroup.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -144,7 +144,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuit/:path',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.circuit2',
|
||||
component: () => import('@src/views/user/mycircuit/mycircuit.vue'),
|
||||
component: () => import('@/views/user/mycircuit/mycircuit.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -163,7 +163,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mypage/:idBacheca',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.mypage2',
|
||||
component: () => import('@src/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -174,7 +174,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myservice/:idSkill',
|
||||
materialIcon: '',
|
||||
name: 'pages.myservice2',
|
||||
component: () => import('@src/views/user/myservice/myservice.vue'),
|
||||
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -185,7 +185,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myhosps/:idHosp',
|
||||
materialIcon: '',
|
||||
name: 'pages.myhosps2',
|
||||
component: () => import('@src/views/user/mypagehosp/mypagehosp.vue'),
|
||||
component: () => import('@/views/user/mypagehosp/mypagehosp.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -196,7 +196,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mygood/:idGood',
|
||||
materialIcon: '',
|
||||
name: 'pages.mygood2',
|
||||
component: () => import('@src/views/user/mypagegood/mypagegood.vue'),
|
||||
component: () => import('@/views/user/mypagegood/mypagegood.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -207,7 +207,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/fundraising',
|
||||
materialIcon: 'fas fa-hand-holding-heart',
|
||||
name: 'pages.fundraising',
|
||||
component: () => import('@src/root/fundraising/fundraising.vue'),
|
||||
component: () => import('@/root/fundraising/fundraising.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
@@ -217,7 +217,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/calendario-eventi',
|
||||
materialIcon: 'event',
|
||||
name: 'ris.calendario_eventi_riso',
|
||||
component: () => import('@src/root/calendarioeventi/calendarioeventi.vue'),
|
||||
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
|
||||
extraclass: 'isCalendar',
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "riso",
|
||||
"version": "1.2.85",
|
||||
"version": "1.2.86",
|
||||
"productName": "Riso 💚 - Rete Italiana Scambio orizzontale",
|
||||
"description": "Progetto RISO (Rete Italiana Scambio orizzontale) promuove una rete di comunità locali che favoriscono scambi di beni, servizi e ospitalità. Con l'App RISO, sviluppata per facilitare il baratto, il dono e l'uso di monete alternative come i RIS, il progetto crea legami autentici basati sulla fiducia e sostenibilità. Partecipa agli scambi e costruisci una comunità più consapevole e autosufficiente.",
|
||||
"author": "Surya",
|
||||
@@ -9,11 +9,11 @@
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "APP_VERSION='1.2.85' PORT=8084 quasar dev",
|
||||
"dev": "APP_VERSION='1.2.86' PORT=8084 quasar dev",
|
||||
"dev_noCheck": "SKIP_TSC=true quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.85' quasar build -m pwa",
|
||||
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.86' quasar build -m pwa",
|
||||
"type-check": "vue-tsc --noEmit",
|
||||
"type-check:watch": "vue-tsc --noEmit --watch",
|
||||
"buildspa": "quasar build -m spa",
|
||||
@@ -21,8 +21,8 @@
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.85' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.85' quasar dev",
|
||||
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.86' quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.86' quasar dev",
|
||||
"debug": "quasar dev --mode debug",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js",
|
||||
|
||||
@@ -38,7 +38,7 @@ const firstPage = {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -53,7 +53,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
component: () => import('@/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -64,7 +64,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/test',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.test',
|
||||
component: () => import('@src/views/testServer/testServer.vue'),
|
||||
component: () => import('@/views/testServer/testServer.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
@@ -74,7 +74,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/goods',
|
||||
materialIcon: 'fas fa-tshirt',
|
||||
name: 'mypages.goods',
|
||||
component: () => import('@src/root/goods/goods.vue'),
|
||||
component: () => import('@/root/goods/goods.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -85,7 +85,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/services',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.services',
|
||||
component: () => import('@src/root/services/services.vue'),
|
||||
component: () => import('@/root/services/services.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -96,7 +96,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/activities',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.activities',
|
||||
component: () => import('@src/root/activities/activities.vue'),
|
||||
component: () => import('@/root/activities/activities.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -107,7 +107,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/provapao',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.provapao',
|
||||
component: () => import('@src/root/provapao/provapao.vue'),
|
||||
component: () => import('@/root/provapao/provapao.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -118,7 +118,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/hosps',
|
||||
materialIcon: 'fas fa-bed',
|
||||
name: 'mypages.hosp',
|
||||
component: () => import('@src/root/hosp/hosp.vue'),
|
||||
component: () => import('@/root/hosp/hosp.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -129,7 +129,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuits',
|
||||
materialIcon: 'fas fa-coins',
|
||||
name: 'mypages.circuits',
|
||||
component: () => import('@src/views/user/mycircuits/mycircuits.vue'),
|
||||
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -140,7 +140,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
name: 'mypages.events',
|
||||
component: () => import('@src/root/eventi/eventi.vue'),
|
||||
component: () => import('@/root/eventi/eventi.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -151,7 +151,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/install_site',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.install_site',
|
||||
component: () => import('@src/views/admin/install_site/install_site.vue'),
|
||||
component: () => import('@/views/admin/install_site/install_site.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -162,7 +162,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@src/views/user/myprofile/myprofile.vue'),
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -184,7 +184,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@src/views/user/myfriends/myfriends.vue'),
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -195,7 +195,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/groups',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'mypages.groups',
|
||||
component: () => import('@src/views/user/mygroups/mygroups.vue'),
|
||||
component: () => import('@/views/user/mygroups/mygroups.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: false,
|
||||
@@ -206,7 +206,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/grp/:groupname',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.group2',
|
||||
component: () => import('@src/views/user/mygroup/mygroup.vue'),
|
||||
component: () => import('@/views/user/mygroup/mygroup.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -217,7 +217,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/circuit/:path',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.circuit2',
|
||||
component: () => import('@src/views/user/mycircuit/mycircuit.vue'),
|
||||
component: () => import('@/views/user/mycircuit/mycircuit.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -236,7 +236,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mypage/:idBacheca',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.mypage2',
|
||||
component: () => import('@src/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -247,7 +247,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myservice/:idSkill',
|
||||
materialIcon: '',
|
||||
name: 'pages.myservice2',
|
||||
component: () => import('@src/views/user/myservice/myservice.vue'),
|
||||
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -258,7 +258,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/myhosps/:idHosp',
|
||||
materialIcon: '',
|
||||
name: 'pages.myhosps2',
|
||||
component: () => import('@src/views/user/mypagehosp/mypagehosp.vue'),
|
||||
component: () => import('@/views/user/mypagehosp/mypagehosp.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -269,7 +269,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/mygood/:idGood',
|
||||
materialIcon: '',
|
||||
name: 'pages.mygood2',
|
||||
component: () => import('@src/views/user/mypagegood/mypagegood.vue'),
|
||||
component: () => import('@/views/user/mypagegood/mypagegood.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
@@ -280,7 +280,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/sostieniilprogetto',
|
||||
materialIcon: 'fas fa-hand-holding-heart',
|
||||
name: 'pages.fundraising',
|
||||
component: () => import('@src/root/fundraising/fundraising.vue'),
|
||||
component: () => import('@/root/fundraising/fundraising.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
@@ -290,7 +290,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
path: '/calendario-eventi',
|
||||
materialIcon: 'event',
|
||||
name: 'ris.calendario_eventi_riso',
|
||||
component: () => import('@src/root/calendarioeventi/calendarioeventi.vue'),
|
||||
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
|
||||
extraclass: 'isCalendar',
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/* global workbox */
|
||||
/* global cfgenv */
|
||||
|
||||
const VITE_APP_VERSION = '1.2.85';
|
||||
const VITE_APP_VERSION = '1.2.86';
|
||||
|
||||
// Costanti di configurazione
|
||||
const DYNAMIC_CACHE = 'dynamic-cache-v2';
|
||||
@@ -117,8 +117,62 @@ self.addEventListener('activate', (event) => {
|
||||
);
|
||||
})
|
||||
);
|
||||
self.clients.claim(); // SERVE? OPPURE NO ?
|
||||
});
|
||||
|
||||
const USASYNC = false;
|
||||
// PER ATTIVARE IL SYNC TOGLI L'AREA COMMENTATA DI 'FETCH' QUI SOTTO ....
|
||||
/*
|
||||
// Strategia fetch
|
||||
self.addEventListener('fetch', (event) => {
|
||||
const { request } = event;
|
||||
const url = new URL(request.url);
|
||||
|
||||
// ============================================
|
||||
// IMPORTANTE: NON cachare API /sync o /loadsite
|
||||
// ============================================
|
||||
if (url.pathname.includes('/api/') ||
|
||||
url.pathname.includes('/sync') ||
|
||||
url.pathname.includes('/loadsite')) {
|
||||
// Lascia passare normalmente - IndexedDB gestisce cache
|
||||
return;
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// Cache Strategy per assets statici
|
||||
// ============================================
|
||||
if (request.method === 'GET') {
|
||||
event.respondWith(
|
||||
caches.match(request).then((cachedResponse) => {
|
||||
if (cachedResponse) {
|
||||
return cachedResponse;
|
||||
}
|
||||
|
||||
return fetch(request).then((response) => {
|
||||
// Non cachare se non è successo
|
||||
if (!response || response.status !== 200 || response.type !== 'basic') {
|
||||
return response;
|
||||
}
|
||||
|
||||
// Clona e salva in cache
|
||||
const responseToCache = response.clone();
|
||||
caches.open(CACHE_NAME).then((cache) => {
|
||||
cache.put(request, responseToCache);
|
||||
});
|
||||
|
||||
return response;
|
||||
}).catch(() => {
|
||||
// Offline fallback
|
||||
if (request.destination === 'document') {
|
||||
return caches.match('/offline.html');
|
||||
}
|
||||
});
|
||||
})
|
||||
);
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
console.log(
|
||||
' [ VER-' +
|
||||
VITE_APP_VERSION +
|
||||
|
||||
12
src/App.ts
12
src/App.ts
@@ -1,15 +1,15 @@
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
import { useQuasar } from 'quasar';
|
||||
import { BannerCookies } from '@src/components/BannerCookies';
|
||||
import { BannerCookies } from '@/components/BannerCookies';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useGlobalStore } from '@store/globalStore';
|
||||
import { useUserStore } from '@store/UserStore';
|
||||
import { MyHeader } from '@src/components/MyHeader';
|
||||
import { MyFooter } from '@src/components/MyFooter';
|
||||
import { CCheckUpdatesPWA } from '@src/components/CCheckUpdatesPWA';
|
||||
import { CFirstPageApp } from '@src/components/CFirstPageApp';
|
||||
import { MyHeader } from '@/components/MyHeader';
|
||||
import { MyFooter } from '@/components/MyFooter';
|
||||
import { CCheckUpdatesPWA } from '@/components/CCheckUpdatesPWA';
|
||||
import { CFirstPageApp } from '@/components/CFirstPageApp';
|
||||
import { computed, onMounted, ref, watch } from 'vue';
|
||||
import { CProvaPao } from '@src/components/CProvaPao';
|
||||
import { CProvaPao } from '@/components/CProvaPao';
|
||||
import { tools } from '@tools';
|
||||
import { toolsext } from '@store/Modules/toolsext';
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
// import something here
|
||||
|
||||
// import { isEqual } from 'lodash'
|
||||
// import { ProgressBar } from '@src/store/Modules/Interface'
|
||||
// import { ProgressBar } from '@/store/Modules/Interface'
|
||||
// import { UserStore } from "@store"
|
||||
|
||||
// @ts-ignore
|
||||
import { boot } from 'quasar/wrappers'
|
||||
|
||||
import { useGlobalStore } from '@src/store/globalStore';
|
||||
import { useUserStore } from '@src/store/UserStore';
|
||||
import { tools } from '@src/store/Modules/tools';
|
||||
import { useGlobalStore } from '@/store/globalStore';
|
||||
import { useUserStore } from '@/store/UserStore';
|
||||
import { tools } from '@/store/Modules/tools';
|
||||
|
||||
export default boot(({ app, router }) => {
|
||||
// ******************************************
|
||||
@@ -35,7 +35,7 @@ export default boot(({ app, router }) => {
|
||||
globalStore.editOn = tools.getCookie('edn_' + pageKey, '0') === '1'
|
||||
}
|
||||
} catch(e) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
next()
|
||||
@@ -53,10 +53,10 @@ export default boot(({ app, router }) => {
|
||||
//} else {
|
||||
// next()
|
||||
//}
|
||||
|
||||
|
||||
|
||||
// Continue with the navigation
|
||||
|
||||
|
||||
});
|
||||
|
||||
/* router.beforeEach((to, from, next) => {
|
||||
|
||||
@@ -5,7 +5,7 @@ import axios, {
|
||||
} from 'axios'
|
||||
|
||||
// import { default as VueRouter } from 'vue-router'
|
||||
import { serv_constants } from '@src/store/Modules/serv_constants'
|
||||
import { serv_constants } from '@/store/Modules/serv_constants'
|
||||
// import { TokenHelper } from "./token-helper";
|
||||
|
||||
let initialized = false
|
||||
|
||||
@@ -5,7 +5,7 @@ import axios, {
|
||||
} from 'axios'
|
||||
|
||||
// import { default as VueRouter } from 'vue-router'
|
||||
import { serv_constants } from '@src/store/Modules/serv_constants'
|
||||
import { serv_constants } from '@/store/Modules/serv_constants'
|
||||
// import { TokenHelper } from "./token-helper";
|
||||
|
||||
let initialized = false
|
||||
|
||||
@@ -190,6 +190,9 @@ export const shared_consts = {
|
||||
PAGE_SECTION: 1500,
|
||||
PROFILE_COMPLETITION: 1510,
|
||||
RISOHOME: 1600,
|
||||
RISOHOME_MODERN: 1610,
|
||||
PAGERIS: 1620,
|
||||
CMYCIRCUITS: 1630,
|
||||
},
|
||||
|
||||
QUERYTYPE_MYGROUP: 1,
|
||||
@@ -321,6 +324,8 @@ export const shared_consts = {
|
||||
'sectors',
|
||||
'goods',
|
||||
'sectorgoods',
|
||||
'bachecas',
|
||||
'sectorbachecas',
|
||||
'catgrps',
|
||||
'skills',
|
||||
'subskills',
|
||||
@@ -440,6 +445,7 @@ export const shared_consts = {
|
||||
TABLES_REC_ID: [
|
||||
'skills',
|
||||
'goods',
|
||||
'bachecas',
|
||||
'subskills',
|
||||
'myskills',
|
||||
'mybachecas',
|
||||
@@ -788,98 +794,266 @@ export const shared_consts = {
|
||||
{
|
||||
value: 2,
|
||||
label: 'Si accettano cani',
|
||||
icon: 'pets',
|
||||
color: '#795548', // brown
|
||||
},
|
||||
{
|
||||
value: 3,
|
||||
label: 'Si accettano gatti',
|
||||
icon: 'pets',
|
||||
color: '#FF9800', // orange
|
||||
},
|
||||
{
|
||||
value: 4,
|
||||
label: "E' consentito fumare in casa",
|
||||
icon: 'smoking_rooms',
|
||||
color: '#9E9E9E', // grey
|
||||
},
|
||||
{
|
||||
value: 5,
|
||||
label: 'Accessibile con sedia a rotelle',
|
||||
icon: 'accessible',
|
||||
color: '#2196F3', // blue
|
||||
},
|
||||
{
|
||||
value: 6,
|
||||
label: 'Parcheggio gratuito nella proprietà',
|
||||
icon: 'local_parking',
|
||||
color: '#3F51B5', // indigo
|
||||
},
|
||||
{
|
||||
value: 7,
|
||||
label: 'Wi-fi disponibile',
|
||||
icon: 'wifi',
|
||||
color: '#00BCD4', // cyan
|
||||
},
|
||||
{
|
||||
value: 8,
|
||||
label: 'Sono permessi soggiorni a lungo termine',
|
||||
icon: 'calendar_month',
|
||||
color: '#009688', // teal
|
||||
},
|
||||
{
|
||||
value: 9,
|
||||
label: 'Cucina Vegetariana',
|
||||
icon: 'restaurant',
|
||||
color: '#4CAF50', // green
|
||||
},
|
||||
{
|
||||
value: 10,
|
||||
label: 'Cucina Vegana',
|
||||
icon: 'spa',
|
||||
color: '#8BC34A', // light-green
|
||||
},
|
||||
{
|
||||
value: 11,
|
||||
label: 'Uso della Cucina',
|
||||
icon: 'kitchen',
|
||||
color: '#FFC107', // amber
|
||||
},
|
||||
{
|
||||
value: 12,
|
||||
label: 'Uso della Lavatrice',
|
||||
icon: 'local_laundry_service',
|
||||
color: '#607D8B', // blue-grey
|
||||
},
|
||||
{
|
||||
value: 13,
|
||||
label: 'Aria condizionata',
|
||||
icon: 'ac_unit',
|
||||
color: '#03A9F4', // light-blue
|
||||
},
|
||||
{
|
||||
value: 14,
|
||||
label: 'Ventilatore',
|
||||
icon: 'air',
|
||||
color: '#00BCD4', // cyan
|
||||
},
|
||||
{
|
||||
value: 15,
|
||||
label: "Doccia all'aperto",
|
||||
icon: 'shower',
|
||||
color: '#2196F3', // blue
|
||||
},
|
||||
{
|
||||
value: 16,
|
||||
label: 'TV',
|
||||
icon: 'tv',
|
||||
color: '#673AB7', // deep-purple
|
||||
},
|
||||
{
|
||||
value: 17,
|
||||
label: 'Eventi consentiti',
|
||||
icon: 'celebration',
|
||||
color: '#E91E63', // pink
|
||||
},
|
||||
{
|
||||
value: 18,
|
||||
label: 'Adatto a bambini da 2 a 12 anni',
|
||||
icon: 'child_care',
|
||||
color: '#F9A825'
|
||||
},
|
||||
{
|
||||
value: 19,
|
||||
label: 'Adatto ai neonati (fino ai 2 anni)',
|
||||
icon: 'baby_changing_station',
|
||||
color: '#F8BBD0', // pink-light
|
||||
},
|
||||
{
|
||||
value: 20,
|
||||
label: 'Biancheria inclusa',
|
||||
icon: 'bed',
|
||||
color: '#9C27B0', // purple
|
||||
},
|
||||
{
|
||||
value: 21,
|
||||
label: 'Biancheria su richiesta (a parte)',
|
||||
icon: 'bedroom_parent',
|
||||
color: '#673AB7', // deep-purple
|
||||
},
|
||||
{
|
||||
value: 22,
|
||||
label: 'Asciugamani',
|
||||
icon: 'dry_cleaning',
|
||||
color: '#009688', // teal
|
||||
},
|
||||
{
|
||||
value: 23,
|
||||
label: 'Asciugacapelli',
|
||||
icon: 'iron',
|
||||
color: '#F44336', // red
|
||||
},
|
||||
{
|
||||
value: 24,
|
||||
label: 'Riscaldamento a legna',
|
||||
icon: 'fireplace',
|
||||
color: '#FF5722', // deep-orange
|
||||
},
|
||||
{
|
||||
value: 25,
|
||||
label: 'Riscaldamento a gas',
|
||||
icon: 'heat_pump',
|
||||
color: '#FF9800', // orange
|
||||
},
|
||||
{
|
||||
value: 26,
|
||||
label: 'Colazione inclusa',
|
||||
icon: 'free_breakfast',
|
||||
color: '#FFC107', // amber
|
||||
},
|
||||
{
|
||||
value: 27,
|
||||
label: 'Giardino/Spazio esterno',
|
||||
icon: 'yard',
|
||||
color: '#4CAF50', // green
|
||||
},
|
||||
{
|
||||
value: 28,
|
||||
label: 'Terrazzo/Balcone',
|
||||
icon: 'balcony',
|
||||
color: '#CDDC39', // lime
|
||||
},
|
||||
{
|
||||
value: 29,
|
||||
label: 'Silenzioso/Zona tranquilla',
|
||||
icon: 'volume_off',
|
||||
color: '#607D8B', // blue-grey
|
||||
},
|
||||
{
|
||||
value: 30,
|
||||
label: 'Vicino a mezzi pubblici',
|
||||
icon: 'directions_bus',
|
||||
color: '#3F51B5', // indigo
|
||||
},
|
||||
{
|
||||
value: 31,
|
||||
label: 'Biciclette disponibili',
|
||||
icon: 'directions_bike',
|
||||
color: '#009688', // teal
|
||||
},
|
||||
{
|
||||
value: 32,
|
||||
label: 'Camino',
|
||||
icon: 'fireplace',
|
||||
color: '#795548', // brown
|
||||
},
|
||||
{
|
||||
value: 33,
|
||||
label: 'Barbecue',
|
||||
icon: 'outdoor_grill',
|
||||
color: '#F44336', // red
|
||||
},
|
||||
{
|
||||
value: 34,
|
||||
label: 'Piscina',
|
||||
icon: 'pool',
|
||||
color: '#03A9F4', // light-blue
|
||||
},
|
||||
{
|
||||
value: 35,
|
||||
label: 'Sauna',
|
||||
icon: 'hot_tub',
|
||||
color: '#FF5722', // deep-orange
|
||||
},
|
||||
{
|
||||
value: 36,
|
||||
label: 'Vista panoramica',
|
||||
icon: 'landscape',
|
||||
color: '#9C27B0', // purple
|
||||
},
|
||||
{
|
||||
value: 37,
|
||||
label: 'In campagna',
|
||||
icon: 'nature',
|
||||
color: '#4CAF50', // green
|
||||
},
|
||||
{
|
||||
value: 38,
|
||||
label: 'In montagna',
|
||||
icon: 'terrain',
|
||||
color: '#795548', // brown
|
||||
},
|
||||
{
|
||||
value: 39,
|
||||
label: 'Vicino al mare',
|
||||
icon: 'beach_access',
|
||||
color: '#2196F3', // blue
|
||||
},
|
||||
{
|
||||
value: 40,
|
||||
label: 'Animali da fattoria',
|
||||
icon: 'agriculture',
|
||||
color: '#795548', // brown
|
||||
},
|
||||
{
|
||||
value: 41,
|
||||
label: 'Orto/Permacultura',
|
||||
icon: 'eco',
|
||||
color: '#4CAF50', // green
|
||||
},
|
||||
{
|
||||
value: 42,
|
||||
label: 'Prodotti biologici/km zero',
|
||||
icon: 'local_florist',
|
||||
color: '#8BC34A', // light-green
|
||||
},
|
||||
{
|
||||
value: 43,
|
||||
label: 'Scambio lavoro/volontariato',
|
||||
icon: 'handshake',
|
||||
color: '#FF9800', // orange
|
||||
},
|
||||
{
|
||||
value: 44,
|
||||
label: 'Comunità/Ecovillaggio',
|
||||
icon: 'groups',
|
||||
color: '#9C27B0', // purple
|
||||
},
|
||||
{
|
||||
value: 45,
|
||||
label: 'Energie rinnovabili',
|
||||
icon: 'solar_power',
|
||||
color: '#FFEB3B', // yellow
|
||||
},
|
||||
],
|
||||
|
||||
@@ -1836,8 +2010,8 @@ export const shared_consts = {
|
||||
icon: 'fas fa-list',
|
||||
},
|
||||
{
|
||||
value: 150,
|
||||
label: 'SendCoinTo',
|
||||
value: 150, // CSENDRISTO
|
||||
label: 'Bott (Invia/Ricevi RIS)',
|
||||
icon: 'fas fa-wallet',
|
||||
},
|
||||
{
|
||||
@@ -1943,6 +2117,21 @@ export const shared_consts = {
|
||||
label: 'HomePage RISO',
|
||||
icon: 'fas fa-home',
|
||||
},
|
||||
{
|
||||
value: 1610, // RISOHOME_MODERN
|
||||
label: 'RISO Home Modern',
|
||||
icon: 'fas fa-home',
|
||||
},
|
||||
{
|
||||
value: 1620, // PAGERIS
|
||||
label: 'Pagina RIS',
|
||||
icon: 'fas fa-home',
|
||||
},
|
||||
{
|
||||
value: 1630, // CMYCIRCUITS
|
||||
label: 'CMyCircuits (Old Page)',
|
||||
icon: 'fas fa-home',
|
||||
},
|
||||
{
|
||||
value: 258,
|
||||
label: 'Registration',
|
||||
@@ -2388,9 +2577,9 @@ export const shared_consts = {
|
||||
} else if (table === this.TABLES_MYBACHECAS) {
|
||||
proj = {
|
||||
recSkill: 1,
|
||||
sector: 1,
|
||||
idSector: 1,
|
||||
idSkill: 1,
|
||||
sectorBacheca: 1,
|
||||
idSectorBacheca: 1,
|
||||
idBacheca: 1,
|
||||
// 'idSubSkill': 1,
|
||||
idStatusSkill: 1,
|
||||
idContribType: 1,
|
||||
@@ -2672,5 +2861,5 @@ export const shared_consts = {
|
||||
FILETYPE: {
|
||||
IMG: 1,
|
||||
PDF: 2,
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useI18n } from 'vue-i18n'
|
||||
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
|
||||
@@ -5,9 +5,9 @@ import { useUserStore } from '@store/UserStore'
|
||||
import { useQuasar } from 'quasar'
|
||||
import type { IAccomodation} from 'model';
|
||||
import { IGallery, IImgGallery } from 'model'
|
||||
import { CMyPage } from '@src/components/CMyPage'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { tools } from '@tools'
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { costanti } from '@costanti'
|
||||
import { CMySelect } from '../CMySelect'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { defineComponent, onMounted, ref, toRef, watch, toRefs } from 'vue'
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { tools } from '@/store/Modules/tools'
|
||||
|
||||
import { useQuasar } from 'quasar'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
@@ -5,7 +5,7 @@ import { tools } from '../../store/Modules/tools'
|
||||
|
||||
import { fieldsTable } from '@store/Modules/fieldsTable'
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
|
||||
import type {
|
||||
ISearchList
|
||||
@@ -35,11 +35,11 @@ import { useUserStore } from '@store/UserStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useQuasar, exportFile } from 'quasar'
|
||||
import { costanti } from '@costanti'
|
||||
import translate from '@src/globalroutines/util'
|
||||
import translate from '@/globalroutines/util'
|
||||
import { toolsext } from '@store/Modules/toolsext'
|
||||
import { CMyCardPopup } from '@src/components/CMyCardPopup'
|
||||
import { CMyCardGrpPopup } from '@src/components/CMyCardGrpPopup'
|
||||
import { CMyCardCircuitPopup } from '@src/components/CMyCardCircuitPopup'
|
||||
import { CMyCardPopup } from '@/components/CMyCardPopup'
|
||||
import { CMyCardGrpPopup } from '@/components/CMyCardGrpPopup'
|
||||
import { CMyCardCircuitPopup } from '@/components/CMyCardCircuitPopup'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { table } from 'console'
|
||||
import { globals } from 'jest.config'
|
||||
@@ -256,7 +256,11 @@ export default defineComponent({
|
||||
if (recSector) {
|
||||
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + recSector.value, newval)
|
||||
}
|
||||
// setCategBySector('sectorgoods', table, newval)
|
||||
} else if (table === toolsext.TABMYBACHECAS) {
|
||||
const recSector = searchList.value.find((rec) => rec.table === toolsext.TABSECTORBACHECAS)
|
||||
if (recSector) {
|
||||
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + recSector.value, newval)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,42 +1,188 @@
|
||||
.text-cls{
|
||||
font-weight: bold;
|
||||
// Spacing ridotto
|
||||
$s-xs: 4px;
|
||||
$s-sm: 6px;
|
||||
$s-md: 8px;
|
||||
|
||||
// Wrapper moderno
|
||||
.modern-btn-wrapper {
|
||||
padding: $s-xs;
|
||||
|
||||
&.modern-btn-col-3 {
|
||||
flex: 0 0 33.333%;
|
||||
max-width: 33.333%;
|
||||
|
||||
@media (max-width: 599px) {
|
||||
flex: 0 0 33.333%;
|
||||
max-width: 33.333%;
|
||||
}
|
||||
|
||||
@media (min-width: 600px) and (max-width: 1023px) {
|
||||
flex: 0 0 33.333%;
|
||||
max-width: 33.333%;
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) and (max-width: 1439px) {
|
||||
flex: 0 0 25%;
|
||||
max-width: 25%;
|
||||
}
|
||||
|
||||
@media (min-width: 1440px) {
|
||||
flex: 0 0 16.666%;
|
||||
max-width: 16.666%;
|
||||
}
|
||||
}
|
||||
|
||||
&.modern-btn-col-2 {
|
||||
flex: 0 0 50%;
|
||||
max-width: 50%;
|
||||
|
||||
@media (min-width: 600px) and (max-width: 1023px) {
|
||||
flex: 0 0 50%;
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) and (max-width: 1439px) {
|
||||
flex: 0 0 33.333%;
|
||||
max-width: 33.333%;
|
||||
}
|
||||
|
||||
@media (min-width: 1440px) {
|
||||
flex: 0 0 25%;
|
||||
max-width: 25%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.my-text {
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
line-height: 1.5rem;
|
||||
letter-spacing: 0.0125em;
|
||||
}
|
||||
|
||||
.my-text_3 {
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
line-height: 1.5rem;
|
||||
letter-spacing: 0.0125em;
|
||||
}
|
||||
|
||||
.my-text-small {
|
||||
font-size: 1rem;
|
||||
line-height: 1rem;
|
||||
letter-spacing: 0.0125em;
|
||||
}
|
||||
|
||||
.mybox_3 {
|
||||
min-width: 100px;
|
||||
min-height: 100px;
|
||||
|
||||
// Bottoni moderni
|
||||
.modern-bigbtn {
|
||||
width: 100%;
|
||||
min-height: 90px;
|
||||
min-width: 90px;
|
||||
padding: $s-sm;
|
||||
flex-direction: column;
|
||||
gap: $s-xs;
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
|
||||
transition: left 0.5s ease;
|
||||
}
|
||||
|
||||
&:hover::before {
|
||||
left: 100%;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.btn-icon {
|
||||
margin: $s-xs;
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.btn-icon-large {
|
||||
margin: $s-xs;
|
||||
}
|
||||
|
||||
.btn-label,
|
||||
.btn-label-large {
|
||||
margin: $s-xs;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 700;
|
||||
line-height: 1.3;
|
||||
letter-spacing: 0.01em;
|
||||
text-align: center;
|
||||
white-space: normal;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.btn-label-large {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.mybox {
|
||||
min-width: 112px;
|
||||
min-height: 112px;
|
||||
|
||||
.modern-smallbtn {
|
||||
width: 100%;
|
||||
min-height: 70px;
|
||||
min-width: 80px;
|
||||
padding: $s-sm;
|
||||
flex-direction: column;
|
||||
gap: $s-xs;
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
|
||||
transition: left 0.5s ease;
|
||||
}
|
||||
|
||||
&:hover::before {
|
||||
left: 100%;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.btn-icon-small {
|
||||
margin: $s-xs;
|
||||
}
|
||||
|
||||
.btn-label-small {
|
||||
margin: $s-xs;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
letter-spacing: 0.01em;
|
||||
text-align: center;
|
||||
white-space: normal;
|
||||
word-break: break-word;
|
||||
}
|
||||
}
|
||||
|
||||
.mybox_small {
|
||||
min-width: 110px;
|
||||
width: 100%;
|
||||
}
|
||||
// Responsive adjustments
|
||||
@media (max-width: 599px) {
|
||||
.modern-bigbtn {
|
||||
min-height: 85px;
|
||||
min-width: 85px;
|
||||
|
||||
.btn-icon {
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
|
||||
.btn-label {
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
|
||||
.btn-label-large {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.modern-smallbtn {
|
||||
min-height: 65px;
|
||||
min-width: 70px;
|
||||
|
||||
.btn-label-small {
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +1,63 @@
|
||||
<template>
|
||||
<div v-if="numcol === 3" class="col-xs-4 col-sm-4 col-md-3 col-lg-2">
|
||||
<div class="q-ma-sm">
|
||||
<q-btn v-if="!small" :flat="flat" class="mybox_3" :color="color" rounded push :to="tools.updateLink(to)" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 180)">
|
||||
<q-icon class="q-ma-sm" :name="icon"/>
|
||||
<div class="q-ma-sm my-text_3 text-cls no-wrap"><span v-html="label"></span></div>
|
||||
</q-btn>
|
||||
<q-btn v-if="small" :flat="flat" class="mybox_small" :color="color" rounded push :to="tools.updateLink(to)" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 180)">
|
||||
<q-icon class="q-ma-sm" :name="icon" size="sm"/>
|
||||
<div class="q-ma-xs my-text-small text-cls no-wrap"><span v-html="label"></span></div>
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-if="numcol === 3" class="modern-btn-wrapper modern-btn-col-3">
|
||||
<q-btn
|
||||
v-if="!small"
|
||||
:flat="flat"
|
||||
class="modern-bigbtn"
|
||||
:color="color"
|
||||
rounded
|
||||
push
|
||||
:to="tools.updateLink(to)"
|
||||
v-bind="$attrs"
|
||||
:style="tools.getbackgroundGradient(color, 180)"
|
||||
>
|
||||
<q-icon class="btn-icon" :name="icon"/>
|
||||
<div class="btn-label"><span v-html="label"></span></div>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="small"
|
||||
:flat="flat"
|
||||
class="modern-smallbtn"
|
||||
:color="color"
|
||||
rounded
|
||||
push
|
||||
:to="tools.updateLink(to)"
|
||||
v-bind="$attrs"
|
||||
:style="tools.getbackgroundGradient(color, 180)"
|
||||
>
|
||||
<q-icon class="btn-icon-small" :name="icon" size="sm"/>
|
||||
<div class="btn-label-small"><span v-html="label"></span></div>
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-else class="col-xs-6 col-sm-6 col-md-4 col-lg-3">
|
||||
<div class="q-ma-sm">
|
||||
<q-btn v-if="!small" :flat="flat" class="mybox" :color="color" rounded push :to="tools.updateLink(to)" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 0)">
|
||||
<q-icon class="q-ma-sm" size="3rem" :name="icon"/>
|
||||
<div class="q-ma-sm text-h5-diff text-cls no-wrap"><span v-html="label"></span></div>
|
||||
</q-btn>
|
||||
<q-btn v-if="small" :flat="flat" class="mybox_small" :color="color" rounded push :to="tools.updateLink(to)" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 0)">
|
||||
<q-icon class="q-ma-sm" :name="icon" size="sm"/>
|
||||
<div class="q-ma-xs my-text-small text-cls no-wrap"><span v-html="label"></span></div>
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-else class="modern-btn-wrapper modern-btn-col-2">
|
||||
<q-btn
|
||||
v-if="!small"
|
||||
:flat="flat"
|
||||
class="modern-bigbtn"
|
||||
:color="color"
|
||||
rounded
|
||||
push
|
||||
:to="tools.updateLink(to)"
|
||||
v-bind="$attrs"
|
||||
:style="tools.getbackgroundGradient(color, 0)"
|
||||
>
|
||||
<q-icon class="btn-icon-large" size="3rem" :name="icon"/>
|
||||
<div class="btn-label-large"><span v-html="label"></span></div>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="small"
|
||||
:flat="flat"
|
||||
class="modern-smallbtn"
|
||||
:color="color"
|
||||
rounded
|
||||
push
|
||||
:to="tools.updateLink(to)"
|
||||
v-bind="$attrs"
|
||||
:style="tools.getbackgroundGradient(color, 0)"
|
||||
>
|
||||
<q-icon class="btn-icon-small" :name="icon" size="sm"/>
|
||||
<div class="btn-label-small"><span v-html="label"></span></div>
|
||||
</q-btn>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ import { IOperators, ISize } from 'model'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useQuasar } from 'quasar'
|
||||
|
||||
import { CMySlider } from '@src/components/CMySlider'
|
||||
import { CMySlider } from '@/components/CMySlider'
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CBorders',
|
||||
|
||||
@@ -2,9 +2,9 @@ import { ref, computed, defineComponent, onMounted } from 'vue';
|
||||
import { useQuasar } from 'quasar';
|
||||
|
||||
import { tools } from '@tools';
|
||||
import { IMyCard, IMyPage, IOperators } from '@src/model';
|
||||
import { IMyCard, IMyPage, IOperators } from '@/model';
|
||||
|
||||
import objectId from '@src/js/objectId';
|
||||
import objectId from '@/js/objectId';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'ElementComponent',
|
||||
|
||||
@@ -6,7 +6,7 @@ import type { IDiscipline, IEvents } from 'model'
|
||||
|
||||
import { useCalendarStore } from '@store/CalendarStore'
|
||||
|
||||
import { CMyTeacher } from '@src/components/CMyTeacher'
|
||||
import { CMyTeacher } from '@/components/CMyTeacher'
|
||||
|
||||
// @ts-ignore
|
||||
import MixinOperator from '../../mixins/mixin-operator'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { CCard } from '@src/components/CCard'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import MixinOperator from '../../mixins/mixin-operator'
|
||||
import { defineComponent, ref } from 'vue'
|
||||
|
||||
|
||||
@@ -8,14 +8,14 @@ import { useI18n } from 'vue-i18n';
|
||||
import { toolsext } from '@store/Modules/toolsext';
|
||||
import { useQuasar } from 'quasar';
|
||||
import { costanti } from '@costanti';
|
||||
import type { ICart, IOrder, IOrderCart, IProduct } from '@src/model/Products';
|
||||
import { IShareWithUs } from '@src/model/Products';
|
||||
import type { ICart, IOrder, IOrderCart, IProduct } from '@/model/Products';
|
||||
import { IShareWithUs } from '@/model/Products';
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs';
|
||||
import { shared_consts } from '@/common/shared_vuejs';
|
||||
|
||||
import { CSingleCart } from '../CSingleCart';
|
||||
import { CTitleBanner } from '@src/components/CTitleBanner';
|
||||
import { CSelectUserActive } from '@src/components/CSelectUserActive';
|
||||
import { CTitleBanner } from '@/components/CTitleBanner';
|
||||
import { CSelectUserActive } from '@/components/CSelectUserActive';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CCart',
|
||||
|
||||
@@ -12,13 +12,13 @@ import {
|
||||
} from 'vue';
|
||||
|
||||
import { tools } from '@tools';
|
||||
import { CMyFieldDb } from '@src/components/CMyFieldDb';
|
||||
import { CMyFieldDb } from '@/components/CMyFieldDb';
|
||||
import { costanti } from '@costanti';
|
||||
import { useGlobalStore } from '@store/globalStore';
|
||||
import { useUserStore } from '@store/UserStore';
|
||||
|
||||
import { CTitlePage } from '@src/components/CTitlePage';
|
||||
import { CGridTableRec } from '@src/components/CGridTableRec';
|
||||
import { CTitlePage } from '@/components/CTitlePage';
|
||||
import { CGridTableRec } from '@/components/CGridTableRec';
|
||||
import type { ICatalog, IColGridTable, INewCatalog, ISearchList } from 'model';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { toolsext } from '@store/Modules/toolsext';
|
||||
|
||||
@@ -107,6 +107,13 @@
|
||||
/>
|
||||
|
||||
<div class="row justify-center">
|
||||
<q-btn
|
||||
label="Annulla"
|
||||
v-close-popup
|
||||
color="primary"
|
||||
flat
|
||||
class="q-ml-sm"
|
||||
/>
|
||||
<q-btn
|
||||
label="Aggiungi"
|
||||
type="submit"
|
||||
@@ -120,13 +127,6 @@
|
||||
"
|
||||
color="primary"
|
||||
/>
|
||||
<q-btn
|
||||
label="Annulla"
|
||||
v-close-popup
|
||||
color="primary"
|
||||
flat
|
||||
class="q-ml-sm"
|
||||
/>
|
||||
</div>
|
||||
</q-form>
|
||||
</q-card-section>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { PropType} from 'vue';
|
||||
import { defineComponent, ref, watch } from 'vue'
|
||||
|
||||
import { Catalogo } from '@src/views/ecommerce/catalogo'
|
||||
import type { IOptCatalogo } from '@src/model'
|
||||
import { Catalogo } from '@/views/ecommerce/catalogo'
|
||||
import type { IOptCatalogo } from '@/model'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CCatalogo',
|
||||
|
||||
@@ -21,9 +21,9 @@ import { CViewTable } from '../CViewTable';
|
||||
import { CMyValueDb } from '../CMyValueDb';
|
||||
import { CPrice } from '../CPrice';
|
||||
import { CText } from '../CText';
|
||||
import { CLabel } from '@src/components/CLabel';
|
||||
import { CSchedaProdotto } from '@src/components/CSchedaProdotto';
|
||||
import { CModifTrafiletto } from '@src/components/CModifTrafiletto';
|
||||
import { CLabel } from '@/components/CLabel';
|
||||
import { CSchedaProdotto } from '@/components/CSchedaProdotto';
|
||||
import { CModifTrafiletto } from '@/components/CModifTrafiletto';
|
||||
|
||||
import { CBarCode } from '../CBarCode';
|
||||
import { CTableCupleLabelValue } from '../CTableCupleLabelValue';
|
||||
@@ -40,12 +40,12 @@ import type {
|
||||
IVariazione,
|
||||
IRecFields,
|
||||
ICatalog,
|
||||
} from '@src/model';
|
||||
import { IBaseOrder } from '@src/model';
|
||||
} from '@/model';
|
||||
import { IBaseOrder } from '@/model';
|
||||
import { tools } from '@tools';
|
||||
import { useProducts } from '@store/Products';
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs';
|
||||
import { shared_consts } from '@/common/shared_vuejs';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
import { costanti } from '@costanti';
|
||||
|
||||
@@ -5,8 +5,8 @@ import { useGlobalStore } from '@store/globalStore'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { tools } from '@tools'
|
||||
import { costanti } from '@store/Modules/costanti'
|
||||
import { static_data } from '@src/db/static_data'
|
||||
import { CRegistration } from '@src/components/CRegistration'
|
||||
import { static_data } from '@/db/static_data'
|
||||
import { CRegistration } from '@/components/CRegistration'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CCheckIfIsLogged',
|
||||
|
||||
@@ -13,15 +13,15 @@
|
||||
<div class="card-icon-wrapper">
|
||||
<q-icon name="fas fa-sign-in-alt" size="48px" class="card-icon" />
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card-content">
|
||||
<h3 class="card-title">Benvenuto su RISO</h3>
|
||||
<h3 class="card-title">Benvenuto su {{ tools.sitename() }}</h3>
|
||||
<p class="card-description">
|
||||
Accedi con le tue credenziali per utilizzare la APP e per unirti
|
||||
al Circuito di scambio RIS del tuo territorio
|
||||
ai membri della Community
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card-actions">
|
||||
<q-btn
|
||||
unelevated
|
||||
@@ -47,7 +47,7 @@
|
||||
<span class="telegram-subtitle">Unisciti al gruppo Provinciale</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<q-btn
|
||||
rounded
|
||||
unelevated
|
||||
@@ -71,7 +71,7 @@
|
||||
<span class="help-subtitle">Consulta la guida completa</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<q-btn
|
||||
rounded
|
||||
unelevated
|
||||
|
||||
@@ -6,9 +6,9 @@ import { useGlobalStore } from '@store/globalStore'
|
||||
import type { PropType} from 'vue';
|
||||
import { defineComponent, computed, ref } from 'vue'
|
||||
import type { IUserFields } from 'model'
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { CLabel } from '@src/components/CLabel'
|
||||
import { CSendCoins } from '@src/components/CSendCoins'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { CLabel } from '@/components/CLabel'
|
||||
import { CSendCoins } from '@/components/CSendCoins'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CContactUser',
|
||||
|
||||
@@ -12,11 +12,11 @@ import { func_tools, toolsext } from '@store/Modules/toolsext'
|
||||
import { tools } from '@tools'
|
||||
import { useProducts } from '@store/Products'
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
import { costanti } from '@costanti'
|
||||
import type { IOptCatalogo, IMyScheda, IProduct, ICatalog } from '@src/model'
|
||||
import type { IOptCatalogo, IMyScheda, IProduct, ICatalog } from '@/model'
|
||||
|
||||
|
||||
export default defineComponent({
|
||||
|
||||
@@ -4,7 +4,7 @@ import { useI18n } from 'vue-i18n'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { defineComponent } from 'vue'
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CCopyBtnSmall',
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { defineComponent, onMounted, PropType, ref, watch } from 'vue'
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { tools } from '@/store/Modules/tools'
|
||||
|
||||
import { date, useQuasar } from 'quasar'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { CCurrencyValue } from '@src/components/CCurrencyValue'
|
||||
import { CMyFieldDb } from '@src/components/CMyFieldDb'
|
||||
import { CCurrencyValue } from '@/components/CCurrencyValue'
|
||||
import { CMyFieldDb } from '@/components/CMyFieldDb'
|
||||
|
||||
|
||||
import { costanti } from '@costanti'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { defineComponent, onMounted, PropType, ref, watch } from 'vue'
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { tools } from '@/store/Modules/tools'
|
||||
|
||||
import { date, useQuasar } from 'quasar'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
@@ -6,7 +6,7 @@ import { useRouter } from 'vue-router'
|
||||
import { useGlobalStore } from '../../store/globalStore'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import type { IMainCard } from '@store/Modules/costanti';
|
||||
import { costanti } from '@store/Modules/costanti'
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useRouter } from 'vue-router'
|
||||
import { useGlobalStore } from '../../store/globalStore'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import type { IMainCard } from '@costanti';
|
||||
import { costanti } from '@costanti'
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { defineComponent, onMounted, PropType, ref, watch } from 'vue'
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { tools } from '@/store/Modules/tools'
|
||||
|
||||
import { date, useQuasar } from 'quasar'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { defineComponent, ref, watch, computed } from 'vue';
|
||||
import { useQuasar } from 'quasar';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { tools } from '@src/store/Modules/tools';
|
||||
import { tools } from '@/store/Modules/tools';
|
||||
import { toolsext } from '@store/Modules/toolsext';
|
||||
|
||||
export default defineComponent({
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { defineComponent, ref, watch, computed } from 'vue';
|
||||
import { useQuasar } from 'quasar';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { tools } from '@src/store/Modules/tools';
|
||||
import { tools } from '@/store/Modules/tools';
|
||||
import { toolsext } from '@store/Modules/toolsext';
|
||||
|
||||
function toTS(s: string | null): number | null {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { ProductsList } from '@src/views/ecommerce'
|
||||
import { ProductsList } from '@/views/ecommerce'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CECommerce',
|
||||
|
||||
@@ -5,6 +5,8 @@ $card-radius-mobile: 14px;
|
||||
$transition-smooth: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
|
||||
$transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
|
||||
$gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
|
||||
.stat-card {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
@@ -15,7 +17,7 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
padding: 0;
|
||||
border-radius: $card-radius-desktop;
|
||||
background: linear-gradient(145deg, #ffffff 0%, #f8f9fa 100%);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 10px 30px -5px rgba(0, 0, 0, 0.1),
|
||||
0 0 0 1px rgba(0, 0, 0, 0.02);
|
||||
transition: $transition-base;
|
||||
@@ -24,7 +26,7 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-6px) scale(1.02);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 20px 40px -8px rgba(0, 0, 0, 0.15),
|
||||
0 0 0 1px rgba(0, 0, 0, 0.03);
|
||||
|
||||
@@ -108,7 +110,7 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
height: 64px;
|
||||
border-radius: 50%;
|
||||
background: linear-gradient(145deg, #ffffff, #f5f5f5);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 4px 12px rgba(0, 0, 0, 0.08),
|
||||
inset 0 1px 2px rgba(255, 255, 255, 0.9);
|
||||
|
||||
@@ -158,26 +160,26 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.stat-title {
|
||||
font-size: 0.75rem;
|
||||
font-size: 1rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.03em;
|
||||
line-height: 1.3;
|
||||
opacity: 0.85;
|
||||
text-transform: uppercase;
|
||||
margin: 4px 0;
|
||||
color: #424242;
|
||||
color: #718096;
|
||||
|
||||
@media (max-width: 960px) {
|
||||
font-size: 0.7rem;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
@media (max-width: 718px) {
|
||||
font-size: 0.65rem;
|
||||
font-size: 0.8rem;
|
||||
margin: 2px 0;
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
font-size: 0.6rem;
|
||||
font-size: 0.8rem;
|
||||
letter-spacing: 0.02em;
|
||||
}
|
||||
}
|
||||
@@ -195,11 +197,14 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 700;
|
||||
line-height: 1.1;
|
||||
letter-spacing: -0.03em;
|
||||
color: #1a1a1a;
|
||||
font-size: 1.5rem;
|
||||
font-weight: 800;
|
||||
background: $gradient-primary;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
line-height: 1;
|
||||
padding-bottom: 2px;
|
||||
|
||||
@media (max-width: 960px) {
|
||||
font-size: 1.375rem;
|
||||
@@ -223,7 +228,7 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
font-size: 0.625rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 3px 8px rgba(0, 0, 0, 0.2),
|
||||
inset 0 1px 2px rgba(255, 255, 255, 0.2);
|
||||
backdrop-filter: blur(8px);
|
||||
@@ -276,12 +281,10 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
left: -50%;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
background: linear-gradient(
|
||||
45deg,
|
||||
transparent 30%,
|
||||
rgba(255, 255, 255, 0.4) 50%,
|
||||
transparent 70%
|
||||
);
|
||||
background: linear-gradient(45deg,
|
||||
transparent 30%,
|
||||
rgba(255, 255, 255, 0.4) 50%,
|
||||
transparent 70%);
|
||||
transform: translateX(-100%) translateY(-100%);
|
||||
transition: transform 0.8s ease;
|
||||
pointer-events: none;
|
||||
@@ -294,8 +297,8 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
border-radius: inherit;
|
||||
padding: 2px;
|
||||
background: linear-gradient(145deg, rgba(33, 150, 243, 0.3), rgba(156, 39, 176, 0.3));
|
||||
-webkit-mask:
|
||||
linear-gradient(#fff 0 0) content-box,
|
||||
-webkit-mask:
|
||||
linear-gradient(#fff 0 0) content-box,
|
||||
linear-gradient(#fff 0 0);
|
||||
-webkit-mask-composite: xor;
|
||||
mask-composite: exclude;
|
||||
@@ -307,10 +310,13 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
|
||||
// Animations
|
||||
@keyframes pulse {
|
||||
0%, 100% {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
opacity: 0.3;
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0.5;
|
||||
transform: scale(1.05);
|
||||
@@ -318,9 +324,12 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
@keyframes bounce-subtle {
|
||||
0%, 100% {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
@@ -339,9 +348,11 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
opacity: 0;
|
||||
transform: scale(0.5) translateY(10px);
|
||||
}
|
||||
|
||||
60% {
|
||||
transform: scale(1.1) translateY(-2px);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1) translateY(0);
|
||||
@@ -398,12 +409,12 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
.body--dark {
|
||||
.stat-card {
|
||||
background: linear-gradient(145deg, #1e1e1e 0%, #2a2a2a 100%);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 10px 30px -5px rgba(0, 0, 0, 0.4),
|
||||
0 0 0 1px rgba(255, 255, 255, 0.05);
|
||||
|
||||
&:hover {
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 20px 40px -8px rgba(0, 0, 0, 0.5),
|
||||
0 0 0 1px rgba(255, 255, 255, 0.08);
|
||||
}
|
||||
@@ -411,7 +422,7 @@ $transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
|
||||
.stat-icon-wrapper {
|
||||
background: linear-gradient(145deg, #2a2a2a, #1e1e1e);
|
||||
box-shadow:
|
||||
box-shadow:
|
||||
0 4px 12px rgba(0, 0, 0, 0.3),
|
||||
inset 0 1px 2px rgba(255, 255, 255, 0.05);
|
||||
}
|
||||
|
||||
@@ -6,18 +6,16 @@
|
||||
<div :class="['stat-content', classColor]">
|
||||
<!-- Icon con effetto hover e glow -->
|
||||
<div class="stat-icon-wrapper">
|
||||
<div class="stat-icon-glow" :style="{ backgroundColor: getGlowColor(classColor) }"></div>
|
||||
<div
|
||||
class="stat-icon-glow"
|
||||
:style="{ backgroundColor: getGlowColor(classColor) }"
|
||||
></div>
|
||||
<q-icon
|
||||
:name="icon"
|
||||
:class="['stat-icon', classColor]"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Title -->
|
||||
<div class="stat-title">
|
||||
{{ title }}
|
||||
</div>
|
||||
|
||||
<!-- Value con tipografia gerarchica -->
|
||||
<div class="stat-value-container">
|
||||
<div class="stat-value">
|
||||
@@ -32,11 +30,19 @@
|
||||
:style="{ backgroundColor: colBack }"
|
||||
>
|
||||
<div class="stat-badge-pulse"></div>
|
||||
<q-icon name="trending_up" size="12px" class="stat-badge-icon" />
|
||||
<q-icon
|
||||
name="trending_up"
|
||||
size="12px"
|
||||
class="stat-badge-icon"
|
||||
/>
|
||||
<span class="stat-badge-text">+{{ value_today }} oggi</span>
|
||||
</div>
|
||||
</transition>
|
||||
</div>
|
||||
<!-- Title -->
|
||||
<div class="stat-title">
|
||||
{{ title }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Decorative elements -->
|
||||
@@ -45,9 +51,8 @@
|
||||
</q-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CElemStat.ts">
|
||||
</script>
|
||||
<script lang="ts" src="./CElemStat.ts"></script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "./CElemStat.scss";
|
||||
@import './CElemStat.scss';
|
||||
</style>
|
||||
|
||||
@@ -12,10 +12,10 @@ import { LandingFooter } from '../LandingFooter'
|
||||
import { CTitle } from '../CTitle'
|
||||
import { CImgText } from '../CImgText'
|
||||
import { CMyEditor } from '../CMyEditor'
|
||||
import { CDateTime } from '@src/components/CDateTime'
|
||||
import { CDateTime } from '@/components/CDateTime'
|
||||
import { CMyAvatar } from '../CMyAvatar'
|
||||
import { CMySingleEvent } from '@src/components/CMySingleEvent'
|
||||
import { CMyTeacher } from '@src/components/CMyTeacher'
|
||||
import { CMySingleEvent } from '@/components/CMySingleEvent'
|
||||
import { CMyTeacher } from '@/components/CMyTeacher'
|
||||
import { CMySelect } from '../CMySelect'
|
||||
import { tools } from '@tools'
|
||||
import { costanti } from '@costanti'
|
||||
@@ -26,10 +26,10 @@ import MixinEvents from '../../mixins/mixin-events'
|
||||
import { useCalendarStore } from '@store/CalendarStore'
|
||||
import { func_tools, toolsext } from '@store/Modules/toolsext'
|
||||
import { useMessageStore } from '@store/MessageStore'
|
||||
import { static_data } from '@src/db/static_data'
|
||||
import { static_data } from '@/db/static_data'
|
||||
import { lists } from '@store/Modules/lists'
|
||||
import translate from '@src/globalroutines/util'
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import translate from '@/globalroutines/util'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CEventsCalendar',
|
||||
|
||||
@@ -10,24 +10,48 @@
|
||||
</div>-->
|
||||
<div>
|
||||
<!-- display an myevent -->
|
||||
<q-dialog v-model="displayEvent" :maximized="$q.screen.lt.sm">
|
||||
<q-card v-if="myevent" class="dialog_card">
|
||||
<q-dialog
|
||||
v-model="displayEvent"
|
||||
:maximized="$q.screen.lt.sm"
|
||||
>
|
||||
<q-card
|
||||
v-if="myevent"
|
||||
class="dialog_card"
|
||||
>
|
||||
<q-toolbar class="bg-primary text-white">
|
||||
<!--<q-toolbar :class="tools.displayClasses(myevent)"-->
|
||||
<!--:style="tools.displayStyles(myevent) + ` min-width: `+ tools.myheight_dialog() + `px;`">-->
|
||||
<q-toolbar-title>
|
||||
{{ t('cal.event') }}
|
||||
</q-toolbar-title>
|
||||
<q-btn v-if="editable" flat round color="white" icon="fas fa-copy">
|
||||
<q-menu transition-show="flip-right" transition-hide="flip-left">
|
||||
<q-btn
|
||||
v-if="editable"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="fas fa-copy"
|
||||
>
|
||||
<q-menu
|
||||
transition-show="flip-right"
|
||||
transition-hide="flip-left"
|
||||
>
|
||||
<q-list style="min-width: 100px">
|
||||
<q-item clickable @click="duplicateEvent(myevent, 7)">
|
||||
<q-item
|
||||
clickable
|
||||
@click="duplicateEvent(myevent, 7)"
|
||||
>
|
||||
<q-item-section>Tra 1 Settimana</q-item-section>
|
||||
</q-item>
|
||||
<q-item clickable @click="duplicateEvent(myevent, 14)">
|
||||
<q-item
|
||||
clickable
|
||||
@click="duplicateEvent(myevent, 14)"
|
||||
>
|
||||
<q-item-section>Tra 2 Settimane</q-item-section>
|
||||
</q-item>
|
||||
<q-item clickable @click="duplicateEvent(myevent, 7, 4)">
|
||||
<q-item
|
||||
clickable
|
||||
@click="duplicateEvent(myevent, 7, 4)"
|
||||
>
|
||||
<q-item-section>4 Eventi ogni Settimana</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
@@ -86,7 +110,10 @@
|
||||
:class="`cal__details` + ($q.dark.isActive ? `_darktheme` : ``)"
|
||||
v-html="myevent.details"
|
||||
></div>
|
||||
<div v-if="myevent.teacher" class="cal__teacher">
|
||||
<div
|
||||
v-if="myevent.teacher"
|
||||
class="cal__teacher"
|
||||
>
|
||||
<span class="cal__teacher-title"
|
||||
>{{ t('cal.teacher') }}: <span class="margin_with"></span
|
||||
></span>
|
||||
@@ -96,16 +123,17 @@
|
||||
<CMyTeacher :username="myevent.teacher3"></CMyTeacher>
|
||||
<CMyTeacher :username="myevent.teacher4"></CMyTeacher>
|
||||
</div>
|
||||
<div v-if="myevent.wherecode" class="cal__where">
|
||||
<div
|
||||
v-if="myevent.wherecode"
|
||||
class="cal__where"
|
||||
>
|
||||
<!--<span v-if="tools.isMobile()"><br/></span>-->
|
||||
<span class="cal__where-title">{{ t('cal.where') }}: </span>
|
||||
<span class="cal__where-content">
|
||||
<q-chip>
|
||||
<q-avatar v-if="getWhereIcon(myevent.wherecode)">
|
||||
<img
|
||||
:src="
|
||||
`/images/avatar/` + getWhereIcon(myevent.wherecode)
|
||||
"
|
||||
:src="`/images/avatar/` + getWhereIcon(myevent.wherecode)"
|
||||
alt="Località"
|
||||
/>
|
||||
</q-avatar>
|
||||
@@ -129,17 +157,16 @@
|
||||
>
|
||||
<span class="cal__quota-title">{{ t('event.price') }}:</span>
|
||||
<q-chip>
|
||||
<span class="cal__quota-content">{{
|
||||
getPrice(myevent)
|
||||
}}</span>
|
||||
<span class="cal__quota-content">{{ getPrice(myevent) }}</span>
|
||||
</q-chip>
|
||||
</div>
|
||||
<div v-if="myevent.dateTimeStart" class="cal__when">
|
||||
<div
|
||||
v-if="myevent.dateTimeStart"
|
||||
class="cal__when"
|
||||
>
|
||||
<span class="cal__where-title"
|
||||
>{{ t('cal.when') }}:
|
||||
<span
|
||||
v-html="tools.getstrDateTimeEvent($t, myevent, true)"
|
||||
></span>
|
||||
<span v-html="tools.getstrDateTimeEvent($t, myevent, true)"></span>
|
||||
</span>
|
||||
</div>
|
||||
<p
|
||||
@@ -181,16 +208,33 @@
|
||||
</q-dialog>
|
||||
<!-- id_bookedeventadd/edit an myevent -->
|
||||
|
||||
<q-dialog v-model="addEvent" no-backdrop-dismiss persistent>
|
||||
<q-card v-if="addEvent" class="dialog_card">
|
||||
<q-dialog
|
||||
v-model="addEvent"
|
||||
no-backdrop-dismiss
|
||||
persistent
|
||||
>
|
||||
<q-card
|
||||
v-if="addEvent"
|
||||
class="dialog_card"
|
||||
>
|
||||
<q-toolbar class="bg-primary text-white">
|
||||
<q-toolbar-title>
|
||||
{{ addOrUpdateEvent() }} {{ t('cal.event') }}
|
||||
</q-toolbar-title>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
v-close-popup
|
||||
></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="inset-shadow">
|
||||
<q-form v-if="contextDay" ref="myevent" class="q-gutter-sm">
|
||||
<q-form
|
||||
v-if="contextDay"
|
||||
ref="myevent"
|
||||
class="q-gutter-sm"
|
||||
>
|
||||
<CMySelect
|
||||
:label="$t('event.typol')"
|
||||
v-model:value="eventForm.typol"
|
||||
@@ -254,7 +298,10 @@
|
||||
/>
|
||||
</q-tabs>
|
||||
|
||||
<q-tab-panels v-model="tabeditor" animated>
|
||||
<q-tab-panels
|
||||
v-model="tabeditor"
|
||||
animated
|
||||
>
|
||||
<q-tab-panel name="details">
|
||||
<div class="q-gutter-sm myflex">
|
||||
<q-input
|
||||
@@ -320,7 +367,10 @@
|
||||
</CMyEditor>
|
||||
</q-tab-panel>
|
||||
|
||||
<q-tab-panel name="settings" class="q-gutter-sm">
|
||||
<q-tab-panel
|
||||
name="settings"
|
||||
class="q-gutter-sm"
|
||||
>
|
||||
<!--<q-checkbox v-model="eventForm.allday" :label="$t('cal.alldayevent')"></q-checkbox>-->
|
||||
|
||||
<div class="q-gutter-sm row myflex">
|
||||
@@ -507,28 +557,40 @@
|
||||
</q-form>
|
||||
</q-card-section>
|
||||
<q-card-actions align="right">
|
||||
<q-btn
|
||||
:label="$t('dialog.ok')"
|
||||
color="primary"
|
||||
@click="saveEvent"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
:label="$t('dialog.cancel')"
|
||||
color="primary"
|
||||
v-close-popup
|
||||
></q-btn>
|
||||
<q-btn
|
||||
:label="$t('dialog.ok')"
|
||||
color="primary"
|
||||
@click="saveEvent"
|
||||
></q-btn>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
|
||||
<q-dialog v-model="bookEventpage.show" no-backdrop-dismiss>
|
||||
<q-card v-if="bookEventpage.show" class="dialog_card">
|
||||
<q-dialog
|
||||
v-model="bookEventpage.show"
|
||||
no-backdrop-dismiss
|
||||
>
|
||||
<q-card
|
||||
v-if="bookEventpage.show"
|
||||
class="dialog_card"
|
||||
>
|
||||
<q-toolbar class="bg-primary text-white">
|
||||
<q-toolbar-title>
|
||||
{{ t('cal.booking') }}
|
||||
</q-toolbar-title>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
v-close-popup
|
||||
></q-btn>
|
||||
</q-toolbar>
|
||||
|
||||
<q-card-section class="inset-shadow">
|
||||
@@ -548,16 +610,20 @@
|
||||
>
|
||||
{{ myevent.title }}
|
||||
</q-chip>
|
||||
<div v-if="myevent.dateTimeStart" class="cal__when">
|
||||
<div
|
||||
v-if="myevent.dateTimeStart"
|
||||
class="cal__when"
|
||||
>
|
||||
<span class="cal__where-title"
|
||||
>{{ t('cal.when') }}:
|
||||
<span
|
||||
v-html="tools.getstrDateTimeEvent($t, myevent, true)"
|
||||
></span>
|
||||
<span v-html="tools.getstrDateTimeEvent($t, myevent, true)"></span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="q-pa-xs">
|
||||
<q-card class="text-white windowcol" style="display: block">
|
||||
<q-card
|
||||
class="text-white windowcol"
|
||||
style="display: block"
|
||||
>
|
||||
<q-card-section class="q-pa-xs">
|
||||
<div
|
||||
style="display: inline-flex"
|
||||
@@ -583,9 +649,7 @@
|
||||
style="min-width: 140px"
|
||||
>
|
||||
<q-select
|
||||
:behavior="
|
||||
$q.platform.is.ios === true ? 'dialog' : 'menu'
|
||||
"
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
rounded
|
||||
outlined
|
||||
v-model="bookEventForm.numpeople"
|
||||
@@ -614,9 +678,7 @@
|
||||
style="min-width: 140px; margin-left: 10px"
|
||||
>
|
||||
<q-select
|
||||
:behavior="
|
||||
$q.platform.is.ios === true ? 'dialog' : 'menu'
|
||||
"
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
rounded
|
||||
outlined
|
||||
v-model="bookEventForm.numpeopleLunch"
|
||||
@@ -647,9 +709,7 @@
|
||||
style="min-width: 180px; margin-left: 10px"
|
||||
>
|
||||
<q-select
|
||||
:behavior="
|
||||
$q.platform.is.ios === true ? 'dialog' : 'menu'
|
||||
"
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
rounded
|
||||
outlined
|
||||
v-model="bookEventForm.numpeopleDinner"
|
||||
@@ -679,9 +739,7 @@
|
||||
style="min-width: 180px; margin-left: 10px"
|
||||
>
|
||||
<q-select
|
||||
:behavior="
|
||||
$q.platform.is.ios === true ? 'dialog' : 'menu'
|
||||
"
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
rounded
|
||||
outlined
|
||||
v-model="bookEventForm.numpeopleDinnerShared"
|
||||
@@ -726,6 +784,13 @@
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-card-actions align="right">
|
||||
<q-btn
|
||||
flat
|
||||
:label="$t('dialog.cancel')"
|
||||
color="primary"
|
||||
v-close-popup
|
||||
></q-btn>
|
||||
|
||||
<q-btn
|
||||
v-if="bookEventpage.state === EState.Modifying"
|
||||
flat
|
||||
@@ -745,28 +810,31 @@
|
||||
:label="getTitleBtnBooking()"
|
||||
color="primary"
|
||||
@click="saveBookEvent(myevent)"
|
||||
:disable="
|
||||
!(bookEventpage.state === EState.Creating || hasModifiedBooking)
|
||||
"
|
||||
></q-btn>
|
||||
|
||||
<q-btn
|
||||
flat
|
||||
:label="$t('dialog.cancel')"
|
||||
color="primary"
|
||||
v-close-popup
|
||||
:disable="!(bookEventpage.state === EState.Creating || hasModifiedBooking)"
|
||||
></q-btn>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
|
||||
<q-dialog v-model="askInfopage.show" no-backdrop-dismiss>
|
||||
<q-card v-if="askInfopage.show" class="dialog_card">
|
||||
<q-dialog
|
||||
v-model="askInfopage.show"
|
||||
no-backdrop-dismiss
|
||||
>
|
||||
<q-card
|
||||
v-if="askInfopage.show"
|
||||
class="dialog_card"
|
||||
>
|
||||
<q-toolbar class="bg-primary text-white">
|
||||
<q-toolbar-title>
|
||||
{{ t('cal.booking') }}
|
||||
</q-toolbar-title>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="close"
|
||||
v-close-popup
|
||||
></q-btn>
|
||||
</q-toolbar>
|
||||
|
||||
<q-card-section class="inset-shadow">
|
||||
@@ -786,12 +854,13 @@
|
||||
>
|
||||
{{ myevent.title }}
|
||||
</q-chip>
|
||||
<div v-if="myevent.dateTimeStart" class="cal__when">
|
||||
<div
|
||||
v-if="myevent.dateTimeStart"
|
||||
class="cal__when"
|
||||
>
|
||||
<span class="cal__where-title"
|
||||
>{{ t('cal.when') }}:
|
||||
<span
|
||||
v-html="tools.getstrDateTimeEvent($t, myevent, true)"
|
||||
></span>
|
||||
<span v-html="tools.getstrDateTimeEvent($t, myevent, true)"></span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="q-pa-xs">
|
||||
@@ -812,18 +881,17 @@
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-card-actions align="right">
|
||||
<q-btn
|
||||
flat
|
||||
:label="$t('dialog.sendmsg')"
|
||||
color="primary"
|
||||
@click="sendMsg(myevent)"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
:label="$t('dialog.cancel')"
|
||||
color="primary"
|
||||
v-close-popup
|
||||
></q-btn>
|
||||
<q-btn
|
||||
:label="$t('dialog.sendmsg')"
|
||||
color="primary"
|
||||
@click="sendMsg(myevent)"
|
||||
></q-btn>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
@@ -956,20 +1024,13 @@
|
||||
class="q-ma-xs"
|
||||
:class="badgeClasses(event, 'header')"
|
||||
:style="badgeStyles(event, 'header')"
|
||||
style="
|
||||
width: 10px;
|
||||
max-width: 10px;
|
||||
height: 10px;
|
||||
max-height: 10px;
|
||||
"
|
||||
style="width: 10px; max-width: 10px; height: 10px; max-height: 10px"
|
||||
></q-badge>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
<template
|
||||
#day-body="{
|
||||
scope: { timestamp, timeStartPos, timeDurationHeight },
|
||||
}"
|
||||
#day-body="{ scope: { timestamp, timeStartPos, timeDurationHeight } }"
|
||||
>
|
||||
<template
|
||||
v-for="(event, index) in getEvents(timestamp.date)"
|
||||
@@ -1012,12 +1073,7 @@
|
||||
class="my-event-rel justify-center rounded-borders"
|
||||
:class="badgeClasses(event, 'body')"
|
||||
:style="
|
||||
badgeStyles(
|
||||
event,
|
||||
'body',
|
||||
timeStartPos,
|
||||
timeDurationHeight
|
||||
)
|
||||
badgeStyles(event, 'body', timeStartPos, timeDurationHeight)
|
||||
"
|
||||
@click.stop.prevent="showEvent(event)"
|
||||
:draggable="tools.isManager()"
|
||||
@@ -1087,13 +1143,7 @@
|
||||
<img
|
||||
:src="getImgEvent(event)"
|
||||
@click="selectEvent(event)"
|
||||
class="
|
||||
text-left
|
||||
padding_cell
|
||||
listaev__tdimg listaev__img
|
||||
cursor-pointer
|
||||
q-mx-sm
|
||||
"
|
||||
class="text-left padding_cell listaev__tdimg listaev__img cursor-pointer q-mx-sm"
|
||||
:style="getStyleByEvent(event, event === myevent)"
|
||||
:alt="event.title"
|
||||
/>
|
||||
@@ -1139,9 +1189,7 @@
|
||||
clickable
|
||||
@click="duplicateEvent(myevent, 7, 4)"
|
||||
>
|
||||
<q-item-section
|
||||
>4 Eventi ogni Settimana</q-item-section
|
||||
>
|
||||
<q-item-section>4 Eventi ogni Settimana</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-menu>
|
||||
@@ -1187,22 +1235,17 @@
|
||||
</q-chip>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="
|
||||
listaev__date listaev__align_center_mobile
|
||||
text-center
|
||||
"
|
||||
>
|
||||
<span
|
||||
v-html="tools.getstrDateTimeEvent($t, event, true)"
|
||||
></span>
|
||||
<div class="listaev__date listaev__align_center_mobile text-center">
|
||||
<span v-html="tools.getstrDateTimeEvent($t, event, true)"></span>
|
||||
</div>
|
||||
|
||||
<div class="listaev__align_center_mobile">
|
||||
<div style="margin: 10px"></div>
|
||||
|
||||
<div v-if="event.internal">
|
||||
<q-chip color="blue" text-color="white"
|
||||
<q-chip
|
||||
color="blue"
|
||||
text-color="white"
|
||||
>Evento Interno:</q-chip
|
||||
>
|
||||
</div>
|
||||
@@ -1247,17 +1290,15 @@
|
||||
<div style="margin: 10px"></div>
|
||||
|
||||
<p
|
||||
:class="
|
||||
`listaev__details` + ($q.dark.isActive
|
||||
? `_darktheme`
|
||||
: ``)
|
||||
"
|
||||
:class="`listaev__details` + ($q.dark.isActive ? `_darktheme` : ``)"
|
||||
v-html="event.details"
|
||||
></p>
|
||||
<div v-if="event.teacher" class="">
|
||||
<div
|
||||
v-if="event.teacher"
|
||||
class=""
|
||||
>
|
||||
<span class="cal__teacher-title"
|
||||
>{{ t('cal.teacher') }}:
|
||||
<span class="margin_with"></span
|
||||
>{{ t('cal.teacher') }}: <span class="margin_with"></span
|
||||
></span>
|
||||
|
||||
<CMyTeacher :username="event.teacher"></CMyTeacher>
|
||||
@@ -1265,18 +1306,17 @@
|
||||
<CMyTeacher :username="event.teacher3"></CMyTeacher>
|
||||
<CMyTeacher :username="event.teacher4"></CMyTeacher>
|
||||
|
||||
<span v-if="event.wherecode" class="">
|
||||
<span
|
||||
v-if="event.wherecode"
|
||||
class=""
|
||||
>
|
||||
<span v-if="tools.isMobile()"><br /></span>
|
||||
<span class="cal__where-title"
|
||||
>{{ t('cal.where') }}:
|
||||
</span>
|
||||
<span class="cal__where-title">{{ t('cal.where') }}: </span>
|
||||
|
||||
<q-chip>
|
||||
<q-avatar v-if="getWhereIcon(event.wherecode)">
|
||||
<img
|
||||
:src="
|
||||
`/images/avatar/` + getWhereIcon(event.wherecode)
|
||||
"
|
||||
:src="`/images/avatar/` + getWhereIcon(event.wherecode)"
|
||||
:alt="event.wherecode"
|
||||
/>
|
||||
</q-avatar>
|
||||
@@ -1293,13 +1333,17 @@
|
||||
</q-chip>
|
||||
</span>
|
||||
</div>
|
||||
<div v-if="event.contribtype" class="">
|
||||
<div
|
||||
v-if="event.contribtype"
|
||||
class=""
|
||||
>
|
||||
<span class="cal__quota-title"
|
||||
>{{ t('event.price') }}:<span
|
||||
class="margin_with"
|
||||
></span
|
||||
>{{ t('event.price') }}:<span class="margin_with"></span
|
||||
></span>
|
||||
<span v-if="!isShowPrice(event)" class="">
|
||||
<span
|
||||
v-if="!isShowPrice(event)"
|
||||
class=""
|
||||
>
|
||||
<q-chip
|
||||
class="glossy"
|
||||
color="orange"
|
||||
@@ -1318,9 +1362,7 @@
|
||||
text-color="white"
|
||||
icon-right="star"
|
||||
>
|
||||
<span class="cal__quota-content">{{
|
||||
getPrice(event)
|
||||
}}</span>
|
||||
<span class="cal__quota-content">{{ getPrice(event) }}</span>
|
||||
</q-chip>
|
||||
</div>
|
||||
|
||||
@@ -1418,8 +1460,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" src="./CEventsCalendar.ts">
|
||||
</script>
|
||||
<script lang="ts" src="./CEventsCalendar.ts"></script>
|
||||
<style lang="scss" scoped>
|
||||
@import './CEventsCalendar.scss';
|
||||
</style>
|
||||
|
||||
@@ -3,9 +3,9 @@ import { useQuasar } from 'quasar'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { CDownloadJsonFile } from '@src/components/CDownloadJsonFile'
|
||||
import { CDownloadJsonFile } from '@/components/CDownloadJsonFile'
|
||||
import { PropType, defineComponent, onMounted, ref } from 'vue'
|
||||
import type { IMyPage } from '@src/model'
|
||||
import type { IMyPage } from '@/model'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CExportImportPage',
|
||||
|
||||
@@ -17,7 +17,7 @@ import { useGlobalStore } from '../../store/globalStore';
|
||||
import { useCircuitStore } from '../../store/CircuitStore';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs';
|
||||
import { shared_consts } from '@/common/shared_vuejs';
|
||||
import { costanti, IMainCard } from '@store/Modules/costanti';
|
||||
|
||||
import { CMyUser } from '../CMyUser';
|
||||
|
||||
@@ -4,16 +4,16 @@ import {
|
||||
} from 'vue'
|
||||
|
||||
import { tools } from '@tools'
|
||||
import { CMyFieldDb } from '@src/components/CMyFieldDb'
|
||||
import { CMyFieldDb } from '@/components/CMyFieldDb'
|
||||
import { costanti } from '@costanti'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
|
||||
import { CTitlePage } from '@src/components/CTitlePage'
|
||||
import { CGridTableRec } from '@src/components/CGridTableRec'
|
||||
import { CTitlePage } from '@/components/CTitlePage'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
import type { IColGridTable, ISearchList} from 'model';
|
||||
import { IMyBacheca, IMySkill, ISkill } from 'model'
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { toolsext } from '@store/Modules/toolsext'
|
||||
import { fieldsTable } from '@store/Modules/fieldsTable'
|
||||
@@ -306,7 +306,7 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function getFilterGoods(recGood: any, index: number, arr: any) {
|
||||
const recsectorGoods: any = searchList.value.find((rec) => rec.table === 'sectorgoods')
|
||||
const recsectorGoods: any = searchList.value.find((rec) => rec.table === toolsext.TABSECTORGOODS)
|
||||
// console.log('getFilterSkills', recSkill.idSector, recsectors.value)
|
||||
if (recsectorGoods && recGood.idSectorGood) {
|
||||
return recGood.idSectorGood.includes(recsectorGoods.value)
|
||||
@@ -314,6 +314,15 @@ export default defineComponent({
|
||||
return true
|
||||
}
|
||||
}
|
||||
function getFilterBachecas(recBacheca: any, index: number, arr: any) {
|
||||
const recsectorBachecas: any = searchList.value.find((rec) => rec.table === toolsext.TABSECTORBACHECAS)
|
||||
// console.log('getFilterSkills', recSkill.idSector, recsectors.value)
|
||||
if (recsectorBachecas && recBacheca.idSectorBacheca) {
|
||||
return recBacheca.idSectorBacheca.includes(recsectorBachecas.value)
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
function getFilterSubSkills(recSubSkill: any, index: number, arr: any) {
|
||||
const recskills: any = searchList.value.find((rec) => rec.table === 'skills')
|
||||
@@ -614,9 +623,9 @@ export default defineComponent({
|
||||
{
|
||||
visible: true,
|
||||
label: 'Settore',
|
||||
table: toolsext.TABSECTORS,
|
||||
key: 'idSector',
|
||||
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORS, 0, true),
|
||||
table: toolsext.TABSECTORBACHECAS,
|
||||
key: 'idSectorBacheca',
|
||||
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORBACHECAS, 0, true),
|
||||
arrvalue: [],
|
||||
type: costanti.FieldType.select,
|
||||
filter: null,
|
||||
@@ -624,6 +633,19 @@ export default defineComponent({
|
||||
notinsearch: false,
|
||||
useinput: false,
|
||||
},
|
||||
{
|
||||
visible: true,
|
||||
label: 'Categoria',
|
||||
table: 'bachecas',
|
||||
key: 'idBacheca',
|
||||
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + tools.getCookie(tools.COOK_SEARCH + toolsext.TABSECTORBACHECAS, costanti.FILTER_TUTTI), costanti.FILTER_TUTTI, true),
|
||||
arrvalue: [],
|
||||
type: costanti.FieldType.select,
|
||||
addall: true,
|
||||
filter: getFilterBachecas,
|
||||
showcount: true,
|
||||
useinput: false,
|
||||
},
|
||||
{
|
||||
visible: true,
|
||||
label: 'Data Inizio',
|
||||
@@ -898,7 +920,7 @@ export default defineComponent({
|
||||
{
|
||||
visible: true,
|
||||
label: 'Settore',
|
||||
table: 'sectorgoods',
|
||||
table: toolsext.TABSECTORGOODS,
|
||||
key: 'idSectorGood',
|
||||
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + toolsext.TABSECTORGOODS, 0, true),
|
||||
arrvalue: [],
|
||||
@@ -911,7 +933,7 @@ export default defineComponent({
|
||||
{
|
||||
visible: true,
|
||||
label: 'Categoria',
|
||||
table: 'goods',
|
||||
table: toolsext.TABGOODS,
|
||||
key: 'idGood',
|
||||
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + tools.getCookie(tools.COOK_SEARCH + toolsext.TABSECTORGOODS, costanti.FILTER_TUTTI), costanti.FILTER_TUTTI, true),
|
||||
arrvalue: [],
|
||||
|
||||
@@ -5,10 +5,10 @@ import {
|
||||
|
||||
import { tools } from '@tools'
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { static_data } from '@src/db/static_data'
|
||||
import { static_data } from '@/db/static_data'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ import { defineComponent, ref, computed, PropType, toRef, onMounted, onBeforeUnm
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { tools } from '@tools'
|
||||
import { LandingFooter } from '@src/components/LandingFooter'
|
||||
import { Logo } from '@src/components/logo'
|
||||
import { LandingFooter } from '@/components/LandingFooter'
|
||||
import { Logo } from '@/components/logo'
|
||||
import type { IMyPage } from 'model'
|
||||
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useUserStore } from '@store/UserStore';
|
||||
import { useQuasar } from 'quasar';
|
||||
import type { IImgGallery } from 'model';
|
||||
import { IGallery } from 'model';
|
||||
import { CMyPage } from '@src/components/CMyPage';
|
||||
import { CMyPage } from '@/components/CMyPage';
|
||||
import { tools } from '@tools';
|
||||
import { useGlobalStore } from '@store/globalStore';
|
||||
import { costanti } from '@costanti';
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useUserStore } from '@store/UserStore'
|
||||
import { useQuasar } from 'quasar'
|
||||
import type { IImgGallery } from 'model';
|
||||
import { IGallery } from 'model'
|
||||
import { CMyPage } from '@src/components/CMyPage'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { tools } from '@tools'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { costanti } from '@costanti'
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,10 @@
|
||||
$shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
|
||||
$shadow-md: 0 2px 6px rgba(0, 0, 0, 0.08);
|
||||
$shadow-hover: 0 4px 12px rgba(25, 118, 210, 0.15);
|
||||
|
||||
// ========================================
|
||||
// TABLE STYLES
|
||||
// ========================================
|
||||
.colmodif {
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -10,7 +17,7 @@
|
||||
.tdclass,
|
||||
.trclass {
|
||||
min-height: 20px !important;
|
||||
margin-top: 5px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.q-table td {
|
||||
@@ -41,85 +48,182 @@
|
||||
|
||||
.riduci_pad {
|
||||
min-height: 30px;
|
||||
padding: 4px 8px !important;
|
||||
padding: 3px 6px !important;
|
||||
}
|
||||
|
||||
|
||||
.q-table__top {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// DIALOG & LAYOUT
|
||||
// ========================================
|
||||
.right-align-dialog .q-dialog {
|
||||
right: 0;
|
||||
/* Allinea a destra */
|
||||
left: auto;
|
||||
/* Disabilita l'allineamento a sinistra */
|
||||
margin: 0;
|
||||
/* Rimuovi qualsiasi margine */
|
||||
}
|
||||
|
||||
|
||||
.flexible-width {
|
||||
flex: 1;
|
||||
/* permette al componente di espandersi */
|
||||
max-width: 500px;
|
||||
/* larghezza massima di 600px */
|
||||
}
|
||||
|
||||
.hint_search{
|
||||
.hint_search {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
.clOrizzontal{
|
||||
// ========================================
|
||||
// CAROUSEL STYLES - MODERNIZZATI
|
||||
// ========================================
|
||||
.q-carousel__slide {
|
||||
padding: 5px !important;
|
||||
|
||||
}
|
||||
.q-carousel__slide{
|
||||
padding: 8px !important;
|
||||
@media (max-width: $mobile-breakpoint) {
|
||||
padding: 3px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.carousel-scroll-container {
|
||||
overflow-y: auto; /* Permette lo scrolling verticale */
|
||||
}
|
||||
overflow-y: auto;
|
||||
max-height: calc(100vh - 120px);
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-track {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
border-radius: 3px;
|
||||
|
||||
&:hover {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
}
|
||||
|
||||
.modern-grid-toolbar {
|
||||
background: linear-gradient(135deg, #1976d2 0%, #1565c0 100%);
|
||||
color: white;
|
||||
padding: 12px 16px;
|
||||
min-height: 52px;
|
||||
border-radius: 12px 12px 0 0;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
padding: 5px 12px;
|
||||
min-height: 48px;
|
||||
@media (max-width: $mobile-breakpoint) {
|
||||
max-height: calc(100vh - 100px);
|
||||
}
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// TOOLBAR MODERNO
|
||||
// ========================================
|
||||
.modern-grid-toolbar {
|
||||
background: linear-gradient(135deg, $primary-color 0%, #1565c0 100%);
|
||||
color: white;
|
||||
padding: 10px 14px;
|
||||
min-height: 50px;
|
||||
border-radius: $border-radius $border-radius 0 0;
|
||||
box-shadow: $shadow-sm;
|
||||
|
||||
@media (max-width: $mobile-breakpoint) {
|
||||
padding: 8px 12px;
|
||||
min-height: 46px;
|
||||
}
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// BUTTON MODERNO
|
||||
// ========================================
|
||||
.modern-add-btn {
|
||||
padding: 8px 20px;
|
||||
padding: 6px 18px;
|
||||
font-weight: 600;
|
||||
transition: all 0.3s;
|
||||
transition: all $transition-speed;
|
||||
box-shadow: $shadow-sm;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 12px rgba(25, 118, 210, 0.3);
|
||||
transform: translateY(-1px);
|
||||
box-shadow: $shadow-hover;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
padding: 4px 20px;
|
||||
|
||||
@media (max-width: $mobile-breakpoint) {
|
||||
padding: 5px 16px;
|
||||
}
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// INFINITE SCROLL
|
||||
// ========================================
|
||||
// ========================================
|
||||
// GRID LAYOUT PER CARD
|
||||
// ========================================
|
||||
.q-infinite-scroll {
|
||||
padding: 8px;
|
||||
gap: 10px;
|
||||
padding: 6px;
|
||||
gap: 8px;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
padding: 6px;
|
||||
gap: 8px;
|
||||
// Desktop: layout a griglia 2 colonne
|
||||
@media (min-width: $mobile-breakpoint) {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 10px;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
// Desktop large: 3 colonne per schermi molto larghi
|
||||
@media (min-width: 1400px) {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
// Mobile: colonna singola
|
||||
@media (max-width: $mobile-breakpoint) {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 5px;
|
||||
gap: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// DIALOG CARDS
|
||||
// ========================================
|
||||
.q-dialog {
|
||||
:deep(.modern-card) {
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
|
||||
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
|
||||
border-radius: $border-radius;
|
||||
}
|
||||
}
|
||||
|
||||
// ========================================
|
||||
// FIXED TOGGLE
|
||||
// ========================================
|
||||
.fixed-toggle {
|
||||
position: fixed;
|
||||
top: 70px;
|
||||
right: 12px;
|
||||
z-index: 1000;
|
||||
box-shadow: $shadow-md;
|
||||
border-radius: 20px;
|
||||
background: white;
|
||||
padding: 4px 8px;
|
||||
|
||||
@media (max-width: $mobile-breakpoint) {
|
||||
top: 65px;
|
||||
right: 10px;
|
||||
padding: 3px 6px;
|
||||
}
|
||||
}
|
||||
.grid-card-item {
|
||||
width: 100%;
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
backdrop-filter: blur(8px);
|
||||
border-radius: 12px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.9);
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
|
||||
padding: 8px; // Spazio tra carousel e card
|
||||
|
||||
@media (max-width: $mobile-breakpoint) {
|
||||
width: 100%;
|
||||
padding: 4px; // Ridotto su mobile
|
||||
}
|
||||
}
|
||||
|
||||
.fill-all-width {
|
||||
width: 100%;
|
||||
}
|
||||
@@ -18,7 +18,7 @@ import { tools } from '../../store/Modules/tools';
|
||||
|
||||
import { fieldsTable } from '@store/Modules/fieldsTable';
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs';
|
||||
import { shared_consts } from '@/common/shared_vuejs';
|
||||
|
||||
import type {
|
||||
IColGridTable,
|
||||
@@ -52,20 +52,20 @@ import { useUserStore } from '@store/UserStore';
|
||||
import { useGlobalStore } from '@store/globalStore';
|
||||
import { useQuasar, exportFile } from 'quasar';
|
||||
import { costanti } from '@costanti';
|
||||
import translate from '@src/globalroutines/util';
|
||||
import translate from '@/globalroutines/util';
|
||||
import { toolsext } from '@store/Modules/toolsext';
|
||||
import { CMyCardPopup } from '@src/components/CMyCardPopup';
|
||||
import { CMyCardService } from '@src/components/CMyCardService';
|
||||
import { CSingleMovement } from '@src/components/CSingleMovement';
|
||||
import { CMyCardGrpPopup } from '@src/components/CMyCardGrpPopup';
|
||||
import { CMyCardCircuitPopup } from '@src/components/CMyCardCircuitPopup';
|
||||
import { CMyCardPopup } from '@/components/CMyCardPopup';
|
||||
import { CMyCardService } from '@/components/CMyCardService';
|
||||
import { CSingleMovement } from '@/components/CSingleMovement';
|
||||
import { CMyCardGrpPopup } from '@/components/CMyCardGrpPopup';
|
||||
import { CMyCardCircuitPopup } from '@/components/CMyCardCircuitPopup';
|
||||
import { onBeforeRouteLeave, onBeforeRouteUpdate, useRouter } from 'vue-router';
|
||||
import { useRoute } from 'vue-router';
|
||||
import { NavigationGuardNext, RouteLocationNormalized } from 'vue-router';
|
||||
|
||||
import { Dialog } from 'quasar'; // Assicurati di importare correttamente Dialog da Quasar.
|
||||
|
||||
import { getMapBoundaries } from '@src/store/Modules/geocodingmap';
|
||||
import { getMapBoundaries } from '@/store/Modules/geocodingmap';
|
||||
import { isMap } from 'util/types';
|
||||
|
||||
export default defineComponent({
|
||||
@@ -854,6 +854,8 @@ export default defineComponent({
|
||||
setCategBySector(shared_consts.TABLES_MYSKILLS, table, newval);
|
||||
} else if (table === toolsext.TABSECTORGOODS) {
|
||||
setCategBySector(toolsext.TABGOODS, table, newval);
|
||||
} else if (table === toolsext.TABSECTORBACHECAS) {
|
||||
setCategBySector(toolsext.TABBACHECAS, table, newval);
|
||||
} else if (table === toolsext.TABREGIONS) {
|
||||
setProvinceByRegion(toolsext.TABPROVINCE, table, newval);
|
||||
} else if (table === toolsext.TABGOODS) {
|
||||
@@ -872,6 +874,22 @@ export default defineComponent({
|
||||
newval
|
||||
);
|
||||
}
|
||||
} else if (table === toolsext.TABBACHECAS) {
|
||||
const recSector = searchList.value.find(
|
||||
(rec) => rec.table === toolsext.TABSECTORBACHECAS
|
||||
);
|
||||
if (recSector) {
|
||||
tools.setCookie(
|
||||
tools.COOK_SEARCH +
|
||||
costanti.FILTER_SEP +
|
||||
mytable.value +
|
||||
costanti.FILTER_SEP +
|
||||
table +
|
||||
costanti.FILTER_SEP +
|
||||
recSector.value,
|
||||
newval
|
||||
);
|
||||
}
|
||||
} else if (table === shared_consts.TABLES_LISTA_EDITORI) {
|
||||
const rec = searchList.value.find((rec) => rec.table === table);
|
||||
if (rec) {
|
||||
@@ -1029,12 +1047,14 @@ export default defineComponent({
|
||||
|
||||
let recSector = null;
|
||||
let recSectorGood = null;
|
||||
let recSectorBacheca = null;
|
||||
let recCities = null;
|
||||
let recRegion = null;
|
||||
let recProvince = null;
|
||||
let recSkill = null;
|
||||
let idSector = 0;
|
||||
let idSectorGood = 0;
|
||||
let idSectorBacheca = 0;
|
||||
let idProvince = 0;
|
||||
let idRegion = 0;
|
||||
let idSkill = 0;
|
||||
@@ -1046,10 +1066,16 @@ export default defineComponent({
|
||||
}
|
||||
if (searchList.value) {
|
||||
recSectorGood = searchList.value.find(
|
||||
(item: ISearchList) => item.table === 'sectorgoods'
|
||||
(item: ISearchList) => item.table === toolsext.TABSECTORGOODS
|
||||
);
|
||||
idSectorGood = recSectorGood ? recSectorGood.value : 0;
|
||||
}
|
||||
if (searchList.value) {
|
||||
recSectorBacheca = searchList.value.find(
|
||||
(item: ISearchList) => item.table === toolsext.TABSECTORBACHECAS
|
||||
);
|
||||
idSectorBacheca = recSectorBacheca ? recSectorBacheca.value : 0;
|
||||
}
|
||||
if (searchList.value) {
|
||||
recProvince = searchList.value.find(
|
||||
(item: ISearchList) => item.table === 'provinces'
|
||||
@@ -1315,13 +1341,20 @@ export default defineComponent({
|
||||
obj2.idSkill = idSkill;
|
||||
filtersearch2.push(obj2);
|
||||
}
|
||||
} else if (item.table === 'goods' && item.value === costanti.FILTER_TUTTI) {
|
||||
} else if (item.table === toolsext.TABGOODS && item.value === costanti.FILTER_TUTTI) {
|
||||
const obj2: any = {};
|
||||
if (idSectorGood > 0) {
|
||||
// idSectorGood
|
||||
obj2['sectorGood._id'] = idSectorGood;
|
||||
filtersearch2.push(obj2);
|
||||
}
|
||||
} else if (item.table === toolsext.TABBACHECAS && item.value === costanti.FILTER_TUTTI) {
|
||||
const obj2: any = {};
|
||||
if (idSectorBacheca > 0) {
|
||||
// idSectorBacheca
|
||||
obj2['sectorBacheca._id'] = idSectorBacheca;
|
||||
filtersearch2.push(obj2);
|
||||
}
|
||||
} else if (
|
||||
item.table === 'subskills' &&
|
||||
item.value === costanti.FILTER_TUTTI
|
||||
@@ -1451,84 +1484,95 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function onRequest(myprops: any) {
|
||||
const { page, rowsPerPage, rowsNumber, sortBy, descending } = myprops.pagination;
|
||||
const myfilternow = myfilter.value;
|
||||
const myfilterandnow = myfilterand.value;
|
||||
try {
|
||||
const { page, rowsPerPage, rowsNumber, sortBy, descending } = myprops.pagination;
|
||||
const myfilternow = myfilter.value;
|
||||
const myfilterandnow = myfilterand.value;
|
||||
|
||||
savefilter();
|
||||
savefilter();
|
||||
|
||||
if (!mytable.value) {
|
||||
startsearch.value = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// console.log('myfilterandnow', myfilterandnow, 'myfilterandnow', myfilterandnow)
|
||||
|
||||
// console.log('onRequest', 'myfilter = ', myfilter.value)
|
||||
|
||||
loading.value = true;
|
||||
|
||||
spinner_visible.value = true;
|
||||
|
||||
// update rowsCount with appropriate value
|
||||
|
||||
// function all rows if "All" (0) is rowsel
|
||||
const fetchCount = rowsPerPage === 0 ? rowsNumber : rowsPerPage;
|
||||
|
||||
// calculate starting row of data
|
||||
const startRow = (page - 1) * rowsPerPage;
|
||||
const endRow = startRow + fetchCount;
|
||||
|
||||
console.log('onRequest: startRow', startRow, 'endRow', endRow);
|
||||
|
||||
serverData.value = [];
|
||||
|
||||
// fetch data from "server"
|
||||
return fetchFromServer(
|
||||
startRow,
|
||||
endRow,
|
||||
myfilternow,
|
||||
myfilterandnow,
|
||||
sortBy,
|
||||
descending
|
||||
).then((ris: any) => {
|
||||
pagination.value.rowsNumber = getRowsNumberCount();
|
||||
|
||||
// clear out existing data and add new
|
||||
if (!returnedData.value || returnedData.value.length === 0) {
|
||||
serverData.value = [];
|
||||
} else {
|
||||
// if (serverData.length > 0)
|
||||
// serverData.splice(0, serverData.length, ...returnedData)
|
||||
// else
|
||||
try {
|
||||
serverData.value = [...returnedData.value];
|
||||
} catch (e) {
|
||||
serverData.value = [];
|
||||
}
|
||||
if (!mytable.value) {
|
||||
startsearch.value = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// console.log('serverData', serverData)
|
||||
// console.log('myfilterandnow', myfilterandnow, 'myfilterandnow', myfilterandnow)
|
||||
|
||||
// don't forfunction to update local pagination object
|
||||
pagination.value.page = page;
|
||||
pagination.value.rowsPerPage = rowsPerPage;
|
||||
//pagination.value.sortBy = getObjSort(sortBy, descending)
|
||||
pagination.value.sortBy = sortBy;
|
||||
// ordinam.value = sortBy
|
||||
ordinam_desc.value = descending;
|
||||
pagination.value.descending = descending;
|
||||
// console.log('onRequest', 'myfilter = ', myfilter.value)
|
||||
|
||||
// console.log('pagination', pagination)
|
||||
loading.value = true;
|
||||
|
||||
// ...and turn of loading indicator
|
||||
loading.value = false;
|
||||
spinner_visible.value = false;
|
||||
changetable.value = false;
|
||||
startsearch.value = false;
|
||||
spinner_visible.value = true;
|
||||
|
||||
checkScrollPosition();
|
||||
});
|
||||
// update rowsCount with appropriate value
|
||||
|
||||
// function all rows if "All" (0) is rowsel
|
||||
const fetchCount = rowsPerPage === 0 ? rowsNumber : rowsPerPage;
|
||||
|
||||
// calculate starting row of data
|
||||
const startRow = (page - 1) * rowsPerPage;
|
||||
const endRow = startRow + fetchCount;
|
||||
|
||||
console.log('onRequest: startRow', startRow, 'endRow', endRow);
|
||||
|
||||
if (page > 1) {
|
||||
// Aggiungi senza duplicati
|
||||
const existingIds = new Set(serverData.value.map((rec) => rec._id));
|
||||
const toadd = returnedData.value.filter((elem) => !existingIds.has(elem._id));
|
||||
serverData.value = [...serverData.value, ...toadd];
|
||||
} else {
|
||||
serverData.value = [...returnedData.value];
|
||||
}
|
||||
|
||||
// fetch data from "server"
|
||||
return fetchFromServer(
|
||||
startRow,
|
||||
endRow,
|
||||
myfilternow,
|
||||
myfilterandnow,
|
||||
sortBy,
|
||||
descending
|
||||
).then((ris: any) => {
|
||||
pagination.value.rowsNumber = getRowsNumberCount();
|
||||
|
||||
// clear out existing data and add new
|
||||
if (!returnedData.value || returnedData.value.length === 0) {
|
||||
serverData.value = [];
|
||||
} else {
|
||||
// if (serverData.length > 0)
|
||||
// serverData.splice(0, serverData.length, ...returnedData)
|
||||
// else
|
||||
try {
|
||||
serverData.value = [...returnedData.value];
|
||||
} catch (e) {
|
||||
serverData.value = [];
|
||||
}
|
||||
}
|
||||
|
||||
// console.log('serverData', serverData)
|
||||
|
||||
// don't forfunction to update local pagination object
|
||||
pagination.value.page = page;
|
||||
pagination.value.rowsPerPage = rowsPerPage;
|
||||
//pagination.value.sortBy = getObjSort(sortBy, descending)
|
||||
pagination.value.sortBy = sortBy;
|
||||
// ordinam.value = sortBy
|
||||
ordinam_desc.value = descending;
|
||||
pagination.value.descending = descending;
|
||||
|
||||
// console.log('pagination', pagination)
|
||||
|
||||
// ...and turn of loading indicator
|
||||
loading.value = false;
|
||||
spinner_visible.value = false;
|
||||
changetable.value = false;
|
||||
startsearch.value = false;
|
||||
|
||||
checkScrollPosition();
|
||||
});
|
||||
} catch (e) {
|
||||
console.error('Error onrequest', e);
|
||||
}
|
||||
}
|
||||
|
||||
function onUpdateData(index: number, myprops: any, done: any) {
|
||||
@@ -1768,6 +1812,20 @@ export default defineComponent({
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => searchList.value,
|
||||
(to, from) => {
|
||||
if (
|
||||
searchList.value &&
|
||||
!changetable.value &&
|
||||
!startsearch.value &&
|
||||
!loading.value
|
||||
) {
|
||||
refresh();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
/*watch(() => myfilterand.value, (newval, oldval) => {
|
||||
refresh()
|
||||
})*/
|
||||
@@ -1818,6 +1876,14 @@ export default defineComponent({
|
||||
newRecord.value.idGood = item.idGood;
|
||||
console.log('newRecord', newRecord);
|
||||
}
|
||||
} else if (col.jointable === toolsext.TABSECTORBACHECAS) {
|
||||
// Sbianca la select della Categoria Eventi
|
||||
|
||||
if (tools.existProp(item, 'idBacheca')) {
|
||||
item.idGood = costanti.FILTER_NESSUNO;
|
||||
newRecord.value.idBacheca = item.idBacheca;
|
||||
console.log('newRecord', newRecord);
|
||||
}
|
||||
}
|
||||
rowsel.value = item;
|
||||
idsel = item._id;
|
||||
@@ -2775,7 +2841,7 @@ export default defineComponent({
|
||||
return '';
|
||||
}
|
||||
|
||||
function cmdExt(cmd: any, id: any, myrec: any) {
|
||||
async function cmdExt(cmd: any, id: any, myrec: any) {
|
||||
console.log('cmd', cmd);
|
||||
|
||||
if (cmd === costanti.CMD_CLONE) {
|
||||
@@ -2792,9 +2858,11 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
if (cmd === costanti.CMD_SHOW_PAGE) {
|
||||
visupagedialog.value = true;
|
||||
visupagedialog.value = false;
|
||||
await nextTick();
|
||||
myrecdialog.value = myrec;
|
||||
myIdRecDialog.value = id;
|
||||
visupagedialog.value = true;
|
||||
return true;
|
||||
} else if (cmd === costanti.CMD_OPEN_PAGE) {
|
||||
router.push(tools.getPathByTableAndRec(mytable.value, myrec));
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<q-toggle
|
||||
v-if="tools.isCollaboratore() && !showMap && editOn"
|
||||
v-model="editOn"
|
||||
label="Abilita Modifiche"
|
||||
color="green"
|
||||
icon="fas fa-pencil-alt"
|
||||
class="fixed-toggle"
|
||||
>
|
||||
</q-toggle>
|
||||
<div
|
||||
@@ -499,6 +499,7 @@
|
||||
v-for="(rec, indexrow) in serverData"
|
||||
:key="indexrow"
|
||||
:name="indexrow"
|
||||
class="grid-card-item"
|
||||
>
|
||||
<CMyRecCard
|
||||
:table="tablesel"
|
||||
@@ -512,7 +513,6 @@
|
||||
</q-carousel>
|
||||
<q-infinite-scroll
|
||||
ref="myinfscroll"
|
||||
v-if="!loading"
|
||||
:initial-index="0"
|
||||
@load="loadMore"
|
||||
:offset="350"
|
||||
@@ -525,14 +525,12 @@
|
||||
ref="myinfscroll"
|
||||
v-else-if="
|
||||
shared_consts.VERTIC_SHOW_GRID.includes(myvertical) &&
|
||||
!loading &&
|
||||
alreadymounting
|
||||
"
|
||||
:initial-index="0"
|
||||
@load="onLoadScroll"
|
||||
:offset="350"
|
||||
debounce="300"
|
||||
scroll-target=".carousel-scroll-container"
|
||||
>
|
||||
<div v-if="showHeaderCol">
|
||||
<div
|
||||
@@ -558,7 +556,7 @@
|
||||
>
|
||||
<div
|
||||
v-for="(row, indexrow) in serverData"
|
||||
:key="indexrow"
|
||||
:key="row._id || indexrow"
|
||||
:class="{
|
||||
row: opt.rowclass,
|
||||
'items-stretch': opt.rowclass,
|
||||
@@ -702,7 +700,6 @@
|
||||
<q-table
|
||||
v-else-if="
|
||||
!shared_consts.VERTIC_SHOW_GRID.includes(myvertical) &&
|
||||
!loading &&
|
||||
serverData &&
|
||||
mycolumns
|
||||
"
|
||||
@@ -1321,6 +1318,7 @@
|
||||
|
||||
<q-dialog
|
||||
v-model="showSearchDialog"
|
||||
:seamless="$q.screen.gt.xs"
|
||||
transition-show="slide-up"
|
||||
transition-hide="slide-down"
|
||||
class="q-dialog-fullscreen no-padding-dialog"
|
||||
@@ -1407,6 +1405,7 @@
|
||||
@hide="hidewindow"
|
||||
:maximized="$q.screen.lt.sm"
|
||||
:persistent="false"
|
||||
:seamless="$q.screen.gt.xs"
|
||||
:class="
|
||||
'dialog_annunci ' + ($q.screen.lt.sm ? 'bottom-dialog' : ' right-align-dialog')
|
||||
"
|
||||
@@ -1507,6 +1506,7 @@
|
||||
@hide="hidewindow"
|
||||
class="dialog_class"
|
||||
:persistent="true"
|
||||
:seamless="$q.screen.gt.xs"
|
||||
:maximized="$q.screen.lt.sm"
|
||||
>
|
||||
<q-card class="dialog_card">
|
||||
@@ -1585,11 +1585,6 @@
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-card-actions align="center">
|
||||
<q-btn
|
||||
:label="t('dialog.insert')"
|
||||
color="primary"
|
||||
@click="saveNewRecord"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
:label="t('dialog.cancel')"
|
||||
@@ -1597,12 +1592,18 @@
|
||||
v-close-popup
|
||||
@click="annulla"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
:label="t('dialog.insert')"
|
||||
color="primary"
|
||||
@click="saveNewRecord"
|
||||
></q-btn>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
<q-dialog
|
||||
v-model="editRecordBool"
|
||||
@hide="hidewindowEdit"
|
||||
:seamless="$q.screen.gt.xs"
|
||||
:maximized="$q.screen.lt.sm"
|
||||
>
|
||||
<q-card class="dialog_card">
|
||||
@@ -1675,17 +1676,17 @@
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-card-actions align="center">
|
||||
<q-btn
|
||||
:label="t('dialog.save')"
|
||||
color="primary"
|
||||
@click="saverecModif"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
:label="t('dialog.cancel')"
|
||||
color="primary"
|
||||
@click="cancelrecModif"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
:label="t('dialog.save')"
|
||||
color="primary"
|
||||
@click="saverecModif"
|
||||
></q-btn>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
|
||||
@@ -1,16 +1,3 @@
|
||||
// ========================================
|
||||
// VARIABILI
|
||||
// ========================================
|
||||
$primary-color: #1976d2;
|
||||
$grey-color: #666;
|
||||
$grey-light: #999;
|
||||
|
||||
$border-radius: 8px;
|
||||
$border-radius-sm: 6px;
|
||||
$transition-speed: 0.3s;
|
||||
|
||||
$shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
|
||||
$mobile-breakpoint: 768px;
|
||||
|
||||
// ========================================
|
||||
// GRID CONTAINER
|
||||
|
||||
@@ -6,7 +6,7 @@ import { tools } from '../../store/Modules/tools'
|
||||
|
||||
import { fieldsTable } from '@store/Modules/fieldsTable'
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
|
||||
import type {
|
||||
IColGridTable,
|
||||
@@ -38,7 +38,7 @@ import { useUserStore } from '@store/UserStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useQuasar, exportFile } from 'quasar'
|
||||
import { costanti } from '@costanti'
|
||||
import translate from '@src/globalroutines/util'
|
||||
import translate from '@/globalroutines/util'
|
||||
import { toolsext } from '@store/Modules/toolsext'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useRoute } from 'vue-router'
|
||||
@@ -593,6 +593,8 @@ export default defineComponent({
|
||||
setCategBySector(shared_consts.TABLES_MYSKILLS, table, newval)
|
||||
} else if (table === toolsext.TABSECTORGOODS) {
|
||||
setCategBySector(toolsext.TABGOODS, table, newval)
|
||||
} else if (table === toolsext.TABSECTORBACHECAS) {
|
||||
setCategBySector(toolsext.TABBACHECAS, table, newval)
|
||||
} else if (table === toolsext.TABREGIONS) {
|
||||
setProvinceByRegion(toolsext.TABPROVINCE, table, newval)
|
||||
} else if (table === toolsext.TABGOODS) {
|
||||
@@ -600,7 +602,11 @@ export default defineComponent({
|
||||
if (recSector) {
|
||||
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + table + costanti.FILTER_SEP + recSector.value, newval)
|
||||
}
|
||||
// setCategBySector('sectorgoods', table, newval)
|
||||
} else if (table === toolsext.TABBACHECAS) {
|
||||
const recSector = searchList.value.find((rec) => rec.table === toolsext.TABSECTORBACHECAS)
|
||||
if (recSector) {
|
||||
tools.setCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + mytable.value + costanti.FILTER_SEP + table + costanti.FILTER_SEP + recSector.value, newval)
|
||||
}
|
||||
} else if (table === shared_consts.TAB_CITIES) {
|
||||
const rec = searchList.value.find((myrec) => myrec.table === shared_consts.TAB_CITIES) // check if exist
|
||||
if (rec) {
|
||||
@@ -722,12 +728,14 @@ export default defineComponent({
|
||||
|
||||
let recSector = null
|
||||
let recSectorGood = null
|
||||
let recSectorBacheca = null
|
||||
let recCities = null
|
||||
let recRegion = null
|
||||
let recProvince = null
|
||||
let recSkill = null
|
||||
let idSector = 0
|
||||
let idSectorGood = 0
|
||||
let idSectorBacheca = 0
|
||||
let idProvince = 0
|
||||
let idRegion = 0
|
||||
let idSkill = 0
|
||||
@@ -736,9 +744,12 @@ export default defineComponent({
|
||||
recSector = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSECTORS)
|
||||
idSector = recSector ? recSector.value : 0
|
||||
|
||||
recSectorGood = searchList.value.find((item: ISearchList) => item.table === 'sectorgoods')
|
||||
recSectorGood = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSECTORGOODS)
|
||||
idSectorGood = recSectorGood ? recSectorGood.value : 0
|
||||
|
||||
recSectorBacheca = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSECTORBACHECAS)
|
||||
idSectorBacheca = recSectorBacheca ? recSectorBacheca.value : 0
|
||||
|
||||
recProvince = searchList.value.find((item: ISearchList) => item.table === 'provinces')
|
||||
idProvince = recProvince ? recProvince.value : 0
|
||||
|
||||
@@ -888,13 +899,20 @@ export default defineComponent({
|
||||
obj2.idSkill = idSkill
|
||||
filtersearch2.push(obj2)
|
||||
}
|
||||
} else if ((item.table === 'goods') && item.value === costanti.FILTER_TUTTI) {
|
||||
} else if ((item.table === toolsext.TABGOODS) && item.value === costanti.FILTER_TUTTI) {
|
||||
const obj2: any = {}
|
||||
if (idSectorGood > 0) {
|
||||
// idSectorGood
|
||||
obj2['sectorGood._id'] = idSectorGood
|
||||
filtersearch2.push(obj2)
|
||||
}
|
||||
} else if (item.table === toolsext.TABBACHECAS && item.value === costanti.FILTER_TUTTI) {
|
||||
const obj2: any = {};
|
||||
if (idSectorBacheca > 0) {
|
||||
// idSectorBacheca
|
||||
obj2['sectorBacheca._id'] = idSectorBacheca;
|
||||
filtersearch2.push(obj2);
|
||||
}
|
||||
} else if ((item.table === 'subskills') && item.value === costanti.FILTER_TUTTI) {
|
||||
const obj2: any = {}
|
||||
// idSector
|
||||
@@ -1313,6 +1331,14 @@ export default defineComponent({
|
||||
newRecord.value.idGood = item.idGood
|
||||
console.log('newRecord', newRecord)
|
||||
}
|
||||
} else if (col.jointable === toolsext.TABSECTORBACHECAS) {
|
||||
// Sbianca la select della Categoria Bacheca
|
||||
|
||||
if (tools.existProp(item, 'idBacheca')) {
|
||||
item.idBacheca = costanti.FILTER_NESSUNO
|
||||
newRecord.value.idBacheca = item.idBacheca
|
||||
console.log('newRecord', newRecord)
|
||||
}
|
||||
}
|
||||
rowsel.value = item
|
||||
idsel = item._id
|
||||
|
||||
@@ -354,11 +354,6 @@
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-card-actions align="center">
|
||||
<q-btn
|
||||
:label="$t('dialog.insert')"
|
||||
color="primary"
|
||||
@click="saveNewRecord"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
:label="$t('dialog.cancel')"
|
||||
@@ -366,6 +361,11 @@
|
||||
v-close-popup
|
||||
@click="annulla"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
:label="$t('dialog.insert')"
|
||||
color="primary"
|
||||
@click="saveNewRecord"
|
||||
></q-btn>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
@@ -428,17 +428,17 @@
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-card-actions align="center">
|
||||
<q-btn
|
||||
:label="$t('dialog.ok')"
|
||||
color="primary"
|
||||
@click="saverecModif"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
flat
|
||||
:label="$t('dialog.cancel')"
|
||||
color="primary"
|
||||
@click="cancelrecModif"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
:label="$t('dialog.ok')"
|
||||
color="primary"
|
||||
@click="saverecModif"
|
||||
></q-btn>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { colTableHours } from '@src/store/Modules/fieldsTable'
|
||||
import { colTableHours } from '@/store/Modules/fieldsTable'
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { defineComponent, ref } from 'vue'
|
||||
import type { IPagination } from 'model'
|
||||
import { CImgText } from '@src/components/CImgText'
|
||||
import { CImgText } from '@/components/CImgText'
|
||||
import { CCard } from '../CCard'
|
||||
import { CMyPage } from '@src/components/CMyPage'
|
||||
import { CTitleBanner } from '@src/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@src/components/CGridTableRec'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import type { PropType} from 'vue';
|
||||
import { defineComponent, ref } from 'vue'
|
||||
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import type { IAnim} from '@src/model';
|
||||
import { IElemText } from '@src/model'
|
||||
import { tools } from '@/store/Modules/tools'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import type { IAnim} from '@/model';
|
||||
import { IElemText } from '@/model'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CImgPoster',
|
||||
|
||||
@@ -2,7 +2,7 @@ import {
|
||||
defineComponent,
|
||||
} from 'vue'
|
||||
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { tools } from '@/store/Modules/tools'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CImgText',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { defineComponent, ref } from 'vue'
|
||||
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { tools } from '@/store/Modules/tools'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CImgTitle',
|
||||
|
||||
@@ -17,7 +17,7 @@ import { useQuasar } from 'quasar';
|
||||
import { tools } from '@tools';
|
||||
import { useProducts } from '@store/Products';
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs';
|
||||
import { shared_consts } from '@/common/shared_vuejs';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
import { costanti } from '@costanti';
|
||||
|
||||
@@ -4,17 +4,17 @@ import { useUserStore } from '@store/UserStore'
|
||||
import type { IMyGroup, ICircuit, IAccount } from 'model';
|
||||
import { IImgGallery, IUserFields, IUserProfile, IFriends } from 'model'
|
||||
import { costanti } from '@costanti'
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { tools } from '@tools'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import { CUserNonVerif } from '@src/components/CUserNonVerif'
|
||||
import { CUserNonVerif } from '@/components/CUserNonVerif'
|
||||
import { toolsext } from '@store/Modules/toolsext'
|
||||
import { CSaldo } from '@src/components/CSaldo'
|
||||
import { CSendCoins } from '@src/components/CSendCoins'
|
||||
import { CCurrencyValue } from '@src/components/CCurrencyValue'
|
||||
import { CCurrencyV2 } from '@src/components/CCurrencyV2'
|
||||
import { CSaldo } from '@/components/CSaldo'
|
||||
import { CSendCoins } from '@/components/CSendCoins'
|
||||
import { CCurrencyValue } from '@/components/CCurrencyValue'
|
||||
import { CCurrencyV2 } from '@/components/CCurrencyV2'
|
||||
import { useCircuitStore } from '@store/CircuitStore'
|
||||
|
||||
export default defineComponent({
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { defineComponent, ref, toRef, watch } from 'vue'
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { tools } from '@/store/Modules/tools'
|
||||
|
||||
import { useQuasar } from 'quasar'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
@@ -18,16 +18,16 @@
|
||||
v-if="editing"
|
||||
class="button-group"
|
||||
>
|
||||
<q-btn
|
||||
flat
|
||||
:label="$t('dialog.cancel')"
|
||||
@click="cancelUpdate"
|
||||
/>
|
||||
<q-btn
|
||||
:label="$t('dialog.save')"
|
||||
color="positive"
|
||||
@click="confirmUpdate"
|
||||
/>
|
||||
<q-btn
|
||||
:label="$t('dialog.cancel')"
|
||||
color="negative"
|
||||
@click="cancelUpdate"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useGlobalStore } from '@store/globalStore'
|
||||
import { fieldsTable } from '@store/Modules/fieldsTable'
|
||||
import { tools } from '@tools'
|
||||
import { costanti } from '@costanti'
|
||||
import { CDateTime } from '@src/components/CDateTime'
|
||||
import { CDateTime } from '@/components/CDateTime'
|
||||
|
||||
|
||||
export default defineComponent({
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
<div class="key-label">
|
||||
{{ mykey }}
|
||||
</div>
|
||||
<div class="value-content" :style="color ? `background-color: ${color}; color: white;` : ''">
|
||||
<div
|
||||
class="value-content"
|
||||
:style="color ? `background-color: ${color}; color: white;` : ''"
|
||||
>
|
||||
<span v-if="mydate">
|
||||
<CDateTime
|
||||
v-model:value="mydate"
|
||||
@@ -11,10 +14,17 @@
|
||||
:canEdit="false"
|
||||
/>
|
||||
</span>
|
||||
<span v-else class="value-text">
|
||||
<span
|
||||
v-else
|
||||
class="value-text"
|
||||
>
|
||||
{{ myvalue || '-' }}
|
||||
</span>
|
||||
|
||||
</div>
|
||||
<div
|
||||
class="value-content"
|
||||
:style="color ? `background-color: ${color}; color: white;` : ''"
|
||||
>
|
||||
<q-btn
|
||||
v-if="showSetButton && onSetValue"
|
||||
rounded
|
||||
@@ -30,8 +40,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CKeyAndValue.ts">
|
||||
</script>
|
||||
<script lang="ts" src="./CKeyAndValue.ts"></script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CKeyAndValue.scss';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { defineComponent, ref, toRef, watch } from 'vue'
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { tools } from '@/store/Modules/tools'
|
||||
|
||||
import { useQuasar } from 'quasar'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
@@ -0,0 +1,333 @@
|
||||
// Spacing ridotto 40-50%
|
||||
$sp-xs: 4px;
|
||||
$sp-sm: 8px;
|
||||
$sp-md: 12px;
|
||||
$sp-lg: 16px;
|
||||
|
||||
$radius-sm: 8px;
|
||||
$radius-md: 12px;
|
||||
$radius-lg: 16px;
|
||||
|
||||
// Layout
|
||||
.riso-homepage {
|
||||
padding: $sp-sm;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
background: linear-gradient(135deg, #f5f7fa 0%, #e3e9f2 100%);
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
// Hero Section
|
||||
.hero-section {
|
||||
display: grid;
|
||||
gap: $sp-sm;
|
||||
margin-bottom: $sp-md;
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
backdrop-filter: blur(10px);
|
||||
border-radius: $radius-md;
|
||||
padding: $sp-sm;
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
|
||||
|
||||
@media (max-width: 600px) {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
|
||||
@media (min-width: 601px) and (max-width: 1024px) {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
|
||||
@media (min-width: 1025px) {
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
// Secondary Section
|
||||
.secondary-section {
|
||||
display: grid;
|
||||
gap: $sp-sm;
|
||||
margin-bottom: $sp-md;
|
||||
background: rgba(255, 255, 255, 0.6);
|
||||
backdrop-filter: blur(8px);
|
||||
border-radius: $radius-md;
|
||||
padding: $sp-sm;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
|
||||
|
||||
@media (max-width: 600px) {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
|
||||
@media (min-width: 601px) {
|
||||
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
|
||||
}
|
||||
}
|
||||
|
||||
// Content Sections
|
||||
.content-section {
|
||||
background: white;
|
||||
border-radius: $radius-lg;
|
||||
padding: $sp-md;
|
||||
margin-bottom: $sp-md;
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.section-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: $sp-md;
|
||||
padding-bottom: $sp-sm;
|
||||
border-bottom: 2px solid rgba(0, 0, 0, 0.05);
|
||||
|
||||
.section-title {
|
||||
font-size: 1.25rem;
|
||||
font-weight: 600;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: $sp-sm;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
|
||||
.q-icon {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Modern Tabs
|
||||
.modern-tabs {
|
||||
margin-bottom: $sp-md;
|
||||
|
||||
:deep(.q-tab) {
|
||||
padding: $sp-sm $sp-md;
|
||||
border-radius: $radius-sm;
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
background: rgba(102, 126, 234, 0.1);
|
||||
}
|
||||
|
||||
&.q-tab--active {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Placeholder Content
|
||||
.placeholder-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: $sp-sm;
|
||||
padding: $sp-lg;
|
||||
background: rgba(0, 0, 0, 0.02);
|
||||
border-radius: $radius-md;
|
||||
border: 2px dashed rgba(0, 0, 0, 0.1);
|
||||
color: rgba(0, 0, 0, 0.4);
|
||||
font-size: 0.9rem;
|
||||
min-height: 100px;
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
background: rgba(0, 0, 0, 0.04);
|
||||
border-color: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
&.horizontal {
|
||||
flex-direction: row;
|
||||
min-width: 280px;
|
||||
}
|
||||
|
||||
.q-icon {
|
||||
opacity: 0.3;
|
||||
}
|
||||
}
|
||||
|
||||
// Eventi Scroll
|
||||
.eventi-scroll {
|
||||
display: flex;
|
||||
gap: $sp-md;
|
||||
overflow-x: auto;
|
||||
padding-bottom: $sp-sm;
|
||||
scroll-behavior: smooth;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
height: 4px;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: linear-gradient(90deg, #667eea 0%, #764ba2 100%);
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-track {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
}
|
||||
|
||||
// Wallet Card
|
||||
.wallet-card {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
border-radius: $radius-md;
|
||||
padding: $sp-lg;
|
||||
color: white;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $sp-md;
|
||||
box-shadow: 0 4px 16px rgba(102, 126, 234, 0.3);
|
||||
|
||||
.wallet-balance {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $sp-xs;
|
||||
|
||||
.balance-label {
|
||||
font-size: 0.9rem;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
.balance-value {
|
||||
font-size: 2rem;
|
||||
font-weight: 700;
|
||||
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
.wallet-actions {
|
||||
display: flex;
|
||||
gap: $sp-sm;
|
||||
|
||||
.q-btn {
|
||||
flex: 1;
|
||||
border-color: white;
|
||||
color: white;
|
||||
|
||||
&:hover {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Telegram Grid
|
||||
.telegram-grid {
|
||||
display: grid;
|
||||
gap: $sp-md;
|
||||
|
||||
@media (max-width: 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
@media (min-width: 601px) {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
.telegram-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: linear-gradient(135deg, rgba(0, 136, 204, 0.08) 0%, rgba(43, 171, 217, 0.08) 100%);
|
||||
border-radius: $radius-md;
|
||||
overflow: hidden;
|
||||
transition: all 0.3s ease;
|
||||
text-decoration: none;
|
||||
border: 1px solid rgba(0, 136, 204, 0.2);
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-4px);
|
||||
box-shadow: 0 8px 24px rgba(0, 136, 204, 0.2);
|
||||
border-color: rgba(0, 136, 204, 0.4);
|
||||
}
|
||||
|
||||
.telegram-img {
|
||||
height: 120px;
|
||||
}
|
||||
|
||||
.telegram-content {
|
||||
padding: $sp-md;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.telegram-title {
|
||||
font-weight: 600;
|
||||
color: #0088cc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Footer
|
||||
.footer-section {
|
||||
margin-top: $sp-lg;
|
||||
padding: $sp-lg;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
backdrop-filter: blur(10px);
|
||||
border-radius: $radius-lg;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
|
||||
|
||||
.footer-links {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
flex-wrap: wrap;
|
||||
gap: $sp-sm;
|
||||
|
||||
.footer-btn {
|
||||
flex: 1;
|
||||
min-width: 90px;
|
||||
color: #667eea;
|
||||
font-weight: 500;
|
||||
|
||||
&:hover {
|
||||
background: rgba(102, 126, 234, 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Animazioni
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(10px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
.content-section {
|
||||
animation: fadeIn 0.5s ease-out;
|
||||
}
|
||||
|
||||
// Responsive
|
||||
@media (max-width: 600px) {
|
||||
.riso-homepage {
|
||||
padding: $sp-xs;
|
||||
}
|
||||
|
||||
.content-section {
|
||||
padding: $sp-sm;
|
||||
margin-bottom: $sp-sm;
|
||||
}
|
||||
|
||||
.section-header .section-title {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.wallet-card {
|
||||
padding: $sp-md;
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import { useI18n } from 'vue-i18n'
|
||||
import { tools } from '@tools'
|
||||
import type { IMainCard } from '@store/Modules/costanti';
|
||||
import { costanti } from '@store/Modules/costanti'
|
||||
import { CBigBtn } from '@src/components/CBigBtn'
|
||||
import { CBigBtn } from '@/components/CBigBtn'
|
||||
|
||||
|
||||
export default defineComponent({
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
<template>
|
||||
<div v-if="tools.isUserOk()">
|
||||
<div
|
||||
<div
|
||||
v-if="tools.isUserOk()"
|
||||
class="riso-home"
|
||||
>
|
||||
<!-- Hero Section: Annunci principali -->
|
||||
<section
|
||||
v-if="cardsbig.length > 0"
|
||||
class="row q-ma-sm shadow justify-center"
|
||||
style="border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.12)"
|
||||
class="hero-section"
|
||||
>
|
||||
<CBigBtn
|
||||
v-for="(card, ind) of cardsbig"
|
||||
@@ -17,13 +20,13 @@
|
||||
:numcol="2"
|
||||
:hint="card.hint"
|
||||
:disable="card.disable"
|
||||
>
|
||||
</CBigBtn>
|
||||
</div>
|
||||
<div
|
||||
/>
|
||||
</section>
|
||||
|
||||
<!-- Secondary: Circuiti e Organizzazioni -->
|
||||
<section
|
||||
v-if="cardssmall.length > 0"
|
||||
class="row shadow justify-center"
|
||||
style="border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.12)"
|
||||
class="secondary-section"
|
||||
>
|
||||
<CBigBtn
|
||||
v-for="(card, ind) of cardssmall"
|
||||
@@ -38,24 +41,12 @@
|
||||
:numcol="3"
|
||||
:hint="card.hint"
|
||||
:disable="card.disable"
|
||||
>
|
||||
</CBigBtn>
|
||||
</div>
|
||||
/>
|
||||
</section>
|
||||
</div>
|
||||
<!--<div class="row justify-center">
|
||||
<CBigBtn
|
||||
label="Info" to="" @click="showInfo = true" icon="fas fa-info" color="primary"
|
||||
:numcol="3"
|
||||
>
|
||||
</CBigBtn>
|
||||
</div>
|
||||
<div v-if="showInfo">
|
||||
|
||||
</div>-->
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CMainView.ts">
|
||||
</script>
|
||||
<script lang="ts" src="./CMainView.ts"></script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CMainView.scss';
|
||||
|
||||
@@ -11,10 +11,10 @@ import 'leaflet.markercluster/dist/MarkerCluster.css'
|
||||
import 'leaflet.markercluster/dist/MarkerCluster.Default.css'
|
||||
import 'leaflet.markercluster'
|
||||
|
||||
import { useUserStore } from '@src/store/UserStore'
|
||||
import { useGlobalStore } from '@src/store/globalStore'
|
||||
import { useUserStore } from '@/store/UserStore'
|
||||
import { useGlobalStore } from '@/store/globalStore'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { ICoordGPS } from '@src/model'
|
||||
import { ICoordGPS } from '@/model'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CMapByTable',
|
||||
|
||||
@@ -10,9 +10,9 @@ import 'leaflet.markercluster/dist/MarkerCluster.Default.css'
|
||||
import 'leaflet.markercluster'
|
||||
import '../../utils/leaflet-extensions'; // Importa le estensioni
|
||||
|
||||
import { useUserStore } from '@src/store/UserStore'
|
||||
import { useGlobalStore } from '@src/store/globalStore'
|
||||
import { setCookie } from '@src/utils/auth'
|
||||
import { useUserStore } from '@/store/UserStore'
|
||||
import { useGlobalStore } from '@/store/globalStore'
|
||||
import { setCookie } from '@/utils/auth'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CMapComuni',
|
||||
|
||||
@@ -10,12 +10,12 @@ import 'leaflet.markercluster/dist/MarkerCluster.Default.css'
|
||||
import 'leaflet.markercluster'
|
||||
import '../../utils/leaflet-extensions'; // Importa le estensioni
|
||||
|
||||
import { useUserStore } from '@src/store/UserStore'
|
||||
import { useUserStore } from '@/store/UserStore'
|
||||
|
||||
// Importa le immagini dei marker
|
||||
import icon from 'leaflet/dist/images/marker-icon.png'
|
||||
import iconShadow from 'leaflet/dist/images/marker-shadow.png'
|
||||
import type { ICoordGPS, ICoordLatLng } from '@src/model'
|
||||
import type { ICoordGPS, ICoordLatLng } from '@/model'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CMapEditAddressByCoord',
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'leaflet.markercluster/dist/MarkerCluster.Default.css'
|
||||
import 'leaflet.markercluster'
|
||||
import '../../utils/leaflet-extensions'; // Importa le estensioni
|
||||
|
||||
import { useUserStore } from '@src/store/UserStore'
|
||||
import { useUserStore } from '@/store/UserStore'
|
||||
|
||||
// Importa le immagini dei marker
|
||||
import icon from 'leaflet/dist/images/marker-icon.png'
|
||||
|
||||
@@ -10,7 +10,7 @@ import 'leaflet.markercluster/dist/MarkerCluster.Default.css'
|
||||
import 'leaflet.markercluster'
|
||||
import '../../utils/leaflet-extensions'; // Importa le estensioni
|
||||
|
||||
import { useUserStore } from '@src/store/UserStore'
|
||||
import { useUserStore } from '@/store/UserStore'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CMapUsers',
|
||||
|
||||
@@ -1,144 +1,503 @@
|
||||
// ==========================================
|
||||
// CMENUITEM.SCSS - ORIGINALE + MIGLIORAMENTI RISO
|
||||
// Mantiene tutto il codice originale + stile moderno
|
||||
// ==========================================
|
||||
|
||||
.prova {
|
||||
color: red;
|
||||
color: red;
|
||||
}
|
||||
|
||||
.q-list-header {
|
||||
min-height: 12px;
|
||||
padding: 5px 8px;
|
||||
min-height: 12px;
|
||||
padding: 5px 8px;
|
||||
}
|
||||
|
||||
.menu-hr {
|
||||
border-color: #dedede;
|
||||
height: 0.5px;
|
||||
border-color: #dedede;
|
||||
height: 0.5px;
|
||||
}
|
||||
|
||||
|
||||
.list-label:first-child {
|
||||
line-height: 20px;
|
||||
padding: 5px;
|
||||
margin: 1px;
|
||||
line-height: 20px;
|
||||
padding: 5px;
|
||||
margin: 1px;
|
||||
}
|
||||
|
||||
.router-link-active {
|
||||
color: #027be3;
|
||||
background-color: #dadada !important;
|
||||
border-right: 2px solid #027be3;
|
||||
color: #027be3;
|
||||
background-color: #dadada !important;
|
||||
border-right: 2px solid #027be3;
|
||||
}
|
||||
|
||||
.router-link-active .item-primary {
|
||||
color: #027be3;
|
||||
color: #027be3;
|
||||
}
|
||||
|
||||
.menu_freccina {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
display: inline-block;
|
||||
padding: 0 0 0 0;
|
||||
-webkit-transform: rotate(-180deg);
|
||||
transform: rotate(-180deg);
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
display: inline-block;
|
||||
padding: 0 0 0 0;
|
||||
-webkit-transform: rotate(-180deg);
|
||||
transform: rotate(-180deg);
|
||||
}
|
||||
|
||||
.my-menu,
|
||||
.my-menu>i {
|
||||
min-height: 40px;
|
||||
min-width: 26px;
|
||||
font-size: 1rem;
|
||||
min-height: 40px;
|
||||
min-width: 26px;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.my-menu-small,
|
||||
.my-menu-small>i {
|
||||
min-height: 40px;
|
||||
min-width: 26px;
|
||||
font-size: 0.75rem;
|
||||
min-height: 40px;
|
||||
min-width: 26px;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.isAdmin {
|
||||
color: red !important;
|
||||
color: red !important;
|
||||
}
|
||||
|
||||
.isSocioResidente {
|
||||
color: darkgreen;
|
||||
color: darkgreen;
|
||||
}
|
||||
|
||||
.isCalendar {}
|
||||
|
||||
.isManager {
|
||||
color: green !important;
|
||||
color: green !important;
|
||||
}
|
||||
|
||||
.isFacilitatore {
|
||||
color: #201a80;
|
||||
color: #201a80;
|
||||
}
|
||||
|
||||
.onlyCollaboratore {
|
||||
color: #bd7b10;
|
||||
color: #bd7b10;
|
||||
}
|
||||
|
||||
.my-menu-icon {
|
||||
min-width: 2px;
|
||||
font-size: 1rem;
|
||||
min-width: 2px;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.my-menu-icon>i {
|
||||
min-width: 26px;
|
||||
font-size: 1.25rem;
|
||||
min-width: 26px;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.clexpansion {
|
||||
min-width: 0 !important;
|
||||
min-width: 0 !important;
|
||||
}
|
||||
|
||||
.my-menu-active {
|
||||
background-color: rgba(174, 189, 241, 0.71);
|
||||
background-color: rgba(174, 189, 241, 0.71);
|
||||
}
|
||||
|
||||
.my-menu-separat>i {
|
||||
min-width: 26px;
|
||||
font-size: 1rem;
|
||||
min-width: 26px;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.my-menu-icon-none>i {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.clicon img,
|
||||
.clicon {
|
||||
font-size: 16px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.q-item__section--avatar {
|
||||
min-width: 30px;
|
||||
min-width: 30px;
|
||||
}
|
||||
|
||||
.OLD_q-item__section--side {
|
||||
padding-right: 8px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
|
||||
.imgicon img {
|
||||
font-size: 2.5rem !important;
|
||||
border-radius: 8px;
|
||||
font-size: 2.5rem !important;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
.menu-enter-active, .scale-enter {
|
||||
-webkit-animation: moveFromTopFade .5s ease both;
|
||||
animation: moveFromTopFade .5s ease both;
|
||||
}
|
||||
|
||||
.menu-leave-to, .scale-leave-active {
|
||||
-webkit-animation: moveToBottom .5s ease both;
|
||||
animation: moveToBottom .5s ease both;
|
||||
}
|
||||
*/
|
||||
.menu-enter-active, .scale-enter {
|
||||
-webkit-animation: moveFromTopFade .5s ease both;
|
||||
animation: moveFromTopFade .5s ease both;
|
||||
}
|
||||
|
||||
.menu-leave-to, .scale-leave-active {
|
||||
-webkit-animation: moveToBottom .5s ease both;
|
||||
animation: moveToBottom .5s ease both;
|
||||
}
|
||||
*/
|
||||
|
||||
.bigmenu {
|
||||
font-size: 1.25rem;
|
||||
font-weight: bold;
|
||||
text-shadow: 0.0512rem 0.052rem .01rem #555;
|
||||
font-size: 1.25rem;
|
||||
font-weight: bold;
|
||||
text-shadow: 0.0512rem 0.052rem .01rem #555;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-size: 0.85em;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// MIGLIORAMENTI STILE RISO - AGGIUNTI
|
||||
// ==========================================
|
||||
|
||||
// ==========================================
|
||||
// INDENTAZIONE LIVELLI - Più compatta
|
||||
// ==========================================
|
||||
[style*="paddingLeft"] {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// Q-SEPARATOR - Divisore migliorato
|
||||
// ==========================================
|
||||
.q-separator {
|
||||
background: linear-gradient(90deg,
|
||||
transparent 0%,
|
||||
rgba(0, 0, 0, 0.1) 50%,
|
||||
transparent 100%);
|
||||
margin: 6px 0;
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// Q-EXPANSION-ITEM - Espandibile migliorato
|
||||
// ==========================================
|
||||
.q-expansion-item {
|
||||
border-radius: 8px;
|
||||
margin-bottom: 2px;
|
||||
overflow: hidden;
|
||||
|
||||
// Header dell'expansion
|
||||
> .q-item {
|
||||
border-radius: 8px;
|
||||
padding: 6px 10px;
|
||||
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
|
||||
&:hover {
|
||||
background: rgba(0, 0, 0, 0.04);
|
||||
transform: translateX(2px);
|
||||
}
|
||||
}
|
||||
|
||||
// Label header
|
||||
.q-item__label {
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
// Icona expand/collapse
|
||||
.q-icon {
|
||||
transition: all 0.3s ease;
|
||||
font-size: 0.9rem;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
// Quando espanso
|
||||
.q-expansion-item--expanded {
|
||||
> .q-item {
|
||||
background: rgba(0, 0, 0, 0.02);
|
||||
|
||||
.q-icon {
|
||||
color: var(--q-primary);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// Q-ITEM FOGLIA - Voce menu semplice
|
||||
// ==========================================
|
||||
.q-item {
|
||||
border-radius: 8px;
|
||||
padding: 6px 10px;
|
||||
margin-bottom: 2px;
|
||||
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
min-height: 42px;
|
||||
|
||||
&:hover {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
transform: translateX(3px);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
&:active {
|
||||
transform: translateX(1px);
|
||||
}
|
||||
|
||||
// Sezione thumbnail con avatar
|
||||
.q-item__section--thumbnail {
|
||||
min-width: 36px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
// Label principale
|
||||
> .q-item__section > span:not(.subtitle) {
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
color: rgba(0, 0, 0, 0.87);
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// Q-AVATAR - Icone migliorate
|
||||
// ==========================================
|
||||
.q-avatar {
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
background: transparent !important;
|
||||
|
||||
&.rounded {
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.q-icon {
|
||||
font-size: 1.3rem;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
}
|
||||
|
||||
.q-item:hover .q-avatar {
|
||||
transform: scale(1.08);
|
||||
|
||||
.q-icon {
|
||||
transform: rotate(-5deg);
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// MY-MENU-ACTIVE - Stato attivo
|
||||
// ==========================================
|
||||
.my-menu-active {
|
||||
background: linear-gradient(90deg,
|
||||
rgba(2, 123, 227, 0.12) 0%,
|
||||
rgba(2, 123, 227, 0.05) 100%) !important;
|
||||
border-radius: 8px;
|
||||
border-right: 3px solid #027be3;
|
||||
|
||||
span {
|
||||
color: #027be3;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.q-avatar {
|
||||
background: rgba(2, 123, 227, 0.1) !important;
|
||||
|
||||
.q-icon {
|
||||
color: #027be3;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: linear-gradient(90deg,
|
||||
rgba(2, 123, 227, 0.16) 0%,
|
||||
rgba(2, 123, 227, 0.08) 100%) !important;
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// CLASSI PERMESSI - Badge colorati
|
||||
// ==========================================
|
||||
.isAdmin {
|
||||
color: #d32f2f !important;
|
||||
border-left: 3px solid #d32f2f;
|
||||
background: linear-gradient(90deg,
|
||||
rgba(211, 47, 47, 0.08) 0%,
|
||||
rgba(211, 47, 47, 0.02) 100%);
|
||||
|
||||
.q-avatar {
|
||||
background: rgba(211, 47, 47, 0.12) !important;
|
||||
|
||||
.q-icon {
|
||||
color: #d32f2f;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: linear-gradient(90deg,
|
||||
rgba(211, 47, 47, 0.12) 0%,
|
||||
rgba(211, 47, 47, 0.04) 100%);
|
||||
}
|
||||
}
|
||||
|
||||
.isManager {
|
||||
color: #388e3c !important;
|
||||
border-left: 3px solid #388e3c;
|
||||
background: linear-gradient(90deg,
|
||||
rgba(56, 142, 60, 0.08) 0%,
|
||||
rgba(56, 142, 60, 0.02) 100%);
|
||||
|
||||
.q-avatar {
|
||||
background: rgba(56, 142, 60, 0.12) !important;
|
||||
|
||||
.q-icon {
|
||||
color: #388e3c;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: linear-gradient(90deg,
|
||||
rgba(56, 142, 60, 0.12) 0%,
|
||||
rgba(56, 142, 60, 0.04) 100%);
|
||||
}
|
||||
}
|
||||
|
||||
.isSocioResidente {
|
||||
color: #1b5e20 !important;
|
||||
|
||||
.q-avatar .q-icon {
|
||||
color: #1b5e20;
|
||||
}
|
||||
}
|
||||
|
||||
.isFacilitatore {
|
||||
color: #4a148c !important;
|
||||
|
||||
.q-avatar .q-icon {
|
||||
color: #4a148c;
|
||||
}
|
||||
}
|
||||
|
||||
.onlyCollaboratore {
|
||||
color: #f57c00 !important;
|
||||
|
||||
.q-avatar .q-icon {
|
||||
color: #f57c00;
|
||||
}
|
||||
}
|
||||
|
||||
.isEditor {
|
||||
color: #6a1b9a !important;
|
||||
|
||||
.q-avatar .q-icon {
|
||||
color: #6a1b9a;
|
||||
}
|
||||
}
|
||||
|
||||
.isCommerciale {
|
||||
color: #e65100 !important;
|
||||
|
||||
.q-avatar .q-icon {
|
||||
color: #e65100;
|
||||
}
|
||||
}
|
||||
|
||||
.isGrafico {
|
||||
color: #00796b !important;
|
||||
|
||||
.q-avatar .q-icon {
|
||||
color: #00796b;
|
||||
}
|
||||
}
|
||||
|
||||
.isDoc {
|
||||
border-left: 3px solid #42a5f5;
|
||||
background: linear-gradient(90deg,
|
||||
rgba(66, 165, 245, 0.08) 0%,
|
||||
rgba(66, 165, 245, 0.02) 100%);
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// SUBTITLE - Testo secondario
|
||||
// ==========================================
|
||||
.subtitle {
|
||||
font-size: 0.8rem;
|
||||
color: #757575;
|
||||
font-style: italic;
|
||||
margin-top: 2px;
|
||||
opacity: 0.85;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// BIGMENU - Titoli grandi
|
||||
// ==========================================
|
||||
.bigmenu {
|
||||
font-size: 1.2rem;
|
||||
font-weight: 700;
|
||||
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// CLASSI EXTRA - Supporto customizzazioni
|
||||
// ==========================================
|
||||
.extraclass {
|
||||
// Placeholder per classi custom
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// RESPONSIVE
|
||||
// ==========================================
|
||||
@media screen and (max-width: 600px) {
|
||||
.q-item {
|
||||
padding: 5px 8px;
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
.q-expansion-item > .q-item {
|
||||
padding: 5px 8px;
|
||||
}
|
||||
|
||||
.q-avatar {
|
||||
width: 1.8rem !important;
|
||||
height: 1.8rem !important;
|
||||
font-size: 1.8rem !important;
|
||||
|
||||
.q-icon {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.q-item__section--thumbnail {
|
||||
min-width: 32px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
.bigmenu {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// ANIMAZIONI ENTRATA
|
||||
// ==========================================
|
||||
@keyframes fadeSlideIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateX(-8px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
.q-item,
|
||||
.q-expansion-item {
|
||||
animation: fadeSlideIn 0.3s ease;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// FOCUS ACCESSIBILITA
|
||||
// ==========================================
|
||||
.q-item:focus-visible,
|
||||
.q-expansion-item:focus-visible {
|
||||
outline: 2px solid var(--q-primary);
|
||||
outline-offset: 2px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
@@ -3,14 +3,14 @@ import draggable from 'vuedraggable';
|
||||
|
||||
import { tools } from '@tools';
|
||||
|
||||
import { useGlobalStore } from '@src/store/globalStore';
|
||||
import { useGlobalStore } from '@/store/globalStore';
|
||||
|
||||
import { CMyEditorAI } from '@src/components/CMyEditorAI';
|
||||
import { CAITools } from '@src/components/CAITools';
|
||||
import { CMyEditorAI } from '@/components/CMyEditorAI';
|
||||
import { CAITools } from '@/components/CAITools';
|
||||
|
||||
import { costanti } from '@costanti';
|
||||
|
||||
import type { IMyScheda, IProduct, IRecFields } from '@src/model';
|
||||
import type { IMyScheda, IProduct, IRecFields } from '@/model';
|
||||
import { shared_consts } from 'app/src/common/shared_vuejs';
|
||||
import { useProducts } from 'app/src/store/Products';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user