CGridTableRec + fields + page
pagine: - Siti Web - Operazioni - Push...
This commit is contained in:
0
src/rootgen/admin/departments/departments.scss
Executable file
0
src/rootgen/admin/departments/departments.scss
Executable file
34
src/rootgen/admin/departments/departments.ts
Executable file
34
src/rootgen/admin/departments/departments.ts
Executable file
@@ -0,0 +1,34 @@
|
||||
|
||||
import { colTabledepartments } from '@src/store/Modules/fieldsTable'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
|
||||
import { defineComponent } from 'vue'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import MixinMetaTags from '../../../mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'StorehousePage',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
const pagination = {
|
||||
sortBy: 'name',
|
||||
descending: false,
|
||||
page: 2,
|
||||
rowsPerPage: 5
|
||||
// rowsNumber: xx if getting data from a server
|
||||
}
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
return {
|
||||
colTabledepartments,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
31
src/rootgen/admin/departments/departments.vue
Executable file
31
src/rootgen/admin/departments/departments.vue
Executable file
@@ -0,0 +1,31 @@
|
||||
<template>
|
||||
<CMyPage title="Uffici" imgbackground="../../public/images/produttori.jpg" sizes="max-height: 120px">
|
||||
<span>{{
|
||||
setmeta({
|
||||
title: 'Uffici',
|
||||
description: '',
|
||||
keywords: '',
|
||||
})
|
||||
}}
|
||||
</span>
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Uffici"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="departments"
|
||||
prop_mytitle="Lista Uffici"
|
||||
:prop_mycolumns="colTabledepartments"
|
||||
prop_colkey="name"
|
||||
nodataLabel="Nessun Ufficio"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./departments.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'departments.scss';
|
||||
</style>
|
||||
58
src/rootgen/admin/eventlist/eventlist.scss
Executable file
58
src/rootgen/admin/eventlist/eventlist.scss
Executable file
@@ -0,0 +1,58 @@
|
||||
.listaev {
|
||||
color: black;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.25rem;
|
||||
letter-spacing: 0.03333em;
|
||||
|
||||
&__date {
|
||||
font-weight: bold;
|
||||
color: #2ba0fd;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
&__title {
|
||||
color: red;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.066em;
|
||||
}
|
||||
|
||||
&__details {
|
||||
color: black;
|
||||
}
|
||||
|
||||
&__tdimg {
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
&__table {
|
||||
margin: 10px;
|
||||
border-radius: 1rem;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
&__align_center_mobile {
|
||||
text-align: left;
|
||||
@media (max-width: 718px) {
|
||||
text-align: center;
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
&__img {
|
||||
padding: 0.5rem !important;
|
||||
float: left;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
border-radius: 1rem;
|
||||
|
||||
@media (max-width: 718px) {
|
||||
// PER VERSIONE MOBILE
|
||||
float: none;
|
||||
text-align: center;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
156
src/rootgen/admin/eventlist/eventlist.ts
Executable file
156
src/rootgen/admin/eventlist/eventlist.ts
Executable file
@@ -0,0 +1,156 @@
|
||||
import { defineComponent, onMounted, ref } from 'vue'
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
import { func_tools } from '@src/store/Modules/toolsext'
|
||||
import { CTitle } from '../../../components/CTitle/index'
|
||||
import { CMyPage } from '../../../components/CMyPage/index'
|
||||
import { IBookedEvent, ICalendarState, IEvents, ITodo, ITodosState, IUserState, IUserFields } from '@src/model'
|
||||
import { lists } from '@src/store/Modules/lists'
|
||||
|
||||
import MixinUsers from '@src/mixins/mixin-users'
|
||||
import MixinOperator from '@src/mixins/mixin-operator'
|
||||
import MixinEvents from '@src/mixins/mixin-events'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { useCalendarStore } from '@store/CalendarStore'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { useI18n } from '@/boot/i18n'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Eventlist',
|
||||
components: { CTitle, CMyPage },
|
||||
|
||||
setup() {
|
||||
|
||||
const shownote = ref(false)
|
||||
const eventsel = ref(null)
|
||||
const showPrev = ref(false)
|
||||
const numrec = ref(0)
|
||||
const $q = useQuasar()
|
||||
const { t } = useI18n()
|
||||
|
||||
const calendarStore = useCalendarStore()
|
||||
const userStore = useUserStore()
|
||||
const $route = useRoute()
|
||||
|
||||
const { getTeacherByUsername } = MixinOperator()
|
||||
|
||||
const { UpdateDbByFields } = MixinEvents()
|
||||
|
||||
function getEventList() {
|
||||
const eventsloc: IEvents[] = []
|
||||
|
||||
const datenow = tools.addDays(tools.getDateNow(), -1)
|
||||
|
||||
let numevent = 0
|
||||
|
||||
calendarStore.eventlist.forEach((myevent: IEvents) => {
|
||||
// console.log(' ciclo i = ', i, calendarStore.eventlist[i])
|
||||
// let dateEvent = new Date(myevent.date + ' 00:00:00')
|
||||
const dateEvent = new Date(myevent.dateTimeEnd!)
|
||||
|
||||
let add = true
|
||||
|
||||
if (!showall) {
|
||||
add = calendarStore.getNumParticipants(myevent, showall(), tools.peopleWhere.participants) > 0
|
||||
}
|
||||
|
||||
if (add) {
|
||||
|
||||
if (showPrev.value) {
|
||||
if (dateEvent < datenow) {
|
||||
eventsloc.push(myevent)
|
||||
numevent++
|
||||
}
|
||||
} else {
|
||||
if (dateEvent >= datenow) {
|
||||
eventsloc.push(myevent)
|
||||
numevent++
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
numrec.value = numevent
|
||||
|
||||
if (showPrev.value) {
|
||||
eventsloc.reverse()
|
||||
}
|
||||
|
||||
return eventsloc.filter((rec) => rec.title !== '')
|
||||
}
|
||||
|
||||
function getNumEvent() {
|
||||
const eventsloc: IEvents[] = []
|
||||
|
||||
const datenow = tools.addDays(tools.getDateNow(), -1)
|
||||
|
||||
let numevent = 0
|
||||
|
||||
calendarStore.eventlist.forEach((myevent: IEvents) => {
|
||||
// console.log(' ciclo i = ', i, calendarStore.eventlist[i])
|
||||
// let dateEvent = new Date(myevent.date + ' 00:00:00')
|
||||
const dateEvent = new Date(myevent.dateTimeEnd!)
|
||||
|
||||
let add = true
|
||||
|
||||
if (!showall) {
|
||||
add = calendarStore.getNumParticipants(myevent, showall(), tools.peopleWhere.participants) > 0
|
||||
}
|
||||
|
||||
if (add) {
|
||||
if (showPrev.value) {
|
||||
if (dateEvent < datenow)
|
||||
numevent++
|
||||
} else {
|
||||
if (dateEvent >= datenow)
|
||||
numevent++
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
numrec.value = numevent
|
||||
|
||||
return eventsloc
|
||||
}
|
||||
|
||||
function mostra() {
|
||||
return $route.name
|
||||
}
|
||||
|
||||
function showall() {
|
||||
return $route.name === 'otherpages.admin.usereventlist'
|
||||
}
|
||||
|
||||
function gettitle() {
|
||||
if (showall())
|
||||
return t('otherpages.admin.usereventlist')
|
||||
else
|
||||
return t('otherpages.admin.eventlist')
|
||||
}
|
||||
|
||||
function mounted() {
|
||||
getNumEvent()
|
||||
}
|
||||
|
||||
function change_rec(eventparam: any) {
|
||||
UpdateDbByFields($q, eventparam)
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
return {
|
||||
getEventList,
|
||||
tools,
|
||||
func_tools,
|
||||
lists,
|
||||
showall,
|
||||
calendarStore,
|
||||
userStore,
|
||||
getTeacherByUsername,
|
||||
numrec,
|
||||
shownote,
|
||||
}
|
||||
}
|
||||
})
|
||||
190
src/rootgen/admin/eventlist/eventlist.vue
Executable file
190
src/rootgen/admin/eventlist/eventlist.vue
Executable file
@@ -0,0 +1,190 @@
|
||||
<template>
|
||||
<CMyPage
|
||||
title="Events" keywords="" description="" imgbackground="../../public/images/calendario_eventi.jpg"
|
||||
sizes="max-height: 120px">
|
||||
|
||||
<div class="q-ma-sm q-pa-xs">
|
||||
<div v-if="!showall" class="text-h6 bg-red text-white text-center q-pa-xs shadow-max">Lista delle tue
|
||||
prenotazioni agli Eventi:
|
||||
</div>
|
||||
|
||||
<q-space></q-space>
|
||||
|
||||
<!--<q-toggle v-model="showPrev" :val="lists.MenuAction.SHOW_PREV_REC"
|
||||
:label="$t('grid.showprevedit')"></q-toggle>-->
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<q-markup-table wrap-cells bordered separator="horizontal" class="listaev__table">
|
||||
<thead>
|
||||
<th>{{ $t('cal.data') }}</th>
|
||||
<th>{{ $t('cal.event') }}</th>
|
||||
<th v-if="!tools.isMobile()">{{ $t('cal.teachertitle') }}</th>
|
||||
<th v-if="showall">
|
||||
<span v-if="!tools.isMobile()">{{ $t('cal.selnumpeople') }}</span>
|
||||
<span v-else>{{ $t('cal.selnumpeople_short') }}</span>
|
||||
</th>
|
||||
<th v-if="showall">
|
||||
{{ $t('cal.selnumpeopleLunch') }}
|
||||
</th>
|
||||
<th v-if="showall">
|
||||
{{ $t('cal.selnumpeopleDinner') }}
|
||||
</th>
|
||||
<th v-if="showall">
|
||||
{{ $t('cal.selnumpeopleDinnerShared') }}
|
||||
</th>
|
||||
<th>{{ $t('cal.peoplebooked') }}</th>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr v-for="(event, index) in getEventList()" :key="index" class="listaev listaev__table">
|
||||
<td>
|
||||
<div class="text-center text-blue">{{ func_tools.getDateStr(event.dateTimeStart) }}</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="text-center boldhigh">{{ event.title }}</div>
|
||||
</td>
|
||||
<td v-if="!tools.isMobile()">
|
||||
<div class="text-center">{{ getTeacherByUsername(event.teacher) }}
|
||||
<span v-if="isValidUsername(event.teacher2)"> - {{ getTeacherByUsername(event.teacher2) }}</span>
|
||||
<span v-if="isValidUsername(event.teacher3)"> - {{ getTeacherByUsername(event.teacher3) }}</span>
|
||||
<span v-if="isValidUsername(event.teacher4)"> - {{ getTeacherByUsername(event.teacher4) }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td v-if="showall">
|
||||
<div class="text-center">{{
|
||||
calendarStore.getNumParticipants(event, showall, tools.peopleWhere.participants)
|
||||
}}
|
||||
</div>
|
||||
</td>
|
||||
<td v-if="showall">
|
||||
<div class="text-center">{{
|
||||
calendarStore.getNumParticipants(event, showall, tools.peopleWhere.lunch)
|
||||
}}
|
||||
</div>
|
||||
</td>
|
||||
<td v-if="showall">
|
||||
<div class="text-center">{{
|
||||
calendarStore.getNumParticipants(event, showall, tools.peopleWhere.dinner)
|
||||
}}
|
||||
</div>
|
||||
</td>
|
||||
<td v-if="showall">
|
||||
<div class="text-center">{{
|
||||
calendarStore.getNumParticipants(event, showall, tools.peopleWhere.dinnerShared)
|
||||
}}
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
<q-btn
|
||||
v-if="calendarStore.getNumParticipants(event, showall, tools.peopleWhere.participants) > 0"
|
||||
flat
|
||||
dense
|
||||
color="positive"
|
||||
rounded
|
||||
icon="fas fa-user-check"
|
||||
@click="showpeople = true; eventsel = event"
|
||||
>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
dense
|
||||
flat
|
||||
rounded
|
||||
:color="!!event.note ? 'positive' : 'dark'"
|
||||
icon="fas fa-pencil-alt"
|
||||
@click="shownote = true; eventsel = event"
|
||||
>
|
||||
</q-btn>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</q-markup-table>
|
||||
<q-dialog v-model="shownote">
|
||||
<q-card v-if="eventsel" :style="`min-width: ` + tools.myheight_dialog() + `px;`">
|
||||
<q-toolbar class="bg-primary text-white">
|
||||
<q-toolbar-title>
|
||||
Note: {{ eventsel.title }}
|
||||
</q-toolbar-title>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="q-pa-xs inset-shadow">
|
||||
<q-input
|
||||
v-model="eventsel.note" style="min-height: 50px; " label="Note:"
|
||||
filled dense
|
||||
autogrow
|
||||
type="textarea" debounce="500"
|
||||
input-class="myinput-area"
|
||||
@input="change_rec(eventsel)">
|
||||
</q-input>
|
||||
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
<q-dialog v-model="showpeople">
|
||||
<q-card v-if="eventsel" :style="`min-width: ` + tools.myheight_dialog() + `px;`">
|
||||
<q-toolbar class="bg-primary text-white">
|
||||
<q-toolbar-title>
|
||||
{{ eventsel.title }}
|
||||
</q-toolbar-title>
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
</q-toolbar>
|
||||
<q-card-section class="q-pa-xs inset-shadow">
|
||||
<q-markup-table wrap-cells bordered separator="horizontal" class="listaev__table">
|
||||
<thead>
|
||||
<th>Data</th>
|
||||
<th>Messaggio</th>
|
||||
<th>Partec</th>
|
||||
<th>Azione</th>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr
|
||||
v-for="(eventbook, index) in calendarStore.getEventsBookedByIdEvent(eventsel._id, showall)"
|
||||
:key="index"
|
||||
class="listaev listaev__table">
|
||||
<td class="text-center">
|
||||
<div>{{ func_tools.getDateTimeShortStr(eventbook.datebooked) }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<strong>{{ userStore.getNameSurnameByUserId(eventbook.userId) }}</strong> <span
|
||||
v-if="eventbook.msgbooking"> {{ $t('sendmsg.write') }}: </span><br>
|
||||
{{ eventbook.msgbooking }}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<span v-if="eventbook.numpeople > 0">Partecipanti: {{ eventbook.numpeople }}<br></span>
|
||||
<span v-if="eventbook.numpeopleLunch > 0">Pranzo: {{ eventbook.numpeopleLunch }}<br></span>
|
||||
<span v-if="eventbook.numpeopleDinner > 0">Cena: {{ eventbook.numpeopleDinner }}<br></span>
|
||||
<span v-if="eventbook.numpeopleDinnerShared > 0">Cena Condivisa: {{ eventbook.numpeopleDinnerShared }}<br></span>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<q-btn
|
||||
flat round color="red" icon="fas fa-trash-alt" size="sm"
|
||||
@click="tools.CancelBookingEvent(mythis, eventsel, eventbook._id, false)"></q-btn>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</q-markup-table>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
<div v-if="numrec === 0">
|
||||
<div v-if="!showPrev" class="text-blue text-center q-pa-xs shadow">
|
||||
Attualmente non hai nessuna Prenotazione futura.
|
||||
</div>
|
||||
<div v-else class="text-blue text-center q-pa-xs shadow">
|
||||
Non hai nessuna Prenotazione passata.
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<br>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./eventlist.ts">
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import './eventlist.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/gallery/gallery.scss
Executable file
0
src/rootgen/admin/gallery/gallery.scss
Executable file
19
src/rootgen/admin/gallery/gallery.ts
Executable file
19
src/rootgen/admin/gallery/gallery.ts
Executable file
@@ -0,0 +1,19 @@
|
||||
import { defineComponent, ref, computed } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colgallery } from '@src/store/Modules/fieldsTable'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Gallery',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
return {
|
||||
colgallery
|
||||
}
|
||||
}
|
||||
})
|
||||
23
src/rootgen/admin/gallery/gallery.vue
Executable file
23
src/rootgen/admin/gallery/gallery.vue
Executable file
@@ -0,0 +1,23 @@
|
||||
<template>
|
||||
<CMyPage title="Gallerie" imgbackground="../../public/images/calendario_eventi.jpg" sizes="max-height: 120px">
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm">
|
||||
<CTitleBanner title="Gallerie"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="gallery"
|
||||
prop_mytitle=""
|
||||
:prop_mycolumns="colgallery"
|
||||
prop_colkey="_id"
|
||||
nodataLabel="Nessuna Galleria"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./gallery.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'gallery.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/groups/groups.scss
Executable file
0
src/rootgen/admin/groups/groups.scss
Executable file
19
src/rootgen/admin/groups/groups.ts
Executable file
19
src/rootgen/admin/groups/groups.ts
Executable file
@@ -0,0 +1,19 @@
|
||||
import { defineComponent, ref, computed } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colTablegroups } from '@src/store/Modules/fieldsTable'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'GroupPage',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
return {
|
||||
colTablegroups
|
||||
}
|
||||
}
|
||||
})
|
||||
31
src/rootgen/admin/groups/groups.vue
Executable file
31
src/rootgen/admin/groups/groups.vue
Executable file
@@ -0,0 +1,31 @@
|
||||
<template>
|
||||
<CMyPage title="Gruppi" imgbackground="../../public/images/produttori.jpg" sizes="max-height: 120px">
|
||||
<span>{{
|
||||
setmeta({
|
||||
title: 'Gruppi',
|
||||
description: '',
|
||||
keywords: '',
|
||||
})
|
||||
}}
|
||||
</span>
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Gruppi"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="groups"
|
||||
prop_mytitle="Gruppi"
|
||||
:prop_mycolumns="colTablegroups"
|
||||
prop_colkey="descr"
|
||||
nodataLabel="Nessun Gruppo"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./groups.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'groups.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/msg_template/msg_template.scss
Executable file
0
src/rootgen/admin/msg_template/msg_template.scss
Executable file
35
src/rootgen/admin/msg_template/msg_template.ts
Executable file
35
src/rootgen/admin/msg_template/msg_template.ts
Executable file
@@ -0,0 +1,35 @@
|
||||
import { defineComponent, ref, onMounted } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colmsg_templates } from '@src/store/Modules/fieldsTable'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Msgtemplate',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
const globalStore = useGlobalStore()
|
||||
|
||||
const dataMsg_Templates = ref([])
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
async function mounted() {
|
||||
dataMsg_Templates.value = await globalStore.GetMsgTemplates()
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
return {
|
||||
colmsg_templates,
|
||||
dataMsg_Templates,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
})
|
||||
33
src/rootgen/admin/msg_template/msg_template.vue
Executable file
33
src/rootgen/admin/msg_template/msg_template.vue
Executable file
@@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<CMyPage
|
||||
title="Template Messaggi" imgbackground="../../public/images/calendario_eventi.jpg"
|
||||
sizes="max-height: 100px">
|
||||
<span>{{
|
||||
setmeta({
|
||||
title: 'Template Messaggi',
|
||||
description: '',
|
||||
keywords: '',
|
||||
})
|
||||
}}
|
||||
</span>
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Template Messaggi"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="msg_templates"
|
||||
prop_mytitle="Lista Messaggi"
|
||||
:prop_mycolumns="colmsg_templates"
|
||||
prop_colkey="title"
|
||||
nodataLabel="Nessun Messaggio"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./msg_template.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'msg_template.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/orders/orders.scss
Executable file
0
src/rootgen/admin/orders/orders.scss
Executable file
24
src/rootgen/admin/orders/orders.ts
Executable file
24
src/rootgen/admin/orders/orders.ts
Executable file
@@ -0,0 +1,24 @@
|
||||
import { defineComponent, ref, onMounted } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { getcolorderscart } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'StorehousePage',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
return {
|
||||
getcolorderscart,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
})
|
||||
28
src/rootgen/admin/orders/orders.vue
Executable file
28
src/rootgen/admin/orders/orders.vue
Executable file
@@ -0,0 +1,28 @@
|
||||
<template>
|
||||
<CMyPage title="Ordini Ufficio" imgbackground="../../public/images/produttori.jpg" sizes="max-height: 120px">
|
||||
<span>{{ setmeta({
|
||||
title: 'Ordini Ufficio',
|
||||
description: "",
|
||||
keywords: '' } ) }}
|
||||
</span>
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Ordini Ufficio"></CTitleBanner>
|
||||
<!--<CGridTableRec prop_mytable="orderscart"
|
||||
prop_mytitle="Lista Ordini"
|
||||
:prop_mycolumns="getcolorderscart"
|
||||
prop_colkey="name"
|
||||
nodataLabel="Nessun Ordine"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
-->
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./orders.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'orders.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/pages/pages.scss
Executable file
0
src/rootgen/admin/pages/pages.scss
Executable file
24
src/rootgen/admin/pages/pages.ts
Executable file
24
src/rootgen/admin/pages/pages.ts
Executable file
@@ -0,0 +1,24 @@
|
||||
import { defineComponent, ref, onMounted } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colmypage } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Pages',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
return {
|
||||
colmypage,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
})
|
||||
31
src/rootgen/admin/pages/pages.vue
Executable file
31
src/rootgen/admin/pages/pages.vue
Executable file
@@ -0,0 +1,31 @@
|
||||
<template>
|
||||
<CMyPage title="Pagine" imgbackground="../../public/images/calendario_eventi.jpg" sizes="max-height: 120px">
|
||||
<span>{{
|
||||
setmeta({
|
||||
title: 'Pagine',
|
||||
description: '',
|
||||
keywords: '',
|
||||
})
|
||||
}}
|
||||
</span>
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Pagine"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="mypage"
|
||||
prop_mytitle="Lista Pagine"
|
||||
:prop_mycolumns="colmypage"
|
||||
prop_colkey="title"
|
||||
nodataLabel="Nessuna Pagina"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./pages.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'pages.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/producer/producer.scss
Executable file
0
src/rootgen/admin/producer/producer.scss
Executable file
24
src/rootgen/admin/producer/producer.ts
Executable file
24
src/rootgen/admin/producer/producer.ts
Executable file
@@ -0,0 +1,24 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colTableProducer } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'ProducerPage',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
return {
|
||||
colTableProducer,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
})
|
||||
31
src/rootgen/admin/producer/producer.vue
Executable file
31
src/rootgen/admin/producer/producer.vue
Executable file
@@ -0,0 +1,31 @@
|
||||
<template>
|
||||
<CMyPage title="Produttori" imgbackground="../../public/images/produttori.jpg" sizes="max-height: 120px">
|
||||
<span>{{
|
||||
setmeta({
|
||||
title: 'Produttori',
|
||||
description: '',
|
||||
keywords: '',
|
||||
})
|
||||
}}
|
||||
</span>
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Produttori"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="producers"
|
||||
prop_mytitle="Lista Produttori"
|
||||
:prop_mycolumns="colTableProducer"
|
||||
prop_colkey="name"
|
||||
nodataLabel="Nessun Produttore"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./producer.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'producer.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/products/products.scss
Executable file
0
src/rootgen/admin/products/products.scss
Executable file
24
src/rootgen/admin/products/products.ts
Executable file
24
src/rootgen/admin/products/products.ts
Executable file
@@ -0,0 +1,24 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colTableProducts } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'ProductsPage',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
return {
|
||||
colTableProducts,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
})
|
||||
32
src/rootgen/admin/products/products.vue
Executable file
32
src/rootgen/admin/products/products.vue
Executable file
@@ -0,0 +1,32 @@
|
||||
<template>
|
||||
<CMyPage title="Prodotti" imgbackground="../../public/images/prodotti.jpg" sizes="max-height: 120px">
|
||||
<span>{{
|
||||
setmeta({
|
||||
title: 'Prodotti',
|
||||
description: '',
|
||||
keywords: '',
|
||||
})
|
||||
}}
|
||||
</span>
|
||||
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Prodotti"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="products"
|
||||
prop_mytitle="Lista Prodotti"
|
||||
:prop_mycolumns="colTableProducts"
|
||||
prop_colkey="name"
|
||||
nodataLabel="Nessun Prodotto"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./products.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'products.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/sendpushnotif/sendpushnotif.scss
Executable file
0
src/rootgen/admin/sendpushnotif/sendpushnotif.scss
Executable file
125
src/rootgen/admin/sendpushnotif/sendpushnotif.ts
Executable file
125
src/rootgen/admin/sendpushnotif/sendpushnotif.ts
Executable file
@@ -0,0 +1,125 @@
|
||||
import { CMyPage } from '../../../components/CMyPage/index'
|
||||
|
||||
import { shared_consts } from '@src/common/shared_vuejs'
|
||||
import { tools } from '@src/store/Modules/tools'
|
||||
|
||||
import { defineComponent, ref, onMounted } from 'vue'
|
||||
import { useI18n } from '@src/boot/i18n'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useQuasar } from 'quasar'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Sendpushnotif',
|
||||
components: { CMyPage },
|
||||
setup(props, { emit }) {
|
||||
const $q = useQuasar()
|
||||
const { t } = useI18n()
|
||||
const userStore = useUserStore()
|
||||
const globalStore = useGlobalStore()
|
||||
|
||||
const incaricamento = ref(false)
|
||||
|
||||
const title= ref('')
|
||||
const content= ref('')
|
||||
const openUrl= ref('')
|
||||
const openUrl2= ref('')
|
||||
const opz1= ref('')
|
||||
const opz2= ref('')
|
||||
const tag= ref('')
|
||||
const actiontype = ref(shared_consts.TypeMsg_Actions.NORMAL)
|
||||
const destination = ref(shared_consts.TypeMsg.SEND_TO_ALL)
|
||||
|
||||
function created() {
|
||||
title.value = t('ws.sitename')
|
||||
openUrl.value = '/'
|
||||
openUrl2.value = ''
|
||||
tag.value = 'msg'
|
||||
}
|
||||
|
||||
function SendMsg(params: any) {
|
||||
$q.dialog({
|
||||
message: t('dialog.continue') + ' ' + params.content + ' ?',
|
||||
cancel: {
|
||||
label: t('dialog.cancel')
|
||||
},
|
||||
ok: {
|
||||
label: t('dialog.yes'),
|
||||
push: true
|
||||
},
|
||||
title: params.title
|
||||
}).onOk(async () => {
|
||||
|
||||
incaricamento.value = true
|
||||
$q.loading.show({ message: t('otherpages.update') })
|
||||
|
||||
const ris = await globalStore.sendPushNotif({ params })
|
||||
|
||||
if (!!ris.msg)
|
||||
tools.showPositiveNotif($q, ris.msg)
|
||||
|
||||
$q.loading.hide()
|
||||
|
||||
incaricamento.value = false
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
function SendMsgToParam(typemsg: any) {
|
||||
/*const param: any = {
|
||||
typemsg,
|
||||
title: title,
|
||||
content: content,
|
||||
openUrl: openUrl,
|
||||
openUrl2: openUrl2,
|
||||
tag: tag,
|
||||
actions: []
|
||||
}
|
||||
*/
|
||||
|
||||
let param: any = []
|
||||
|
||||
if (actiontype.value === shared_consts.TypeMsg_Actions.YESNO) {
|
||||
param.value = [
|
||||
{ action: 'confirm', title: 'Si', icon: '/statics/icons/opz1-icon-96x96.png' },
|
||||
{ action: 'cancel', title: 'No', icon: '/statics/icons/opz2-icon-96x96.png' }
|
||||
]
|
||||
} else if (actiontype.value === shared_consts.TypeMsg_Actions.OPZ1_2) {
|
||||
param.value = [
|
||||
{ action: 'opz1', title: opz1, icon: '/statics/icons/opz1-icon-96x96.png' },
|
||||
{ action: 'opz2', title: opz2, icon: '/statics/icons/opz2-icon-96x96.png' }
|
||||
]
|
||||
}
|
||||
|
||||
// action: A DOMString identifying a user action to be displayed on the notification.
|
||||
// title: A DOMString containing action text to be shown to the user.
|
||||
// icon: A USVString containing the URL of an icon to display with the action.
|
||||
|
||||
return SendMsg(param)
|
||||
}
|
||||
|
||||
function SendMsgToAll() {
|
||||
|
||||
SendMsgToParam(destination)
|
||||
}
|
||||
|
||||
onMounted(created)
|
||||
|
||||
return {
|
||||
title,
|
||||
tag,
|
||||
openUrl,
|
||||
openUrl2,
|
||||
actiontype,
|
||||
destination,
|
||||
SendMsgToAll,
|
||||
opz1,
|
||||
opz2,
|
||||
content,
|
||||
shared_consts,
|
||||
incaricamento,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
52
src/rootgen/admin/sendpushnotif/sendpushnotif.vue
Executable file
52
src/rootgen/admin/sendpushnotif/sendpushnotif.vue
Executable file
@@ -0,0 +1,52 @@
|
||||
<template>
|
||||
<CMyPage img="" title="Invio Push Notifiche" keywords="" description="">
|
||||
<div class="q-ma-sm">
|
||||
<div class="row center_img clBorderSteps" style="max-width: 600px;">
|
||||
<div class="row">
|
||||
<q-input v-model="title" autofocus label="Titolo" style="width: 300px;"></q-input>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-input
|
||||
v-model="content" type="textarea" autofocus label="Contenuto"
|
||||
input-class="myinput-area"
|
||||
style="height: 100px; width: 500px;"></q-input>
|
||||
</div>
|
||||
<div class="row">
|
||||
<q-input v-model="openUrl" autofocus label="openUrl" style="width: 200px;"></q-input>
|
||||
<q-input v-model="openUrl2" autofocus label="openUrl2" style="width: 200px;"></q-input>
|
||||
<q-input v-model="tag" autofocus label="tag" style="width: 100px;"></q-input>
|
||||
</div>
|
||||
<q-select
|
||||
rounded outlined v-model="actiontype"
|
||||
:options="shared_consts.selectActions"
|
||||
label="Tipo Msg" emit-value map-options>
|
||||
</q-select>
|
||||
<q-select
|
||||
rounded outlined v-model="destination"
|
||||
:options="shared_consts.selectDestination"
|
||||
label="Destinazione" emit-value map-options>
|
||||
</q-select>
|
||||
<div v-if="actiontype === shared_consts.TypeMsg_Actions.OPZ1_2" class="row">
|
||||
<q-input v-model="opz1" autofocus label="Opzione 1" style="width: 100px;"></q-input>
|
||||
<q-input v-model="opz2" autofocus label="Opzione 2" style="width: 100px;"></q-input>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="">
|
||||
<q-btn label="Invia Msg" color="primary" @click="SendMsgToAll()"></q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<q-inner-loading id="spinner" :showing="incaricamento">
|
||||
<q-spinner-tail
|
||||
color="primary"
|
||||
size="4em">
|
||||
</q-spinner-tail>
|
||||
</q-inner-loading>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./sendpushnotif.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './sendpushnotif.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/sharewithus/sharewithus.scss
Executable file
0
src/rootgen/admin/sharewithus/sharewithus.scss
Executable file
24
src/rootgen/admin/sharewithus/sharewithus.ts
Executable file
24
src/rootgen/admin/sharewithus/sharewithus.ts
Executable file
@@ -0,0 +1,24 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colTableShareWithUs } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'ShareWithUsPage',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
return {
|
||||
colTableShareWithUs,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
})
|
||||
31
src/rootgen/admin/sharewithus/sharewithus.vue
Executable file
31
src/rootgen/admin/sharewithus/sharewithus.vue
Executable file
@@ -0,0 +1,31 @@
|
||||
<template>
|
||||
<CMyPage title="Condividi" imgbackground="../../public/images/sharewithus.jpg" sizes="max-height: 120px">
|
||||
<span>{{
|
||||
setmeta({
|
||||
title: 'Condividi',
|
||||
description: '',
|
||||
keywords: '',
|
||||
})
|
||||
}}
|
||||
</span>
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Condividi Con Noi"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="sharewithus"
|
||||
prop_mytitle="Lista Condivisioni"
|
||||
:prop_mycolumns="colTableShareWithUs"
|
||||
prop_colkey="description"
|
||||
nodataLabel="Nessuna Condivisione"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./sharewithus.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'sharewithus.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/sites/sites.scss
Executable file
0
src/rootgen/admin/sites/sites.scss
Executable file
24
src/rootgen/admin/sites/sites.ts
Executable file
24
src/rootgen/admin/sites/sites.ts
Executable file
@@ -0,0 +1,24 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colTableSites } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'SitesPage',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
return {
|
||||
colTableSites,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
})
|
||||
32
src/rootgen/admin/sites/sites.vue
Executable file
32
src/rootgen/admin/sites/sites.vue
Executable file
@@ -0,0 +1,32 @@
|
||||
<template>
|
||||
<CMyPage title="Siti" imgbackground="images/calendario_eventi.jpg" sizes="max-height: 120px">
|
||||
<span>{{
|
||||
setmeta({
|
||||
title: 'Siti',
|
||||
description: '',
|
||||
keywords: '',
|
||||
})
|
||||
}}
|
||||
</span>
|
||||
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Siti Web"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="sites"
|
||||
prop_mytitle="Lista Siti"
|
||||
:prop_mycolumns="colTableSites"
|
||||
prop_colkey="name"
|
||||
nodataLabel="Nessun Sito"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./sites.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'sites.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/storehouses/storehouses.scss
Executable file
0
src/rootgen/admin/storehouses/storehouses.scss
Executable file
24
src/rootgen/admin/storehouses/storehouses.ts
Executable file
24
src/rootgen/admin/storehouses/storehouses.ts
Executable file
@@ -0,0 +1,24 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colTableStorehouse } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'StorehousePage',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
return {
|
||||
colTableStorehouse,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
})
|
||||
31
src/rootgen/admin/storehouses/storehouses.vue
Executable file
31
src/rootgen/admin/storehouses/storehouses.vue
Executable file
@@ -0,0 +1,31 @@
|
||||
<template>
|
||||
<CMyPage title="Magazzini" imgbackground="../../public/images/produttori.jpg" sizes="max-height: 120px">
|
||||
<span>{{
|
||||
setmeta({
|
||||
title: 'Magazzini',
|
||||
description: '',
|
||||
keywords: '',
|
||||
})
|
||||
}}
|
||||
</span>
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Magazzini"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="storehouses"
|
||||
prop_mytitle="Lista Magazzini"
|
||||
:prop_mycolumns="colTableStorehouse"
|
||||
prop_colkey="name"
|
||||
nodataLabel="Nessun Magazzino"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./storehouses.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'storehouses.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/tablesList/tablesList.scss
Executable file
0
src/rootgen/admin/tablesList/tablesList.scss
Executable file
28
src/rootgen/admin/tablesList/tablesList.ts
Executable file
28
src/rootgen/admin/tablesList/tablesList.ts
Executable file
@@ -0,0 +1,28 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { func } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'TablesList',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
function gettablesList() {
|
||||
return func.gettablesList()
|
||||
}
|
||||
|
||||
return {
|
||||
gettablesList,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
})
|
||||
18
src/rootgen/admin/tablesList/tablesList.vue
Executable file
18
src/rootgen/admin/tablesList/tablesList.vue
Executable file
@@ -0,0 +1,18 @@
|
||||
<template>
|
||||
<CMyPage img="" :title="$t('otherpages.admin.userlist')" keywords="" description="">
|
||||
<CGridTableRec
|
||||
:prop_mytitle="$t('otherpages.admin.tableslist')"
|
||||
:nodataLabel="$t('grid.nodata')"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato"
|
||||
:tablesList="gettablesList()"
|
||||
>
|
||||
|
||||
</CGridTableRec>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./tablesList.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './tablesList.scss';
|
||||
</style>
|
||||
0
src/rootgen/admin/uploader/uploader.scss
Executable file
0
src/rootgen/admin/uploader/uploader.scss
Executable file
22
src/rootgen/admin/uploader/uploader.ts
Executable file
22
src/rootgen/admin/uploader/uploader.ts
Executable file
@@ -0,0 +1,22 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colTableStorehouse } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
import { tools } from '@store/Modules/tools'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Uploader',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
|
||||
return {
|
||||
tools
|
||||
}
|
||||
}
|
||||
})
|
||||
40
src/rootgen/admin/uploader/uploader.vue
Executable file
40
src/rootgen/admin/uploader/uploader.vue
Executable file
@@ -0,0 +1,40 @@
|
||||
<template>
|
||||
<div class="q-pa-md">
|
||||
<div class="q-gutter-sm row items-start">
|
||||
<q-uploader
|
||||
label="Galleria Home"
|
||||
accept=".jpg, image/*"
|
||||
:url="tools.geturlupload()+`/gallery_home`"
|
||||
:headers="tools.getheaders()"
|
||||
:max-file-size="2000000"
|
||||
multiple
|
||||
style="max-width: 300px"
|
||||
></q-uploader>
|
||||
|
||||
<q-uploader
|
||||
label="Immagini"
|
||||
accept=".jpg, image/*"
|
||||
:url="tools.geturlupload()+`/img`"
|
||||
:headers="tools.getheaders()"
|
||||
:max-file-size="1000000"
|
||||
multiple
|
||||
style="max-width: 300px"
|
||||
></q-uploader>
|
||||
|
||||
<q-uploader
|
||||
label="Invia PDF"
|
||||
accept=".pdf"
|
||||
:url="tools.geturlupload()+`/pdf`"
|
||||
:headers="tools.getheaders()"
|
||||
multiple
|
||||
style="max-width: 300px"
|
||||
></q-uploader>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" src="./uploader.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'uploader';
|
||||
</style>
|
||||
1
src/rootgen/admin/usersList/index.ts
Executable file
1
src/rootgen/admin/usersList/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as usersList} from './usersList.vue'
|
||||
0
src/rootgen/admin/usersList/usersList.scss
Executable file
0
src/rootgen/admin/usersList/usersList.scss
Executable file
94
src/rootgen/admin/usersList/usersList.ts
Executable file
94
src/rootgen/admin/usersList/usersList.ts
Executable file
@@ -0,0 +1,94 @@
|
||||
import { defineComponent, onMounted, ref } from 'vue'
|
||||
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
import { tools } from '../../../store/Modules/tools'
|
||||
import { static_data } from '../../../db/static_data'
|
||||
|
||||
import { fieldsTable } from '@src/store/Modules/fieldsTable'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'UsersList',
|
||||
components: { CGridTableRec, CMyPage },
|
||||
setup() {
|
||||
|
||||
const arrfilterand: any = ref([])
|
||||
|
||||
function mounted() {
|
||||
if (tools.appid() === tools.IDAPP_AYNI) {
|
||||
arrfilterand.value = [
|
||||
{
|
||||
label: 'Attivi',
|
||||
value: shared_consts.FILTER_ATTIVI
|
||||
},
|
||||
{
|
||||
label: 'Nascosti',
|
||||
value: shared_consts.FILTER_NASCOSTI
|
||||
},
|
||||
{
|
||||
label: 'Navi Non Presenti!',
|
||||
value: shared_consts.FILTER_NAVI_NON_PRESENTI
|
||||
},
|
||||
{
|
||||
label: 'Non hanno visto Zoom',
|
||||
value: shared_consts.FILTER_USER_NO_ZOOM
|
||||
},
|
||||
{
|
||||
label: 'hanno detto di aver visto lo Zoom',
|
||||
value: shared_consts.FILTER_ASK_ZOOM_VISTO
|
||||
},
|
||||
{
|
||||
label: 'Non hanno l\'Invitante',
|
||||
value: shared_consts.FILTER_USER_NO_INVITANTE
|
||||
},
|
||||
{
|
||||
label: 'No Telegram ID',
|
||||
value: shared_consts.FILTER_USER_NO_TELEGRAM_ID
|
||||
},
|
||||
{
|
||||
label: 'Verifica Telegram interrotta',
|
||||
value: shared_consts.FILTER_USER_CODICE_AUTH_TELEGRAM
|
||||
},
|
||||
{
|
||||
label: 'Email non Verificata',
|
||||
value: shared_consts.FILTER_USER_NO_EMAIL_VERIFICATA
|
||||
},
|
||||
{
|
||||
label: 'Non hanno compilato il sogno',
|
||||
value: shared_consts.FILTER_USER_NO_DREAM
|
||||
},
|
||||
{
|
||||
label: 'Telegram BOT Rimosso',
|
||||
value: shared_consts.FILTER_USER_TELEGRAM_BLOCKED
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function db_fieldsTable() {
|
||||
return fieldsTable
|
||||
}
|
||||
|
||||
function userlist() {
|
||||
|
||||
if (static_data.functionality.ENABLE_REG_AYNI) {
|
||||
return db_fieldsTable().colTableUsers
|
||||
} else if (static_data.functionality.ENABLE_REG_CNM) {
|
||||
return db_fieldsTable().colTableUsersCNM
|
||||
} else {
|
||||
return db_fieldsTable().colTableUsersBase
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
return {
|
||||
arrfilterand,
|
||||
userlist,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
22
src/rootgen/admin/usersList/usersList.vue
Executable file
22
src/rootgen/admin/usersList/usersList.vue
Executable file
@@ -0,0 +1,22 @@
|
||||
<template>
|
||||
<CMyPage img="" :title="$t('otherpages.admin.userlist')" keywords="" description="Lista Utenti">
|
||||
<CGridTableRec
|
||||
prop_mytable="users"
|
||||
prop_mytitle="Lista Utenti"
|
||||
:prop_mycolumns="userlist()"
|
||||
prop_colkey="_id"
|
||||
nodataLabel="Nessun Utente"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato"
|
||||
:arrfilters="arrfilterand">
|
||||
|
||||
</CGridTableRec>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./usersList.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './usersList.scss';
|
||||
</style>
|
||||
|
||||
|
||||
1
src/rootgen/admin/zoomList/index.ts
Executable file
1
src/rootgen/admin/zoomList/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as zoomList} from './zoomList.vue'
|
||||
0
src/rootgen/admin/zoomList/zoomList.scss
Executable file
0
src/rootgen/admin/zoomList/zoomList.scss
Executable file
20
src/rootgen/admin/zoomList/zoomList.ts
Executable file
20
src/rootgen/admin/zoomList/zoomList.ts
Executable file
@@ -0,0 +1,20 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { fieldsTable } from '@src/store/Modules/fieldsTable'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'ZoomList',
|
||||
components: { CMyPage,CGridTableRec },
|
||||
setup() {
|
||||
function db_fieldsTable() {
|
||||
return fieldsTable
|
||||
}
|
||||
|
||||
return {
|
||||
db_fieldsTable,
|
||||
}
|
||||
}
|
||||
})
|
||||
21
src/rootgen/admin/zoomList/zoomList.vue
Executable file
21
src/rootgen/admin/zoomList/zoomList.vue
Executable file
@@ -0,0 +1,21 @@
|
||||
<template>
|
||||
<CMyPage img="" :title="$t('otherpages.admin.zoomlist')" keywords="" :description="$t('otherpages.admin.zoomlist')">
|
||||
<CGridTableRec
|
||||
prop_mytable="calzoom"
|
||||
:prop_mytitle="$t('otherpages.admin.zoomlist')"
|
||||
:prop_mycolumns="db_fieldsTable().colTableCalZoom"
|
||||
prop_colkey="_id"
|
||||
nodataLabel="Nessuno Zoom"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./zoomList.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './zoomList.scss';
|
||||
</style>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user