- posso fare upload dell'immagine del prodotto dalla lista
- corretto import dati
@@ -1,6 +1,6 @@
|
||||
APP_VERSION="1.0.29"
|
||||
APP_VERSION="1.0.21"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
APP_ID="17"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
DIRECTORY_SERVER="freeplanet_serverside"
|
||||
SERVERDIR_WEBSITE=""
|
||||
@@ -12,7 +12,7 @@ LANG_DEFAULT="it"
|
||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||
MONGODB_HOST="https://localhost:3000"
|
||||
LOGO_REG='riso-logo-full.png'
|
||||
LOGO_REG='piuchebuono-logo-full.png'
|
||||
TEST_NAME="Paolo"
|
||||
TEST_SURNAME="Arena"
|
||||
TEST_EMAIL=""
|
||||
|
||||
@@ -133,6 +133,17 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 120,
|
||||
path: '/install_site',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.install_site',
|
||||
component: () => import('@/views/admin/install_site/install_site.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 120,
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"dependencies": {
|
||||
"@cubejs-client/core": "^0.31.0",
|
||||
"@quasar/extras": "^1.16.9",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.16",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.19",
|
||||
"@vue-leaflet/vue-leaflet": "^0.10.1",
|
||||
"@vue/compat": "^3.3.9",
|
||||
"@vue/compiler-sfc": "^3.3.9",
|
||||
@@ -68,6 +68,7 @@
|
||||
"vue-echarts": "^6.6.1",
|
||||
"vue-i18n": "^9.8.0",
|
||||
"vue-idb": "^0.2.0",
|
||||
"vue-image-zoomer": "^2.2.3",
|
||||
"vue-loader": "^17.3.1",
|
||||
"vue-property-decorator": "^10.0.0-rc.3",
|
||||
"vue-router": "^4.2.5",
|
||||
@@ -81,7 +82,7 @@
|
||||
"vuex-router-sync": "^6.0.0-rc.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@quasar/app": "^3.3.3",
|
||||
"@quasar/app-webpack": "^3.12.3",
|
||||
"@types/bcryptjs": "^2.4.6",
|
||||
"@types/dotenv": "^8.2.0",
|
||||
"@types/googlemaps": "^3.43.3",
|
||||
|
||||
2
now.txt
@@ -1 +1 @@
|
||||
TERMINA DI LAVORARE SU piuchebuono.app: (Sovrascrivo !)
|
||||
TERMINA DI LAVORARE SU riso.app: (Sovrascrivo !)
|
||||
|
||||
13
package.json
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"name": "riso",
|
||||
"version": "0.6.1",
|
||||
"description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
|
||||
"productName": "Riso",
|
||||
"name": "piuchebuono",
|
||||
"version": "2.0.1",
|
||||
"description": "PiuCheBuono",
|
||||
"productName": "PiuCheBuono",
|
||||
"author": "Paolo Arena",
|
||||
"private": true,
|
||||
"keywords": [],
|
||||
@@ -25,7 +25,7 @@
|
||||
"dependencies": {
|
||||
"@cubejs-client/core": "^0.31.0",
|
||||
"@quasar/extras": "^1.16.9",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.19",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.16",
|
||||
"@vue-leaflet/vue-leaflet": "^0.10.1",
|
||||
"@vue/compat": "^3.3.9",
|
||||
"@vue/compiler-sfc": "^3.3.9",
|
||||
@@ -68,7 +68,6 @@
|
||||
"vue-echarts": "^6.6.1",
|
||||
"vue-i18n": "^9.8.0",
|
||||
"vue-idb": "^0.2.0",
|
||||
"vue-image-zoomer": "^2.2.3",
|
||||
"vue-loader": "^17.3.1",
|
||||
"vue-property-decorator": "^10.0.0-rc.3",
|
||||
"vue-router": "^4.2.5",
|
||||
@@ -82,7 +81,7 @@
|
||||
"vuex-router-sync": "^6.0.0-rc.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@quasar/app-webpack": "^3.12.3",
|
||||
"@quasar/app": "^3.3.3",
|
||||
"@types/bcryptjs": "^2.4.6",
|
||||
"@types/dotenv": "^8.2.0",
|
||||
"@types/googlemaps": "^3.43.3",
|
||||
|
||||
|
Before Width: | Height: | Size: 42 KiB |
BIN
public/images/foto1.jpg
Executable file → Normal file
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 87 KiB |
BIN
public/images/foto2.jpg
Executable file → Normal file
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 140 KiB |
BIN
public/images/foto3.jpg
Executable file → Normal file
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 165 KiB |
BIN
public/images/kolibrilab-logo-full.png
Executable file
|
After Width: | Height: | Size: 92 KiB |
BIN
public/images/marocco_foto1.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
BIN
public/images/nuda_e_cruda.jpeg
Normal file
|
After Width: | Height: | Size: 311 KiB |
BIN
public/images/pcb-android-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
public/images/pcb-android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
public/images/pcb-android-icon-36x36.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
public/images/pcb-android-icon-48x48.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
public/images/pcb-android-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
public/images/pcb-android-icon-96x96.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/images/pcb-apple-icon-114x114.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
public/images/pcb-apple-icon-120x120.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
public/images/pcb-apple-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
public/images/pcb-apple-icon-152x152.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
public/images/pcb-apple-icon-180x180.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
public/images/pcb-apple-icon-57x57.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
public/images/pcb-apple-icon-60x60.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
public/images/pcb-apple-icon-72x72.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
public/images/pcb-apple-icon-76x76.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/images/pcb-apple-icon.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
public/images/piuchebuono-logo-full.png
Normal file
|
After Width: | Height: | Size: 163 KiB |
BIN
public/images/piuchebuono.jpg
Normal file
|
After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 634 KiB |
|
Before Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 124 KiB |
@@ -94,6 +94,7 @@ module.exports = configure((ctx) => ({
|
||||
transpileDependencies: [
|
||||
/quasar-ui-qcalendar[\\/]src/
|
||||
],
|
||||
devtool: 'source-map',
|
||||
|
||||
chainWebpack(chain, { isServer, isClient }) {
|
||||
chain.resolve.alias
|
||||
@@ -147,9 +148,8 @@ module.exports = configure((ctx) => ({
|
||||
},
|
||||
devServer: {
|
||||
https: false,
|
||||
port: 8084,
|
||||
port: 8088,
|
||||
open: false, // opens browser window automatically
|
||||
hot: false, // Disable hot module replacement
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
'Access-Control-Allow-Headers': '*',
|
||||
@@ -306,9 +306,9 @@ module.exports = configure((ctx) => ({
|
||||
},
|
||||
|
||||
manifest: {
|
||||
name: 'Riso',
|
||||
short_name: 'Riso',
|
||||
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||
name: 'Più che Buono',
|
||||
short_name: 'PiuCheBuono',
|
||||
description: 'PiuCheBuono è un GAS e Bottega',
|
||||
display: 'standalone',
|
||||
orientation: 'portrait',
|
||||
background_color: '#fff',
|
||||
@@ -318,54 +318,54 @@ module.exports = configure((ctx) => ({
|
||||
start_url: "/?homescreen=1",
|
||||
icons: [
|
||||
{
|
||||
src: 'images/riso-android-icon-512x512.png',
|
||||
src: 'images/pcb-android-icon-512x512.png',
|
||||
sizes: '512x512',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/riso-android-icon-384x384.png',
|
||||
src: 'images/pcb-android-icon-384x384.png',
|
||||
sizes: '384x384',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/riso-android-icon-192x192.png',
|
||||
src: 'images/pcb-android-icon-192x192.png',
|
||||
sizes: '192x192',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/riso-android-icon-144x144.png',
|
||||
src: 'images/pcb-android-icon-144x144.png',
|
||||
sizes: '144x144',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/riso-android-icon-96x96.png',
|
||||
src: 'images/pcb-android-icon-96x96.png',
|
||||
sizes: '96x96',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/riso-apple-icon-120x120.png',
|
||||
src: 'images/pcb-apple-icon-120x120.png',
|
||||
sizes: '120x120',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/riso-apple-icon-144x144.png',
|
||||
src: 'images/pcb-apple-icon-144x144.png',
|
||||
sizes: '144x144',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/riso-apple-icon-152x152.png',
|
||||
src: 'images/pcb-apple-icon-152x152.png',
|
||||
sizes: '152x152',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/riso-apple-icon-180x180.png',
|
||||
src: 'images/pcb-apple-icon-180x180.png',
|
||||
sizes: '180x180',
|
||||
type: 'image/png',
|
||||
},
|
||||
],
|
||||
related_applications: [{
|
||||
"platform": "webapp",
|
||||
"url": "https://www.riso.app/manifest.json"
|
||||
"url": "https://www.piuchebuono.app/manifest.json"
|
||||
}]
|
||||
},
|
||||
},
|
||||
@@ -400,7 +400,7 @@ module.exports = configure((ctx) => ({
|
||||
builder: {
|
||||
// https://www.electron.build/configuration/configuration
|
||||
|
||||
appId: 'Riso',
|
||||
appId: 'PiuCheBuono',
|
||||
},
|
||||
|
||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||
|
||||
@@ -30,6 +30,7 @@ export const shared_consts = {
|
||||
LITRI: 3,
|
||||
MILLILITRI: 4,
|
||||
PEZZI: 10,
|
||||
UOVA: 15,
|
||||
},
|
||||
|
||||
TYPECASH: {
|
||||
@@ -89,6 +90,11 @@ export const shared_consts = {
|
||||
short: 'p',
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: 'Uova',
|
||||
short: 'uova',
|
||||
value: 15,
|
||||
},
|
||||
],
|
||||
|
||||
CallFunz: {
|
||||
|
||||
@@ -96,7 +96,7 @@ export default defineComponent({
|
||||
}
|
||||
} else {
|
||||
gallerylist.value = [
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
}
|
||||
@@ -229,12 +229,16 @@ export default defineComponent({
|
||||
function uploaded(info: any) {
|
||||
console.log('uploaded', info)
|
||||
if (gallerylist.value) {
|
||||
for (const file of info.files) {
|
||||
gallerylist.value.push({ imagefile: file.name })
|
||||
if (props.single && info.files) {
|
||||
console.log('gallerylist.value[0]', info.files[0].name)
|
||||
gallerylist.value[0] = { imagefile: info.files[0].name }
|
||||
} else {
|
||||
for (const file of info.files) {
|
||||
gallerylist.value.push({ imagefile: file.name })
|
||||
}
|
||||
}
|
||||
|
||||
if (!props.single)
|
||||
save()
|
||||
save()
|
||||
|
||||
console.log('gallerylist', gallerylist.value)
|
||||
}
|
||||
@@ -260,9 +264,7 @@ export default defineComponent({
|
||||
|
||||
console.log('single', props.single)
|
||||
|
||||
if (!props.single) {
|
||||
save()
|
||||
}
|
||||
save()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -280,8 +282,7 @@ export default defineComponent({
|
||||
tools.copyStringToClipboard($q, filename, true)
|
||||
}
|
||||
|
||||
function deleteFile(rec: any)
|
||||
{
|
||||
function deleteFile(rec: any) {
|
||||
console.log('deleteFile....')
|
||||
const filename = getfullname(rec)
|
||||
const filenamerel = filename.replace(/^.*[\\\/]/, '')
|
||||
@@ -353,7 +354,7 @@ export default defineComponent({
|
||||
fullscreensrc.value = getfullname(mygallery)
|
||||
}
|
||||
|
||||
function onRejected (rejectedEntries: any) {
|
||||
function onRejected(rejectedEntries: any) {
|
||||
// Notify plugin needs to be installed
|
||||
// https://quasar.dev/quasar-plugins/notify#Installation
|
||||
console.log('rejectedEntries', rejectedEntries)
|
||||
|
||||
@@ -116,12 +116,12 @@
|
||||
<div class="q-pa-sm">
|
||||
<div v-if="edit" class="q-gutter-sm " style="max-height: 200px; width: 208px;">
|
||||
<q-uploader
|
||||
label="Aggiungi Immagine"
|
||||
:label="single && (gallerylist.length > 0 && gallerylist[0].imagefile !== '') ? 'Sostituisci Immagine' : 'Aggiungi Immagine'"
|
||||
accept="image/*"
|
||||
:url="getUrl()"
|
||||
:headers="tools.getheaders()"
|
||||
:max-file-size="3000000"
|
||||
multiple
|
||||
:multiple="!single"
|
||||
auto-upload
|
||||
hide-upload-btn
|
||||
no-thumbnails
|
||||
|
||||
@@ -263,6 +263,7 @@ export default defineComponent({
|
||||
})
|
||||
|
||||
const myrow = ref(<any>null)
|
||||
const mypath = ref('')
|
||||
|
||||
/* const myrow = computed(() => {
|
||||
return props.rec && props.isrec ? props.rec : props.row
|
||||
@@ -328,6 +329,13 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
|
||||
if (props.path) {
|
||||
mypath.value = props.path
|
||||
} else {
|
||||
if (col.value.hasOwnProperty('path'))
|
||||
mypath.value = col.value.path ? col.value.path : ''
|
||||
}
|
||||
|
||||
// console.log('CMyFieldDb crea', myvalue)
|
||||
}
|
||||
|
||||
@@ -612,6 +620,9 @@ export default defineComponent({
|
||||
} else if (col.value.fieldtype === costanti.FieldType.imgcard) {
|
||||
console.log('newVal.imagefile', newVal)
|
||||
myvalue.value = newVal
|
||||
} else if (col.value.fieldtype === costanti.FieldType.image_and_filename) {
|
||||
console.log('newVal.imagefile', newVal)
|
||||
myvalue.value = newVal
|
||||
}
|
||||
|
||||
if (col.value.fieldtype === costanti.FieldType.listobj) {
|
||||
@@ -855,6 +866,7 @@ export default defineComponent({
|
||||
shared_consts,
|
||||
nameKeydown,
|
||||
gotoPage,
|
||||
mypath,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -377,7 +377,7 @@
|
||||
: ''
|
||||
"
|
||||
:title="tools.getTitleGall(table)"
|
||||
:directory="tools.getDirectoryGall(myrow, table, path)"
|
||||
:directory="tools.getDirectoryGall(myrow, table, mypath)"
|
||||
:imgGall="myvalue"
|
||||
:isInModif="isInModif"
|
||||
:edit="isviewfield() && isInModif"
|
||||
@@ -409,7 +409,71 @@
|
||||
: ''
|
||||
"
|
||||
:title="tools.getTitleGall(table)"
|
||||
:directory="tools.getDirectoryGall(myrow, table, path)"
|
||||
:directory="tools.getDirectoryGall(myrow, table, mypath)"
|
||||
:imgGall="[{ imagefile: myvalue }]"
|
||||
:edit="isviewfield()"
|
||||
:canModify="canModify"
|
||||
:isInModif="isInModif"
|
||||
:single="true"
|
||||
@update:imgGall="changevalRec"
|
||||
@showandsave="Savedb"
|
||||
>
|
||||
</CGallery>
|
||||
</div>
|
||||
<div v-else>
|
||||
<div v-if="myvalue" class="text-center">
|
||||
<q-img
|
||||
:src="myvalue"
|
||||
class="text-center"
|
||||
style="height: 100px; width: 100px"
|
||||
alt="foto"
|
||||
>
|
||||
</q-img>
|
||||
</div>
|
||||
<div v-else class="text-center">
|
||||
<q-img
|
||||
:src="
|
||||
col.showpicprofile_ifnotset
|
||||
? userStore.getImgByProfile(row['profile'], true)
|
||||
: 'images/noimg-user.svg'
|
||||
"
|
||||
class="text-center"
|
||||
style="height: 100px; width: 100px"
|
||||
alt="nessuna immagine"
|
||||
>
|
||||
</q-img>
|
||||
</div>
|
||||
<q-btn
|
||||
v-if="myvalue"
|
||||
label="Rimuovi Foto"
|
||||
color="blue"
|
||||
icon="fas fa-trash-alt"
|
||||
size="sm"
|
||||
@click="removephoto"
|
||||
></q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-else-if="col.fieldtype === costanti.FieldType.image_and_filename"
|
||||
>
|
||||
<div v-if="canEdit">
|
||||
{{ $t('reg.photo') }}
|
||||
<q-input
|
||||
v-model="myvalue"
|
||||
@update:value="changevalRec"
|
||||
@update:model-value="Savedb"
|
||||
:maxlength="col.maxlength ? col.maxlength : undefined"
|
||||
autofocus
|
||||
>
|
||||
</q-input>
|
||||
<CGallery
|
||||
:imagebak="
|
||||
col.showpicprofile_ifnotset
|
||||
? userStore.getImgByProfile(row['profile'], true)
|
||||
: ''
|
||||
"
|
||||
:title="tools.getTitleGall(table)"
|
||||
:directory="tools.getDirectoryGall(myrow, table, mypath)"
|
||||
:imgGall="[{ imagefile: myvalue }]"
|
||||
:edit="isviewfield()"
|
||||
:canModify="canModify"
|
||||
@@ -464,7 +528,7 @@
|
||||
: ''
|
||||
"
|
||||
:title="tools.getTitleGall(table)"
|
||||
:directory="tools.getDirectoryGall(myrow, table, path)"
|
||||
:directory="tools.getDirectoryGall(myrow, table, mypath)"
|
||||
:imgGall="[myvalue]"
|
||||
:edit="isviewfield()"
|
||||
:canModify="canModify"
|
||||
@@ -1055,7 +1119,7 @@
|
||||
<q-popup-edit
|
||||
v-if="!isInModif && canEdit && noPopupeditByCol(col)"
|
||||
v-model="myvalue"
|
||||
:disable="col.disable || disable"
|
||||
:disable="(col.disable || disable) || (col.fieldtype === costanti.FieldType.image_and_filename)"
|
||||
:readonly="col.disable || disable"
|
||||
:title="col.title ? col.title : col.titlepopupedit"
|
||||
buttons
|
||||
@@ -1079,8 +1143,7 @@
|
||||
col.fieldtype === costanti.FieldType.string ||
|
||||
col.fieldtype === costanti.FieldType.crypted
|
||||
"
|
||||
>
|
||||
|
||||
>
|
||||
<q-input
|
||||
v-bind="$attrs"
|
||||
counter
|
||||
@@ -1097,9 +1160,9 @@
|
||||
@keyup.enter.stop
|
||||
autofocus
|
||||
>
|
||||
<template v-if="notAllowAtChar" v-slot:prepend>
|
||||
<span class="text-h7 text-blue">@</span>
|
||||
</template>
|
||||
<template v-if="notAllowAtChar" v-slot:prepend>
|
||||
<span class="text-h7 text-blue">@</span>
|
||||
</template>
|
||||
</q-input>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === costanti.FieldType.number">
|
||||
@@ -1488,6 +1551,35 @@
|
||||
</CMyEditor>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === costanti.FieldType.image_and_filename">
|
||||
<div v-if="canEdit">
|
||||
{{ $t('reg.photo') }}
|
||||
<q-input
|
||||
v-model="myvalue"
|
||||
@update:value="changevalRec"
|
||||
:maxlength="col.maxlength ? col.maxlength : undefined"
|
||||
autofocus
|
||||
>
|
||||
</q-input>
|
||||
<CGallery
|
||||
:imagebak="
|
||||
col.showpicprofile_ifnotset
|
||||
? userStore.getImgByProfile(row['profile'], true)
|
||||
: ''
|
||||
"
|
||||
:title="tools.getTitleGall(table)"
|
||||
:directory="tools.getDirectoryGall(myrow, table, mypath)"
|
||||
:imgGall="[{ imagefile: myvalue }]"
|
||||
:edit="isviewfield()"
|
||||
:canModify="canModify"
|
||||
:isInModif="isInModif"
|
||||
:single="true"
|
||||
@update:imgGall="changevalRec"
|
||||
@showandsave="Savedb"
|
||||
>
|
||||
</CGallery>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="col.fieldtype === costanti.FieldType.color">
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
|
||||
@@ -8,6 +8,8 @@ const msg_website_enUs = {
|
||||
products: {
|
||||
quantity: 'Quantità',
|
||||
quantityAvailable: 'Disponibili',
|
||||
stockQty: 'In Magazzino',
|
||||
stockBloccatiQty: 'Bloccati In Magazzino',
|
||||
weight: 'Peso',
|
||||
stars: 'Voto',
|
||||
color: 'Colore',
|
||||
@@ -36,6 +38,7 @@ const msg_website_enUs = {
|
||||
productslist: 'Lista Prodotti',
|
||||
collabora: 'Collabora',
|
||||
storehouses: 'Magazzino',
|
||||
providers: 'Fornitori',
|
||||
departments: 'Uffici',
|
||||
orders: 'Ordini Ricevuti',
|
||||
orders2: 'Ordini Ricevuti',
|
||||
|
||||
@@ -8,6 +8,7 @@ const msg_website_es = {
|
||||
products: {
|
||||
quantity: 'Quantità',
|
||||
quantityAvailable: 'Disponibili',
|
||||
stockQty: 'In Magazzino',
|
||||
weight: 'Peso',
|
||||
stars: 'Voto',
|
||||
color: 'Colore',
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
const msg_website_it = {
|
||||
ws: {
|
||||
sitename: 'Riso',
|
||||
siteshortname: 'RISO',
|
||||
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
|
||||
sitename: 'Più che Buono',
|
||||
siteshortname: 'Più che Buono',
|
||||
description: '',
|
||||
keywords: '',
|
||||
},
|
||||
hours: {
|
||||
descr: 'Descrizione',
|
||||
@@ -16,23 +16,35 @@ const msg_website_it = {
|
||||
pages: {
|
||||
home: 'Home',
|
||||
profile: 'Profilo',
|
||||
install_site: 'Installa Sito',
|
||||
profile2: 'ProfiloU',
|
||||
mypage2: 'mypage2',
|
||||
myservice2: 'myservice2',
|
||||
myhosps2: 'myhosps2',
|
||||
mygood2: 'mygood2',
|
||||
catalogo: 'Catalogo',
|
||||
fundraising: 'Sostieni il Progetto',
|
||||
notifs: 'Configura le Notifiche',
|
||||
unsubscribe: 'Disiscriviti',
|
||||
unsubscribe_user: 'Disiscriviti User',
|
||||
test: 'Test',
|
||||
projects: 'Progetti',
|
||||
report: 'Report Ore',
|
||||
producer: 'Produttore',
|
||||
orderinfo: 'Ordini Effettuati',
|
||||
products: 'Prodotti',
|
||||
cash: 'Cassa',
|
||||
productInfos: 'Info Prodotti',
|
||||
listinoprodotti: 'Listino Prodotti',
|
||||
productslist: 'Lista Prodotti',
|
||||
collabora: 'Collabora',
|
||||
categories: 'Categorie',
|
||||
storehouses: 'Magazzino',
|
||||
providers: 'Fornitori',
|
||||
catprods: 'Categorie',
|
||||
subcatprods: 'Sotto-Categorie',
|
||||
gasordine: 'Gas Ordine',
|
||||
scontisticas: 'Scontistica',
|
||||
departments: 'Uffici',
|
||||
orders: 'Ordini Ricevuti',
|
||||
orders2: 'Ordini Ricevuti',
|
||||
@@ -121,9 +133,11 @@ const msg_website_it = {
|
||||
only_residenti: 'Solo Residenti',
|
||||
only_consiglio: 'Solo Consiglieri',
|
||||
color: 'Colore',
|
||||
gasordini: 'Gas Ordini',
|
||||
gestoreordini: 'Gestore Ordini',
|
||||
},
|
||||
msg: {
|
||||
myAppName: 'Riso',
|
||||
myAppName: 'Più che Buono',
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
|
||||
@@ -7,30 +7,6 @@ import {
|
||||
import { func } from '@store/Modules/fieldsTable'
|
||||
|
||||
|
||||
// const SHOW_PROJINTHEMENU = false
|
||||
//
|
||||
// let arrlistafavourite = []
|
||||
// let arrlistaprojtutti = []
|
||||
// let arrlistaprojmiei = []
|
||||
// if (SHOW_PROJINTHEMENU) {
|
||||
// arrlistaprojtutti = Projects.getters.listaprojects(RouteNames.projectsall)
|
||||
// arrlistaprojmiei = Projects.getters.listaprojects(RouteNames.myprojects)
|
||||
// arrlistafavourite = Projects.getters.listaprojects(RouteNames.favouriteprojects)
|
||||
// }
|
||||
// PROGETTI -> FAVORITI :
|
||||
|
||||
// if (arrlistafavourite.length > 0) {
|
||||
// arrMenu.push({
|
||||
// icon: 'favorite_border',
|
||||
// nametranslate: 'pages.' + RouteNames.favouriteprojects,
|
||||
// urlroute: RouteNames.favouriteprojects,
|
||||
// level_parent: 0.0,
|
||||
// level_child: 0.5,
|
||||
// routes2: arrlistafavourite,
|
||||
// idelem: ''
|
||||
// })
|
||||
// }
|
||||
|
||||
const firstPage = {
|
||||
active: true,
|
||||
order: 5,
|
||||
@@ -57,72 +33,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 400,
|
||||
path: '/test',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.test',
|
||||
component: () => import('@/views/testServer/testServer.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 12,
|
||||
path: '/goods',
|
||||
materialIcon: 'fas fa-tshirt',
|
||||
name: 'mypages.goods',
|
||||
component: () => import('@/root/goods/goods.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 15,
|
||||
path: '/services',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.services',
|
||||
component: () => import('@/root/services/services.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 15,
|
||||
path: '/provapao',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.provapao',
|
||||
component: () => import('@/root/provapao/provapao.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 15,
|
||||
path: '/hosps',
|
||||
materialIcon: 'fas fa-bed',
|
||||
name: 'mypages.hosp',
|
||||
component: () => import('@/root/hosp/hosp.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.enableCircuits,
|
||||
order: 16,
|
||||
path: '/circuits',
|
||||
materialIcon: 'fas fa-coins',
|
||||
name: 'mypages.circuits',
|
||||
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
/*{
|
||||
active: true,
|
||||
order: 20,
|
||||
path: '/events',
|
||||
@@ -132,6 +43,17 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},*/
|
||||
{
|
||||
active: site.confpages && site.confpages.showProfile,
|
||||
order: 120,
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
@@ -145,18 +67,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 120,
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
active: site.confpages && site.confpages.showProfile,
|
||||
order: 120,
|
||||
path: '/editprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
@@ -167,7 +78,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
active: site.confpages && site.confpages.showiscrittiMenu,
|
||||
order: 130,
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
@@ -177,6 +88,19 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.enableCircuits,
|
||||
order: 16,
|
||||
path: '/circuits',
|
||||
materialIcon: 'fas fa-coins',
|
||||
name: 'mypages.circuits',
|
||||
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
onlyAdmin: true,
|
||||
onlyManager: true,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.enableGroups,
|
||||
order: 132,
|
||||
@@ -187,6 +111,8 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: false,
|
||||
onlyAdmin: true,
|
||||
onlyManager: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
|
||||
@@ -781,6 +781,7 @@ export interface IColGridTable {
|
||||
showpicprofile_ifnotset?: boolean
|
||||
extrafield?: string
|
||||
tipoconto?: number
|
||||
path?: string
|
||||
}
|
||||
|
||||
export interface ITableRec {
|
||||
|
||||
@@ -358,7 +358,8 @@ export default defineComponent({
|
||||
if (opt.iseuro) {
|
||||
valstr = tools.convertPriceEurToValue(valstr)
|
||||
}
|
||||
valstr = tools.removeescape(tools.addslashes(valstr))
|
||||
valstr = tools.removeescape(valstr)
|
||||
// valstr = tools.addslashes(valstr)
|
||||
if (!opt.primo)
|
||||
risultato += ', '
|
||||
|
||||
|
||||
@@ -374,6 +374,7 @@ export const costanti = {
|
||||
listimages: 1024,
|
||||
exact: 2048,
|
||||
image: 3000,
|
||||
image_and_filename: 3100,
|
||||
imgcard: 3500,
|
||||
select_by_server: 4000,
|
||||
multiselect_by_server: 4010,
|
||||
|
||||
@@ -101,6 +101,7 @@ function AddCol(params: IColGridTable) {
|
||||
minlength: (params.minlength === undefined) ? 0 : params.minlength,
|
||||
filter_field: (params.filter_field === undefined) ? '' : params.filter_field,
|
||||
isadvanced_field: (params.isadvanced_field === undefined) ? false : params.isadvanced_field,
|
||||
path: (params.path === undefined) ? '' : params.path,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2040,7 +2041,7 @@ export const colTableProductInfos = [
|
||||
AddCol({ name: 'name', label_trans: 'products.name' }),
|
||||
AddCol({ name: 'description', label_trans: 'products.description', fieldtype: costanti.FieldType.html }),
|
||||
AddCol({ name: 'icon', label_trans: 'products.icon' }),
|
||||
AddCol({ name: 'img', label_trans: 'products.img' }),
|
||||
AddCol({ name: 'img', label_trans: 'products.img', fieldtype: costanti.FieldType.image_and_filename, path: 'upload/products/' }),
|
||||
AddCol({
|
||||
name: 'department',
|
||||
label_trans: 'products.department',
|
||||
|
||||
@@ -8363,6 +8363,15 @@ export const tools = {
|
||||
return inputString.replace(/[^\d.,]/g, '').replace(',', '.');
|
||||
},
|
||||
|
||||
escapeQuotes(stringa: string) {
|
||||
return stringa.replace(/"/g, '\\"');
|
||||
},
|
||||
|
||||
replaceQuotesWithSingleQuotes(jsonString: string) {
|
||||
return jsonString.replace(/"/g, "'");
|
||||
},
|
||||
|
||||
|
||||
removeescape(inputString: string): string {
|
||||
return inputString.replace('\\', '').replace(/"/g, '')
|
||||
},
|
||||
|
||||