- Booking Event (with email to user and admin)
- Cancel Event (with email to user and admin) - Store into mongodb
This commit is contained in:
@@ -28,7 +28,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/plugin-transform-runtime": "^7.4.0",
|
"@babel/plugin-transform-runtime": "^7.4.0",
|
||||||
"@babel/runtime": "^7.0.0",
|
"@babel/runtime": "^7.0.0",
|
||||||
"@quasar/extras": "^1.3.1",
|
"@quasar/extras": "^1.3.2",
|
||||||
"@types/vuelidate": "^0.7.0",
|
"@types/vuelidate": "^0.7.0",
|
||||||
"@vue/eslint-config-standard": "^4.0.0",
|
"@vue/eslint-config-standard": "^4.0.0",
|
||||||
"acorn": "^6.0.0",
|
"acorn": "^6.0.0",
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
"normalize.css": "^8.0.0",
|
"normalize.css": "^8.0.0",
|
||||||
"npm": "^6.10.1",
|
"npm": "^6.10.1",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"quasar": "^1.1.0",
|
"quasar": "^1.1.6",
|
||||||
"quasar-extras": "^2.0.8",
|
"quasar-extras": "^2.0.8",
|
||||||
"register-service-worker": "^1.0.0",
|
"register-service-worker": "^1.0.0",
|
||||||
"vee-validate": "^2.1.2",
|
"vee-validate": "^2.1.2",
|
||||||
@@ -85,7 +85,8 @@
|
|||||||
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
||||||
"@babel/plugin-syntax-import-meta": "^7.2.0",
|
"@babel/plugin-syntax-import-meta": "^7.2.0",
|
||||||
"@babel/preset-env": "^7.4.2",
|
"@babel/preset-env": "^7.4.2",
|
||||||
"@quasar/app": "^1.0.6",
|
"@quasar/app": "^1.1.2",
|
||||||
|
"@quasar/quasar-app-extension-colorize": "^1.0.0-alpha.1",
|
||||||
"@quasar/quasar-app-extension-typescript": "^1.0.0-alpha.11",
|
"@quasar/quasar-app-extension-typescript": "^1.0.0-alpha.11",
|
||||||
"@types/dotenv": "^4.0.3",
|
"@types/dotenv": "^4.0.3",
|
||||||
"@types/jest": "^23.1.4",
|
"@types/jest": "^23.1.4",
|
||||||
|
|||||||
257
src/App.scss
257
src/App.scss
@@ -1,3 +1,44 @@
|
|||||||
|
body {
|
||||||
|
font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
color: #a7a7a7;
|
||||||
|
line-height: 1.5;
|
||||||
|
//font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
font-size: 100%; // default font size (browser 16) -> (10 62.5%)
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 125%; // default font size (browser 16) -> (10 62.5%)
|
||||||
|
margin: 0 0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
$grayshadow: #555;
|
||||||
|
|
||||||
|
$graytext: #555;
|
||||||
|
|
||||||
|
$textcol: blue;
|
||||||
|
$textcol_scuro: darkblue;
|
||||||
|
$heightBtn: 100%;
|
||||||
|
|
||||||
|
.flex-item {
|
||||||
|
// background-color: #d5e2eb;
|
||||||
|
display: flex;
|
||||||
|
padding: 2px;
|
||||||
|
margin: 2px;
|
||||||
|
margin-left: 3px;
|
||||||
|
margin-right: 3px;
|
||||||
|
color: #000;
|
||||||
|
font-size: 1rem;
|
||||||
|
height: $heightBtn;
|
||||||
|
line-height: $heightBtn;
|
||||||
|
vertical-align: middle;
|
||||||
|
//flex: 0 0 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.fade-enter-active, .fade-leave-active {
|
.fade-enter-active, .fade-leave-active {
|
||||||
transition: opacity .2s;
|
transition: opacity .2s;
|
||||||
}
|
}
|
||||||
@@ -40,6 +81,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.my-notif-class{
|
.my-notif-class{
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
@@ -53,15 +95,14 @@
|
|||||||
.lowperc {
|
.lowperc {
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.medperc {
|
.medperc {
|
||||||
color: blue;
|
color: blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
.highperc {
|
.highperc {
|
||||||
color: green;
|
color: green;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.hide-if-small {
|
.hide-if-small {
|
||||||
@media (max-width: 600px) {
|
@media (max-width: 600px) {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -74,24 +115,200 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tothebottomfixed {
|
.links, .links a {
|
||||||
left: 0;
|
text-shadow: 1px 1px 1px #555 !important;
|
||||||
right: 0;
|
// font-weight: bold;
|
||||||
position: fixed;
|
color: cornflowerblue !important;
|
||||||
z-index: 9999;
|
}
|
||||||
box-sizing: border-box;
|
.links:hover {
|
||||||
overflow: hidden;
|
color: white !important;
|
||||||
margin: 0 auto;
|
|
||||||
bottom: 10px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tothetop {
|
.text-subtitle1 {
|
||||||
left: 0;
|
font-size: 1.35rem;
|
||||||
right: 0;
|
font-weight: 400;
|
||||||
position: fixed;
|
line-height: 1.75rem;
|
||||||
z-index: 9999;
|
text-shadow: .25 .25rem .5rem $grayshadow;
|
||||||
box-sizing: border-box;
|
letter-spacing: .00937em;
|
||||||
overflow: hidden;
|
&.big {
|
||||||
margin: 0 auto;
|
font-size: 1.5rem;
|
||||||
top: 20px;
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-subtitle2 {
|
||||||
|
font-size: 1.15rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.75rem;
|
||||||
|
letter-spacing: .00937em;
|
||||||
|
text-shadow: .25rem .25rem .5rem $grayshadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-subtitle3 {
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.75rem;
|
||||||
|
letter-spacing: .00937em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@media (max-width: 718px) {
|
||||||
|
// PER VERSIONE MOBILE
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 100%; // default font size (browser 16) -> (10 62.5%)
|
||||||
|
font-family: "Abyssinica SIL", serif;
|
||||||
|
text-justify: auto;
|
||||||
|
margin: 0 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-subtitle1 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
.text-subtitle2 {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
.text-subtitle3 {
|
||||||
|
font-size: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cltexth3 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-big{
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.my-card {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 350px;
|
||||||
|
min-width: 300px;
|
||||||
|
padding: 1rem 1rem;
|
||||||
|
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-trans {
|
||||||
|
opacity: 0.9;
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
|
||||||
|
filter: alpha(opacity=90);
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-spacetrans {
|
||||||
|
padding: 0 !important;
|
||||||
|
background: rgba(0,0,0,0.3) !important;
|
||||||
|
border-radius: 30px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-shadow {
|
||||||
|
text-shadow: .15rem .15rem .15rem $grayshadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.citazione{
|
||||||
|
font-size: 0.75rem;
|
||||||
|
font-family: "Lucida Calligraphy", serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cltexth3, .cltexth2, .cltexth4 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.75rem;
|
||||||
|
letter-spacing: .01em;
|
||||||
|
text-align: center !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cltexth4 {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cltexth2 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boldhigh, .boldop, .text-big{
|
||||||
|
font-weight: 500;
|
||||||
|
text-shadow: .05rem .05rem .05rem $grayshadow;
|
||||||
|
}
|
||||||
|
.boldop{
|
||||||
|
color: darkblue;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-big{
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.center_to_image{
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.center_img {
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.padding_cell {
|
||||||
|
padding: 0.75rem 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 3000px) {
|
||||||
|
.q-parallax__media > img {
|
||||||
|
max-height: 550px !important;
|
||||||
|
min-width:inherit !important;
|
||||||
|
min-height: inherit !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 1000px) {
|
||||||
|
.q-parallax__media > img {
|
||||||
|
max-height: 500px !important;
|
||||||
|
min-width:inherit !important;
|
||||||
|
min-height: inherit !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 800px) {
|
||||||
|
.q-parallax__media > img {
|
||||||
|
max-height: 450px !important;
|
||||||
|
min-width:inherit !important;
|
||||||
|
min-height: inherit !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@media (max-width: 718px) {
|
||||||
|
.q-parallax__media > img {
|
||||||
|
max-height: 450px !important;
|
||||||
|
min-height: inherit !important;
|
||||||
|
min-width:100% !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// preloading images:
|
||||||
|
@media screen {
|
||||||
|
div#preloader {
|
||||||
|
position: absolute;
|
||||||
|
left: -9999px;
|
||||||
|
top: -9999px;
|
||||||
|
}
|
||||||
|
div#preloader img {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
div#preloader,
|
||||||
|
div#preloader img {
|
||||||
|
visibility: hidden;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
16
src/App.ts
16
src/App.ts
@@ -7,10 +7,14 @@ import { Header } from './components/Header'
|
|||||||
|
|
||||||
import globalroutines from './globalroutines/index'
|
import globalroutines from './globalroutines/index'
|
||||||
import { GlobalStore } from './store/Modules'
|
import { GlobalStore } from './store/Modules'
|
||||||
|
import { toolsext } from '@src/store/Modules/toolsext'
|
||||||
|
import { BannerCookies, CPreloadImages } from '@components'
|
||||||
|
import { static_data } from '@src/db/static_data'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
components: {
|
components: {
|
||||||
appHeader: Header
|
appHeader: Header,
|
||||||
|
BannerCookies, CPreloadImages
|
||||||
},
|
},
|
||||||
router
|
router
|
||||||
})
|
})
|
||||||
@@ -47,7 +51,7 @@ export default class App extends Vue {
|
|||||||
// console.log('window.location.href', window.location.href)
|
// console.log('window.location.href', window.location.href)
|
||||||
|
|
||||||
let chiamaautologin = true
|
let chiamaautologin = true
|
||||||
this.listaRoutingNoLogin.forEach(mystr => {
|
this.listaRoutingNoLogin.forEach((mystr) => {
|
||||||
if (window.location.href.includes(mystr)) {
|
if (window.location.href.includes(mystr)) {
|
||||||
chiamaautologin = false
|
chiamaautologin = false
|
||||||
}
|
}
|
||||||
@@ -59,9 +63,9 @@ export default class App extends Vue {
|
|||||||
.then((loadstorage) => {
|
.then((loadstorage) => {
|
||||||
if (loadstorage) {
|
if (loadstorage) {
|
||||||
|
|
||||||
if (UserStore.state.lang !== '') {
|
if (toolsext.getLocale() !== '') {
|
||||||
// console.log('SETLOCALE :', this.$i18n.locale)
|
// console.log('SETLOCALE :', this.$i18n.locale)
|
||||||
this.$i18n.locale = UserStore.state.lang // Set Lang
|
this.$i18n.locale = toolsext.getLocale() // Set Lang
|
||||||
} else {
|
} else {
|
||||||
UserStore.mutations.setlang(this.$i18n.locale)
|
UserStore.mutations.setlang(this.$i18n.locale)
|
||||||
}
|
}
|
||||||
@@ -81,5 +85,7 @@ export default class App extends Vue {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get static_data() {
|
||||||
|
return static_data
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,10 @@
|
|||||||
<app-header></app-header>
|
<app-header></app-header>
|
||||||
<q-ajax-bar></q-ajax-bar>
|
<q-ajax-bar></q-ajax-bar>
|
||||||
|
|
||||||
|
<CPreloadImages :arrimg="static_data.preLoadImages">
|
||||||
|
</CPreloadImages>
|
||||||
|
|
||||||
|
|
||||||
<q-page-container>
|
<q-page-container>
|
||||||
<transition name="fade" mode="out-in">
|
<transition name="fade" mode="out-in">
|
||||||
<router-view/>
|
<router-view/>
|
||||||
@@ -12,6 +16,7 @@
|
|||||||
</q-page-container>
|
</q-page-container>
|
||||||
</q-layout>
|
</q-layout>
|
||||||
</div>
|
</div>
|
||||||
|
<BannerCookies urlInfo="/policy"></BannerCookies>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" src="./App.ts">
|
<script lang="ts" src="./App.ts">
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import { Screen } from 'quasar'
|
|||||||
})
|
})
|
||||||
export default class CImgText extends Vue {
|
export default class CImgText extends Vue {
|
||||||
@Prop({ required: false, default: '' }) public src: string
|
@Prop({ required: false, default: '' }) public src: string
|
||||||
|
@Prop({ required: false, default: '' }) public src2: string
|
||||||
@Prop({ required: false, default: 'myclimg' }) public class1: string
|
@Prop({ required: false, default: 'myclimg' }) public class1: string
|
||||||
@Prop({ required: false, default: '' }) public style1: string
|
@Prop({ required: false, default: '' }) public style1: string
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
<div class="row items-start q-col-gutter-xs imgtext">
|
<div class="row items-start q-col-gutter-xs imgtext">
|
||||||
<div class="imgtext__img">
|
<div class="imgtext__img">
|
||||||
<img v-if="src" :src="src" class="myclimg" :style="style1">
|
<img v-if="src" :src="src" class="myclimg" :style="style1">
|
||||||
|
<img v-if="src2" :src="src2" class="myclimg" :style="style1">
|
||||||
<div class="section_text">
|
<div class="section_text">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<!--</span>-->
|
<!--</span>-->
|
||||||
|
|
||||||
|
|
||||||
<FormNewsletter v-if="static_data.SHOW_NEWSLETTER" :idwebsite="tools.appid()"
|
<FormNewsletter v-if="static_data.functionality.SHOW_NEWSLETTER" :idwebsite="tools.appid()"
|
||||||
:locale="tools.getLocale()">
|
:locale="tools.getLocale()">
|
||||||
</FormNewsletter>
|
</FormNewsletter>
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="text-center">
|
<p class="text-center">
|
||||||
<router-link v-if="static_data.SHOW_ONLY_POLICY" to="/policy"><span class="footer_link">{{$t('privacy_policy')}}</span></router-link>
|
<router-link v-if="static_data.functionality.SHOW_ONLY_POLICY" to="/policy"><span class="footer_link">{{$t('privacy_policy')}}</span></router-link>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
</q-input>
|
</q-input>
|
||||||
|
|
||||||
<router-link to="/policy"><span class="news_link">$t('newsletter.acceptlicense')</span></router-link>
|
<router-link to="/policy"><span class="news_link">{{$t('privacy_policy')}}</span></router-link>
|
||||||
|
|
||||||
<q-toggle dark v-model="accept" :label="$t('newsletter.acceptlicense')"/>
|
<q-toggle dark v-model="accept" :label="$t('newsletter.acceptlicense')"/>
|
||||||
|
|
||||||
|
|||||||
@@ -286,3 +286,12 @@ canvas {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 4px 2px;
|
padding: 4px 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text-user {
|
||||||
|
text-shadow: .05rem .05rem .15rem #fff;
|
||||||
|
background-color: limegreen;
|
||||||
|
border-radius: 1rem !important;
|
||||||
|
text-align: center;
|
||||||
|
margin: 1px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|||||||
@@ -68,12 +68,12 @@ export default class Header extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
// QUASAR Example using event to open drawer from another component or page
|
// QUASAR Example using myevent to open drawer from another component or page
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
// (1) This code is inside layout file that have a drawer
|
// (1) This code is inside layout file that have a drawer
|
||||||
// if this.leftDrawerOpen is true, drawer is displayed
|
// if this.leftDrawerOpen is true, drawer is displayed
|
||||||
|
|
||||||
// (2) Listen for an event in created
|
// (2) Listen for an myevent in created
|
||||||
/* created(){
|
/* created(){
|
||||||
this.$root.$on("openLeftDrawer", this.openLeftDrawercb);
|
this.$root.$on("openLeftDrawer", this.openLeftDrawercb);
|
||||||
},
|
},
|
||||||
@@ -85,7 +85,7 @@ export default class Header extends Vue {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// (4) In another component or page, emit the event!
|
// (4) In another component or page, emit the myevent!
|
||||||
// Call the method when clicking button etc.
|
// Call the method when clicking button etc.
|
||||||
methods: {
|
methods: {
|
||||||
openLeftDrawer() {
|
openLeftDrawer() {
|
||||||
@@ -160,7 +160,7 @@ export default class Header extends Vue {
|
|||||||
|
|
||||||
const color = (value === 'online') ? 'positive' : 'warning'
|
const color = (value === 'online') ? 'positive' : 'warning'
|
||||||
|
|
||||||
if (this.static_data.SHOW_IF_IS_SERVER_CONNECTION) {
|
if (this.static_data.functionality.SHOW_IF_IS_SERVER_CONNECTION) {
|
||||||
|
|
||||||
if (!!oldValue) {
|
if (!!oldValue) {
|
||||||
tools.showNotif(this.$q, this.$t('connection') + ` ${value}`, {
|
tools.showNotif(this.$q, this.$t('connection') + ` ${value}`, {
|
||||||
@@ -314,6 +314,12 @@ export default class Header extends Vue {
|
|||||||
get Username() {
|
get Username() {
|
||||||
return UserStore.state.username
|
return UserStore.state.username
|
||||||
}
|
}
|
||||||
|
get Name() {
|
||||||
|
return UserStore.state.name
|
||||||
|
}
|
||||||
|
get Surname() {
|
||||||
|
return UserStore.state.surname
|
||||||
|
}
|
||||||
|
|
||||||
get Verificato() {
|
get Verificato() {
|
||||||
return UserStore.state.verified_email
|
return UserStore.state.verified_email
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="!isonline && static_data.SHOW_IF_IS_SERVER_CONNECTION"
|
v-if="!isonline && static_data.functionality.SHOW_IF_IS_SERVER_CONNECTION"
|
||||||
flat
|
flat
|
||||||
dense
|
dense
|
||||||
round
|
round
|
||||||
@@ -102,7 +102,7 @@
|
|||||||
<label>{{ $t('msg.hello') }}</label> <span v-model="prova"></span> !
|
<label>{{ $t('msg.hello') }}</label> <span v-model="prova"></span> !
|
||||||
</div>-->
|
</div>-->
|
||||||
|
|
||||||
<q-btn v-if="static_data.SHOW_USER_MENU" dense flat round icon="menu" @click="right = !right">
|
<q-btn v-if="static_data.functionality.SHOW_USER_MENU" dense flat round icon="menu" @click="right = !right">
|
||||||
</q-btn>
|
</q-btn>
|
||||||
|
|
||||||
</q-toolbar>
|
</q-toolbar>
|
||||||
@@ -121,16 +121,16 @@
|
|||||||
|
|
||||||
</q-drawer>
|
</q-drawer>
|
||||||
|
|
||||||
<q-drawer v-if="static_data.SHOW_USER_MENU" v-model="right" side="right" overlay bordered>
|
<q-drawer v-if="static_data.functionality.SHOW_USER_MENU" v-model="right" side="right" overlay bordered>
|
||||||
<div id="profile">
|
<div id="profile">
|
||||||
<q-img class="absolute-top" src="../../statics/images/landing_first_section.png"
|
<q-img class="absolute-top" src="../../statics/images/landing_first_section.png"
|
||||||
style="height: 150px">
|
style="height: 150px">
|
||||||
<div class="absolute-bottom bg-transparent text-black">
|
<div class="absolute-bottom bg-transparent text-black center_img">
|
||||||
|
|
||||||
<q-avatar class="q-mb-sm">
|
<q-avatar class="q-mb-sm center_img">
|
||||||
<img src="../../statics/images/avatar-1.svg">
|
<img src="../../statics/images/avatar-1.svg">
|
||||||
</q-avatar>
|
</q-avatar>
|
||||||
<div v-if="Username" class="text-weight-bold">{{ Username }}</div>
|
<div v-if="Username" class="text-weight-bold text-user">{{ Username }} - {{ Name }}</div>
|
||||||
<div v-else class="text-italic">{{ $t('user.loggati') }}</div>
|
<div v-else class="text-italic">{{ $t('user.loggati') }}</div>
|
||||||
|
|
||||||
<!--<span class="text-white" v-if="Verificato"> {{$t('reg.verificato')}} </span>-->
|
<!--<span class="text-white" v-if="Verificato"> {{$t('reg.verificato')}} </span>-->
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { Todos, Projects, UserStore } from '@store'
|
|||||||
import globalroutines from '../globalroutines/index'
|
import globalroutines from '../globalroutines/index'
|
||||||
|
|
||||||
import Quasar, { date, Screen } from 'quasar'
|
import Quasar, { date, Screen } from 'quasar'
|
||||||
import { IListRoutes, ILang, IMenuList, IProject, ITodo, Privacy, IPerson } from '../model/index'
|
import { IListRoutes, ILang, IMenuList, IProject, ITodo, Privacy, IPerson, IFunctionality } from '../model/index'
|
||||||
import { RouteNames } from '../router/route-names'
|
import { RouteNames } from '../router/route-names'
|
||||||
|
|
||||||
const ds_operatori: IPerson[] = [
|
const ds_operatori: IPerson[] = [
|
||||||
@@ -40,14 +40,19 @@ const lang_available: ILang[] = [
|
|||||||
// { label: 'German', icon: 'fa-flag-de', value: 'de', image: '../statics/images/de.png', short: 'DE' },
|
// { label: 'German', icon: 'fa-flag-de', value: 'de', image: '../statics/images/de.png', short: 'DE' },
|
||||||
]
|
]
|
||||||
|
|
||||||
export const static_data = {
|
const functionality: IFunctionality = {
|
||||||
SHOW_USER_MENU: true,
|
SHOW_USER_MENU: true,
|
||||||
SHOW_IF_IS_SERVER_CONNECTION: false,
|
SHOW_IF_IS_SERVER_CONNECTION: false,
|
||||||
ENABLE_TODOS_LOADING: true,
|
ENABLE_TODOS_LOADING: true,
|
||||||
ENABLE_PROJECTS_LOADING: true,
|
ENABLE_PROJECTS_LOADING: true,
|
||||||
SHOW_NEWSLETTER: false,
|
SHOW_NEWSLETTER: false,
|
||||||
SHOW_ONLY_POLICY: false,
|
SHOW_ONLY_POLICY: false,
|
||||||
|
EVENTS_CAN_BOOKING: false
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export const static_data = {
|
||||||
|
functionality,
|
||||||
ds_operatori,
|
ds_operatori,
|
||||||
lang_available,
|
lang_available,
|
||||||
arrLangUsed
|
arrLangUsed
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
export interface IEvents {
|
export interface IEvents {
|
||||||
|
_id?: any
|
||||||
time?: string
|
time?: string
|
||||||
duration?: number
|
duration?: number
|
||||||
duration2?: number
|
duration2?: number
|
||||||
@@ -18,9 +19,23 @@ export interface IEvents {
|
|||||||
avatar2?: string
|
avatar2?: string
|
||||||
infoextra?: string
|
infoextra?: string
|
||||||
linkpdf?: string
|
linkpdf?: string
|
||||||
|
nobookable?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IBookedEvent {
|
||||||
|
id_bookedevent?: any
|
||||||
|
numpeople: number
|
||||||
|
infoevent: string
|
||||||
|
msgbooking: string
|
||||||
|
datebooked?: Date
|
||||||
|
booked: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ICalendarState {
|
export interface ICalendarState {
|
||||||
|
editable: boolean
|
||||||
|
eventlist: IEvents[]
|
||||||
|
bookedevent: IBookedEvent[]
|
||||||
|
// ---------------
|
||||||
titlebarHeight: number
|
titlebarHeight: number
|
||||||
locale: string,
|
locale: string,
|
||||||
maxDays: number,
|
maxDays: number,
|
||||||
|
|||||||
@@ -139,6 +139,7 @@ export interface ITimeLineEntry {
|
|||||||
image2?: string
|
image2?: string
|
||||||
image3?: string
|
image3?: string
|
||||||
image4?: string
|
image4?: string
|
||||||
|
video?: string
|
||||||
side: string
|
side: string
|
||||||
link_url?: string
|
link_url?: string
|
||||||
link_url_lang?: IAllLang
|
link_url_lang?: IAllLang
|
||||||
@@ -166,6 +167,7 @@ export interface IColl {
|
|||||||
date: string
|
date: string
|
||||||
subtitle?: IAllLang
|
subtitle?: IAllLang
|
||||||
img: string
|
img: string
|
||||||
|
img2?: string
|
||||||
linkagg?: string
|
linkagg?: string
|
||||||
linkagg_type?: number
|
linkagg_type?: number
|
||||||
width?: number
|
width?: number
|
||||||
@@ -176,3 +178,19 @@ export interface ICollaborations {
|
|||||||
withwhom_title: IAllLang
|
withwhom_title: IAllLang
|
||||||
list: IColl[]
|
list: IColl[]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IParamDialog {
|
||||||
|
param1?: any
|
||||||
|
param2?: any
|
||||||
|
param3?: any
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IFunctionality {
|
||||||
|
SHOW_USER_MENU?: boolean
|
||||||
|
SHOW_IF_IS_SERVER_CONNECTION?: boolean
|
||||||
|
ENABLE_TODOS_LOADING?: boolean
|
||||||
|
ENABLE_PROJECTS_LOADING?: boolean
|
||||||
|
SHOW_NEWSLETTER?: boolean
|
||||||
|
SHOW_ONLY_POLICY?: boolean
|
||||||
|
EVENTS_CAN_BOOKING?: false
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import { IToken } from 'model/other'
|
|||||||
export const DefaultUser = <IUserState>{
|
export const DefaultUser = <IUserState>{
|
||||||
email: '',
|
email: '',
|
||||||
username: '',
|
username: '',
|
||||||
|
name: '',
|
||||||
|
surname: '',
|
||||||
password: '',
|
password: '',
|
||||||
lang: 'it'
|
lang: 'it'
|
||||||
}
|
}
|
||||||
@@ -11,6 +13,8 @@ export interface IUserState {
|
|||||||
userId?: string
|
userId?: string
|
||||||
email?: string
|
email?: string
|
||||||
username?: string
|
username?: string
|
||||||
|
name?: string
|
||||||
|
surname?: string
|
||||||
password?: string
|
password?: string
|
||||||
lang?: string
|
lang?: string
|
||||||
repeatPassword?: string
|
repeatPassword?: string
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import { IBookingState } from '@src/model/BookingStore'
|
||||||
|
|
||||||
export * from './UserStore'
|
export * from './UserStore'
|
||||||
export * from './GlobalStore'
|
export * from './GlobalStore'
|
||||||
export * from './signin-option'
|
export * from './signin-option'
|
||||||
@@ -11,3 +13,4 @@ export * from './Projects'
|
|||||||
|
|
||||||
export * from './Calendar'
|
export * from './Calendar'
|
||||||
export * from './Estimate'
|
export * from './Estimate'
|
||||||
|
export * from './BookingStore'
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
export interface ISignupOptions {
|
export interface ISignupOptions {
|
||||||
email?: string
|
email?: string
|
||||||
username: string
|
username: string
|
||||||
|
name?: string
|
||||||
|
surname?: string
|
||||||
password?: string
|
password?: string
|
||||||
lang?: string
|
lang?: string
|
||||||
repeatPassword?: string
|
repeatPassword?: string
|
||||||
|
|||||||
@@ -1,13 +1,3 @@
|
|||||||
body {
|
|
||||||
font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
color: #a7a7a7;
|
|
||||||
line-height: 1.5;
|
|
||||||
//font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
$grayshadow: #555;
|
|
||||||
|
|
||||||
.testo-banda {
|
.testo-banda {
|
||||||
//background: -webkit-gradient(linear, left top, left bottom, from(#3144f0), to(transparent));
|
//background: -webkit-gradient(linear, left top, left bottom, from(#3144f0), to(transparent));
|
||||||
@@ -15,9 +5,18 @@ $grayshadow: #555;
|
|||||||
//background: rgba(0, 0, 0, .6)
|
//background: rgba(0, 0, 0, .6)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$grayshadow: #555;
|
||||||
|
|
||||||
|
$textcol: blue;
|
||||||
|
$textcol_scuro: darkblue;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
margin: 0 0 16px;
|
margin: 0 0 1.25rem;
|
||||||
text-shadow: 2px 2px 4px $grayshadow;
|
//text-shadow: .125rem .125rem .25rem $grayshadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 1.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mycard {
|
.mycard {
|
||||||
@@ -28,7 +27,7 @@ p {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.landing_background {
|
.landing_background {
|
||||||
background: #000 url(../../statics/images/cover.jpg) no-repeat 50% fixed;
|
background: #000 url(../../statics/images/foto1.jpg) no-repeat 50% fixed;
|
||||||
background-size: cover
|
background-size: cover
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,8 +41,51 @@ p {
|
|||||||
//padding: 0 16px
|
//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 {
|
.landing > section.padding {
|
||||||
padding: 90px 16px
|
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 {
|
.landing > section > div {
|
||||||
@@ -59,7 +101,7 @@ p {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.landing__toolbar .q-btn {
|
.landing__toolbar .q-btn {
|
||||||
border-radius: 0 0 5px 5px;
|
border-radius: 0 0 .315rem .315rem;
|
||||||
-ms-flex-item-align: stretch;
|
-ms-flex-item-align: stretch;
|
||||||
align-self: stretch
|
align-self: stretch
|
||||||
}
|
}
|
||||||
@@ -73,7 +115,7 @@ p {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.landing__arrow {
|
.landing__arrow {
|
||||||
bottom: 25px;
|
bottom: 1.5rem;
|
||||||
opacity: .4
|
opacity: .4
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,24 +125,24 @@ p {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.landing__logo {
|
.landing__logo {
|
||||||
width: 150px;
|
width: 9.40rem;
|
||||||
height: 150px;
|
height: 9.40rem;
|
||||||
margin-top: 21px;
|
margin-top: 1.315rem;
|
||||||
//-webkit-animation: logo-rotate 240s linear infinite;
|
//-webkit-animation: logo-rotate 240s linear infinite;
|
||||||
//animation: logo-rotate 240s linear infinite
|
//animation: logo-rotate 240s linear infinite
|
||||||
}
|
}
|
||||||
|
|
||||||
.landing__features .q-icon {
|
.landing__features .q-icon {
|
||||||
font-size: 64px
|
font-size: 4rem
|
||||||
}
|
}
|
||||||
|
|
||||||
h4 {
|
h4 {
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
text-shadow: 4px 4px 8px $grayshadow;
|
text-shadow: .25rem .25rem .5rem $grayshadow;
|
||||||
}
|
}
|
||||||
|
|
||||||
.landing__features h4, .landing__features h6 {
|
.landing__features h4, .landing__features h6 {
|
||||||
margin: 26px 0
|
margin: 1rem 0
|
||||||
}
|
}
|
||||||
|
|
||||||
.landing__features p {
|
.landing__features p {
|
||||||
@@ -111,19 +153,22 @@ h4 {
|
|||||||
|
|
||||||
.landing__footer {
|
.landing__footer {
|
||||||
//background: -webkit-gradient(linear, left top, left bottom, color-stop(65%, rgba(0, 0, 0, .1)), to(#000));
|
//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) 75%, #FFF);
|
background: linear-gradient(180deg, rgba(0, 0, 0, .8) 95%, #FFF);
|
||||||
padding-top: 72px !important;
|
padding-top: 4.5rem !important;
|
||||||
padding-bottom: 72px !important
|
padding-bottom: 4.5rem !important;
|
||||||
|
padding-left: 1.25rem;
|
||||||
|
padding-right: 1.25rem;
|
||||||
|
color: #9f9f9f;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon_contact:hover {
|
.icon_contact:hover {
|
||||||
color: blue;
|
color: blue;
|
||||||
border-color: white;
|
border-color: white;
|
||||||
border-width: 1px;
|
border-width: .0625rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.landing__footer .doc-link {
|
.landing__footer .doc-link {
|
||||||
color: #fff
|
color: $textcol;
|
||||||
}
|
}
|
||||||
|
|
||||||
.landing__footer .doc-link:hover {
|
.landing__footer .doc-link:hover {
|
||||||
@@ -147,7 +192,7 @@ h4 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.q-col-gutter-sm {
|
.q-col-gutter-sm {
|
||||||
padding: 50px 50px;
|
padding: 3.125rem 3.125rem;
|
||||||
//margin-left: -48px
|
//margin-left: -48px
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -187,7 +232,7 @@ body.mobile .landing:before {
|
|||||||
|
|
||||||
.home {
|
.home {
|
||||||
//background-color: rgb(250, 250, 250);
|
//background-color: rgb(250, 250, 250);
|
||||||
padding: 5px;
|
padding: 3.125rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
//flex-wrap: nowrap;
|
//flex-wrap: nowrap;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -196,17 +241,17 @@ body.mobile .landing:before {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.btn-start {
|
.btn-start {
|
||||||
margin: 5px;
|
margin: 3.125rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.shadow {
|
.shadow {
|
||||||
//color: white;
|
//color: white;
|
||||||
text-shadow: 2px 2px 4px $grayshadow;
|
text-shadow: 0.125rem 0.125rem 0.25rem $grayshadow;
|
||||||
}
|
}
|
||||||
|
|
||||||
.shadow-max {
|
.shadow-max {
|
||||||
//color: white;
|
//color: white;
|
||||||
text-shadow: 4px 4px 8px $grayshadow;
|
text-shadow: .25rem .25rem .5rem $grayshadow;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-h1 {
|
.text-h1 {
|
||||||
@@ -227,45 +272,26 @@ body.mobile .landing:before {
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-subtitle1 {
|
.text-vers{
|
||||||
font-size: 1.35rem;
|
font-size: 0.75rem;
|
||||||
font-weight: 400;
|
|
||||||
line-height: 1.75rem;
|
|
||||||
text-shadow: 4px 4px 8px $grayshadow;
|
|
||||||
letter-spacing: .00937em;
|
|
||||||
&.big {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-subtitle2 {
|
|
||||||
font-size: 1.15rem;
|
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
line-height: 1.75rem;
|
line-height: 1.75rem;
|
||||||
letter-spacing: .00937em;
|
letter-spacing: .00937em;
|
||||||
text-shadow: 4px 4px 8px $grayshadow;
|
text-shadow: .25rem .25rem .5rem $grayshadow;
|
||||||
}
|
|
||||||
|
|
||||||
.text-subtitle3 {
|
|
||||||
font-size: 1rem;
|
|
||||||
font-weight: 400;
|
|
||||||
line-height: 1.75rem;
|
|
||||||
letter-spacing: .00937em;
|
|
||||||
text-shadow: 2px 2px 4px $grayshadow;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.homep-cover-img-1 {
|
.homep-cover-img-1 {
|
||||||
background: #000 url(../../statics/images/cover.jpg) no-repeat 50% fixed;
|
background: #000 url(../../statics/images/foto1.jpg) no-repeat 50% fixed;
|
||||||
//transition: background-image 1s ease-in-out;
|
//transition: background-image 1s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.homep-cover-img-2 {
|
.homep-cover-img-2 {
|
||||||
background: #000 url(../../statics/images/hand_people.jpg) no-repeat 50% fixed;
|
background: #000 url(../../statics/images/foto2.jpg) no-repeat 50% fixed;
|
||||||
//transition: background-image 1s ease-in-out;
|
//transition: background-image 1s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.homep-cover-img-3 {
|
.homep-cover-img-3 {
|
||||||
background: #000 url(../../statics/images/cibo_sano.jpg) no-repeat 50% fixed;
|
background: #000 url(../../statics/images/foto3.jpg) no-repeat 50% fixed;
|
||||||
//transition: background-image 1s ease-in-out;
|
//transition: background-image 1s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -274,19 +300,19 @@ body.mobile .landing:before {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.landing__footer-icons {
|
.landing__footer-icons {
|
||||||
font-size: 28px
|
font-size: 1.75rem
|
||||||
}
|
}
|
||||||
|
|
||||||
.landing__footer-icons a {
|
.landing__footer-icons a {
|
||||||
margin: 0 8px 8px;
|
margin: 0 .5rem .5rem;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
outline: 0;
|
outline: 0;
|
||||||
color: #fff;
|
color: $textcol;
|
||||||
transition: color .28s
|
transition: color .28s
|
||||||
}
|
}
|
||||||
|
|
||||||
.landing__footer-icons a:hover {
|
.landing__footer-icons a:hover {
|
||||||
color: #e0e0e0
|
color: $textcol_scuro;
|
||||||
}
|
}
|
||||||
|
|
||||||
.doc-img {
|
.doc-img {
|
||||||
@@ -295,12 +321,12 @@ body.mobile .landing:before {
|
|||||||
|
|
||||||
.mylist {
|
.mylist {
|
||||||
background: #3fdaff;
|
background: #3fdaff;
|
||||||
padding-left: 20px;
|
padding-left: 1.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.clgutter {
|
.clgutter {
|
||||||
margin-top: 20px;
|
margin-top: 1.25rem;
|
||||||
padding: 10px;
|
padding: .62rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.carousel_img_3 {
|
.carousel_img_3 {
|
||||||
@@ -321,35 +347,44 @@ body.mobile .landing:before {
|
|||||||
height: 7vh
|
height: 7vh
|
||||||
}
|
}
|
||||||
.clgutter {
|
.clgutter {
|
||||||
margin-top: 0px;
|
margin-top: 0;
|
||||||
padding: 0px;
|
padding: 0;
|
||||||
}
|
}
|
||||||
.landing__hero .text-h1 {
|
.landing__hero .text-h1 {
|
||||||
font-size: 3rem;
|
font-size: 3rem;
|
||||||
line-height: 3.05rem;
|
line-height: 3.05rem;
|
||||||
margin-bottom: 24px
|
margin-bottom: 1.5rem
|
||||||
}
|
}
|
||||||
|
|
||||||
.landing > section.padding {
|
.landing > section.padding {
|
||||||
padding: 40px 16px
|
padding: 2.5rem 1rem;
|
||||||
//padding-bottom: 90px
|
}
|
||||||
|
|
||||||
|
.landing > section.padding_testo {
|
||||||
|
padding-top: 1.25rem;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.landing > section.padding_gallery {
|
||||||
|
padding-top: 3.125rem;
|
||||||
|
padding-bottom: 5.625rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.landing__features h4, .landing__features h6 {
|
.landing__features h4, .landing__features h6 {
|
||||||
margin: 20px 0
|
margin: 1.25rem 0
|
||||||
}
|
}
|
||||||
|
|
||||||
h4 {
|
h4 {
|
||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
text-shadow: 4px 4px 8px $grayshadow;
|
text-shadow: 0.25rem 0.25rem 0.5rem $grayshadow;
|
||||||
}
|
}
|
||||||
|
|
||||||
.landing .feature-item {
|
.landing .feature-item {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-top: 20px;
|
margin-top: 1.25rem;
|
||||||
}
|
}
|
||||||
.landing__hero-content {
|
.landing__hero-content {
|
||||||
padding-bottom: 180px
|
padding-bottom: 11.25rem;
|
||||||
}
|
}
|
||||||
.landing__hero-btns {
|
.landing__hero-btns {
|
||||||
-webkit-box-pack: center;
|
-webkit-box-pack: center;
|
||||||
@@ -358,17 +393,14 @@ body.mobile .landing:before {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.q-col-gutter-sm {
|
.q-col-gutter-sm {
|
||||||
padding: 10px 5px;
|
padding: .625rem .315rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-subtitle1 {
|
.text-subtitle1 {
|
||||||
font-size: 1.25rem;
|
font-size: 1.25rem;
|
||||||
}
|
}
|
||||||
.text-subtitle2 {
|
.text-vers{
|
||||||
font-size: 1rem;
|
font-size: 0.6rem;
|
||||||
}
|
|
||||||
.text-subtitle3 {
|
|
||||||
font-size: 0.75rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.carousel_img_3 {
|
.carousel_img_3 {
|
||||||
@@ -382,8 +414,25 @@ body.mobile .landing:before {
|
|||||||
|
|
||||||
.custom-caption {
|
.custom-caption {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 12px;
|
padding: .75rem;
|
||||||
color: white;
|
color: $textcol;
|
||||||
background-color: rgba(0, 0, 0, .3);
|
background-color: rgba(0, 0, 0, .3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,12 @@ import { GlobalStore, UserStore } from '@store'
|
|||||||
|
|
||||||
import { Logo } from '../../components/logo'
|
import { Logo } from '../../components/logo'
|
||||||
|
|
||||||
|
import { Footer } from '../../components/Footer'
|
||||||
|
|
||||||
import VueScrollReveal from 'vue-scroll-reveal'
|
import VueScrollReveal from 'vue-scroll-reveal'
|
||||||
import { tools } from '@src/store/Modules/tools'
|
import { tools } from '@src/store/Modules/tools'
|
||||||
|
import { toolsext } from '@src/store/Modules/toolsext'
|
||||||
|
import { Screen } from 'quasar'
|
||||||
|
|
||||||
Vue.use(VueScrollReveal, {
|
Vue.use(VueScrollReveal, {
|
||||||
class: 'v-scroll-reveal', // A CSS class applied to elements with the v-scroll-reveal directive; useful for animation overrides.
|
class: 'v-scroll-reveal', // A CSS class applied to elements with the v-scroll-reveal directive; useful for animation overrides.
|
||||||
@@ -21,7 +25,7 @@ Vue.use(VueScrollReveal, {
|
|||||||
})
|
})
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
components: { Logo }
|
components: { Logo, Footer }
|
||||||
})
|
})
|
||||||
export default class Home extends Vue {
|
export default class Home extends Vue {
|
||||||
public text: string = ''
|
public text: string = ''
|
||||||
|
|||||||
@@ -402,6 +402,8 @@
|
|||||||
<q-page-scroller position="bottom-right" :scroll-offset="850" :offset="[18, 18]" style="opacity: 0.3">
|
<q-page-scroller position="bottom-right" :scroll-offset="850" :offset="[18, 18]" style="opacity: 0.3">
|
||||||
<q-btn fab icon="keyboard_arrow_up" color="accent" />
|
<q-btn fab icon="keyboard_arrow_up" color="accent" />
|
||||||
</q-page-scroller>
|
</q-page-scroller>
|
||||||
|
|
||||||
|
<Footer></Footer>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</q-page>
|
</q-page>
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { ProgressBar } from '@src/store/Modules/Interface'
|
|||||||
import { isEqual } from 'lodash'
|
import { isEqual } from 'lodash'
|
||||||
import { UserStore } from '@store'
|
import { UserStore } from '@store'
|
||||||
import { tools } from '@src/store/Modules/tools'
|
import { tools } from '@src/store/Modules/tools'
|
||||||
|
import { toolsext } from '@src/store/Modules/toolsext'
|
||||||
|
|
||||||
Vue.use(VueRouter)
|
Vue.use(VueRouter)
|
||||||
/*
|
/*
|
||||||
@@ -16,7 +17,7 @@ Vue.use(VueRouter)
|
|||||||
|
|
||||||
const Router = new VueRouter({
|
const Router = new VueRouter({
|
||||||
scrollBehavior: () => ({ x: 0, y: 0 } as PositionResult),
|
scrollBehavior: () => ({ x: 0, y: 0 } as PositionResult),
|
||||||
routes: cfgrouter.routes,
|
routes: cfgrouter.getmenu(),
|
||||||
|
|
||||||
// Leave these as is and change from quasar.conf.js instead!
|
// Leave these as is and change from quasar.conf.js instead!
|
||||||
// quasar.conf.js -> build -> vueRouterMode
|
// quasar.conf.js -> build -> vueRouterMode
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
import { RouteConfig, Route, RouteRecord } from 'vue-router/types'
|
import { RouteConfig, Route, RouteRecord } from 'vue-router/types'
|
||||||
|
|
||||||
import { tools } from '@src/store/Modules/tools'
|
import { tools } from '@src/store/Modules/tools'
|
||||||
|
import { toolsext } from '@src/store/Modules/toolsext'
|
||||||
|
|
||||||
import auth from '../middleware/auth'
|
import auth from '../middleware/auth'
|
||||||
import { GlobalStore, Projects, Todos, UserStore } from '@store'
|
import { GlobalStore, Projects, Todos, UserStore } from '@store'
|
||||||
import { RouteNames } from '@src/router/route-names'
|
import { RouteNames } from '@src/router/route-names'
|
||||||
import { IListRoutes, IMenuList } from '@src/model'
|
import { IListRoutes, IMenuList } from '@src/model'
|
||||||
|
import { static_data } from '@src/db/static_data'
|
||||||
|
|
||||||
interface IMyMeta {
|
interface IMyMeta {
|
||||||
title?: string,
|
title?: string,
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ const msgglobal = {
|
|||||||
delete: 'Elimina',
|
delete: 'Elimina',
|
||||||
cancel: 'Annulla',
|
cancel: 'Annulla',
|
||||||
today: 'Oggi',
|
today: 'Oggi',
|
||||||
|
book: 'Prenota',
|
||||||
msg: {
|
msg: {
|
||||||
titledeleteTask: 'Elimina Task',
|
titledeleteTask: 'Elimina Task',
|
||||||
deleteTask: "Vuoi Eliminare {mytodo}?"
|
deleteTask: "Vuoi Eliminare {mytodo}?"
|
||||||
@@ -49,6 +50,8 @@ const msgglobal = {
|
|||||||
richiesto: 'Campo Richiesto',
|
richiesto: 'Campo Richiesto',
|
||||||
email: 'Email',
|
email: 'Email',
|
||||||
username: 'Nome Utente',
|
username: 'Nome Utente',
|
||||||
|
name: 'Nome',
|
||||||
|
surname: 'Cognome',
|
||||||
username_login: 'Nome Utente o email',
|
username_login: 'Nome Utente o email',
|
||||||
password: 'Password',
|
password: 'Password',
|
||||||
repeatPassword: 'Ripeti password',
|
repeatPassword: 'Ripeti password',
|
||||||
@@ -151,6 +154,13 @@ const msgglobal = {
|
|||||||
themebgcolor: 'Tema Colore Sfondo'
|
themebgcolor: 'Tema Colore Sfondo'
|
||||||
},
|
},
|
||||||
cal: {
|
cal: {
|
||||||
|
booked: 'Prenotato',
|
||||||
|
booked_error: 'Prenotazione non avvenuta. Riprovare più tardi',
|
||||||
|
booking: 'Prenota Evento',
|
||||||
|
titlebooking: 'Prenotazione',
|
||||||
|
cancelbooking: 'Cancella Prenotazione',
|
||||||
|
canceledbooking: 'Prenotazione Cancellata',
|
||||||
|
cancelederrorbooking: 'Cancellazione non effettuata, Riprovare più tardi',
|
||||||
event: 'Evento',
|
event: 'Evento',
|
||||||
starttime: 'Dalle',
|
starttime: 'Dalle',
|
||||||
endtime: 'alle',
|
endtime: 'alle',
|
||||||
@@ -164,7 +174,11 @@ const msgglobal = {
|
|||||||
infoextra: 'Date e Ora Extra:',
|
infoextra: 'Date e Ora Extra:',
|
||||||
alldayevent: 'Tutto il giorno',
|
alldayevent: 'Tutto il giorno',
|
||||||
eventstartdatetime: 'Data e Ora Inizio Evento',
|
eventstartdatetime: 'Data e Ora Inizio Evento',
|
||||||
enterEndDateTime: 'Data e Ora Fine Evento'
|
enterEndDateTime: 'Data e Ora Fine Evento',
|
||||||
|
selnumpeople: 'Partecipanti',
|
||||||
|
msgbooking: 'Messaggio da inviare',
|
||||||
|
bookingtextdefault: 'Mi prenoto all\'evento',
|
||||||
|
bookingtextdefault_of: 'di'
|
||||||
},
|
},
|
||||||
newsletter: {
|
newsletter: {
|
||||||
title: 'Desideri ricevere la nostra Newsletter?',
|
title: 'Desideri ricevere la nostra Newsletter?',
|
||||||
@@ -191,6 +205,7 @@ const msgglobal = {
|
|||||||
delete: 'Borrar',
|
delete: 'Borrar',
|
||||||
cancel: 'Cancelar',
|
cancel: 'Cancelar',
|
||||||
today: 'Hoy',
|
today: 'Hoy',
|
||||||
|
book: 'Reserva',
|
||||||
msg: {
|
msg: {
|
||||||
titledeleteTask: 'Borrar Tarea',
|
titledeleteTask: 'Borrar Tarea',
|
||||||
deleteTask: 'Quieres borrar {mytodo}?'
|
deleteTask: 'Quieres borrar {mytodo}?'
|
||||||
@@ -231,6 +246,8 @@ const msgglobal = {
|
|||||||
richiesto: 'Campo requerido',
|
richiesto: 'Campo requerido',
|
||||||
email: 'Email',
|
email: 'Email',
|
||||||
username: 'Nombre usuario',
|
username: 'Nombre usuario',
|
||||||
|
name: 'Nombre',
|
||||||
|
surname: 'Apellido',
|
||||||
username_login: 'Nombre usuario o email',
|
username_login: 'Nombre usuario o email',
|
||||||
password: 'contraseña',
|
password: 'contraseña',
|
||||||
repeatPassword: 'Repetir contraseña',
|
repeatPassword: 'Repetir contraseña',
|
||||||
@@ -327,6 +344,13 @@ const msgglobal = {
|
|||||||
themebgcolor: 'Tema Colores Fondo'
|
themebgcolor: 'Tema Colores Fondo'
|
||||||
},
|
},
|
||||||
cal: {
|
cal: {
|
||||||
|
booked: 'Reservado',
|
||||||
|
booked_error: 'Reserva fallida. Intenta nuevamente más tarde',
|
||||||
|
booking: 'Reserva Evento',
|
||||||
|
titlebooking: 'Reserva',
|
||||||
|
cancelbooking: 'Cancelar Reserva',
|
||||||
|
canceledbooking: 'Reserva Cancelada',
|
||||||
|
cancelederrorbooking: 'Cancelación no realizada, intente nuevamente más tarde',
|
||||||
event: 'Evento',
|
event: 'Evento',
|
||||||
starttime: 'Inicio',
|
starttime: 'Inicio',
|
||||||
endtime: 'fin',
|
endtime: 'fin',
|
||||||
@@ -340,7 +364,11 @@ const msgglobal = {
|
|||||||
infoextra: 'Fecha y Hora Extras:',
|
infoextra: 'Fecha y Hora Extras:',
|
||||||
alldayevent: 'Todo el dia',
|
alldayevent: 'Todo el dia',
|
||||||
eventstartdatetime: 'Evento de inicio de fecha y hora',
|
eventstartdatetime: 'Evento de inicio de fecha y hora',
|
||||||
enterEndDateTime: 'Fecha y hora del evento final'
|
enterEndDateTime: 'Fecha y hora del evento final',
|
||||||
|
selnumpeople: 'Partecipantes',
|
||||||
|
msgbooking: 'Mensaje para enviar',
|
||||||
|
bookingtextdefault: 'Reservo el evento',
|
||||||
|
bookingtextdefault_of: 'de',
|
||||||
},
|
},
|
||||||
newsletter: {
|
newsletter: {
|
||||||
title: '¿Desea recibir nuestro boletín informativo?',
|
title: '¿Desea recibir nuestro boletín informativo?',
|
||||||
@@ -367,6 +395,7 @@ const msgglobal = {
|
|||||||
delete: 'Supprimer',
|
delete: 'Supprimer',
|
||||||
cancel: 'annuler',
|
cancel: 'annuler',
|
||||||
today: 'Aujourd\'hui',
|
today: 'Aujourd\'hui',
|
||||||
|
book: 'Réserve',
|
||||||
msg: {
|
msg: {
|
||||||
titledeleteTask: 'Supprimer la tâche',
|
titledeleteTask: 'Supprimer la tâche',
|
||||||
deleteTask: 'Voulez-vous supprimer {mytodo}?'
|
deleteTask: 'Voulez-vous supprimer {mytodo}?'
|
||||||
@@ -406,6 +435,8 @@ const msgglobal = {
|
|||||||
richiesto: 'Champ obligatoire',
|
richiesto: 'Champ obligatoire',
|
||||||
email: 'Email',
|
email: 'Email',
|
||||||
username: 'Nom d\'utilisateur',
|
username: 'Nom d\'utilisateur',
|
||||||
|
name: 'Nom',
|
||||||
|
surname: 'Prénom',
|
||||||
username_login: 'Nom d\'utilisateur ou email',
|
username_login: 'Nom d\'utilisateur ou email',
|
||||||
password: 'mot de passe',
|
password: 'mot de passe',
|
||||||
repeatPassword: 'Répéter le mot de passe',
|
repeatPassword: 'Répéter le mot de passe',
|
||||||
@@ -502,6 +533,13 @@ const msgglobal = {
|
|||||||
themebgcolor: 'Tema Colores Fondo'
|
themebgcolor: 'Tema Colores Fondo'
|
||||||
},
|
},
|
||||||
cal: {
|
cal: {
|
||||||
|
booked: 'Réservé',
|
||||||
|
booked_error: 'La réservation a échoué. Réessayez plus tard',
|
||||||
|
booking: 'Réserver l\'événement',
|
||||||
|
titlebooking: 'Réservation',
|
||||||
|
cancelbooking: 'Annuler la réservation',
|
||||||
|
canceledbooking: 'Réservation annulée',
|
||||||
|
cancelederrorbooking: 'Annulation non effectuée, réessayez plus tard',
|
||||||
event: 'événement',
|
event: 'événement',
|
||||||
starttime: 'Accueil',
|
starttime: 'Accueil',
|
||||||
endtime: 'fin',
|
endtime: 'fin',
|
||||||
@@ -515,7 +553,11 @@ const msgglobal = {
|
|||||||
infoextra: 'Extras Date et heure:',
|
infoextra: 'Extras Date et heure:',
|
||||||
alldayevent: 'Toute la journée',
|
alldayevent: 'Toute la journée',
|
||||||
eventstartdatetime: 'Date de début et heure de l\'événement',
|
eventstartdatetime: 'Date de début et heure de l\'événement',
|
||||||
enterEndDateTime: 'Date et heure de l\'événement final'
|
enterEndDateTime: 'Date et heure de l\'événement final',
|
||||||
|
selnumpeople: 'Participants',
|
||||||
|
msgbooking: 'Message à envoyer',
|
||||||
|
bookingtextdefault: 'Je réserve l\'événement',
|
||||||
|
bookingtextdefault_of: 'du',
|
||||||
},
|
},
|
||||||
newsletter: {
|
newsletter: {
|
||||||
title: 'Souhaitez-vous recevoir notre newsletter?',
|
title: 'Souhaitez-vous recevoir notre newsletter?',
|
||||||
@@ -542,6 +584,7 @@ const msgglobal = {
|
|||||||
delete: 'Delete',
|
delete: 'Delete',
|
||||||
cancel: 'Cancel',
|
cancel: 'Cancel',
|
||||||
today: 'Today',
|
today: 'Today',
|
||||||
|
book: 'Book',
|
||||||
msg: {
|
msg: {
|
||||||
titledeleteTask: 'Delete Task',
|
titledeleteTask: 'Delete Task',
|
||||||
deleteTask: 'Delete Task {mytodo}?'
|
deleteTask: 'Delete Task {mytodo}?'
|
||||||
@@ -582,6 +625,8 @@ const msgglobal = {
|
|||||||
email: 'Email',
|
email: 'Email',
|
||||||
username_login: 'Username or email',
|
username_login: 'Username or email',
|
||||||
username: 'Username',
|
username: 'Username',
|
||||||
|
name: 'Name',
|
||||||
|
surname: 'Surname',
|
||||||
password: 'Password',
|
password: 'Password',
|
||||||
repeatPassword: 'Repeat password',
|
repeatPassword: 'Repeat password',
|
||||||
terms: "I agree with the terms and conditions",
|
terms: "I agree with the terms and conditions",
|
||||||
@@ -676,6 +721,13 @@ const msgglobal = {
|
|||||||
themebgcolor: 'Theme Color Background'
|
themebgcolor: 'Theme Color Background'
|
||||||
},
|
},
|
||||||
cal: {
|
cal: {
|
||||||
|
booked: 'Booked',
|
||||||
|
booked_error: 'Reservation failed. Try again later',
|
||||||
|
booking: 'Book the Event',
|
||||||
|
titlebooking: 'Reservation',
|
||||||
|
cancelbooking: 'Cancel Reservation',
|
||||||
|
canceledbooking: 'Booking cancelled',
|
||||||
|
cancelederrorbooking: 'Cancellation unsuccessfully, try again later',
|
||||||
event: 'Event',
|
event: 'Event',
|
||||||
starttime: 'From',
|
starttime: 'From',
|
||||||
endtime: 'to',
|
endtime: 'to',
|
||||||
@@ -687,9 +739,13 @@ const msgglobal = {
|
|||||||
enterdate: 'Enter date',
|
enterdate: 'Enter date',
|
||||||
details: 'Details',
|
details: 'Details',
|
||||||
infoextra: 'Extra Info DateTime',
|
infoextra: 'Extra Info DateTime',
|
||||||
alldayevent: 'All-Day event',
|
alldayevent: 'All-Day myevent',
|
||||||
eventstartdatetime: 'Event start date and time',
|
eventstartdatetime: 'Event start date and time',
|
||||||
enterEndDateTime: 'Event end date and time'
|
enterEndDateTime: 'Event end date and time',
|
||||||
|
selnumpeople: 'Participants',
|
||||||
|
msgbooking: 'Message to send',
|
||||||
|
bookingtextdefault: 'I book the event',
|
||||||
|
bookingtextdefault_of: 'of',
|
||||||
},
|
},
|
||||||
newsletter: {
|
newsletter: {
|
||||||
title: 'Would you like to receive our Newsletter?',
|
title: 'Would you like to receive our Newsletter?',
|
||||||
@@ -716,6 +772,7 @@ const msgglobal = {
|
|||||||
delete: 'Delete',
|
delete: 'Delete',
|
||||||
cancel: 'Cancel',
|
cancel: 'Cancel',
|
||||||
today: 'Today',
|
today: 'Today',
|
||||||
|
book: 'Book',
|
||||||
msg: {
|
msg: {
|
||||||
titledeleteTask: 'Delete Task',
|
titledeleteTask: 'Delete Task',
|
||||||
deleteTask: 'Delete Task {mytodo}?'
|
deleteTask: 'Delete Task {mytodo}?'
|
||||||
@@ -757,6 +814,8 @@ const msgglobal = {
|
|||||||
email: 'Email',
|
email: 'Email',
|
||||||
username_login: 'Username or email',
|
username_login: 'Username or email',
|
||||||
username: 'Username',
|
username: 'Username',
|
||||||
|
name: 'Name',
|
||||||
|
surname: 'Surname',
|
||||||
password: 'Password',
|
password: 'Password',
|
||||||
repeatPassword: 'Repeat password',
|
repeatPassword: 'Repeat password',
|
||||||
terms: "I agree with the terms and conditions",
|
terms: "I agree with the terms and conditions",
|
||||||
@@ -852,6 +911,13 @@ const msgglobal = {
|
|||||||
themebgcolor: 'Theme Color Background'
|
themebgcolor: 'Theme Color Background'
|
||||||
},
|
},
|
||||||
cal: {
|
cal: {
|
||||||
|
booked: 'Booked',
|
||||||
|
booked_error: 'Reservation failed. Try again later',
|
||||||
|
booking: 'Book the Event',
|
||||||
|
titlebooking: 'Reservation',
|
||||||
|
cancelbooking: 'Cancel Reservation',
|
||||||
|
canceledbooking: 'Booking cancelled',
|
||||||
|
cancelederrorbooking: 'Cancellation unsuccessfully, try again later',
|
||||||
event: 'Event',
|
event: 'Event',
|
||||||
starttime: 'From',
|
starttime: 'From',
|
||||||
endtime: 'to',
|
endtime: 'to',
|
||||||
@@ -863,9 +929,13 @@ const msgglobal = {
|
|||||||
enterdate: 'Enter date',
|
enterdate: 'Enter date',
|
||||||
details: 'Details',
|
details: 'Details',
|
||||||
infoextra: 'Extra Info DateTime',
|
infoextra: 'Extra Info DateTime',
|
||||||
alldayevent: 'All-Day event',
|
alldayevent: 'All-Day myevent',
|
||||||
eventstartdatetime: 'Event start date and time',
|
eventstartdatetime: 'Event start date and time',
|
||||||
enterEndDateTime: 'Event end date and time'
|
enterEndDateTime: 'Event end date and time',
|
||||||
|
selnumpeople: 'Participants',
|
||||||
|
msgbooking: 'Message to send',
|
||||||
|
bookingtextdefault: 'I book the event',
|
||||||
|
bookingtextdefault_of: 'of',
|
||||||
},
|
},
|
||||||
newsletter: {
|
newsletter: {
|
||||||
title: 'Would you like to receive our Newsletter?',
|
title: 'Would you like to receive our Newsletter?',
|
||||||
|
|||||||
@@ -274,7 +274,7 @@ namespace Actions {
|
|||||||
|
|
||||||
async function dbLoad(context, { checkPending, onlyiffirsttime }) {
|
async function dbLoad(context, { checkPending, onlyiffirsttime }) {
|
||||||
|
|
||||||
if (!static_data.ENABLE_PROJECTS_LOADING)
|
if (!static_data.functionality.ENABLE_PROJECTS_LOADING)
|
||||||
return null
|
return null
|
||||||
|
|
||||||
if (onlyiffirsttime) {
|
if (onlyiffirsttime) {
|
||||||
@@ -442,7 +442,6 @@ namespace Actions {
|
|||||||
modify: b.dispatch(modify),
|
modify: b.dispatch(modify),
|
||||||
ActionCutPaste: b.dispatch(ActionCutPaste)
|
ActionCutPaste: b.dispatch(ActionCutPaste)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Module
|
// Module
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import Api from '@api'
|
import Api from '@api'
|
||||||
import { ICalendarState } from 'model'
|
import { IBookedEvent, ICalendarState, IEvents } from 'model'
|
||||||
import { ILinkReg, IResult, IIdToken, IToken } from 'model/other'
|
import { ILinkReg, IResult, IIdToken, IToken } from 'model/other'
|
||||||
import { storeBuilder } from '../Store'
|
import { storeBuilder } from '../Store'
|
||||||
|
|
||||||
@@ -8,9 +8,15 @@ import { tools } from '../../tools'
|
|||||||
|
|
||||||
import translate from '../../../../globalroutines/util'
|
import translate from '../../../../globalroutines/util'
|
||||||
import * as Types from '../../../Api/ApiTypes'
|
import * as Types from '../../../Api/ApiTypes'
|
||||||
|
import { db_data } from '@src/db/db_data'
|
||||||
|
import { UserStore } from '@store'
|
||||||
|
|
||||||
// State
|
// State
|
||||||
const state: ICalendarState = {
|
const state: ICalendarState = {
|
||||||
|
editable: false,
|
||||||
|
eventlist: [],
|
||||||
|
bookedevent: [],
|
||||||
|
// ---------------
|
||||||
titlebarHeight: 0,
|
titlebarHeight: 0,
|
||||||
locale: 'it-IT',
|
locale: 'it-IT',
|
||||||
maxDays: 1,
|
maxDays: 1,
|
||||||
@@ -39,19 +45,15 @@ const stateGetter = b.state()
|
|||||||
|
|
||||||
namespace Getters {
|
namespace Getters {
|
||||||
|
|
||||||
// const lang = b.read((state) => {
|
const findEventBooked = b.read((mystate: ICalendarState) => (myevent: IEvents, isconfirmed: boolean) => {
|
||||||
// if (state.lang !== '') {
|
return mystate.bookedevent.find((bookedevent) => (bookedevent.id_bookedevent === myevent._id) && ((isconfirmed && bookedevent.booked) || (!isconfirmed)))
|
||||||
// return state.lang
|
}, 'findEventBooked')
|
||||||
// } else {
|
|
||||||
// return process.env.LANG_DEFAULT
|
export const getters = {
|
||||||
// }
|
get findEventBooked() {
|
||||||
// }, 'lang')
|
return findEventBooked()
|
||||||
//
|
}
|
||||||
// export const getters = {
|
}
|
||||||
// get lang() {
|
|
||||||
// return lang()
|
|
||||||
// },
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,6 +69,104 @@ namespace Mutations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
namespace Actions {
|
namespace Actions {
|
||||||
|
async function loadAfterLogin(context) {
|
||||||
|
// Load local data
|
||||||
|
state.editable = db_data.userdata.calendar_editable
|
||||||
|
state.eventlist = db_data.events
|
||||||
|
// state.bookedevent = db_data.userdata.bookedevent
|
||||||
|
|
||||||
|
// Load local data
|
||||||
|
console.log('CALENDAR loadAfterLogin', 'userid=', UserStore.state.userId)
|
||||||
|
|
||||||
|
let ris = null
|
||||||
|
|
||||||
|
ris = await Api.SendReq('/booking/' + UserStore.state.userId + '/' + process.env.APP_ID, 'GET', null)
|
||||||
|
.then((res) => {
|
||||||
|
if (res.data.bookedevent) {
|
||||||
|
state.bookedevent = res.data.bookedevent
|
||||||
|
} else {
|
||||||
|
state.bookedevent = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log('error dbLoad', error)
|
||||||
|
// UserStore.mutations.setErrorCatch(error)
|
||||||
|
return new Types.AxiosError(serv_constants.RIS_CODE_ERR, null, tools.ERR_GENERICO, error)
|
||||||
|
})
|
||||||
|
|
||||||
|
return ris
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getparambyevent(bookevent) {
|
||||||
|
return {
|
||||||
|
id_bookedevent: bookevent.id_bookedevent,
|
||||||
|
infoevent: bookevent.infoevent,
|
||||||
|
numpeople: bookevent.numpeople,
|
||||||
|
msgbooking: bookevent.msgbooking,
|
||||||
|
datebooked: bookevent.datebooked,
|
||||||
|
userId: UserStore.state.userId,
|
||||||
|
booked: bookevent.booked,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function BookEvent(context, bookevent: IBookedEvent) {
|
||||||
|
console.log('BookEvent', bookevent)
|
||||||
|
|
||||||
|
const param = getparambyevent(bookevent)
|
||||||
|
|
||||||
|
return await Api.SendReq('/booking', 'POST', param)
|
||||||
|
.then((res) => {
|
||||||
|
if (res.status === 200) {
|
||||||
|
if (res.data.code === serv_constants.RIS_CODE_OK) {
|
||||||
|
state.bookedevent.push(bookevent)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error(error)
|
||||||
|
return false
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async function CancelBookingEvent(context, event: IEvents) {
|
||||||
|
console.log('CALSTORE: CancelBookingEvent', event)
|
||||||
|
|
||||||
|
const myeventtoCancel = state.bookedevent.find((eventbooked) => (eventbooked.id_bookedevent === event._id))
|
||||||
|
|
||||||
|
const param = getparambyevent(myeventtoCancel)
|
||||||
|
param.booked = false // Cancel Booking
|
||||||
|
|
||||||
|
return await Api.SendReq('/booking', 'POST', param)
|
||||||
|
.then((res) => {
|
||||||
|
if (res.status === 200) {
|
||||||
|
if (res.data.code === serv_constants.RIS_CODE_OK) {
|
||||||
|
|
||||||
|
state.bookedevent = state.bookedevent.filter((eventbooked) => (eventbooked.id_bookedevent !== event._id))
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error(error)
|
||||||
|
// UserStore.mutations.setErrorCatch(error)
|
||||||
|
return false
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export const actions = {
|
||||||
|
loadAfterLogin: b.dispatch(loadAfterLogin),
|
||||||
|
BookEvent: b.dispatch(BookEvent),
|
||||||
|
CancelBookingEvent: b.dispatch(CancelBookingEvent)
|
||||||
|
}
|
||||||
|
|
||||||
// async function resetpwd(context, paramquery: ICalendarState) {
|
// async function resetpwd(context, paramquery: ICalendarState) {
|
||||||
// }
|
// }
|
||||||
@@ -80,9 +180,9 @@ namespace Actions {
|
|||||||
const CalendarModule = {
|
const CalendarModule = {
|
||||||
get state() {
|
get state() {
|
||||||
return stateGetter()
|
return stateGetter()
|
||||||
}
|
},
|
||||||
// actions: Actions.actions,
|
actions: Actions.actions,
|
||||||
// getters: Getters.getters,
|
getters: Getters.getters
|
||||||
// mutations: Mutations.mutations
|
// mutations: Mutations.mutations
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ namespace Actions {
|
|||||||
|
|
||||||
async function dbLoad(context, { checkPending }) {
|
async function dbLoad(context, { checkPending }) {
|
||||||
|
|
||||||
if (!static_data.ENABLE_PROJECTS_LOADING)
|
if (!static_data.functionality.ENABLE_PROJECTS_LOADING)
|
||||||
return null
|
return null
|
||||||
|
|
||||||
console.log('dbLoad', nametable, checkPending, 'userid=', UserStore.state.userId)
|
console.log('dbLoad', nametable, checkPending, 'userid=', UserStore.state.userId)
|
||||||
|
|||||||
@@ -7,9 +7,11 @@ import router from '@router'
|
|||||||
import { serv_constants } from '../Modules/serv_constants'
|
import { serv_constants } from '../Modules/serv_constants'
|
||||||
import { tools } from '../Modules/tools'
|
import { tools } from '../Modules/tools'
|
||||||
import { toolsext } from '@src/store/Modules/toolsext'
|
import { toolsext } from '@src/store/Modules/toolsext'
|
||||||
import { GlobalStore, UserStore, Todos, Projects } from '@store'
|
import { GlobalStore, UserStore, Todos, Projects, BookingStore, CalendarStore } from '@store'
|
||||||
import globalroutines from './../../globalroutines/index'
|
import globalroutines from './../../globalroutines/index'
|
||||||
|
|
||||||
|
import { static_data } from '@src/db/static_data'
|
||||||
|
|
||||||
import translate from './../../globalroutines/util'
|
import translate from './../../globalroutines/util'
|
||||||
import * as Types from '@src/store/Api/ApiTypes'
|
import * as Types from '@src/store/Api/ApiTypes'
|
||||||
|
|
||||||
@@ -20,6 +22,8 @@ const state: IUserState = {
|
|||||||
userId: '',
|
userId: '',
|
||||||
email: '',
|
email: '',
|
||||||
username: '',
|
username: '',
|
||||||
|
name: '',
|
||||||
|
surname: '',
|
||||||
password: '',
|
password: '',
|
||||||
lang: process.env.LANG_DEFAULT,
|
lang: process.env.LANG_DEFAULT,
|
||||||
repeatPassword: '',
|
repeatPassword: '',
|
||||||
@@ -108,6 +112,8 @@ namespace Mutations {
|
|||||||
function authUser(state: IUserState, data: IUserState) {
|
function authUser(state: IUserState, data: IUserState) {
|
||||||
state.userId = data.userId
|
state.userId = data.userId
|
||||||
state.username = data.username
|
state.username = data.username
|
||||||
|
state.name = data.name
|
||||||
|
state.surname = data.surname
|
||||||
if (data.verified_email) {
|
if (data.verified_email) {
|
||||||
state.verified_email = data.verified_email
|
state.verified_email = data.verified_email
|
||||||
}
|
}
|
||||||
@@ -176,6 +182,8 @@ namespace Mutations {
|
|||||||
function clearAuthData(state: IUserState) {
|
function clearAuthData(state: IUserState) {
|
||||||
state.userId = ''
|
state.userId = ''
|
||||||
state.username = ''
|
state.username = ''
|
||||||
|
state.name = ''
|
||||||
|
state.surname = ''
|
||||||
resetArrToken(state.tokens)
|
resetArrToken(state.tokens)
|
||||||
state.x_auth_token = ''
|
state.x_auth_token = ''
|
||||||
state.verified_email = false
|
state.verified_email = false
|
||||||
@@ -221,7 +229,6 @@ namespace Mutations {
|
|||||||
setErrorCatch: b.commit(setErrorCatch),
|
setErrorCatch: b.commit(setErrorCatch),
|
||||||
getMsgError: b.commit(getMsgError)
|
getMsgError: b.commit(getMsgError)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace Actions {
|
namespace Actions {
|
||||||
@@ -318,6 +325,8 @@ namespace Actions {
|
|||||||
email: authData.email,
|
email: authData.email,
|
||||||
password: String(hashedPassword),
|
password: String(hashedPassword),
|
||||||
username: authData.username,
|
username: authData.username,
|
||||||
|
name: authData.name,
|
||||||
|
surname: authData.surname,
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(usertosend)
|
console.log(usertosend)
|
||||||
@@ -336,6 +345,8 @@ namespace Actions {
|
|||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
const userId = newuser._id
|
const userId = newuser._id
|
||||||
const username = authData.username
|
const username = authData.username
|
||||||
|
const name = authData.name
|
||||||
|
const surname = authData.surname
|
||||||
if (process.env.DEV) {
|
if (process.env.DEV) {
|
||||||
console.log('USERNAME = ' + username)
|
console.log('USERNAME = ' + username)
|
||||||
console.log('IDUSER= ' + userId)
|
console.log('IDUSER= ' + userId)
|
||||||
@@ -344,6 +355,8 @@ namespace Actions {
|
|||||||
Mutations.mutations.authUser({
|
Mutations.mutations.authUser({
|
||||||
userId,
|
userId,
|
||||||
username,
|
username,
|
||||||
|
name,
|
||||||
|
surname,
|
||||||
verified_email: false
|
verified_email: false
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -353,6 +366,8 @@ namespace Actions {
|
|||||||
localStorage.setItem(tools.localStorage.lang, state.lang)
|
localStorage.setItem(tools.localStorage.lang, state.lang)
|
||||||
localStorage.setItem(tools.localStorage.userId, userId)
|
localStorage.setItem(tools.localStorage.userId, userId)
|
||||||
localStorage.setItem(tools.localStorage.username, username)
|
localStorage.setItem(tools.localStorage.username, username)
|
||||||
|
localStorage.setItem(tools.localStorage.name, name)
|
||||||
|
localStorage.setItem(tools.localStorage.surname, surname)
|
||||||
localStorage.setItem(tools.localStorage.token, state.x_auth_token)
|
localStorage.setItem(tools.localStorage.token, state.x_auth_token)
|
||||||
localStorage.setItem(tools.localStorage.expirationDate, expirationDate.toString())
|
localStorage.setItem(tools.localStorage.expirationDate, expirationDate.toString())
|
||||||
localStorage.setItem(tools.localStorage.verified_email, String(false))
|
localStorage.setItem(tools.localStorage.verified_email, String(false))
|
||||||
@@ -438,11 +453,15 @@ namespace Actions {
|
|||||||
if (myuser) {
|
if (myuser) {
|
||||||
const userId = myuser.userId
|
const userId = myuser.userId
|
||||||
const username = authData.username
|
const username = authData.username
|
||||||
|
const name = myuser.name
|
||||||
|
const surname = myuser.surname
|
||||||
const verified_email = myuser.verified_email
|
const verified_email = myuser.verified_email
|
||||||
|
|
||||||
Mutations.mutations.authUser({
|
Mutations.mutations.authUser({
|
||||||
userId,
|
userId,
|
||||||
username,
|
username,
|
||||||
|
name,
|
||||||
|
surname,
|
||||||
verified_email
|
verified_email
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -452,6 +471,8 @@ namespace Actions {
|
|||||||
localStorage.setItem(tools.localStorage.lang, state.lang)
|
localStorage.setItem(tools.localStorage.lang, state.lang)
|
||||||
localStorage.setItem(tools.localStorage.userId, userId)
|
localStorage.setItem(tools.localStorage.userId, userId)
|
||||||
localStorage.setItem(tools.localStorage.username, username)
|
localStorage.setItem(tools.localStorage.username, username)
|
||||||
|
localStorage.setItem(tools.localStorage.name, name)
|
||||||
|
localStorage.setItem(tools.localStorage.surname, surname)
|
||||||
localStorage.setItem(tools.localStorage.token, state.x_auth_token)
|
localStorage.setItem(tools.localStorage.token, state.x_auth_token)
|
||||||
localStorage.setItem(tools.localStorage.expirationDate, expirationDate.toString())
|
localStorage.setItem(tools.localStorage.expirationDate, expirationDate.toString())
|
||||||
localStorage.setItem(tools.localStorage.isLogged, String(true))
|
localStorage.setItem(tools.localStorage.isLogged, String(true))
|
||||||
@@ -486,6 +507,8 @@ namespace Actions {
|
|||||||
localStorage.removeItem(tools.localStorage.token)
|
localStorage.removeItem(tools.localStorage.token)
|
||||||
localStorage.removeItem(tools.localStorage.userId)
|
localStorage.removeItem(tools.localStorage.userId)
|
||||||
localStorage.removeItem(tools.localStorage.username)
|
localStorage.removeItem(tools.localStorage.username)
|
||||||
|
localStorage.removeItem(tools.localStorage.name)
|
||||||
|
localStorage.removeItem(tools.localStorage.surname)
|
||||||
localStorage.removeItem(tools.localStorage.isLogged)
|
localStorage.removeItem(tools.localStorage.isLogged)
|
||||||
// localStorage.removeItem(rescodes.localStorage.leftDrawerOpen)
|
// localStorage.removeItem(rescodes.localStorage.leftDrawerOpen)
|
||||||
localStorage.removeItem(tools.localStorage.verified_email)
|
localStorage.removeItem(tools.localStorage.verified_email)
|
||||||
@@ -512,6 +535,7 @@ namespace Actions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function setGlobal(isLogged: boolean) {
|
async function setGlobal(isLogged: boolean) {
|
||||||
|
// console.log('setGlobal')
|
||||||
// state.isLogged = true
|
// state.isLogged = true
|
||||||
state.isLogged = isLogged
|
state.isLogged = isLogged
|
||||||
if (isLogged) {
|
if (isLogged) {
|
||||||
@@ -522,12 +546,17 @@ namespace Actions {
|
|||||||
GlobalStore.actions.checkUpdates()
|
GlobalStore.actions.checkUpdates()
|
||||||
}
|
}
|
||||||
|
|
||||||
return await GlobalStore.actions.loadAfterLogin()
|
const p = await BookingStore.actions.loadAfterLogin()
|
||||||
.then(() => {
|
const p2 = await CalendarStore.actions.loadAfterLogin()
|
||||||
return Todos.actions.dbLoad({ checkPending: true })
|
|
||||||
}).then(() => {
|
const p3 = await GlobalStore.actions.loadAfterLogin()
|
||||||
return Projects.actions.dbLoad({ checkPending: true, onlyiffirsttime: true })
|
|
||||||
})
|
if (static_data.functionality.ENABLE_TODOS_LOADING)
|
||||||
|
await Todos.actions.dbLoad({ checkPending: true })
|
||||||
|
|
||||||
|
if (static_data.functionality.ENABLE_PROJECTS_LOADING)
|
||||||
|
await Projects.actions.dbLoad({ checkPending: true, onlyiffirsttime: true })
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function autologin_FromLocalStorage(context) {
|
async function autologin_FromLocalStorage(context) {
|
||||||
@@ -547,6 +576,8 @@ namespace Actions {
|
|||||||
if (now < expirationDate) {
|
if (now < expirationDate) {
|
||||||
const userId = String(localStorage.getItem(tools.localStorage.userId))
|
const userId = String(localStorage.getItem(tools.localStorage.userId))
|
||||||
const username = String(localStorage.getItem(tools.localStorage.username))
|
const username = String(localStorage.getItem(tools.localStorage.username))
|
||||||
|
const name = String(localStorage.getItem(tools.localStorage.name))
|
||||||
|
const surname = String(localStorage.getItem(tools.localStorage.surname))
|
||||||
const verified_email = localStorage.getItem(tools.localStorage.verified_email) === 'true'
|
const verified_email = localStorage.getItem(tools.localStorage.verified_email) === 'true'
|
||||||
|
|
||||||
GlobalStore.state.wasAlreadySubOnDb = localStorage.getItem(tools.localStorage.wasAlreadySubOnDb) === 'true'
|
GlobalStore.state.wasAlreadySubOnDb = localStorage.getItem(tools.localStorage.wasAlreadySubOnDb) === 'true'
|
||||||
@@ -558,6 +589,8 @@ namespace Actions {
|
|||||||
Mutations.mutations.authUser({
|
Mutations.mutations.authUser({
|
||||||
userId,
|
userId,
|
||||||
username,
|
username,
|
||||||
|
name,
|
||||||
|
surname,
|
||||||
verified_email
|
verified_email
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -10,5 +10,9 @@ export const costanti = {
|
|||||||
CONFIG_ID_STATE_CONN: '2',
|
CONFIG_ID_STATE_CONN: '2',
|
||||||
CONFIG_ID_SHOW_TYPE_TODOS: '3',
|
CONFIG_ID_SHOW_TYPE_TODOS: '3',
|
||||||
|
|
||||||
|
FuncDialog: {
|
||||||
|
CANCEL_BOOKING: 1
|
||||||
|
},
|
||||||
|
|
||||||
MAX_PHASES: 5,
|
MAX_PHASES: 5,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
export {storeBuilder} from './Store/Store'
|
export {storeBuilder} from './Store/Store'
|
||||||
export {default as GlobalStore} from './GlobalStore'
|
export {default as GlobalStore} from './GlobalStore'
|
||||||
|
export {default as BookingStore} from './BookingStore'
|
||||||
export {default as UserStore} from './UserStore'
|
export {default as UserStore} from './UserStore'
|
||||||
export {default as Todos} from './Todos'
|
export {default as Todos} from './Todos'
|
||||||
export {default as Projects} from './Projects'
|
export {default as Projects} from './Projects'
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { Todos, Projects, UserStore } from '@store'
|
import { Todos, Projects, UserStore, CalendarStore } from '@store'
|
||||||
import globalroutines from './../../globalroutines/index'
|
import globalroutines from './../../globalroutines/index'
|
||||||
import { costanti } from './costanti'
|
import { costanti } from './costanti'
|
||||||
import { toolsext } from './toolsext'
|
import { toolsext } from './toolsext'
|
||||||
import { translation } from './translation'
|
import { translation } from './translation'
|
||||||
import Quasar, { date, Screen } from 'quasar'
|
import Quasar, { date, Screen } from 'quasar'
|
||||||
import { ICollaborations, IListRoutes, IMenuList, IProject, ITodo, Privacy } from '@src/model'
|
import { ICollaborations, IListRoutes, IMenuList, IParamDialog, IProject, ITodo, Privacy } from '@src/model'
|
||||||
import * as ApiTables from '@src/store/Modules/ApiTables'
|
import * as ApiTables from '@src/store/Modules/ApiTables'
|
||||||
import translate from '@src/globalroutines/util'
|
import translate from '@src/globalroutines/util'
|
||||||
import { RouteNames } from '@src/router/route-names'
|
import { RouteNames } from '@src/router/route-names'
|
||||||
@@ -55,6 +55,8 @@ export const tools = {
|
|||||||
userId: 'uid',
|
userId: 'uid',
|
||||||
token: 'tk',
|
token: 'tk',
|
||||||
username: 'uname',
|
username: 'uname',
|
||||||
|
name: 'nm',
|
||||||
|
surname: 'sn',
|
||||||
lang: 'lg'
|
lang: 'lg'
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -70,6 +72,35 @@ export const tools = {
|
|||||||
COMPLETED: 10
|
COMPLETED: 10
|
||||||
},
|
},
|
||||||
|
|
||||||
|
SelectListNumPeople: [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
label: '1',
|
||||||
|
value: 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
label: '2',
|
||||||
|
value: 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
label: '3',
|
||||||
|
value: 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
label: '4',
|
||||||
|
value: 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
label: '5',
|
||||||
|
value: 5
|
||||||
|
},
|
||||||
|
]
|
||||||
|
,
|
||||||
|
|
||||||
selectPhase: {
|
selectPhase: {
|
||||||
it: [
|
it: [
|
||||||
{
|
{
|
||||||
@@ -1267,8 +1298,48 @@ export const tools = {
|
|||||||
result.push(json[key])
|
result.push(json[key])
|
||||||
})
|
})
|
||||||
return result
|
return result
|
||||||
|
},
|
||||||
|
|
||||||
|
executefunc(myself: any, myfunc: number, par: IParamDialog) {
|
||||||
|
if (myfunc === costanti.FuncDialog.CANCEL_BOOKING) {
|
||||||
|
console.log(' ENTRATO ! CancelBookingEvent ')
|
||||||
|
CalendarStore.actions.CancelBookingEvent(par.param1).then(ris => {
|
||||||
|
if (ris)
|
||||||
|
tools.showPositiveNotif(myself.$q, myself.$t('cal.canceledbooking') + ' "' + par.param1.title + '"')
|
||||||
|
else
|
||||||
|
tools.showNegativeNotif(myself.$q, myself.$t('cal.cancelederrorbooking'))
|
||||||
|
})
|
||||||
}
|
}
|
||||||
,
|
},
|
||||||
|
|
||||||
|
async askConfirm($q: any, mytitle, mytext, ok, cancel, myself: any, funcok: number, funccancel: number, par: IParamDialog) {
|
||||||
|
return $q.dialog({
|
||||||
|
message: mytext,
|
||||||
|
ok: {
|
||||||
|
label: ok,
|
||||||
|
push: true
|
||||||
|
},
|
||||||
|
title: mytitle,
|
||||||
|
cancel: true,
|
||||||
|
persistent: false
|
||||||
|
}).onOk(() => {
|
||||||
|
console.log('OK')
|
||||||
|
tools.executefunc(myself, funcok, par)
|
||||||
|
return true
|
||||||
|
}).onCancel(() => {
|
||||||
|
console.log('CANCEL')
|
||||||
|
tools.executefunc(myself, funccancel, par)
|
||||||
|
return false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
showPositiveNotif(q: any, msg) {
|
||||||
|
tools.showNotif(q, msg, { color: 'positive', icon: 'notifications' })
|
||||||
|
},
|
||||||
|
|
||||||
|
showNegativeNotif(q: any, msg) {
|
||||||
|
tools.showNotif(q, msg, { color: 'negative', icon: 'notifications' })
|
||||||
|
},
|
||||||
|
|
||||||
showNotif(q: any, msg, data ?: INotify | null
|
showNotif(q: any, msg, data ?: INotify | null
|
||||||
) {
|
) {
|
||||||
@@ -1728,7 +1799,6 @@ export const tools = {
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
heightgallery() {
|
heightgallery() {
|
||||||
if (Screen.width < 400) {
|
if (Screen.width < 400) {
|
||||||
return '200px'
|
return '200px'
|
||||||
@@ -1993,10 +2063,19 @@ export const tools = {
|
|||||||
return { path: '', file: fileimg }
|
return { path: '', file: fileimg }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
convertHTMLtoText(myhtml) {
|
||||||
|
let msg = myhtml
|
||||||
|
msg = msg.replace('"', '"')
|
||||||
|
msg = msg.replace('>', '>')
|
||||||
|
msg = msg.replace('<', '<')
|
||||||
|
msg = msg.replace('&', '&')
|
||||||
|
msg = msg.replace('<br>', '\n')
|
||||||
|
|
||||||
|
return msg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// getLocale() {
|
// getLocale() {
|
||||||
// if (navigator.languages && navigator.languages.length > 0) {
|
// if (navigator.languages && navigator.languages.length > 0) {
|
||||||
// return navigator.languages[0]
|
// return navigator.languages[0]
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ export const func_tools = {
|
|||||||
|
|
||||||
getDateStr(mydate) {
|
getDateStr(mydate) {
|
||||||
const DateFormatter = new Intl.DateTimeFormat(func_tools.getLocale() || void 0, {
|
const DateFormatter = new Intl.DateTimeFormat(func_tools.getLocale() || void 0, {
|
||||||
weekday: 'long',
|
weekday: 'short',
|
||||||
day: 'numeric',
|
day: 'numeric',
|
||||||
month: 'long',
|
month: 'long',
|
||||||
year: 'numeric'
|
year: 'numeric'
|
||||||
|
|||||||
@@ -19,6 +19,12 @@ export const validations = {
|
|||||||
registereduser,
|
registereduser,
|
||||||
required
|
required
|
||||||
},
|
},
|
||||||
|
name: {
|
||||||
|
required
|
||||||
|
},
|
||||||
|
surname: {
|
||||||
|
required
|
||||||
|
},
|
||||||
email: {
|
email: {
|
||||||
email,
|
email,
|
||||||
registeredemail,
|
registeredemail,
|
||||||
|
|||||||
@@ -30,9 +30,11 @@ export default class Signup extends Vue {
|
|||||||
public signup: ISignupOptions = {
|
public signup: ISignupOptions = {
|
||||||
email: process.env.TEST_EMAIL || '',
|
email: process.env.TEST_EMAIL || '',
|
||||||
username: process.env.TEST_USERNAME || '',
|
username: process.env.TEST_USERNAME || '',
|
||||||
|
name: process.env.TEST_NAME || '',
|
||||||
|
surname: process.env.TEST_SURNAME || '',
|
||||||
password: process.env.TEST_PASSWORD || '',
|
password: process.env.TEST_PASSWORD || '',
|
||||||
repeatPassword: process.env.TEST_PASSWORD || '',
|
repeatPassword: process.env.TEST_PASSWORD || '',
|
||||||
terms: process.env.PROD ? false : true
|
terms: !process.env.PROD
|
||||||
}
|
}
|
||||||
|
|
||||||
public created() {
|
public created() {
|
||||||
@@ -107,6 +109,9 @@ export default class Signup extends Vue {
|
|||||||
} else if (cosa === 'username') {
|
} else if (cosa === 'username') {
|
||||||
// console.log(item);
|
// console.log(item);
|
||||||
if (!item.isUnique) { return this.$t('reg.err.duplicate_username') }
|
if (!item.isUnique) { return this.$t('reg.err.duplicate_username') }
|
||||||
|
} else if ((cosa === 'name') || (cosa === 'surname')) {
|
||||||
|
// console.log(item);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!item.complexity) { return this.$t('reg.err.complexity') }
|
if (!item.complexity) { return this.$t('reg.err.complexity') }
|
||||||
|
|||||||
@@ -41,6 +41,38 @@
|
|||||||
|
|
||||||
</q-input>
|
</q-input>
|
||||||
|
|
||||||
|
<q-input
|
||||||
|
v-model="signup.name"
|
||||||
|
rounded outlined
|
||||||
|
@blur="$v.signup.name.$touch"
|
||||||
|
:error="$v.signup.name.$error"
|
||||||
|
bottom-slots
|
||||||
|
debounce="1000"
|
||||||
|
:error-message="errorMsg('name', $v.signup.name)"
|
||||||
|
:label="$t('reg.name')">
|
||||||
|
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon name="person"/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</q-input>
|
||||||
|
|
||||||
|
<q-input
|
||||||
|
v-model="signup.surname"
|
||||||
|
rounded outlined
|
||||||
|
@blur="$v.signup.surname.$touch"
|
||||||
|
:error="$v.signup.surname.$error"
|
||||||
|
bottom-slots
|
||||||
|
debounce="1000"
|
||||||
|
:error-message="errorMsg('surname', $v.signup.surname)"
|
||||||
|
:label="$t('reg.surname')">
|
||||||
|
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon name="person"/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</q-input>
|
||||||
|
|
||||||
<q-input
|
<q-input
|
||||||
v-model="signup.password"
|
v-model="signup.password"
|
||||||
type="password"
|
type="password"
|
||||||
|
|||||||
Reference in New Issue
Block a user