HTML Editor go on
This commit is contained in:
72
package.json
72
package.json
@@ -22,55 +22,55 @@
|
|||||||
"generate-sw": "workbox generateSW workbox-config.js"
|
"generate-sw": "workbox generateSW workbox-config.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@quasar/extras": "^1.15.2",
|
"@quasar/extras": "^1.15.5",
|
||||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13",
|
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13",
|
||||||
"@vue-leaflet/vue-leaflet": "^0.6.1",
|
"@vue-leaflet/vue-leaflet": "^0.6.1",
|
||||||
"@vue/compat": "^3.2.38",
|
"@vue/compat": "^3.2.45",
|
||||||
"@vue/compiler-sfc": "^3.2.38",
|
"@vue/compiler-sfc": "^3.2.45",
|
||||||
"@vue/eslint-config-standard": "7.0.0",
|
"@vue/eslint-config-standard": "7.0.0",
|
||||||
"@vuelidate/core": "^2.0.0-alpha.44",
|
"@vuelidate/core": "^2.0.0",
|
||||||
"@vuelidate/validators": "^2.0.0-alpha.31",
|
"@vuelidate/validators": "^2.0.0",
|
||||||
"acorn": "^8.8.0",
|
"acorn": "^8.8.1",
|
||||||
"autoprefixer": "^10.4.8",
|
"autoprefixer": "^10.4.13",
|
||||||
"axios": "^0.27.2",
|
"axios": "^1.1.3",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
"chart.js": "^3.9.1",
|
"chart.js": "^3.9.1",
|
||||||
"core-js": "^3.25.0",
|
"core-js": "^3.26.0",
|
||||||
"date-fns": "^2.29.2",
|
"date-fns": "^2.29.3",
|
||||||
"dotenv": "^16.0.2",
|
"dotenv": "^16.0.3",
|
||||||
"echarts": "^5.3.3",
|
"echarts": "^5.4.0",
|
||||||
"eslint-plugin-quasar": "^1.1.0",
|
"eslint-plugin-quasar": "^1.1.0",
|
||||||
"eslint-plugin-standard": "^5.0.0",
|
"eslint-plugin-standard": "^5.0.0",
|
||||||
"graphql": "^16.6.0",
|
"graphql": "^16.6.0",
|
||||||
"graphql-tag": "^2.12.6",
|
"graphql-tag": "^2.12.6",
|
||||||
"gsap": "^3.11.1",
|
"gsap": "^3.11.3",
|
||||||
"jquery": "^3.6.1",
|
"jquery": "^3.6.1",
|
||||||
"js-cookie": "^3.0.1",
|
"js-cookie": "^3.0.1",
|
||||||
"localforage": "^1.10.0",
|
"localforage": "^1.10.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"npm": "^8.19.1",
|
"npm": "^9.1.1",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"pinia": "^2.0.22",
|
"pinia": "^2.0.23",
|
||||||
"prerender-spa-plugin": "^3.4.0",
|
"prerender-spa-plugin": "^3.4.0",
|
||||||
"quasar": "^2.7.7",
|
"quasar": "^2.10.1",
|
||||||
"quasar-extras": "^2.0.9",
|
"quasar-extras": "^2.0.9",
|
||||||
"register-service-worker": "^1.7.2",
|
"register-service-worker": "^1.7.2",
|
||||||
"vee-validate": "^4.6.7",
|
"vee-validate": "^4.7.2",
|
||||||
"vue": "^3.2.38",
|
"vue": "^3.2.45",
|
||||||
"vue-chart-3": "^3.1.8",
|
"vue-chart-3": "^3.1.8",
|
||||||
"vue-class-component": "^8.0.0-rc.1",
|
"vue-class-component": "^8.0.0-rc.1",
|
||||||
"vue-country-code": "^1.1.3",
|
"vue-country-code": "^1.1.3",
|
||||||
"vue-echarts": "^6.2.3",
|
"vue-echarts": "^6.2.3",
|
||||||
"vue-i18n": "^9.2.2",
|
"vue-i18n": "^9.2.2",
|
||||||
"vue-idb": "^0.2.0",
|
"vue-idb": "^0.2.0",
|
||||||
"vue-loader": "^17.0.0",
|
"vue-loader": "^17.0.1",
|
||||||
"vue-property-decorator": "^10.0.0-rc.3",
|
"vue-property-decorator": "^10.0.0-rc.3",
|
||||||
"vue-router": "^4.1.5",
|
"vue-router": "^4.1.6",
|
||||||
"vue-scroll-reveal": "^1.0.11",
|
"vue-scroll-reveal": "^1.0.11",
|
||||||
"vue-svgicon": "^4.0.0-alpha.3",
|
"vue-svgicon": "^4.0.0-alpha.3",
|
||||||
"vue2-dragula": "^2.5.5",
|
"vue2-dragula": "^2.5.5",
|
||||||
"vuex": "^4.0.2",
|
"vuex": "^4.1.0",
|
||||||
"vuex-router-sync": "^6.0.0-rc.1"
|
"vuex-router-sync": "^6.0.0-rc.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -78,41 +78,41 @@
|
|||||||
"@types/bcryptjs": "^2.4.2",
|
"@types/bcryptjs": "^2.4.2",
|
||||||
"@types/dotenv": "^8.2.0",
|
"@types/dotenv": "^8.2.0",
|
||||||
"@types/googlemaps": "^3.43.3",
|
"@types/googlemaps": "^3.43.3",
|
||||||
"@types/jest": "^29.0.0",
|
"@types/jest": "^29.2.2",
|
||||||
"@types/js-cookie": "^3.0.2",
|
"@types/js-cookie": "^3.0.2",
|
||||||
"@types/node": "18.7.15",
|
"@types/node": "18.11.9",
|
||||||
"@types/nprogress": "^0.2.0",
|
"@types/nprogress": "^0.2.0",
|
||||||
"@types/vue-tel-input": "^2.1.2",
|
"@types/vue-tel-input": "^2.1.2",
|
||||||
"@types/vuelidate": "^0.7.15",
|
"@types/vuelidate": "^0.7.15",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.36.2",
|
"@typescript-eslint/eslint-plugin": "^5.42.1",
|
||||||
"@typescript-eslint/parser": "^5.36.2",
|
"@typescript-eslint/parser": "^5.42.1",
|
||||||
"eslint": "^8.23.0",
|
"eslint": "^8.27.0",
|
||||||
"eslint-config-prettier": "^8.5.0",
|
"eslint-config-prettier": "^8.5.0",
|
||||||
"eslint-plugin-import": "^2.26.0",
|
"eslint-plugin-import": "^2.26.0",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"eslint-plugin-promise": "^6.0.1",
|
"eslint-plugin-promise": "^6.1.1",
|
||||||
"eslint-plugin-vue": "^9.4.0",
|
"eslint-plugin-vue": "^9.7.0",
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
"html-webpack-plugin": "^5.5.0",
|
"html-webpack-plugin": "^5.5.0",
|
||||||
"http-proxy-middleware": "^2.0.6",
|
"http-proxy-middleware": "^2.0.6",
|
||||||
"jest": "^29.0.2",
|
"jest": "^29.3.1",
|
||||||
"json-loader": "^0.5.7",
|
"json-loader": "^0.5.7",
|
||||||
"node-sass": "7.0.1",
|
"node-sass": "7.0.1",
|
||||||
"npm-check-updates": "^16.1.0",
|
"npm-check-updates": "^16.3.25",
|
||||||
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
||||||
"postcss": "^8.4.16",
|
"postcss": "^8.4.19",
|
||||||
"postcss-loader": "^7.0.1",
|
"postcss-loader": "^7.0.1",
|
||||||
"sass-loader": "^13.0.2",
|
"sass-loader": "^13.2.0",
|
||||||
"strip-ansi": "=7.0.1",
|
"strip-ansi": "=7.0.1",
|
||||||
"ts-jest": "^28.0.8",
|
"ts-jest": "^29.0.3",
|
||||||
"ts-loader": "^9.3.1",
|
"ts-loader": "^9.4.1",
|
||||||
"tslint": "^6.1.3",
|
"tslint": "^6.1.3",
|
||||||
"tslint-config-standard": "^9.0.0",
|
"tslint-config-standard": "^9.0.0",
|
||||||
"tslint-loader": "^3.5.4",
|
"tslint-loader": "^3.5.4",
|
||||||
"typescript": "^4.8.2",
|
"typescript": "^4.8.4",
|
||||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||||
"vueify": "^9.4.1",
|
"vueify": "^9.4.1",
|
||||||
"webpack": "^5.74.0",
|
"webpack": "^5.75.0",
|
||||||
"workbox-webpack-plugin": "^6.5.4"
|
"workbox-webpack-plugin": "^6.5.4"
|
||||||
},
|
},
|
||||||
"browser": {
|
"browser": {
|
||||||
|
|||||||
BIN
public/images/nuda_e_cruda.jpeg
Normal file
BIN
public/images/nuda_e_cruda.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 311 KiB |
@@ -49,7 +49,7 @@ export function UseAxios(router: any) { // VueRouter
|
|||||||
|
|
||||||
if (response) {
|
if (response) {
|
||||||
if (response.status === 401 && handle(response.status, exclude)) {
|
if (response.status === 401 && handle(response.status, exclude)) {
|
||||||
const location: string = response.headers.location || response.headers.Location
|
const location: string | undefined = response.headers.location || response.headers.Location
|
||||||
|
|
||||||
if (location) {
|
if (location) {
|
||||||
const redirectTo = `/${location}`
|
const redirectTo = `/${location}`
|
||||||
|
|||||||
@@ -1204,6 +1204,10 @@ export const shared_consts = {
|
|||||||
value: 30,
|
value: 30,
|
||||||
label: 'Immagine',
|
label: 'Immagine',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: 35,
|
||||||
|
label: 'Immagine da Caricare',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
value: 40,
|
value: 40,
|
||||||
label: 'Separatore',
|
label: 'Separatore',
|
||||||
@@ -1262,6 +1266,7 @@ export const shared_consts = {
|
|||||||
TEXT: 10,
|
TEXT: 10,
|
||||||
HTML: 20,
|
HTML: 20,
|
||||||
IMAGE: 30,
|
IMAGE: 30,
|
||||||
|
IMAGEUPLOAD: 35,
|
||||||
SEPARATOR: 40,
|
SEPARATOR: 40,
|
||||||
VIDEO: 50,
|
VIDEO: 50,
|
||||||
PAGE: 55,
|
PAGE: 55,
|
||||||
@@ -1283,6 +1288,7 @@ export const shared_consts = {
|
|||||||
RIGHT: 3,
|
RIGHT: 3,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
getStatusStr(status: number) {
|
getStatusStr(status: number) {
|
||||||
const trovatorec = this.OrderStatusStr.find((rec) => rec.value === status)
|
const trovatorec = this.OrderStatusStr.find((rec) => rec.value === status)
|
||||||
return (trovatorec) ? trovatorec.label : ''
|
return (trovatorec) ? trovatorec.label : ''
|
||||||
|
|||||||
482
src/components/CMyEditElem/CMyEditElem.scss
Executable file
482
src/components/CMyEditElem/CMyEditElem.scss
Executable file
@@ -0,0 +1,482 @@
|
|||||||
|
|
||||||
|
.testo-banda {
|
||||||
|
//background: -webkit-gradient(linear, left top, left bottom, from(#3144f0), to(transparent));
|
||||||
|
//background: linear-gradient(180deg, #3144f0, transparent);
|
||||||
|
//background: rgba(0, 0, 0, .6)
|
||||||
|
}
|
||||||
|
|
||||||
|
$grayshadow: #555;
|
||||||
|
|
||||||
|
$textcol: blue;
|
||||||
|
$textcol_scuro: darkblue;
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0 0 1.25rem;
|
||||||
|
//text-shadow: .125rem .125rem .25rem $grayshadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mycard {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing {
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing_background {
|
||||||
|
background: #000 url(../../../public/images/foto1.jpg) no-repeat 50% fixed;
|
||||||
|
background-size: cover
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing > section {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center;
|
||||||
|
//padding: 0 16px
|
||||||
|
}
|
||||||
|
|
||||||
|
.intro {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: stretch;
|
||||||
|
/* flex-flow: row nowrap; */
|
||||||
|
|
||||||
|
padding: 1.25rem 0 1.25rem 0;
|
||||||
|
margin: .125rem;
|
||||||
|
|
||||||
|
* {
|
||||||
|
width: 100%;
|
||||||
|
flex: 1;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__associazione {
|
||||||
|
min-width: 350px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__comeassociarsi {
|
||||||
|
min-width: 350px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.subtitle {
|
||||||
|
font-weight: 600;
|
||||||
|
text-align: center;
|
||||||
|
letter-spacing: 0.125rem;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing > section.padding {
|
||||||
|
padding: 5.62rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing > section.padding_testo {
|
||||||
|
padding-top: 1.25rem;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing > section.padding_gallery {
|
||||||
|
padding-top: 3.125rem;
|
||||||
|
padding-bottom: 5.625rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing > section > div {
|
||||||
|
position: relative;
|
||||||
|
width: 100%
|
||||||
|
}
|
||||||
|
|
||||||
|
.maxwidth1200 {
|
||||||
|
max-width: 1200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__toolbar {
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(#000), to(transparent));
|
||||||
|
background: linear-gradient(180deg, #000, transparent);
|
||||||
|
padding: 0 !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__toolbar .q-btn {
|
||||||
|
border-radius: 0 0 .315rem .315rem;
|
||||||
|
-ms-flex-item-align: stretch;
|
||||||
|
align-self: stretch
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__hero {
|
||||||
|
min-height: 50vh
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__header {
|
||||||
|
height: 18vh
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__arrow {
|
||||||
|
bottom: 1.5rem;
|
||||||
|
opacity: .4
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__front {
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(15%, rgba(0, 0, 0, .6)));
|
||||||
|
background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .6) 15%)
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__logo {
|
||||||
|
width: 9.40rem;
|
||||||
|
height: 9.40rem;
|
||||||
|
margin-top: 1.315rem;
|
||||||
|
//-webkit-animation: logo-rotate 240s linear infinite;
|
||||||
|
//animation: logo-rotate 240s linear infinite
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__features .q-icon {
|
||||||
|
font-size: 4rem
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
line-height: 1.5;
|
||||||
|
text-shadow: .25rem .25rem .5rem $grayshadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__features h4, .landing__features h6 {
|
||||||
|
margin: 1rem 0
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__features p {
|
||||||
|
opacity: .7;
|
||||||
|
font-size: 1rem;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__footer {
|
||||||
|
//background: -webkit-gradient(linear, left top, left bottom, color-stop(65%, rgba(0, 0, 0, .1)), to(#000));
|
||||||
|
background: linear-gradient(180deg, rgba(0, 0, 0, .8) 95%, #FFF);
|
||||||
|
padding-top: 4.5rem !important;
|
||||||
|
padding-bottom: 4.5rem !important;
|
||||||
|
padding-left: 1.25rem;
|
||||||
|
padding-right: 1.25rem;
|
||||||
|
color: #9f9f9f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon_contact:hover {
|
||||||
|
color: blue;
|
||||||
|
border-color: white;
|
||||||
|
border-width: .0625rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__footer .doc-link {
|
||||||
|
color: $textcol;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__footer .doc-link:hover {
|
||||||
|
opacity: .8
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__swirl-bg {
|
||||||
|
background-repeat: no-repeat !important;
|
||||||
|
background-position: top;
|
||||||
|
background-size: contain !important;
|
||||||
|
background-image: url(../../../public/images/landing_first_section.png) !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.feat-descr {
|
||||||
|
font-size: 1.15rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.feat-descr:hover {
|
||||||
|
transition: opacity 0.5s ease-in-out;
|
||||||
|
opacity: 0.9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.q-col-gutter-sm {
|
||||||
|
padding: 3.125rem 3.125rem;
|
||||||
|
//margin-left: -48px
|
||||||
|
}
|
||||||
|
|
||||||
|
body.mobile .landing {
|
||||||
|
//background: unset
|
||||||
|
}
|
||||||
|
|
||||||
|
body.mobile .landing:before {
|
||||||
|
content: "";
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
height: 100vh;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: -1;
|
||||||
|
//background: #000 url(../../public/images/cover.jpg) 50%;
|
||||||
|
|
||||||
|
background-size: cover
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@-webkit-keyframes logo-rotate {
|
||||||
|
to {
|
||||||
|
-webkit-transform: rotate(-1turn);
|
||||||
|
transform: rotate(-1turn)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes logo-rotate {
|
||||||
|
to {
|
||||||
|
-webkit-transform: rotate(-1turn);
|
||||||
|
transform: rotate(-1turn)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
.home {
|
||||||
|
//background-color: rgb(250, 250, 250);
|
||||||
|
padding: 3.125rem;
|
||||||
|
display: flex;
|
||||||
|
//flex-wrap: nowrap;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-start {
|
||||||
|
margin: 3.125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shadow {
|
||||||
|
//color: white;
|
||||||
|
text-shadow: 0.125rem 0.125rem 0.25rem $grayshadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-h1, h1 {
|
||||||
|
font-size: 3rem;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 3rem;
|
||||||
|
letter-spacing: -.01562em;
|
||||||
|
margin-bottom: 8px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-h2 {
|
||||||
|
font-size: 3.75rem;
|
||||||
|
font-weight: 300;
|
||||||
|
line-height: 3.75rem;
|
||||||
|
letter-spacing: -.00833em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-weight-bold {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-vers {
|
||||||
|
font-size: 0.75rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.75rem;
|
||||||
|
letter-spacing: .00937em;
|
||||||
|
text-shadow: .25rem .25rem .5rem $grayshadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.homep-cover-img-1 {
|
||||||
|
background: #000 url(../../../public/images/foto1.jpg) no-repeat 50% fixed;
|
||||||
|
//transition: background-image 1s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.homep-cover-img-2 {
|
||||||
|
background: #000 url(../../../public/images/foto2.jpg) no-repeat 50% fixed;
|
||||||
|
//transition: background-image 1s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.homep-cover-img-3 {
|
||||||
|
background: #000 url(../../../public/images/foto3.jpg) no-repeat 50% fixed;
|
||||||
|
//transition: background-image 1s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.homep-cover-img.hide-filter:before {
|
||||||
|
opacity: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__footer-icons {
|
||||||
|
font-size: 1.75rem
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__footer-icons a {
|
||||||
|
margin: 0 .5rem .5rem;
|
||||||
|
text-decoration: none;
|
||||||
|
outline: 0;
|
||||||
|
color: $textcol;
|
||||||
|
transition: color .28s
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__footer-icons a:hover {
|
||||||
|
color: $textcol_scuro;
|
||||||
|
}
|
||||||
|
|
||||||
|
.doc-img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mylist {
|
||||||
|
background: #3fdaff;
|
||||||
|
padding-left: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clgutter {
|
||||||
|
margin-top: 1.25rem;
|
||||||
|
padding: .62rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.carousel_img_3 {
|
||||||
|
//background-image: url(../../public/images/cibo_sano.jpg);
|
||||||
|
background-size: cover !important;
|
||||||
|
background-position: 50% center !important;
|
||||||
|
background-repeat: no-repeat !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 718px) {
|
||||||
|
// PER VERSIONE MOBILE
|
||||||
|
|
||||||
|
.landing__hero {
|
||||||
|
text-align: center
|
||||||
|
}
|
||||||
|
.landing__header {
|
||||||
|
height: 7vh
|
||||||
|
}
|
||||||
|
.clgutter {
|
||||||
|
margin-top: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.landing__hero .text-h1, h1 {
|
||||||
|
font-size: 2rem;
|
||||||
|
line-height: 2.05rem;
|
||||||
|
margin-bottom: 1.25rem
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing > section.padding {
|
||||||
|
padding: 2.5rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing > section.padding_testo {
|
||||||
|
padding-top: 1.25rem;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing > section.padding_gallery {
|
||||||
|
padding-top: 3.125rem;
|
||||||
|
padding-bottom: 5.625rem;
|
||||||
|
|
||||||
|
max-width: 800px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing > section.padding_gallery > div {
|
||||||
|
padding-top: 3.125rem;
|
||||||
|
padding-bottom: 5.625rem;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing__features h4, .landing__features h6 {
|
||||||
|
margin: 1.25rem 0
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
line-height: 1.4;
|
||||||
|
text-shadow: 0.25rem 0.25rem 0.5rem $grayshadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing .feature-item {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 1.25rem;
|
||||||
|
}
|
||||||
|
.landing__hero-content {
|
||||||
|
padding-bottom: 11.25rem;
|
||||||
|
}
|
||||||
|
.landing__hero2-content {
|
||||||
|
padding-bottom: 7.25rem;
|
||||||
|
}
|
||||||
|
.landing__hero-btns {
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center
|
||||||
|
}
|
||||||
|
|
||||||
|
.q-col-gutter-sm {
|
||||||
|
padding: .625rem .315rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-subtitle1 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
.text-vers {
|
||||||
|
font-size: 0.6rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-caption {
|
||||||
|
text-align: center;
|
||||||
|
padding: .75rem;
|
||||||
|
color: $textcol;
|
||||||
|
background-color: rgba(0, 0, 0, .3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sfondo-grigio {
|
||||||
|
padding: 1rem;
|
||||||
|
color: $textcol;
|
||||||
|
background-color: rgba(0, 0, 0, .35);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mycontacts {
|
||||||
|
color: gray;
|
||||||
|
letter-spacing: 0.078rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mycontacts_title {
|
||||||
|
text-shadow: 0.125rem 0.125rem 0.125rem #555;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #999;
|
||||||
|
letter-spacing: 0.125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mycontacts_text {
|
||||||
|
color: #999;
|
||||||
|
letter-spacing: 0.093rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clEditDiv {
|
||||||
|
border: #c8c9cb solid 2px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clEditNotActive {
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clEdit {
|
||||||
|
border: #f69f09 solid 2px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clEdit:hover {
|
||||||
|
border: #11f609 solid 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align_center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align_right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align_left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex3 {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
background-color: green;
|
||||||
|
}
|
||||||
259
src/components/CMyEditElem/CMyEditElem.ts
Executable file
259
src/components/CMyEditElem/CMyEditElem.ts
Executable file
@@ -0,0 +1,259 @@
|
|||||||
|
import {
|
||||||
|
defineComponent, onMounted, PropType, ref, toRef, watch,
|
||||||
|
} from 'vue'
|
||||||
|
|
||||||
|
import { ILabelValue, IMyElem, IMyPage, IOperators } from '@src/model'
|
||||||
|
import { useGlobalStore } from '@store/globalStore'
|
||||||
|
|
||||||
|
import { CImgTitle } from '../CImgTitle/index'
|
||||||
|
import { CTitle } from '@/components/CTitle/index'
|
||||||
|
import { tools } from '@store/Modules/tools'
|
||||||
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
|
import { LandingFooter } from '@/components/LandingFooter'
|
||||||
|
import { COpenStreetMap } from '@src/components/COpenStreetMap'
|
||||||
|
import { CCardCarousel } from '@src/components/CCardCarousel'
|
||||||
|
import { CMyPage } from '@src/components/CMyPage'
|
||||||
|
import { CMyPageIntro } from '@src/components/CMyPageIntro'
|
||||||
|
import { CEventsCalendar } from '@src/components/CEventsCalendar'
|
||||||
|
import { CMyEditor } from '@src/components/CMyEditor'
|
||||||
|
import { CMyFieldRec } from '@src/components/CMyFieldRec'
|
||||||
|
import { CSelectColor } from '@src/components/CSelectColor'
|
||||||
|
import { CSelectFontSize } from '@src/components/CSelectFontSize'
|
||||||
|
|
||||||
|
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||||
|
import MixinBase from '@/mixins/mixin-base'
|
||||||
|
import { useQuasar } from 'quasar'
|
||||||
|
import { useI18n } from '@/boot/i18n'
|
||||||
|
import { emitKeypressEvents } from 'readline'
|
||||||
|
import { costanti } from '@costanti'
|
||||||
|
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'CMyEditElem',
|
||||||
|
components: { CImgTitle, CTitle, LandingFooter, CEventsCalendar,
|
||||||
|
CCardCarousel, COpenStreetMap, CMyPage, CMyPageIntro, CMyEditor, CMyFieldRec,
|
||||||
|
CSelectColor, CSelectFontSize },
|
||||||
|
emits: ['saveElem'],
|
||||||
|
props: {
|
||||||
|
myelem: {
|
||||||
|
type: Object as PropType<IMyElem>,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
path: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
editOn: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
addOn: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup(props, { emit }) {
|
||||||
|
const globalStore = useGlobalStore()
|
||||||
|
|
||||||
|
const { setmeta, getsrcbyimg } = MixinMetaTags()
|
||||||
|
const { setValDb, getValDb } = MixinBase()
|
||||||
|
|
||||||
|
|
||||||
|
const $q = useQuasar()
|
||||||
|
const { t } = useI18n()
|
||||||
|
|
||||||
|
const animare = ref(0)
|
||||||
|
const slide = ref(0)
|
||||||
|
const slide2 = ref(0)
|
||||||
|
const arrPages = ref([] as any[])
|
||||||
|
const disableSave = ref(true)
|
||||||
|
const enableEdit = ref(true)
|
||||||
|
const elemChanged = ref(false)
|
||||||
|
const enableAdd = ref(true)
|
||||||
|
|
||||||
|
const neworder = ref(<number|undefined>0)
|
||||||
|
|
||||||
|
const myel = toRef(props, 'myelem')
|
||||||
|
const newtype = ref(<any>'')
|
||||||
|
|
||||||
|
watch(() => myel.value.order, (value, oldval) => {
|
||||||
|
mounted()
|
||||||
|
})
|
||||||
|
|
||||||
|
function getArrDisciplines() {
|
||||||
|
return globalStore.disciplines.filter((rec: any) => rec.showinhome)
|
||||||
|
}
|
||||||
|
|
||||||
|
function getheightgallery() {
|
||||||
|
if (tools.isMobile())
|
||||||
|
return '400px'
|
||||||
|
else
|
||||||
|
return '600px'
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveElem(exit?: boolean) {
|
||||||
|
// Save Elem record
|
||||||
|
const myelem = props.myelem
|
||||||
|
myelem.order = neworder.value
|
||||||
|
globalStore.saveMyElem($q, t, myelem).then((ris) => {
|
||||||
|
if (ris) {
|
||||||
|
// OK
|
||||||
|
disableSave.value = true
|
||||||
|
emit('saveElem', myelem)
|
||||||
|
if (exit)
|
||||||
|
elemChanged.value = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function addNewElem(order?: number) {
|
||||||
|
|
||||||
|
const newrec: IMyElem = {
|
||||||
|
_id: undefined,
|
||||||
|
type: newtype.value,
|
||||||
|
path: props.myelem.path,
|
||||||
|
order: order ? order : 1000,
|
||||||
|
active: true,
|
||||||
|
container: ''
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newrec.type === shared_consts.ELEMTYPE.CAROUSEL_IMGS) {
|
||||||
|
newrec.container2 = '8'
|
||||||
|
newrec.height = 600
|
||||||
|
} else if (newrec.type === shared_consts.ELEMTYPE.CARD) {
|
||||||
|
newrec.class2 = 'row justify-center'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
globalStore.addNewElem($q, t, newrec)
|
||||||
|
}
|
||||||
|
|
||||||
|
function dupElem(order?: number) {
|
||||||
|
|
||||||
|
const newrec = props.myelem
|
||||||
|
|
||||||
|
newrec._id = undefined
|
||||||
|
newrec.order = order ? order : newrec.order! + 10
|
||||||
|
|
||||||
|
globalStore.addNewElem($q, t, newrec)
|
||||||
|
}
|
||||||
|
|
||||||
|
function delElem() {
|
||||||
|
$q.dialog({
|
||||||
|
message: 'Eliminare ' + props.myelem.container + ' ?',
|
||||||
|
html: true,
|
||||||
|
ok: {
|
||||||
|
label: 'Elimina',
|
||||||
|
push: true,
|
||||||
|
},
|
||||||
|
title: '',
|
||||||
|
cancel: true,
|
||||||
|
persistent: false,
|
||||||
|
}).onOk(async () => {
|
||||||
|
|
||||||
|
// Save Elem record
|
||||||
|
await globalStore.delMyElem($q, t, props.myelem).then((ris) => {
|
||||||
|
if (ris) {
|
||||||
|
// OK
|
||||||
|
disableSave.value = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function modifElem(value: any) {
|
||||||
|
disableSave.value = false
|
||||||
|
elemChanged.value = true
|
||||||
|
}
|
||||||
|
|
||||||
|
function mounted() {
|
||||||
|
neworder.value = props.myelem.order
|
||||||
|
|
||||||
|
arrPages.value = []
|
||||||
|
arrPages.value.push({label: '[Vuoto]', path: ''})
|
||||||
|
for (const page of globalStore.mypage) {
|
||||||
|
|
||||||
|
const rec = {
|
||||||
|
// @ts-ignore
|
||||||
|
label: page.title,
|
||||||
|
// @ts-ignore
|
||||||
|
value: page.path
|
||||||
|
}
|
||||||
|
arrPages.value.push(rec)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (props.myelem)
|
||||||
|
newtype.value = props.myelem.type
|
||||||
|
}
|
||||||
|
|
||||||
|
function clickOnElem() {
|
||||||
|
if (props.editOn) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function addNewCard() {
|
||||||
|
if (!myel.value.listcards)
|
||||||
|
myel.value.listcards = []
|
||||||
|
myel.value.listcards.push({ imagefile: '', alt: '', description: '' })
|
||||||
|
modifElem(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
function getClass() {
|
||||||
|
let mycl = ''
|
||||||
|
if (props.myelem.align === shared_consts.ALIGNTYPE.CEHTER) {
|
||||||
|
mycl += ' align_center'
|
||||||
|
} else if (props.myelem.align === shared_consts.ALIGNTYPE.RIGHT) {
|
||||||
|
mycl += ' align_right'
|
||||||
|
} else if (props.myelem.align === shared_consts.ALIGNTYPE.LEFT) {
|
||||||
|
mycl += ' align_left'
|
||||||
|
}
|
||||||
|
|
||||||
|
return mycl
|
||||||
|
}
|
||||||
|
|
||||||
|
function showFit() {
|
||||||
|
if (props.myelem.type)
|
||||||
|
return [shared_consts.ELEMTYPE.TEXT].includes(props.myelem.type)
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(mounted)
|
||||||
|
|
||||||
|
return {
|
||||||
|
tools,
|
||||||
|
shared_consts,
|
||||||
|
getArrDisciplines,
|
||||||
|
getheightgallery,
|
||||||
|
slide,
|
||||||
|
slide2,
|
||||||
|
animare,
|
||||||
|
setmeta,
|
||||||
|
getsrcbyimg,
|
||||||
|
saveElem,
|
||||||
|
myel,
|
||||||
|
disableSave,
|
||||||
|
modifElem,
|
||||||
|
delElem,
|
||||||
|
addNewElem,
|
||||||
|
newtype,
|
||||||
|
neworder,
|
||||||
|
elemChanged,
|
||||||
|
enableAdd,
|
||||||
|
clickOnElem,
|
||||||
|
getClass,
|
||||||
|
showFit,
|
||||||
|
getValDb,
|
||||||
|
dupElem,
|
||||||
|
enableEdit,
|
||||||
|
addNewCard,
|
||||||
|
arrPages,
|
||||||
|
costanti,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
})
|
||||||
647
src/components/CMyEditElem/CMyEditElem.vue
Executable file
647
src/components/CMyEditElem/CMyEditElem.vue
Executable file
@@ -0,0 +1,647 @@
|
|||||||
|
<template>
|
||||||
|
<div
|
||||||
|
v-if="myel"
|
||||||
|
:class="
|
||||||
|
(editOn ? ` clEditDiv` : ``) +
|
||||||
|
`` +
|
||||||
|
(!myel.active ? ` clEditNotActive` : ``)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<q-bar v-if="enableEdit" dense class="bg-blue-1 q-px-sm">
|
||||||
|
<q-toggle
|
||||||
|
left-label="Attiva"
|
||||||
|
v-model="myel.active"
|
||||||
|
color="positive"
|
||||||
|
icon="fas fa-eye"
|
||||||
|
>
|
||||||
|
</q-toggle>
|
||||||
|
<!--<q-toggle v-if="tools.isManager()"
|
||||||
|
v-model="enableAdd"
|
||||||
|
icon="fas fa-plus"
|
||||||
|
</q-toggle>
|
||||||
|
>-->
|
||||||
|
|
||||||
|
<q-input
|
||||||
|
style="max-width: 60px"
|
||||||
|
hide-bottom-space
|
||||||
|
borderless
|
||||||
|
dense
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="neworder"
|
||||||
|
v-on:keyup.enter="saveElem(false)"
|
||||||
|
type="number"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
|
||||||
|
<q-space />
|
||||||
|
<q-btn
|
||||||
|
icon="fas fa-trash-alt"
|
||||||
|
color="negative"
|
||||||
|
dense
|
||||||
|
flat
|
||||||
|
size="sm"
|
||||||
|
@click="delElem"
|
||||||
|
>
|
||||||
|
</q-btn>
|
||||||
|
<q-btn
|
||||||
|
icon="far fa-copy"
|
||||||
|
color="primary"
|
||||||
|
dense
|
||||||
|
flat
|
||||||
|
size="sm"
|
||||||
|
@click="dupElem(myel.order + 10)"
|
||||||
|
>
|
||||||
|
</q-btn>
|
||||||
|
<q-select
|
||||||
|
v-if="enableAdd"
|
||||||
|
v-model="newtype"
|
||||||
|
dense
|
||||||
|
style="width: 150px"
|
||||||
|
:options="shared_consts.TypesElem"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
>
|
||||||
|
</q-select>
|
||||||
|
<q-btn
|
||||||
|
v-if="enableAdd"
|
||||||
|
size="sm"
|
||||||
|
dense
|
||||||
|
flat
|
||||||
|
icon="fas fa-plus"
|
||||||
|
color="positive"
|
||||||
|
@click="addNewElem(myel.order - 10)"
|
||||||
|
>
|
||||||
|
</q-btn>
|
||||||
|
</q-bar>
|
||||||
|
<div class="justify-center q-gutter-xs row">
|
||||||
|
<q-btn
|
||||||
|
dense
|
||||||
|
v-if="enableEdit && !disableSave"
|
||||||
|
icon="fas fa-check"
|
||||||
|
color="positive"
|
||||||
|
label="Applica"
|
||||||
|
size="sm"
|
||||||
|
:disable="disableSave"
|
||||||
|
@click="saveElem"
|
||||||
|
>
|
||||||
|
</q-btn>
|
||||||
|
<q-btn
|
||||||
|
dense
|
||||||
|
v-if="enableEdit && !disableSave"
|
||||||
|
icon="fas fa-check"
|
||||||
|
color="positive"
|
||||||
|
label="Salva"
|
||||||
|
size="sm"
|
||||||
|
:disable="disableSave"
|
||||||
|
@click="saveElem(true)"
|
||||||
|
>
|
||||||
|
</q-btn>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<q-select
|
||||||
|
v-if="enableEdit"
|
||||||
|
rounded
|
||||||
|
outlined
|
||||||
|
v-model="myel.align"
|
||||||
|
:options="tools.SelectListAlign"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
dense
|
||||||
|
label="Allinea"
|
||||||
|
style="min-width: 100px"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
>
|
||||||
|
</q-select>
|
||||||
|
<q-select
|
||||||
|
v-if="enableEdit"
|
||||||
|
rounded
|
||||||
|
style="min-width: 100px"
|
||||||
|
outlined
|
||||||
|
v-model="myel.class"
|
||||||
|
:options="tools.SelectListClass"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
dense
|
||||||
|
label="Classe"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
>
|
||||||
|
</q-select>
|
||||||
|
<q-select
|
||||||
|
v-if="enableEdit && showFit"
|
||||||
|
rounded
|
||||||
|
style="min-width: 100px"
|
||||||
|
outlined
|
||||||
|
v-model="myel.fit"
|
||||||
|
:options="tools.SelectListFit"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
dense
|
||||||
|
label="Fit"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
>
|
||||||
|
</q-select>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<q-input
|
||||||
|
label="Classe:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.class2"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-if="myel.type === shared_consts.ELEMTYPE.TEXT">
|
||||||
|
<div v-if="enableEdit">
|
||||||
|
<q-input
|
||||||
|
class="fa-border"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.container"
|
||||||
|
dense
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="myel.type === shared_consts.ELEMTYPE.CARD"
|
||||||
|
:class="myel.span ? '' : ''"
|
||||||
|
>
|
||||||
|
<q-btn
|
||||||
|
rounded
|
||||||
|
dense
|
||||||
|
color="primary"
|
||||||
|
label="Card"
|
||||||
|
icon="fas fa-plus"
|
||||||
|
@click="addNewCard"
|
||||||
|
>
|
||||||
|
</q-btn>
|
||||||
|
<div v-for="(rec, ind) in myel.listcards" :key="ind">
|
||||||
|
<div v-if="enableEdit" class="column">
|
||||||
|
<CMyFieldRec
|
||||||
|
title="Lista Immagini:"
|
||||||
|
table="myelems"
|
||||||
|
:id="myel._id"
|
||||||
|
:rec="myel"
|
||||||
|
field="listcards"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
:canEdit="true"
|
||||||
|
:canModify="true"
|
||||||
|
>
|
||||||
|
</CMyFieldRec>
|
||||||
|
<q-input
|
||||||
|
label="Immagine:"
|
||||||
|
dense
|
||||||
|
class="fa-border"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="rec.imagefile"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<div v-if="enableEdit" class="row">
|
||||||
|
<q-input
|
||||||
|
dense
|
||||||
|
style="min-width: 100px"
|
||||||
|
label="Titolo:"
|
||||||
|
class="fa-border"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="rec.alt"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<CSelectColor
|
||||||
|
v-if="enableEdit"
|
||||||
|
style="min-width: 100px"
|
||||||
|
v-model="rec.color"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
title="Col Titolo"
|
||||||
|
>
|
||||||
|
</CSelectColor>
|
||||||
|
<CSelectFontSize
|
||||||
|
v-if="enableEdit"
|
||||||
|
style="min-width: 100px"
|
||||||
|
v-model="rec.size"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
title="Font Titolo"
|
||||||
|
>
|
||||||
|
</CSelectFontSize>
|
||||||
|
</div>
|
||||||
|
<CMyEditor
|
||||||
|
v-model:value="rec.content"
|
||||||
|
title="Contenuto:"
|
||||||
|
@keyup.enter.stop
|
||||||
|
:showButtons="false"
|
||||||
|
:canModify="true"
|
||||||
|
@update:value="modifElem"
|
||||||
|
@showandsave="saveElem"
|
||||||
|
>
|
||||||
|
</CMyEditor>
|
||||||
|
|
||||||
|
<q-input
|
||||||
|
label="Sottotitolo:"
|
||||||
|
class="fa-border"
|
||||||
|
dense
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="rec.description"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
<div v-if="enableEdit" class="row">
|
||||||
|
<CSelectColor
|
||||||
|
v-if="enableEdit"
|
||||||
|
v-model="rec.colorsub"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
title="Col Sottotitolo"
|
||||||
|
>
|
||||||
|
</CSelectColor>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-if="myel.type === shared_consts.ELEMTYPE.MARGINI">
|
||||||
|
<div v-if="enableEdit">
|
||||||
|
<q-input
|
||||||
|
label="Margine:"
|
||||||
|
class="fa-border"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.size"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.TITLE">
|
||||||
|
<div v-if="enableEdit">
|
||||||
|
<q-input
|
||||||
|
label="Titolo"
|
||||||
|
class="fa-border"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.title"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="Style"
|
||||||
|
class="fa-border"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.styleadd"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="Immagine:"
|
||||||
|
class="fa-border"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.imgback"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMGTITLE">
|
||||||
|
<div v-if="enableEdit">
|
||||||
|
<q-input
|
||||||
|
label="Img"
|
||||||
|
class="fa-border"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.container"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem(false)"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
|
||||||
|
<q-input
|
||||||
|
label="Title"
|
||||||
|
class="fa-border"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.container"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.HTML">
|
||||||
|
<div v-if="enableEdit">
|
||||||
|
<q-input
|
||||||
|
label="Classe:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.class"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<CMyEditor
|
||||||
|
v-model:value="myel.containerHtml"
|
||||||
|
title=""
|
||||||
|
@keyup.enter.stop
|
||||||
|
:showButtons="false"
|
||||||
|
:canModify="true"
|
||||||
|
@update:value="modifElem"
|
||||||
|
@showandsave="saveElem"
|
||||||
|
>
|
||||||
|
</CMyEditor>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGE">
|
||||||
|
<div v-if="enableEdit">
|
||||||
|
<q-input
|
||||||
|
label="NomeFile Img:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.container"
|
||||||
|
filled
|
||||||
|
dense
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<CMyFieldRec
|
||||||
|
title="NomeFile Img:"
|
||||||
|
table="myelems"
|
||||||
|
:id="myel._id"
|
||||||
|
:rec="myel"
|
||||||
|
field="container"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
:canEdit="true"
|
||||||
|
:canModify="true"
|
||||||
|
:type="costanti.FieldType.images"
|
||||||
|
>
|
||||||
|
</CMyFieldRec>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<q-input
|
||||||
|
label="Width:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.widthimg"
|
||||||
|
filled
|
||||||
|
dense
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="Height:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.heightimg"
|
||||||
|
filled
|
||||||
|
dense
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGEUPLOAD">
|
||||||
|
<div v-if="enableEdit">
|
||||||
|
<q-input
|
||||||
|
label="NomeFile Img:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.image"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<CMyFieldRec
|
||||||
|
title="NomeFile Img:"
|
||||||
|
table="myelems"
|
||||||
|
:id="myel._id"
|
||||||
|
:rec="myel"
|
||||||
|
field="image"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
:canEdit="true"
|
||||||
|
:canModify="true"
|
||||||
|
:type="costanti.FieldType.images"
|
||||||
|
>
|
||||||
|
</CMyFieldRec>
|
||||||
|
<div class="row">
|
||||||
|
<q-input
|
||||||
|
label="Width:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.widthimg"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="Height:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.heightimg"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.VIDEO">
|
||||||
|
<div v-if="enableEdit" class="row">
|
||||||
|
<q-input
|
||||||
|
label="NomeFile Video:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.container"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="Ratio:"
|
||||||
|
type="number"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.ratio"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.FOOTER"></div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PAGE">
|
||||||
|
<div v-if="enableEdit" class="row">
|
||||||
|
<q-select
|
||||||
|
rounded
|
||||||
|
outlined
|
||||||
|
v-model="myel.container"
|
||||||
|
:options="arrPages"
|
||||||
|
label="Pagina"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
@change="saveElem"
|
||||||
|
>
|
||||||
|
</q-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PAGEINTRO">
|
||||||
|
<div v-if="enableEdit" class="row">
|
||||||
|
<q-input
|
||||||
|
label="NomeFile Img:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.container"
|
||||||
|
debounce="1000"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="Width:"
|
||||||
|
type="number"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
debounce="1000"
|
||||||
|
v-model="myel.widthimg"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="Height:"
|
||||||
|
type="number"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
debounce="1000"
|
||||||
|
v-model="myel.heightimg"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="Link:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
debounce="1000"
|
||||||
|
v-model="myel.link"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_IDISCIPLINE"
|
||||||
|
>
|
||||||
|
<CCardCarousel :myarr="getArrDisciplines()"> </CCardCarousel>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.OPENSTREETMAP">
|
||||||
|
<div v-if="enableEdit" class="row">
|
||||||
|
<q-input
|
||||||
|
label="ImgMap:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.container"
|
||||||
|
debounce="1000"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="UrlMap:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.container2"
|
||||||
|
debounce="1000"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="Title:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.container3"
|
||||||
|
debounce="1000"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="Coordinata Mappa 1:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.containerHtml"
|
||||||
|
debounce="1000"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-input
|
||||||
|
label="Coordinata Mappa Big:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
v-model="myel.link"
|
||||||
|
debounce="1000"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_IMGS">
|
||||||
|
<div v-if="enableEdit" class="row">
|
||||||
|
<CMyFieldRec
|
||||||
|
title="Lista Immagini:"
|
||||||
|
table="myelems"
|
||||||
|
:id="myel._id"
|
||||||
|
:rec="myel"
|
||||||
|
field="list"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
:canEdit="true"
|
||||||
|
:canModify="true"
|
||||||
|
>
|
||||||
|
</CMyFieldRec>
|
||||||
|
|
||||||
|
<!--sss
|
||||||
|
-->
|
||||||
|
|
||||||
|
<q-input
|
||||||
|
label="Secondi tra un'immagine e l'altra:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
debounce="1000"
|
||||||
|
v-model="myel.container2"
|
||||||
|
type="number"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-toggle
|
||||||
|
label="Sottotitoli"
|
||||||
|
v-model="myel.parambool"
|
||||||
|
color="positive"
|
||||||
|
icon="fas fa-eye"
|
||||||
|
>
|
||||||
|
</q-toggle>
|
||||||
|
|
||||||
|
<q-toggle
|
||||||
|
label="Miniature"
|
||||||
|
v-model="myel.parambool2"
|
||||||
|
color="positive"
|
||||||
|
icon="fas fa-eye"
|
||||||
|
>
|
||||||
|
</q-toggle>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_HOME"></div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CALENDAR">
|
||||||
|
<div v-if="enableEdit" class="row">
|
||||||
|
<q-input
|
||||||
|
label="Visualizza ultimi N eventi:"
|
||||||
|
@update:model-value="modifElem"
|
||||||
|
debounce="1000"
|
||||||
|
v-model="myel.number"
|
||||||
|
filled
|
||||||
|
v-on:keyup.enter="saveElem"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECK_EMAIL"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" src="./CMyEditElem.ts">
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import './CMyEditElem.scss';
|
||||||
|
</style>
|
||||||
1
src/components/CMyEditElem/index.ts
Executable file
1
src/components/CMyEditElem/index.ts
Executable file
@@ -0,0 +1 @@
|
|||||||
|
export { default as CMyEditElem } from './CMyEditElem.vue'
|
||||||
@@ -474,3 +474,9 @@ body.mobile .landing:before {
|
|||||||
.align_left {
|
.align_left {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.flex3 {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
background-color: green;
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import {
|
|||||||
defineComponent, onMounted, PropType, ref, toRef, watch,
|
defineComponent, onMounted, PropType, ref, toRef, watch,
|
||||||
} from 'vue'
|
} from 'vue'
|
||||||
|
|
||||||
import { IMyElem, IMyPage, IOperators } from '@src/model'
|
import { IMyCard, IMyElem, IMyPage, IOperators } from '@src/model'
|
||||||
import { useGlobalStore } from '@store/globalStore'
|
import { useGlobalStore } from '@store/globalStore'
|
||||||
|
|
||||||
import { CImgTitle } from '../CImgTitle/index'
|
import { CImgTitle } from '../CImgTitle/index'
|
||||||
@@ -17,15 +17,21 @@ import { CMyPageIntro } from '@src/components/CMyPageIntro'
|
|||||||
import { CEventsCalendar } from '@src/components/CEventsCalendar'
|
import { CEventsCalendar } from '@src/components/CEventsCalendar'
|
||||||
import { CMyEditor } from '@src/components/CMyEditor'
|
import { CMyEditor } from '@src/components/CMyEditor'
|
||||||
import { CMyFieldRec } from '@src/components/CMyFieldRec'
|
import { CMyFieldRec } from '@src/components/CMyFieldRec'
|
||||||
|
import { CSelectColor } from '@src/components/CSelectColor'
|
||||||
|
import { CSelectFontSize } from '@src/components/CSelectFontSize'
|
||||||
|
|
||||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||||
|
import MixinBase from '@/mixins/mixin-base'
|
||||||
import { useQuasar } from 'quasar'
|
import { useQuasar } from 'quasar'
|
||||||
import { useI18n } from '@/boot/i18n'
|
import { useI18n } from '@/boot/i18n'
|
||||||
|
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'CMyElem',
|
name: 'CMyElem',
|
||||||
components: { CImgTitle, CTitle, LandingFooter, CEventsCalendar, CCardCarousel, COpenStreetMap, CMyPage, CMyPageIntro, CMyEditor, CMyFieldRec },
|
components: { CImgTitle, CTitle, LandingFooter, CEventsCalendar,
|
||||||
|
CCardCarousel, COpenStreetMap, CMyPage, CMyPageIntro, CMyEditor, CMyFieldRec,
|
||||||
|
CSelectColor, CSelectFontSize },
|
||||||
|
emits: ['selElemClick'],
|
||||||
props: {
|
props: {
|
||||||
myelem: {
|
myelem: {
|
||||||
type: Object as PropType<IMyElem>,
|
type: Object as PropType<IMyElem>,
|
||||||
@@ -47,10 +53,12 @@ export default defineComponent({
|
|||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
setup(props) {
|
setup(props, { emit }) {
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
|
|
||||||
const { setmeta, getsrcbyimg } = MixinMetaTags()
|
const { setmeta, getsrcbyimg } = MixinMetaTags()
|
||||||
|
const { setValDb, getValDb } = MixinBase()
|
||||||
|
|
||||||
|
|
||||||
const $q = useQuasar()
|
const $q = useQuasar()
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
@@ -115,6 +123,16 @@ export default defineComponent({
|
|||||||
globalStore.addNewElem($q, t, newrec)
|
globalStore.addNewElem($q, t, newrec)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function dupElem(order?: number) {
|
||||||
|
|
||||||
|
const newrec = props.myelem
|
||||||
|
|
||||||
|
newrec._id = undefined
|
||||||
|
newrec.order = order ? order : newrec.order! + 10
|
||||||
|
|
||||||
|
globalStore.addNewElem($q, t, newrec)
|
||||||
|
}
|
||||||
|
|
||||||
function delElem() {
|
function delElem() {
|
||||||
$q.dialog({
|
$q.dialog({
|
||||||
message: 'Eliminare ' + props.myelem.container + ' ?',
|
message: 'Eliminare ' + props.myelem.container + ' ?',
|
||||||
@@ -153,6 +171,7 @@ export default defineComponent({
|
|||||||
function clickOnElem() {
|
function clickOnElem() {
|
||||||
if (props.editOn) {
|
if (props.editOn) {
|
||||||
enableEdit.value = true
|
enableEdit.value = true
|
||||||
|
emit('selElemClick', props.myelem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -166,9 +185,24 @@ export default defineComponent({
|
|||||||
mycl += ' align_left'
|
mycl += ' align_left'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (props.myelem.class2)
|
||||||
|
mycl += ' ' + props.myelem.class2
|
||||||
|
|
||||||
return mycl
|
return mycl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getImgFileByElem(elem: IMyElem, reccard?: IMyCard) {
|
||||||
|
if (elem) {
|
||||||
|
if (elem.type === shared_consts.ELEMTYPE.CARD) {
|
||||||
|
return 'upload/pages/' + elem.path + '/' + reccard!.imagefile
|
||||||
|
} else if (elem.type === shared_consts.ELEMTYPE.IMAGE) {
|
||||||
|
return 'upload/pages/' + elem.path + '/' + elem.container
|
||||||
|
} else {
|
||||||
|
return 'upload/pages/' + elem.path + '/' + elem.image
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function showFit() {
|
function showFit() {
|
||||||
if (props.myelem.type)
|
if (props.myelem.type)
|
||||||
return [shared_consts.ELEMTYPE.TEXT].includes(props.myelem.type)
|
return [shared_consts.ELEMTYPE.TEXT].includes(props.myelem.type)
|
||||||
@@ -201,6 +235,9 @@ export default defineComponent({
|
|||||||
clickOnElem,
|
clickOnElem,
|
||||||
getClass,
|
getClass,
|
||||||
showFit,
|
showFit,
|
||||||
|
getValDb,
|
||||||
|
dupElem,
|
||||||
|
getImgFileByElem,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -1,121 +1,44 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="myel"
|
<div
|
||||||
:class="(editOn ? ` clEditDiv` : ``) + `` + (!myel.active ? ` clEditNotActive` : ``)"
|
v-if="myel"
|
||||||
|
:class="
|
||||||
|
(editOn ? ` clEditDiv` : ``) +
|
||||||
|
`` +
|
||||||
|
(!myel.active ? ` clEditNotActive` : ``)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<q-bar v-if="enableEdit" dense class="bg-blue-1 text-white q-px-sm">
|
<div>
|
||||||
<q-toggle
|
|
||||||
v-model="myel.active"
|
|
||||||
color="positive"
|
|
||||||
icon="fas fa-eye"
|
|
||||||
>
|
|
||||||
</q-toggle>
|
|
||||||
<q-toggle
|
|
||||||
v-model="enableEdit"
|
|
||||||
icon="fas fa-pencil-alt"
|
|
||||||
>
|
|
||||||
</q-toggle>
|
|
||||||
<!--<q-toggle v-if="tools.isManager()"
|
|
||||||
v-model="enableAdd"
|
|
||||||
icon="fas fa-plus"
|
|
||||||
</q-toggle>
|
|
||||||
>-->
|
|
||||||
|
|
||||||
<q-input
|
|
||||||
style="max-width: 60px"
|
|
||||||
hide-bottom-space
|
|
||||||
borderless
|
|
||||||
dense
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="neworder"
|
|
||||||
v-on:keyup.enter="saveElem(false)"
|
|
||||||
type="number"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
<q-select
|
|
||||||
v-if="enableEdit"
|
|
||||||
rounded outlined v-model="myel.align"
|
|
||||||
:options="tools.SelectListAlign"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
dense
|
|
||||||
label="Allinea" emit-value map-options>
|
|
||||||
</q-select>
|
|
||||||
<q-select
|
|
||||||
v-if="enableEdit"
|
|
||||||
rounded outlined v-model="myel.class"
|
|
||||||
:options="tools.SelectListClass"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
dense
|
|
||||||
label="Classe" emit-value map-options>
|
|
||||||
</q-select>
|
|
||||||
<q-select
|
|
||||||
v-if="enableEdit && showFit"
|
|
||||||
rounded outlined v-model="myel.fit"
|
|
||||||
:options="tools.SelectListFit"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
dense
|
|
||||||
label="Fit" emit-value map-options>
|
|
||||||
</q-select>
|
|
||||||
<q-space/>
|
|
||||||
<q-btn
|
|
||||||
icon="fas fa-trash-alt"
|
|
||||||
color="negative"
|
|
||||||
dense
|
|
||||||
flat
|
|
||||||
size="sm"
|
|
||||||
@click="delElem">
|
|
||||||
</q-btn>
|
|
||||||
|
|
||||||
<q-select v-if="enableAdd"
|
|
||||||
v-model="newtype"
|
|
||||||
dense
|
|
||||||
style="width: 150px;"
|
|
||||||
:options="shared_consts.TypesElem"
|
|
||||||
emit-value map-options>
|
|
||||||
|
|
||||||
</q-select>
|
|
||||||
<q-btn
|
|
||||||
v-if="enableAdd"
|
|
||||||
size="sm"
|
|
||||||
dense
|
|
||||||
flat
|
|
||||||
icon="fas fa-plus"
|
|
||||||
color="positive"
|
|
||||||
@click="addNewElem(myel.order-10)">
|
|
||||||
</q-btn>
|
|
||||||
|
|
||||||
</q-bar>
|
|
||||||
|
|
||||||
<div v-if="myel.type === shared_consts.ELEMTYPE.TEXT">
|
<div v-if="myel.type === shared_consts.ELEMTYPE.TEXT">
|
||||||
<div v-if="enableEdit">
|
|
||||||
<q-input
|
|
||||||
class="fa-border"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.container"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
|
|
||||||
</q-input>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div
|
<div
|
||||||
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
@click="clickOnElem">{{ myel.container }}
|
@click="clickOnElem"
|
||||||
|
>
|
||||||
|
{{ myel.container }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="myel.type === shared_consts.ELEMTYPE.CARD">
|
<div
|
||||||
|
v-if="myel.type === shared_consts.ELEMTYPE.CARD"
|
||||||
<q-card class="my-card" flat bordered>
|
:class="myel.span ? '' : ''"
|
||||||
<q-img
|
>
|
||||||
:src="myel.img"
|
<div
|
||||||
/>
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
|
@click="clickOnElem"
|
||||||
|
>
|
||||||
|
<div v-for="(rec, ind) in myel.listcards" :key="ind" >
|
||||||
|
<q-card class="my-card center_img" flat bordered>
|
||||||
|
rec: {{rec}}
|
||||||
|
<q-img :src="getImgFileByElem(myel, rec)" />
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
<div class="text-overline text-orange-9">{{ myel.container }}</div>
|
<div :class="` ` + rec.size" :style="`color: ` + rec.color">
|
||||||
<div class="text-h5 q-mt-sm q-mb-xs">{{ myel.container2 }}</div>
|
{{ rec.alt }}
|
||||||
<div class="text-caption text-grey">
|
</div>
|
||||||
{{ myel.container3 }}
|
<div :class="`q-mt-sm q-mb-xs `" v-html="rec.content"></div>
|
||||||
|
<div
|
||||||
|
v-if="rec.description"
|
||||||
|
class="text-caption"
|
||||||
|
:style="`color: ` + rec.colorsub"
|
||||||
|
>
|
||||||
|
{{ rec.description }}
|
||||||
</div>
|
</div>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
|
|
||||||
@@ -135,327 +58,213 @@
|
|||||||
/>
|
/>
|
||||||
</q-card-actions>-->
|
</q-card-actions>-->
|
||||||
|
|
||||||
<q-slide-transition>
|
<!--<q-slide-transition>
|
||||||
<div v-show="expanded">
|
<div v-show="expanded">
|
||||||
<q-separator/>
|
<q-separator />
|
||||||
<q-card-section class="text-subitle2">
|
<q-card-section class="text-subitle2">
|
||||||
{{ lorem }}
|
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
</div>
|
</div>
|
||||||
</q-slide-transition>
|
</q-slide-transition>
|
||||||
|
-->
|
||||||
</q-card>
|
</q-card>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div v-if="myel.type === shared_consts.ELEMTYPE.MARGINI">
|
<div v-if="myel.type === shared_consts.ELEMTYPE.MARGINI">
|
||||||
<div v-if="enableEdit">
|
|
||||||
<q-input
|
|
||||||
label="Margine:"
|
|
||||||
class="fa-border"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.size"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div
|
<div
|
||||||
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
@click="clickOnElem"
|
@click="clickOnElem"
|
||||||
:style="`margin: ` + myel.size">
|
:style="`margin: ` + myel.size"
|
||||||
|
>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.TITLE">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.TITLE">
|
||||||
<div v-if="enableEdit">
|
|
||||||
<q-input
|
|
||||||
class="fa-border"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.title"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div>
|
<div>
|
||||||
<div
|
<div
|
||||||
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
@click="clickOnElem">
|
@click="clickOnElem"
|
||||||
|
>
|
||||||
<CTitle
|
<CTitle
|
||||||
:imgbackground="myel.imgback"
|
:imgbackground="myel.imgback"
|
||||||
:headtitle="myel.title" :sizes="myel.size" :styleadd="myel.styleadd">
|
:headtitle="myel.title"
|
||||||
|
:sizes="myel.size"
|
||||||
|
:styleadd="myel.styleadd"
|
||||||
|
>
|
||||||
</CTitle>
|
</CTitle>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMGTITLE">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMGTITLE">
|
||||||
<div v-if="enableEdit">
|
|
||||||
<q-input
|
|
||||||
label="Img"
|
|
||||||
class="fa-border"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.container"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem(false)"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
<q-input
|
|
||||||
label="Title"
|
|
||||||
class="fa-border"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.container"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div>
|
<div>
|
||||||
<div :class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
<div
|
||||||
@click="clickOnElem">
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
<CImgTitle v-if="myel.container" :src="myel.container" :title="myel.title">
|
@click="clickOnElem"
|
||||||
|
>
|
||||||
|
<CImgTitle
|
||||||
|
v-if="myel.container"
|
||||||
|
:src="myel.container"
|
||||||
|
:title="myel.title"
|
||||||
|
>
|
||||||
</CImgTitle>
|
</CImgTitle>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.HTML">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.HTML">
|
||||||
<div v-if="enableEdit">
|
|
||||||
<q-input
|
|
||||||
label="Classe:"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.class"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
<CMyEditor
|
|
||||||
v-model:value="myel.containerHtml" title="" @keyup.enter.stop
|
|
||||||
:showButtons="false"
|
|
||||||
:canModify="true"
|
|
||||||
@update:value="modifElem"
|
|
||||||
@showandsave="saveElem"
|
|
||||||
>
|
|
||||||
</CMyEditor>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div>
|
<div>
|
||||||
<div :class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
<div
|
||||||
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
@click="clickOnElem"
|
@click="clickOnElem"
|
||||||
v-html="myel.containerHtml"></div>
|
v-html="myel.containerHtml"
|
||||||
|
></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGE">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGE">
|
||||||
<div v-if="enableEdit">
|
|
||||||
<q-input
|
|
||||||
label="NomeFile Img:"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.container"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
<div class="row">
|
|
||||||
<q-input
|
|
||||||
label="Width:"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.widthimg"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
<q-input
|
|
||||||
label="Height:"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.heightimg"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<div :class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
<div
|
||||||
@click="clickOnElem">
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
<q-img :src="myel.container" :fit="myel.fit" class="img" :width="myel.widthimg ? myel.widthimg: undefined" :height="myel.heightimg ? myel.heightimg : undefined"></q-img>
|
@click="clickOnElem"
|
||||||
|
>
|
||||||
|
<q-img
|
||||||
|
:src="getImgFileByElem(myel.container)"
|
||||||
|
:fit="myel.fit"
|
||||||
|
class="img"
|
||||||
|
:width="myel.widthimg ? myel.widthimg : undefined"
|
||||||
|
:height="myel.heightimg ? myel.heightimg : undefined"
|
||||||
|
></q-img>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGEUPLOAD">
|
||||||
|
<div class="text-center">
|
||||||
|
<div
|
||||||
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
|
@click="clickOnElem"
|
||||||
|
>
|
||||||
|
<q-img
|
||||||
|
:src="getImgFileByElem(myel)"
|
||||||
|
:fit="myel.fit"
|
||||||
|
class="img"
|
||||||
|
:width="myel.widthimg ? myel.widthimg : undefined"
|
||||||
|
:height="myel.heightimg ? myel.heightimg : undefined"
|
||||||
|
></q-img>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.VIDEO">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.VIDEO">
|
||||||
<div v-if="enableEdit" class="row">
|
<div
|
||||||
<q-input
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
label="NomeFile Video:"
|
@click="clickOnElem"
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.container"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
>
|
||||||
</q-input>
|
<q-video
|
||||||
<q-input
|
v-if="!!rec.container"
|
||||||
label="Ratio:"
|
:src="rec.container"
|
||||||
type="number"
|
:ratio="rec.ratio"
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.ratio"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
>
|
||||||
</q-input>
|
|
||||||
</div>
|
|
||||||
<div :class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
|
||||||
@click="clickOnElem">
|
|
||||||
<q-video v-if="!!rec.container" :src="rec.container" :ratio="rec.ratio">
|
|
||||||
</q-video>
|
</q-video>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.FOOTER">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.FOOTER">
|
||||||
<div :class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
<div
|
||||||
@click="clickOnElem">
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
|
@click="clickOnElem"
|
||||||
|
>
|
||||||
<LandingFooter></LandingFooter>
|
<LandingFooter></LandingFooter>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PAGE">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PAGE">
|
||||||
<div v-if="enableEdit" class="row">
|
<div
|
||||||
<q-input
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
label="Importa Pagina:"
|
@click="clickOnElem"
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.container"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
>
|
||||||
</q-input>
|
|
||||||
</div>
|
|
||||||
<div :class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
|
||||||
@click="clickOnElem">
|
|
||||||
<CMyPage :mypath="myel.container"> </CMyPage>
|
<CMyPage :mypath="myel.container"> </CMyPage>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PAGEINTRO">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PAGEINTRO">
|
||||||
<div v-if="enableEdit" class="row">
|
<div
|
||||||
<q-input
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
label="NomeFile Img:"
|
@click="clickOnElem"
|
||||||
@update:model-value="modifElem"
|
|
||||||
v-model="myel.container"
|
|
||||||
debounce="1000"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
>
|
||||||
</q-input>
|
<CMyPageIntro
|
||||||
<q-input
|
:mypath="myel.container"
|
||||||
label="Width:"
|
:maxheightimg="myel.heightimg"
|
||||||
type="number"
|
:maxwidthimg="myel.widthimg"
|
||||||
@update:model-value="modifElem"
|
:link="myel.link"
|
||||||
debounce="1000"
|
></CMyPageIntro>
|
||||||
v-model="myel.widthimg"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
<q-input
|
|
||||||
label="Height:"
|
|
||||||
type="number"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
debounce="1000"
|
|
||||||
v-model="myel.heightimg"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
<q-input
|
|
||||||
label="Link:"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
debounce="1000"
|
|
||||||
v-model="myel.link"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
</div>
|
|
||||||
<div :class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
|
||||||
@click="clickOnElem">
|
|
||||||
<CMyPageIntro :mypath="myel.container" :maxheightimg="myel.heightimg" :maxwidthimg="myel.widthimg" :link="myel.link"></CMyPageIntro>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_IDISCIPLINE">
|
<div
|
||||||
<CCardCarousel :myarr="getArrDisciplines()">
|
v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_IDISCIPLINE"
|
||||||
|
>
|
||||||
</CCardCarousel>
|
<CCardCarousel :myarr="getArrDisciplines()"> </CCardCarousel>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.OPENSTREETMAP">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.OPENSTREETMAP">
|
||||||
|
<div
|
||||||
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
|
@click="clickOnElem"
|
||||||
|
>
|
||||||
|
<div v-if="myel.container">
|
||||||
<!-- Da Fare -->
|
<!-- Da Fare -->
|
||||||
<COpenStreetMap :imgmap="getValDb('IMGMAP', false)" :urlmap="getValDb('URLMAP', false)" :title="getValDb('MAP_TITLE', false)"
|
<COpenStreetMap
|
||||||
:coordinates="getValDb('COORD_MAP_1', false)" :coord_big="getValDb('COORD_MAP_BIG', false)">
|
:imgmap="myel.container"
|
||||||
|
:urlmap="myel.container2"
|
||||||
|
:title="myel.container3"
|
||||||
|
:coordinates="myel.containerHtml"
|
||||||
|
:coord_big="myel.link"
|
||||||
|
>
|
||||||
</COpenStreetMap>
|
</COpenStreetMap>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_IMGS">
|
|
||||||
<section class="maxwidth padding_gallery bg-white text-grey-10 text-center">
|
|
||||||
|
|
||||||
<div v-if="enableEdit" class="row">
|
|
||||||
<CMyFieldRec
|
|
||||||
title="Lista Immagini:"
|
|
||||||
table="myelems"
|
|
||||||
:id="myel._id"
|
|
||||||
:rec="myel"
|
|
||||||
field="list"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
:canEdit="true"
|
|
||||||
:canModify="true">
|
|
||||||
</CMyFieldRec>
|
|
||||||
|
|
||||||
<!--sss
|
|
||||||
-->
|
|
||||||
|
|
||||||
<q-input
|
|
||||||
label="Secondi tra un'immagine e l'altra:"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
debounce="1000"
|
|
||||||
v-model="myel.container2"
|
|
||||||
type="number"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
<q-toggle
|
|
||||||
label="Sottotitoli"
|
|
||||||
v-model="myel.parambool"
|
|
||||||
color="positive"
|
|
||||||
icon="fas fa-eye"
|
|
||||||
>
|
|
||||||
</q-toggle>
|
|
||||||
|
|
||||||
<q-toggle
|
|
||||||
label="Miniature"
|
|
||||||
v-model="myel.parambool2"
|
|
||||||
color="positive"
|
|
||||||
icon="fas fa-eye"
|
|
||||||
>
|
|
||||||
</q-toggle>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div :class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
</div>
|
||||||
@click="clickOnElem">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_IMGS">
|
||||||
|
<section
|
||||||
|
class="maxwidth padding_gallery bg-white text-grey-10 text-center"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
||||||
|
@click="clickOnElem"
|
||||||
|
>
|
||||||
<q-carousel
|
<q-carousel
|
||||||
swipeable
|
swipeable
|
||||||
animated
|
animated
|
||||||
:autoplay="myel.container2 ? (myel.container2 * 1000) : 8000"
|
:autoplay="myel.container2 ? myel.container2 * 1000 : 8000"
|
||||||
v-model="slide2"
|
v-model="slide2"
|
||||||
arrows
|
arrows
|
||||||
:fit="myel.fit"
|
:fit="myel.fit"
|
||||||
:thumbnails="myel.parambool2"
|
:thumbnails="myel.parambool2"
|
||||||
infinite
|
infinite
|
||||||
:height="myel.height ? myel.height.toString() : 600">
|
:height="myel.height ? myel.height.toString() : 600"
|
||||||
<q-carousel-slide v-for="(rec, index) in myel.list" :key="index" :name="index"
|
>
|
||||||
:img-src="getsrcbyimg(`upload/pages/`+ path + `/`+ rec.imagefile)"
|
<q-carousel-slide
|
||||||
|
v-for="(rec, index) in myel.list"
|
||||||
|
:key="index"
|
||||||
|
:name="index"
|
||||||
|
:img-src="
|
||||||
|
getsrcbyimg(`upload/pages/` + path + `/` + rec.imagefile)
|
||||||
|
"
|
||||||
:alt="rec.alt"
|
:alt="rec.alt"
|
||||||
class="carousel_slide">
|
class="carousel_slide"
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
v-if="myel.parambool" class="absolute-bottom custom-caption" style="margin-bottom: 70px">
|
v-if="myel.parambool"
|
||||||
<div class="text-h5"><span
|
class="absolute-bottom custom-caption"
|
||||||
class="text-h6 text-grey-1 shadow-max">{{ index + 1 }}. </span>
|
style="margin-bottom: 70px"
|
||||||
<span v-if="rec.alt"
|
>
|
||||||
class="text-h6 text-grey-2 shadow">{{ rec.alt }}</span></div>
|
<div class="text-h5">
|
||||||
<div class="text-subtitle1" v-if="rec.description"><span class="text-grey-4 shadow">{{ rec.description }}</span>
|
<span class="text-h6 text-grey-1 shadow-max"
|
||||||
|
>{{ index + 1 }}.
|
||||||
|
</span>
|
||||||
|
<span v-if="rec.alt" class="text-h6 text-grey-2 shadow">{{
|
||||||
|
rec.alt
|
||||||
|
}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="text-subtitle1" v-if="rec.description">
|
||||||
|
<span class="text-grey-4 shadow">{{
|
||||||
|
rec.description
|
||||||
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-carousel-slide>
|
</q-carousel-slide>
|
||||||
@@ -464,7 +273,6 @@
|
|||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_HOME">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_HOME">
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<div class="landing">
|
<div class="landing">
|
||||||
<div class="landing__hero maxwidth1200 text-white">
|
<div class="landing__hero maxwidth1200 text-white">
|
||||||
@@ -481,31 +289,52 @@
|
|||||||
width="100%"
|
width="100%"
|
||||||
>
|
>
|
||||||
<q-carousel-slide
|
<q-carousel-slide
|
||||||
v-for="(myrec, ind) in myel.list" :key="ind"
|
v-for="(myrec, ind) in myel.list"
|
||||||
|
:key="ind"
|
||||||
:name="ind"
|
:name="ind"
|
||||||
:img-src="getsrcbyimg(`images/`+ myrec.imagefile)">
|
:img-src="getsrcbyimg(`images/` + myrec.imagefile)"
|
||||||
|
>
|
||||||
<div class="landing__header"></div>
|
<div class="landing__header"></div>
|
||||||
<div class="landing__hero-content row justify-center q-gutter-xs clgutter">
|
<div
|
||||||
<div class="row">
|
class="
|
||||||
|
landing__hero-content
|
||||||
</div>
|
row
|
||||||
|
justify-center
|
||||||
|
q-gutter-xs
|
||||||
|
clgutter
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<div class="row"> </div>
|
||||||
<div class="flex justify-end">
|
<div class="flex justify-end">
|
||||||
<div class="q-gutter-xs testo-banda clgutter">
|
<div class="q-gutter-xs testo-banda clgutter">
|
||||||
<h1 class="text-h1 shadow-max">{{ tools.getappname() }}</h1>
|
<h1 class="text-h1 shadow-max">
|
||||||
|
{{ tools.getappname() }}
|
||||||
|
</h1>
|
||||||
<div class="text-subtitle1 shadow text-italic q-pl-sm">
|
<div class="text-subtitle1 shadow text-italic q-pl-sm">
|
||||||
{{ myel.container }}
|
{{ myel.container }}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-subtitle1 shadow-max big text-italic q-pl-sm">
|
<div
|
||||||
|
class="
|
||||||
|
text-subtitle1
|
||||||
|
shadow-max
|
||||||
|
big
|
||||||
|
text-italic
|
||||||
|
q-pl-sm
|
||||||
|
"
|
||||||
|
>
|
||||||
{{ myel.container2 }}
|
{{ myel.container2 }}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-subtitle2 shadow text-italic q-pl-sm">
|
<div class="text-subtitle2 shadow text-italic q-pl-sm">
|
||||||
{{ myel.container3 }}
|
{{ myel.container3 }}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<br><br>
|
<br /><br />
|
||||||
<div v-if="!tools.isLogged()" style="margin: 5px; padding: 5px;" class="home">
|
<div
|
||||||
<br><br>
|
v-if="!tools.isLogged()"
|
||||||
|
style="margin: 5px; padding: 5px"
|
||||||
|
class="home"
|
||||||
|
>
|
||||||
|
<br /><br />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -522,49 +351,16 @@
|
|||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CALENDAR">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CALENDAR">
|
||||||
<div v-if="enableEdit" class="row">
|
|
||||||
<q-input
|
|
||||||
label="Visualizza ultimi N eventi:"
|
|
||||||
@update:model-value="modifElem"
|
|
||||||
debounce="1000"
|
|
||||||
v-model="myel.number"
|
|
||||||
filled
|
|
||||||
v-on:keyup.enter="saveElem"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<CEventsCalendar :mysingleevent="null" :showfirstN="myel.number || 3">
|
<CEventsCalendar :mysingleevent="null" :showfirstN="myel.number || 3">
|
||||||
</CEventsCalendar>
|
</CEventsCalendar>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECK_EMAIL">
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECK_EMAIL">
|
||||||
<div class="q-pa-md q-gutter-md">
|
<div class="q-pa-md q-gutter-md">
|
||||||
<div v-if="tools.isLogged() && !isVerified" class="text-verified">{{
|
<div v-if="tools.isLogged() && !isVerified" class="text-verified">
|
||||||
$t('components.authentication.email_verification.link_sent')
|
{{ $t('components.authentication.email_verification.link_sent') }}
|
||||||
}}
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="justify-center q-gutter-xs row">
|
|
||||||
<q-btn
|
|
||||||
v-if="enableEdit && !disableSave"
|
|
||||||
icon="fas fa-check"
|
|
||||||
color="positive"
|
|
||||||
label="Applica"
|
|
||||||
size="sm"
|
|
||||||
:disable="disableSave"
|
|
||||||
@click="saveElem">
|
|
||||||
</q-btn>
|
|
||||||
<q-btn
|
|
||||||
v-if="enableEdit && !disableSave"
|
|
||||||
icon="fas fa-check"
|
|
||||||
color="positive"
|
|
||||||
label="Salva"
|
|
||||||
size="sm"
|
|
||||||
:disable="disableSave"
|
|
||||||
@click="saveElem(true)">
|
|
||||||
</q-btn>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -62,9 +62,9 @@ export default defineComponent({
|
|||||||
if (mypath.value !== '') rec.value = await globalStore.loadPage('/' + mypath.value)
|
if (mypath.value !== '') rec.value = await globalStore.loadPage('/' + mypath.value)
|
||||||
})
|
})
|
||||||
|
|
||||||
// onMounted(load)
|
onMounted(load)
|
||||||
|
|
||||||
load()
|
// load()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
rec, globalStore
|
rec, globalStore
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { IMyElem, IMyPage } from '@src/model'
|
|||||||
import { useGlobalStore } from '@store/globalStore'
|
import { useGlobalStore } from '@store/globalStore'
|
||||||
import { LandingFooter } from '@/components/LandingFooter'
|
import { LandingFooter } from '@/components/LandingFooter'
|
||||||
import { CMyElem } from '@/components/CMyElem'
|
import { CMyElem } from '@/components/CMyElem'
|
||||||
|
import { CMyEditElem } from '@/components/CMyEditElem'
|
||||||
|
|
||||||
import { CImgTitle } from '../CImgTitle/index'
|
import { CImgTitle } from '../CImgTitle/index'
|
||||||
import { CTitle } from '../CTitle/index'
|
import { CTitle } from '../CTitle/index'
|
||||||
@@ -17,7 +18,7 @@ import { shared_consts } from '@/common/shared_vuejs'
|
|||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'CMyPageElem',
|
name: 'CMyPageElem',
|
||||||
components: { LandingFooter, CImgTitle, CTitle, CMyElem },
|
components: { LandingFooter, CImgTitle, CTitle, CMyElem, CMyEditElem },
|
||||||
props: {
|
props: {
|
||||||
title: String,
|
title: String,
|
||||||
mypath: {
|
mypath: {
|
||||||
@@ -61,6 +62,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
const editOn = ref(false)
|
const editOn = ref(false)
|
||||||
const addOn = ref(false)
|
const addOn = ref(false)
|
||||||
|
const selElem = ref({} as IMyElem)
|
||||||
const myelemVoid = ref({active: true, type: shared_consts.ELEMTYPE.TEXT, container: '...', path: mypathin.value} as IMyElem)
|
const myelemVoid = ref({active: true, type: shared_consts.ELEMTYPE.TEXT, container: '...', path: mypathin.value} as IMyElem)
|
||||||
|
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
@@ -76,6 +78,11 @@ export default defineComponent({
|
|||||||
const load = async (): Promise<void> => {
|
const load = async (): Promise<void> => {
|
||||||
// console.log('load', mypathin.value)
|
// console.log('load', mypathin.value)
|
||||||
if (mypathin.value !== '') rec.value = await globalStore.loadPage('/' + mypathin.value)
|
if (mypathin.value !== '') rec.value = await globalStore.loadPage('/' + mypathin.value)
|
||||||
|
|
||||||
|
editOn.value = tools.getCookie('EDIT_' + mypathin.value) === '-1' ? true : false
|
||||||
|
if (mypathin.value === 'home')
|
||||||
|
editOn.value = false
|
||||||
|
console.log('getcookie: ', editOn.value, mypathin.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(() => props.mypath, async (to: string, from: string) => {
|
watch(() => props.mypath, async (to: string, from: string) => {
|
||||||
@@ -84,6 +91,19 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
function selElemClick(myelem: IMyElem) {
|
||||||
|
selElem.value = myelem
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveElem(myelem: IMyElem) {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
function changeVisuDrawer() {
|
||||||
|
console.log('changeVisuDrawer')
|
||||||
|
tools.setCookie('EDIT_' + mypathin.value, editOn.value ? '-1' : '0')
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(load)
|
onMounted(load)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -94,6 +114,10 @@ export default defineComponent({
|
|||||||
tools,
|
tools,
|
||||||
shared_consts,
|
shared_consts,
|
||||||
myelemVoid,
|
myelemVoid,
|
||||||
|
selElemClick,
|
||||||
|
selElem,
|
||||||
|
saveElem,
|
||||||
|
changeVisuDrawer,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -1,26 +1,44 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div v-if="mypathin && !!rec">
|
<div v-if="mypathin && !!rec">
|
||||||
<q-toolbar>
|
<q-toggle
|
||||||
<q-toggle v-if="tools.isManager()"
|
v-if="tools.isManager()"
|
||||||
v-model="editOn"
|
v-model="editOn"
|
||||||
|
color="green"
|
||||||
|
@update:model-value="changeVisuDrawer"
|
||||||
icon="fas fa-pencil-alt"
|
icon="fas fa-pencil-alt"
|
||||||
>
|
>
|
||||||
|
|
||||||
</q-toggle>
|
</q-toggle>
|
||||||
<!-- <q-toggle v-if="tools.isManager()"
|
<q-drawer
|
||||||
v-model="addOn"
|
v-model="editOn"
|
||||||
icon="fas fa-plus"
|
side="right"
|
||||||
|
show-if-above
|
||||||
|
:width="400"
|
||||||
|
:breakpoint="700"
|
||||||
|
elevated
|
||||||
>
|
>
|
||||||
|
<q-bar dense class="bg-primary text-white">
|
||||||
</q-toggle>-->
|
<q-toolbar-title> Editor </q-toolbar-title>
|
||||||
|
<q-btn
|
||||||
|
flat
|
||||||
</q-toolbar>
|
round
|
||||||
|
color="white"
|
||||||
|
icon="close"
|
||||||
|
@click="editOn = false; changeVisuDrawer()"
|
||||||
|
></q-btn>
|
||||||
|
</q-bar>
|
||||||
|
<CMyEditElem
|
||||||
|
:myelem="selElem"
|
||||||
|
:editOn="true"
|
||||||
|
:path="rec.path"
|
||||||
|
@saveElem="saveElem"
|
||||||
|
>
|
||||||
|
</CMyEditElem>
|
||||||
|
</q-drawer>
|
||||||
|
|
||||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||||
<div v-if="!!rec.img1" class="text-center">
|
<div v-if="!!rec.img1" class="text-center">
|
||||||
<q-img :src="``+ rec.img1" class="img"></q-img>
|
<q-img :src="`` + rec.img1" class="img"></q-img>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="!!rec.content" v-html="rec.content"></div>
|
<div v-if="!!rec.content" v-html="rec.content"></div>
|
||||||
@@ -28,41 +46,62 @@
|
|||||||
</q-video>
|
</q-video>
|
||||||
|
|
||||||
<div v-if="!!rec.img2" class="text-center">
|
<div v-if="!!rec.img2" class="text-center">
|
||||||
<q-img :src="``+ rec.img2" class="img"></q-img>
|
<q-img :src="`` + rec.img2" class="img"></q-img>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="!!rec.content2" v-html="rec.content2"></div>
|
<div v-if="!!rec.content2" v-html="rec.content2"></div>
|
||||||
<q-video v-if="!!rec.video2" :src="rec.video2" :ratio="rec.ratio2"></q-video>
|
<q-video
|
||||||
|
v-if="!!rec.video2"
|
||||||
|
:src="rec.video2"
|
||||||
|
:ratio="rec.ratio2"
|
||||||
|
></q-video>
|
||||||
|
|
||||||
<div v-if="!!rec.img3" class="text-center">
|
<div v-if="!!rec.img3" class="text-center">
|
||||||
<q-img :src="``+ rec.img2" class="img"></q-img>
|
<q-img :src="`` + rec.img2" class="img"></q-img>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="!!rec.content3" v-html="rec.content3"></div>
|
<div v-if="!!rec.content3" v-html="rec.content3"></div>
|
||||||
<q-video v-if="!!rec.video3" :src="rec.video3" :ratio="rec.ratio3"></q-video>
|
<q-video
|
||||||
|
v-if="!!rec.video3"
|
||||||
|
:src="rec.video3"
|
||||||
|
:ratio="rec.ratio3"
|
||||||
|
></q-video>
|
||||||
<div v-if="!!rec.content4" v-html="rec.content4"></div>
|
<div v-if="!!rec.content4" v-html="rec.content4"></div>
|
||||||
|
|
||||||
<span v-for="(myelem, ind) in myelems" :key="ind">
|
<div v-for="(myelem, ind) in myelems" :key="ind">
|
||||||
<CMyElem v-if="myelem.active || editOn" :myelem="myelem" :editOn="editOn" :addOn="addOn" :path="rec.path">
|
<CMyElem
|
||||||
|
v-if="myelem.active || editOn"
|
||||||
|
:myelem="myelem"
|
||||||
|
:editOn="editOn"
|
||||||
|
:addOn="addOn"
|
||||||
|
:path="rec.path"
|
||||||
|
@selElemClick="selElemClick"
|
||||||
|
>
|
||||||
</CMyElem>
|
</CMyElem>
|
||||||
</span>
|
</div>
|
||||||
<div v-if="myelems.length === 0">
|
<div v-if="myelems.length === 0">
|
||||||
<CMyElem v-if="editOn" :myelem="myelemVoid" :editOn="editOn" :addOn="addOn" :path="rec.path">
|
<CMyElem
|
||||||
|
v-if="editOn"
|
||||||
|
:myelem="myelemVoid"
|
||||||
|
:editOn="editOn"
|
||||||
|
:addOn="addOn"
|
||||||
|
:path="rec.path"
|
||||||
|
>
|
||||||
</CMyElem>
|
</CMyElem>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
|
||||||
<div v-if="!!title">
|
<div v-if="!!title">
|
||||||
<CTitle
|
<CTitle
|
||||||
v-if="imgbackground" :imgbackground="imgbackground"
|
v-if="imgbackground"
|
||||||
:headtitle="title" :sizes="sizes" :styleadd="styleadd"></CTitle>
|
:imgbackground="imgbackground"
|
||||||
|
:headtitle="title"
|
||||||
|
:sizes="sizes"
|
||||||
|
:styleadd="styleadd"
|
||||||
|
></CTitle>
|
||||||
<div v-if="!imgbackground">
|
<div v-if="!imgbackground">
|
||||||
<CImgTitle v-if="img" :src="img" :title="title">
|
<CImgTitle v-if="img" :src="img" :title="title"> </CImgTitle>
|
||||||
</CImgTitle>
|
|
||||||
</div>
|
</div>
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
<div v-if="!nofooter">
|
<div v-if="!nofooter">
|
||||||
|
|||||||
0
src/components/CSelectColor/CSelectColor.scss
Executable file
0
src/components/CSelectColor/CSelectColor.scss
Executable file
40
src/components/CSelectColor/CSelectColor.ts
Executable file
40
src/components/CSelectColor/CSelectColor.ts
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
import { defineComponent, ref, toRef, watch } from 'vue'
|
||||||
|
import { tools } from '@src/store/Modules/tools'
|
||||||
|
|
||||||
|
import { useQuasar } from 'quasar'
|
||||||
|
import { useI18n } from '@/boot/i18n'
|
||||||
|
import { toolsext } from '@store/Modules/toolsext'
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'CSelectColor',
|
||||||
|
emits: ['update:modelValue'],
|
||||||
|
props: {
|
||||||
|
modelValue: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
components: {},
|
||||||
|
setup(props, { emit }) {
|
||||||
|
const $q = useQuasar()
|
||||||
|
const { t } = useI18n();
|
||||||
|
|
||||||
|
const color = toRef(props, 'modelValue')
|
||||||
|
|
||||||
|
function updateValue(str: string) {
|
||||||
|
emit('update:modelValue', str)
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
tools,
|
||||||
|
toolsext,
|
||||||
|
updateValue,
|
||||||
|
color,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
40
src/components/CSelectColor/CSelectColor.vue
Executable file
40
src/components/CSelectColor/CSelectColor.vue
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
<template>
|
||||||
|
<q-select
|
||||||
|
rounded
|
||||||
|
outlined
|
||||||
|
v-model="color"
|
||||||
|
@update:model-value="updateValue"
|
||||||
|
:options="tools.SelectListColors"
|
||||||
|
dense
|
||||||
|
:label="title"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
>
|
||||||
|
<template v-slot:selected>
|
||||||
|
<q-chip
|
||||||
|
dense
|
||||||
|
square
|
||||||
|
color="white"
|
||||||
|
class="q-my-none q-ml-xs q-mr-none"
|
||||||
|
>
|
||||||
|
<span :style="`color: `+ color">{{ color }}</span>
|
||||||
|
</q-chip>
|
||||||
|
</template>
|
||||||
|
<template v-slot:option="scope">
|
||||||
|
<q-item v-bind="scope.itemProps">
|
||||||
|
<q-item-section>
|
||||||
|
<q-item-label :style="`color: ` + scope.opt.value">{{
|
||||||
|
scope.opt.label
|
||||||
|
}}</q-item-label>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</template>
|
||||||
|
</q-select>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" src="./CSelectColor.ts">
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import './CSelectColor.scss';
|
||||||
|
</style>
|
||||||
1
src/components/CSelectColor/index.ts
Executable file
1
src/components/CSelectColor/index.ts
Executable file
@@ -0,0 +1 @@
|
|||||||
|
export {default as CSelectColor} from './CSelectColor.vue'
|
||||||
0
src/components/CSelectFontSize/CSelectFontSize.scss
Executable file
0
src/components/CSelectFontSize/CSelectFontSize.scss
Executable file
40
src/components/CSelectFontSize/CSelectFontSize.ts
Executable file
40
src/components/CSelectFontSize/CSelectFontSize.ts
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
import { defineComponent, ref, toRef, watch } from 'vue'
|
||||||
|
import { tools } from '@src/store/Modules/tools'
|
||||||
|
|
||||||
|
import { useQuasar } from 'quasar'
|
||||||
|
import { useI18n } from '@/boot/i18n'
|
||||||
|
import { toolsext } from '@store/Modules/toolsext'
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'CSelectFontSize',
|
||||||
|
emits: ['update:modelValue'],
|
||||||
|
props: {
|
||||||
|
modelValue: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
components: {},
|
||||||
|
setup(props, { emit }) {
|
||||||
|
const $q = useQuasar()
|
||||||
|
const { t } = useI18n();
|
||||||
|
|
||||||
|
const classfont = toRef(props, 'modelValue')
|
||||||
|
|
||||||
|
function updateValue(str: string) {
|
||||||
|
emit('update:modelValue', str)
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
tools,
|
||||||
|
toolsext,
|
||||||
|
updateValue,
|
||||||
|
classfont,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
40
src/components/CSelectFontSize/CSelectFontSize.vue
Executable file
40
src/components/CSelectFontSize/CSelectFontSize.vue
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
<template>
|
||||||
|
<q-select
|
||||||
|
rounded
|
||||||
|
outlined
|
||||||
|
v-model="classfont"
|
||||||
|
@update:model-value="updateValue"
|
||||||
|
:options="tools.SelectListFontSize"
|
||||||
|
dense
|
||||||
|
:label="title"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
>
|
||||||
|
<template v-slot:selected>
|
||||||
|
<q-chip
|
||||||
|
dense
|
||||||
|
square
|
||||||
|
color="white"
|
||||||
|
class="q-my-none q-ml-xs q-mr-none"
|
||||||
|
>
|
||||||
|
<span :class="classfont">{{ classfont }}</span>
|
||||||
|
</q-chip>
|
||||||
|
</template>
|
||||||
|
<template v-slot:option="scope">
|
||||||
|
<q-item v-bind="scope.itemProps">
|
||||||
|
<q-item-section>
|
||||||
|
<q-item-label :class="scope.opt.value">{{
|
||||||
|
scope.opt.label
|
||||||
|
}}</q-item-label>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</template>
|
||||||
|
</q-select>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" src="./CSelectFontSize.ts">
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import './CSelectFontSize.scss';
|
||||||
|
</style>
|
||||||
1
src/components/CSelectFontSize/index.ts
Executable file
1
src/components/CSelectFontSize/index.ts
Executable file
@@ -0,0 +1 @@
|
|||||||
|
export {default as CSelectFontSize} from './CSelectFontSize.vue'
|
||||||
@@ -244,7 +244,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
mylangtopass = toolsext.checkLangPassed($q, $router, mylangtopass)
|
mylangtopass = toolsext.checkLangPassed($q, $router, mylangtopass)
|
||||||
|
|
||||||
userStore.setlang($router, mylangtopass)
|
userStore.setlang($q, $router, mylangtopass)
|
||||||
|
|
||||||
setshortlang(mylangtopass)
|
setshortlang(mylangtopass)
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ export * from './CMyPageElem'
|
|||||||
export * from './CMyPageIntro'
|
export * from './CMyPageIntro'
|
||||||
export * from './CMyElem'
|
export * from './CMyElem'
|
||||||
export * from './CMyTeacher'
|
export * from './CMyTeacher'
|
||||||
|
export * from './CSelectFontSize'
|
||||||
export * from './CProfile'
|
export * from './CProfile'
|
||||||
export * from './CProvaPao'
|
export * from './CProvaPao'
|
||||||
export * from './CSignIn'
|
export * from './CSignIn'
|
||||||
|
|||||||
@@ -288,10 +288,13 @@ $heightBtn: 100%;
|
|||||||
|
|
||||||
.my-card {
|
.my-card {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
max-width: 300px;
|
max-width: 400px;
|
||||||
min-width: 300px;
|
min-width: 250px;
|
||||||
padding: 1rem 1rem;
|
padding: 1rem 1rem;
|
||||||
|
@media (max-width: 500px) {
|
||||||
|
max-width: 400px;
|
||||||
|
min-width: 250px;
|
||||||
|
}
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -846,7 +846,7 @@ const baseroutes: IListRoutes[] = [
|
|||||||
|
|
||||||
const arrLangUsed = [
|
const arrLangUsed = [
|
||||||
'it',
|
'it',
|
||||||
// 'enUs',
|
'enUs',
|
||||||
// 'es',
|
// 'es',
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -860,10 +860,10 @@ const lang_available: ILang[] = [
|
|||||||
{
|
{
|
||||||
label: 'Italiano', icon: 'fa-flag-it', value: 'it', image: '../images/it.png', short: 'IT',
|
label: 'Italiano', icon: 'fa-flag-it', value: 'it', image: '../images/it.png', short: 'IT',
|
||||||
},
|
},
|
||||||
/*{
|
{
|
||||||
label: 'English', icon: 'fa-flag-us', value: 'enUs', image: '../images/gb.png', short: 'EN',
|
label: 'English', icon: 'fa-flag-us', value: 'enUs', image: '../images/gb.png', short: 'EN',
|
||||||
},
|
},
|
||||||
{
|
/*{
|
||||||
label: 'Español', icon: 'fa-flag-es', value: 'es', image: '../images/es.png', short: 'ES',
|
label: 'Español', icon: 'fa-flag-es', value: 'es', image: '../images/es.png', short: 'ES',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -119,6 +119,7 @@ export interface IMyElem {
|
|||||||
container?: string
|
container?: string
|
||||||
container2?: string
|
container2?: string
|
||||||
container3?: string
|
container3?: string
|
||||||
|
span?: boolean
|
||||||
align?: number
|
align?: number
|
||||||
fit?: string
|
fit?: string
|
||||||
parambool?: boolean
|
parambool?: boolean
|
||||||
@@ -138,9 +139,11 @@ export interface IMyElem {
|
|||||||
onlyif_logged?: boolean
|
onlyif_logged?: boolean
|
||||||
active?: boolean
|
active?: boolean
|
||||||
class?: string
|
class?: string
|
||||||
|
image?: string
|
||||||
|
class2?: string
|
||||||
styleadd?: string
|
styleadd?: string
|
||||||
list?: IImgGallery[]
|
list?: IImgGallery[]
|
||||||
|
listcards?: IMyCard[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IMyPage {
|
export interface IMyPage {
|
||||||
@@ -488,6 +491,16 @@ export interface IImgGallery {
|
|||||||
description?: string
|
description?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IMyCard {
|
||||||
|
imagefile?: string
|
||||||
|
alt?: string
|
||||||
|
description?: string
|
||||||
|
size?: string
|
||||||
|
color?: string
|
||||||
|
content?: string
|
||||||
|
colorsub?: string
|
||||||
|
}
|
||||||
|
|
||||||
export interface IGallery {
|
export interface IGallery {
|
||||||
_id?: string
|
_id?: string
|
||||||
author_username?: string
|
author_username?: string
|
||||||
|
|||||||
@@ -287,6 +287,7 @@ export const costanti = {
|
|||||||
listobj: 13000,
|
listobj: 13000,
|
||||||
label: 14000,
|
label: 14000,
|
||||||
currency: 15000,
|
currency: 15000,
|
||||||
|
cards: 16000,
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -130,6 +130,7 @@ export const colmyelems = [
|
|||||||
AddCol({ name: 'type', label_trans: 'myelems.type', fieldtype: costanti.FieldType.select, jointable: 'elemtypes' }),
|
AddCol({ name: 'type', label_trans: 'myelems.type', fieldtype: costanti.FieldType.select, jointable: 'elemtypes' }),
|
||||||
AddCol({ name: 'container', label_trans: 'myelems.container' }),
|
AddCol({ name: 'container', label_trans: 'myelems.container' }),
|
||||||
AddCol({ name: 'container2', label_trans: 'myelems.container2' }),
|
AddCol({ name: 'container2', label_trans: 'myelems.container2' }),
|
||||||
|
AddCol({ name: 'span', label_trans: 'myelems.span', fieldtype: costanti.FieldType.boolean }),
|
||||||
AddCol({ name: 'container3', label_trans: 'myelems.container3' }),
|
AddCol({ name: 'container3', label_trans: 'myelems.container3' }),
|
||||||
AddCol({ name: 'img', label_trans: 'myelems.img' }),
|
AddCol({ name: 'img', label_trans: 'myelems.img' }),
|
||||||
AddCol({ name: 'align', label_trans: 'myelems.align', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'align', label_trans: 'myelems.align', fieldtype: costanti.FieldType.number }),
|
||||||
@@ -142,6 +143,7 @@ export const colmyelems = [
|
|||||||
AddCol({ name: 'size', label_trans: 'myelems.size' }),
|
AddCol({ name: 'size', label_trans: 'myelems.size' }),
|
||||||
AddCol({ name: 'ratio', label_trans: 'myelems.ratio' }),
|
AddCol({ name: 'ratio', label_trans: 'myelems.ratio' }),
|
||||||
AddCol({ name: 'containerHtml', label_trans: 'myelems.containerHtml', fieldtype: costanti.FieldType.html }),
|
AddCol({ name: 'containerHtml', label_trans: 'myelems.containerHtml', fieldtype: costanti.FieldType.html }),
|
||||||
|
AddCol({ name: 'listcards', label_trans: 'myelems.listcards', fieldtype: costanti.FieldType.listimages }),
|
||||||
AddCol({ name: 'height', label_trans: 'myelems.height', fieldtype: costanti.FieldType.number }),
|
AddCol({ name: 'height', label_trans: 'myelems.height', fieldtype: costanti.FieldType.number }),
|
||||||
AddCol({ name: 'heightimg', label_trans: 'myelems.heightimg', fieldtype: costanti.FieldType.string }),
|
AddCol({ name: 'heightimg', label_trans: 'myelems.heightimg', fieldtype: costanti.FieldType.string }),
|
||||||
AddCol({ name: 'widthimg', label_trans: 'pages.widthimg', fieldtype: costanti.FieldType.string }),
|
AddCol({ name: 'widthimg', label_trans: 'pages.widthimg', fieldtype: costanti.FieldType.string }),
|
||||||
@@ -159,6 +161,11 @@ export const colmyelems = [
|
|||||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
|
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
|
||||||
isInModif: true,
|
isInModif: true,
|
||||||
}),
|
}),
|
||||||
|
AddCol({
|
||||||
|
name: 'image',
|
||||||
|
label_trans: 'myelems.image',
|
||||||
|
fieldtype: costanti.FieldType.image,
|
||||||
|
}),
|
||||||
AddCol(DeleteRec),
|
AddCol(DeleteRec),
|
||||||
AddCol(DuplicateRec),
|
AddCol(DuplicateRec),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -292,6 +292,171 @@ export const tools = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
SelectListColors: [
|
||||||
|
{label: '[Nessuno]', value: ''},
|
||||||
|
{label: 'aliceblue', value: '#f0f8ff'},
|
||||||
|
{label: 'antiquewhite', value: '#faebd7'},
|
||||||
|
{label: 'aqua', value: '#00ffff'},
|
||||||
|
{label: 'aquamarine', value: '#7fffd4'},
|
||||||
|
{label: 'azure', value: '#f0ffff'},
|
||||||
|
{label: 'beige', value: '#f5f5dc'},
|
||||||
|
{label: 'bisque', value: '#ffe4c4'},
|
||||||
|
{label: 'black', value: '#000000'},
|
||||||
|
{label: 'blanchedalmond', value: '#ffebcd'},
|
||||||
|
{label: 'blue', value: '#0000ff'},
|
||||||
|
{label: 'blue-3', value: '#90caf9'},
|
||||||
|
{label: 'blue-4', value: '#64b5f6'},
|
||||||
|
{label: 'amber-10', value: '#ff6f00'},
|
||||||
|
{label: 'blue-6', value: '#2196f3'},
|
||||||
|
{label: 'blueviolet', value: '#8a2be2'},
|
||||||
|
{label: 'brown', value: '#a52a2a'},
|
||||||
|
{label: 'burlywood', value: '#deb887'},
|
||||||
|
{label: 'cadetblue', value: '#5f9ea0'},
|
||||||
|
{label: 'chartreuse', value: '#7fff00'},
|
||||||
|
{label: 'chocolate', value: '#d2691e'},
|
||||||
|
{label: 'coral', value: '#ff7f50'},
|
||||||
|
{label: 'cornflowerblue', value: '#6495ed'},
|
||||||
|
{label: 'cornsilk', value: '#fff8dc'},
|
||||||
|
{label: 'crimson', value: '#dc143c'},
|
||||||
|
{label: 'cyan', value: '#00ffff'},
|
||||||
|
{label: 'darkblue', value: '#00008b'},
|
||||||
|
{label: 'darkcyan', value: '#008b8b'},
|
||||||
|
{label: 'darkgoldenrod', value: '#b8860b'},
|
||||||
|
{label: 'darkgray', value: '#a9a9a9'},
|
||||||
|
{label: 'darkgreen', value: '#006400'},
|
||||||
|
{label: 'darkkhaki', value: '#bdb76b'},
|
||||||
|
{label: 'darkmagenta', value: '#8b008b'},
|
||||||
|
{label: 'darkolivegreen', value: '#556b2f'},
|
||||||
|
{label: 'darkorange', value: '#ff8c00'},
|
||||||
|
{label: 'darkorchid', value: '#9932cc'},
|
||||||
|
{label: 'darkred', value: '#8b0000'},
|
||||||
|
{label: 'darksalmon', value: '#e9967a'},
|
||||||
|
{label: 'darkseagreen', value: '#8fbc8f'},
|
||||||
|
{label: 'darkslateblue', value: '#483d8b'},
|
||||||
|
{label: 'darkslategray', value: '#2f4f4f'},
|
||||||
|
{label: 'darkturquoise', value: '#00ced1'},
|
||||||
|
{label: 'darkviolet', value: '#9400d3'},
|
||||||
|
{label: 'deeppink', value: '#ff1493'},
|
||||||
|
{label: 'deepskyblue', value: '#00bfff'},
|
||||||
|
{label: 'dimgray', value: '#696969'},
|
||||||
|
{label: 'dodgerblue', value: '#1e90ff'},
|
||||||
|
{label: 'firebrick', value: '#b22222'},
|
||||||
|
{label: 'floralwhite', value: '#fffaf0'},
|
||||||
|
{label: 'forestgreen', value: '#228b22'},
|
||||||
|
{label: 'fuchsia', value: '#ff00ff'},
|
||||||
|
{label: 'gainsboro', value: '#dcdcdc'},
|
||||||
|
{label: 'ghostwhite', value: '#f8f8ff'},
|
||||||
|
{label: 'gold', value: '#ffd700'},
|
||||||
|
{label: 'goldenrod', value: '#daa520'},
|
||||||
|
{label: 'gray', value: '#808080'},
|
||||||
|
{label: 'green', value: '#008000'},
|
||||||
|
{label: 'green-3', value: '#a5d6a7'},
|
||||||
|
{label: 'green-4', value: '#81c784'},
|
||||||
|
{label: 'green-6', value: '#4caf50'},
|
||||||
|
{label: 'greenyellow', value: '#adff2f'},
|
||||||
|
{label: 'honeydew', value: '#f0fff0'},
|
||||||
|
{label: 'hotpink', value: '#ff69b4'},
|
||||||
|
{label: 'indianred ', value: '#cd5c5c'},
|
||||||
|
{label: 'indigo-3', value: '#9fa8da'},
|
||||||
|
{label: 'indigo-4', value: '#7986cb'},
|
||||||
|
{label: 'indigo-6', value: '#3f51b5'},
|
||||||
|
{label: 'indigo', value: '#4b0082'},
|
||||||
|
{label: 'ivory', value: '#fffff0'},
|
||||||
|
{label: 'khaki', value: '#f0e68c'},
|
||||||
|
{label: 'lavender', value: '#e6e6fa'},
|
||||||
|
{label: 'lavenderblush', value: '#fff0f5'},
|
||||||
|
{label: 'lawngreen', value: '#7cfc00'},
|
||||||
|
{label: 'lemonchiffon', value: '#fffacd'},
|
||||||
|
{label: 'lightblue', value: '#add8e6'},
|
||||||
|
{label: 'lightcoral', value: '#f08080'},
|
||||||
|
{label: 'lightcyan', value: '#e0ffff'},
|
||||||
|
{label: 'lightgoldenrodyellow', value: '#fafad2'},
|
||||||
|
{label: 'lightgrey', value: '#d3d3d3'},
|
||||||
|
{label: 'lightgreen', value: '#90ee90'},
|
||||||
|
{label: 'lightpink', value: '#ffb6c1'},
|
||||||
|
{label: 'lightsalmon', value: '#ffa07a'},
|
||||||
|
{label: 'lightseagreen', value: '#20b2aa'},
|
||||||
|
{label: 'lightskyblue', value: '#87cefa'},
|
||||||
|
{label: 'lightslategray', value: '#778899'},
|
||||||
|
{label: 'lightsteelblue', value: '#b0c4de'},
|
||||||
|
{label: 'lightyellow', value: '#ffffe0'},
|
||||||
|
{label: 'lime', value: '#00ff00'},
|
||||||
|
{label: 'lime-3', value: '#e6ee9c'},
|
||||||
|
{label: 'lime-4', value: '#dce775'},
|
||||||
|
{label: 'lime-6', value: '#cddc39'},
|
||||||
|
{label: 'lime-8', value: '#afb42b'},
|
||||||
|
{label: 'limegreen', value: '#32cd32'},
|
||||||
|
{label: 'linen', value: '#faf0e6'},
|
||||||
|
{label: 'magenta', value: '#ff00ff'},
|
||||||
|
{label: 'maroon', value: '#800000'},
|
||||||
|
{label: 'mediumaquamarine', value: '#66cdaa'},
|
||||||
|
{label: 'mediumblue', value: '#0000cd'},
|
||||||
|
{label: 'mediumorchid', value: '#ba55d3'},
|
||||||
|
{label: 'mediumpurple', value: '#9370d8'},
|
||||||
|
{label: 'mediumseagreen', value: '#3cb371'},
|
||||||
|
{label: 'mediumslateblue', value: '#7b68ee'},
|
||||||
|
{label: 'mediumspringgreen', value: '#00fa9a'},
|
||||||
|
{label: 'mediumturquoise', value: '#48d1cc'},
|
||||||
|
{label: 'mediumvioletred', value: '#c71585'},
|
||||||
|
{label: 'midnightblue', value: '#191970'},
|
||||||
|
{label: 'mintcream', value: '#f5fffa'},
|
||||||
|
{label: 'mistyrose', value: '#ffe4e1'},
|
||||||
|
{label: 'moccasin', value: '#ffe4b5'},
|
||||||
|
{label: 'navajowhite', value: '#ffdead'},
|
||||||
|
{label: 'navy', value: '#000080'},
|
||||||
|
{label: 'oldlace', value: '#fdf5e6'},
|
||||||
|
{label: 'olive', value: '#808000'},
|
||||||
|
{label: 'olivedrab', value: '#6b8e23'},
|
||||||
|
{label: 'orange', value: '#ffa500'},
|
||||||
|
{label: 'orange-3', value: '#ffcc80'},
|
||||||
|
{label: 'orange-4', value: '#ffb74d'},
|
||||||
|
{label: 'orange-6', value: '#ff9800'},
|
||||||
|
{label: 'orangered', value: '#ff4500'},
|
||||||
|
{label: 'orchid', value: '#da70d6'},
|
||||||
|
{label: 'palegoldenrod', value: '#eee8aa'},
|
||||||
|
{label: 'palegreen', value: '#98fb98'},
|
||||||
|
{label: 'paleturquoise', value: '#afeeee'},
|
||||||
|
{label: 'palevioletred', value: '#d87093'},
|
||||||
|
{label: 'papayawhip', value: '#ffefd5'},
|
||||||
|
{label: 'peachpuff', value: '#ffdab9'},
|
||||||
|
{label: 'peru', value: '#cd853f'},
|
||||||
|
{label: 'pink', value: '#ffc0cb'},
|
||||||
|
{label: 'plum', value: '#dda0dd'},
|
||||||
|
{label: 'powderblue', value: '#b0e0e6'},
|
||||||
|
{label: 'purple', value: '#800080'},
|
||||||
|
{label: 'rebeccapurple', value: '#663399'},
|
||||||
|
{label: 'red', value: '#ff0000'},
|
||||||
|
{label: 'red-3', value: '#ef9a9a'},
|
||||||
|
{label: 'red-4', value: '#e57373'},
|
||||||
|
{label: 'red-6', value: '#f44336'},
|
||||||
|
{label: 'rosybrown', value: '#bc8f8f'},
|
||||||
|
{label: 'royalblue', value: '#4169e1'},
|
||||||
|
{label: 'saddlebrown', value: '#8b4513'},
|
||||||
|
{label: 'salmon', value: '#fa8072'},
|
||||||
|
{label: 'sandybrown', value: '#f4a460'},
|
||||||
|
{label: 'seagreen', value: '#2e8b57'},
|
||||||
|
{label: 'seashell', value: '#fff5ee'},
|
||||||
|
{label: 'sienna', value: '#a0522d'},
|
||||||
|
{label: 'silver', value: '#c0c0c0'},
|
||||||
|
{label: 'skyblue', value: '#87ceeb'},
|
||||||
|
{label: 'slateblue', value: '#6a5acd'},
|
||||||
|
{label: 'slategray', value: '#708090'},
|
||||||
|
{label: 'snow', value: '#fffafa'},
|
||||||
|
{label: 'springgreen', value: '#00ff7f'},
|
||||||
|
{label: 'steelblue', value: '#4682b4'},
|
||||||
|
{label: 'tan', value: '#d2b48c'},
|
||||||
|
{label: 'teal', value: '#008080'},
|
||||||
|
{label: 'thistle', value: '#d8bfd8'},
|
||||||
|
{label: 'tomato', value: '#ff6347'},
|
||||||
|
{label: 'turquoise', value: '#40e0d0'},
|
||||||
|
{label: 'violet', value: '#ee82ee'},
|
||||||
|
{label: 'wheat', value: '#f5deb3'},
|
||||||
|
{label: 'white', value: '#ffffff'},
|
||||||
|
{label: 'whitesmoke', value: '#f5f5f5'},
|
||||||
|
{label: 'yellow', value: '#ffff00'},
|
||||||
|
{label: 'yellowgreen', value: '#9acd32'},
|
||||||
|
],
|
||||||
|
|
||||||
SelectQuotaVersata: [
|
SelectQuotaVersata: [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
@@ -364,6 +529,45 @@ export const tools = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
SelectListFontSize: [
|
||||||
|
{
|
||||||
|
label: '[Nessuna]',
|
||||||
|
value: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'text-h1',
|
||||||
|
value: 'text-h1',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'text-h2',
|
||||||
|
value: 'text-h2',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'text-h3',
|
||||||
|
value: 'text-h3',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'text-h4',
|
||||||
|
value: 'text-h4',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'text-h5',
|
||||||
|
value: 'text-h5',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'text-h6',
|
||||||
|
value: 'text-h6',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'text-h7',
|
||||||
|
value: 'text-h7',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'text-h8',
|
||||||
|
value: 'text-h8',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
SelectListFit: [
|
SelectListFit: [
|
||||||
{
|
{
|
||||||
label: '[Nessuna]',
|
label: '[Nessuna]',
|
||||||
@@ -2195,7 +2399,7 @@ export const tools = {
|
|||||||
mylang = 'it'
|
mylang = 'it'
|
||||||
|
|
||||||
// Metti come default
|
// Metti come default
|
||||||
userStore.setlang($router, mylang)
|
userStore.setlang($q, $router, mylang)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2205,7 +2409,7 @@ export const tools = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (toolsext.getLocale(true) === '') {
|
if (toolsext.getLocale(true) === '') {
|
||||||
userStore.setlang($router, mylang)
|
userStore.setlang($q, $router, mylang)
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log('mylang calc : ', mylang)
|
// console.log('mylang calc : ', mylang)
|
||||||
@@ -3162,17 +3366,18 @@ export const tools = {
|
|||||||
return mylang
|
return mylang
|
||||||
},
|
},
|
||||||
|
|
||||||
setLangAtt($router: Router, mylang: string) {
|
setLangAtt($q: any, $router: Router, mylang: string) {
|
||||||
console.log('setLangAtt =', mylang)
|
console.log('setLangAtt =', mylang)
|
||||||
// console.log('PRIMA this.$q.lang.isoName', this.$q.lang.isoName)
|
// console.log('PRIMA this.$q.lang.isoName', this.$q.lang.isoName)
|
||||||
|
|
||||||
const $q = useQuasar()
|
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
|
|
||||||
// dynamic import, so loading on demand only
|
// dynamic import, so loading on demand only
|
||||||
import(`quasar/lang/${this.getlangforQuasar(mylang)}`).then((lang) => {
|
import(`quasar/lang/${this.getlangforQuasar(mylang)}`).then((lang) => {
|
||||||
console.log(' Import dinamically lang =', lang)
|
console.log(' Import dinamically lang =', lang)
|
||||||
$q.lang.set(this.getlangforQuasar(lang.default))
|
if ($q.lang)
|
||||||
|
$q.lang.set(this.getlangforQuasar(lang.default.isoName))
|
||||||
|
|
||||||
import('../../statics/i18n').then(() => {
|
import('../../statics/i18n').then(() => {
|
||||||
console.log(' *** MY LANG DOPO=', $q.lang.isoName)
|
console.log(' *** MY LANG DOPO=', $q.lang.isoName)
|
||||||
})
|
})
|
||||||
@@ -3202,7 +3407,7 @@ export const tools = {
|
|||||||
if (toolsext.getLocale() !== '') {
|
if (toolsext.getLocale() !== '') {
|
||||||
// mythisq.$i18n.locale = toolsext.getLocale()
|
// mythisq.$i18n.locale = toolsext.getLocale()
|
||||||
} else {
|
} else {
|
||||||
userStore.setlang($router, mythisq.lang.getLocale())
|
userStore.setlang(mythisq, $router, mythisq.lang.getLocale())
|
||||||
} // Set Lang
|
} // Set Lang
|
||||||
|
|
||||||
if (process.env.DEBUG) {
|
if (process.env.DEBUG) {
|
||||||
@@ -3541,7 +3746,7 @@ export const tools = {
|
|||||||
return parseFloat(myval)
|
return parseFloat(myval)
|
||||||
},
|
},
|
||||||
|
|
||||||
getCookie(mytok: any, def?: any, convertint: any = false) {
|
getCookie(mytok: any, def?: any, convertint: any = false, convertbool: any = false) {
|
||||||
const ris = Cookies.get(mytok)
|
const ris = Cookies.get(mytok)
|
||||||
// console.log('getCookie', mytok, ris)
|
// console.log('getCookie', mytok, ris)
|
||||||
if (ris === 'null')
|
if (ris === 'null')
|
||||||
@@ -3554,6 +3759,10 @@ export const tools = {
|
|||||||
return parseInt(ris, 10)
|
return parseInt(ris, 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (convertbool && !!ris) {
|
||||||
|
return ris ? true : false
|
||||||
|
}
|
||||||
|
|
||||||
// if (typeof(ris) == 'number') {
|
// if (typeof(ris) == 'number') {
|
||||||
// return this.convstrToNum(ris)
|
// return this.convstrToNum(ris)
|
||||||
// }
|
// }
|
||||||
|
|||||||
@@ -138,11 +138,9 @@ export const toolsext = {
|
|||||||
if (mylang === 'enUs') return 'en-us'
|
if (mylang === 'enUs') return 'en-us'
|
||||||
return mylang
|
return mylang
|
||||||
},
|
},
|
||||||
setLangAtt($router: Router, mylang: string) {
|
setLangAtt($q: any, $router: Router, mylang: string) {
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
|
|
||||||
const $q = useQuasar()
|
|
||||||
|
|
||||||
console.log('setLangAtt =', mylang)
|
console.log('setLangAtt =', mylang)
|
||||||
// console.log('PRIMA this.$q.lang.isoName', this.$q.lang.isoName)
|
// console.log('PRIMA this.$q.lang.isoName', this.$q.lang.isoName)
|
||||||
|
|
||||||
@@ -150,7 +148,7 @@ export const toolsext = {
|
|||||||
import(`quasar/lang/${this.getlangforQuasar(mylang)}`).then((lang) => {
|
import(`quasar/lang/${this.getlangforQuasar(mylang)}`).then((lang) => {
|
||||||
console.log(' Import dinamically lang =', lang)
|
console.log(' Import dinamically lang =', lang)
|
||||||
|
|
||||||
$q.lang.set(this.getlangforQuasar(lang.default))
|
$q.lang.set(this.getlangforQuasar(lang.default.isoName))
|
||||||
import('../../statics/i18n').then(() => {
|
import('../../statics/i18n').then(() => {
|
||||||
console.log(' *** MY LANG DOPO=', $q.lang.isoName)
|
console.log(' *** MY LANG DOPO=', $q.lang.isoName)
|
||||||
})
|
})
|
||||||
@@ -274,7 +272,7 @@ export const toolsext = {
|
|||||||
mylang = 'it'
|
mylang = 'it'
|
||||||
|
|
||||||
// Metti come default
|
// Metti come default
|
||||||
userStore.setlang($router, mylang)
|
userStore.setlang($q, $router, mylang)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -284,7 +282,7 @@ export const toolsext = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.getLocale(true) === '') {
|
if (this.getLocale(true) === '') {
|
||||||
userStore.setlang($router, mylang)
|
userStore.setlang($q, $router, mylang)
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log('mylang calc : ', mylang)
|
// console.log('mylang calc : ', mylang)
|
||||||
|
|||||||
@@ -694,10 +694,10 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
this.usersList = [...usersList]
|
this.usersList = [...usersList]
|
||||||
},
|
},
|
||||||
|
|
||||||
setlang($router: Router, newstr: string) {
|
setlang($q: any, $router: Router, newstr: string) {
|
||||||
console.log('SETLANG', newstr)
|
console.log('SETLANG', newstr)
|
||||||
this.lang = newstr
|
this.lang = newstr
|
||||||
toolsext.setLangAtt($router, newstr)
|
toolsext.setLangAtt($q, $router, newstr)
|
||||||
tools.localStSetItem(toolsext.localStorage.lang, this.lang)
|
tools.localStSetItem(toolsext.localStorage.lang, this.lang)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -1754,6 +1754,14 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
|
|
||||||
mydata.data = myelem
|
mydata.data = myelem
|
||||||
|
|
||||||
|
// Save in Memory
|
||||||
|
for (let i = 0; i < this.myelems.length; i++) {
|
||||||
|
if (this.myelems[i]._id === myelem._id) {
|
||||||
|
this.myelems[i] = myelem;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return await this.saveTable(mydata)
|
return await this.saveTable(mydata)
|
||||||
.then((ris) => {
|
.then((ris) => {
|
||||||
if (ris) {
|
if (ris) {
|
||||||
|
|||||||
BIN
upload/pages/home/nuda_e_cruda.jpeg
Normal file
BIN
upload/pages/home/nuda_e_cruda.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 311 KiB |
Reference in New Issue
Block a user