Fixed: le reactions devono stare in una tabella a parte (reactions).
- cambiata la gestione dei seen, fav, book, attend
This commit is contained in:
@@ -7,6 +7,7 @@ import { CDateTime } from '@/components/CDateTime'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CMyGroup } from '@/components/CMyGroup'
|
||||
import { CMyChipList } from '@/components/CMyChipList'
|
||||
import { CGridTableUser } from '@/components/CGridTableUser'
|
||||
import { CMyFieldRec } from '@/components/CMyFieldRec'
|
||||
import { CMyUser } from '@/components/CMyUser'
|
||||
import { CLabel } from '@/components/CLabel'
|
||||
@@ -20,7 +21,7 @@ import { useI18n } from '@/boot/i18n'
|
||||
import { toolsext } from '@store/Modules/toolsext'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { costanti } from '@costanti'
|
||||
import { EState, IBookedEventPage, IColGridTable, IBookedEvent, IEvents, IMessage, IMessagePage, IParamDialog } from '@model'
|
||||
import { EState, IReaction, IBookedEventPage, IColGridTable, IBookedEvent, IEvents, IMessage, IMessagePage, IParamDialog, ISearchList } from '@model'
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { colCitys, fieldsTable } from '@store/Modules/fieldsTable'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
@@ -35,7 +36,7 @@ export default defineComponent({
|
||||
components: {
|
||||
CProfile, CTitleBanner,
|
||||
CMyFieldDb, CDateTime, CMyPage, CMyFieldRec, CAccomodation,
|
||||
CMyUser, CGalleryImages, CMyChipList, CLabel, CMyGroup
|
||||
CMyUser, CGalleryImages, CMyChipList, CLabel, CMyGroup, CGridTableUser,
|
||||
},
|
||||
props: {
|
||||
table: {
|
||||
@@ -69,6 +70,10 @@ export default defineComponent({
|
||||
const $route = useRoute()
|
||||
const { t } = useI18n()
|
||||
|
||||
const arrfilterand: any = ref([])
|
||||
const searchList = ref(<ISearchList[]>[])
|
||||
|
||||
const filter = ref(costanti.FIND_PEOPLE)
|
||||
|
||||
const showPic = ref(false)
|
||||
const loading = ref(false)
|
||||
@@ -77,8 +82,8 @@ export default defineComponent({
|
||||
|
||||
const contextDay = ref(<any>null)
|
||||
|
||||
const usersList = ref({ show: false, title: '', list: [] })
|
||||
const bookedList = ref(<any>{ show: false, title: '', list: [] })
|
||||
const usersList = ref(<any>{ show: false, title: '', list: [], loadfromDb: false, tipofavbook: 0 })
|
||||
const bookedList = ref(<any>{ show: false, title: '', list: [], loadfromDb: false, tipofavbook: 0 })
|
||||
|
||||
const formbookEventDefault = ref(<IBookedEvent>{
|
||||
userId: '',
|
||||
@@ -138,12 +143,35 @@ export default defineComponent({
|
||||
const idnotif = computed(() => $route.query.idnotif ? $route.query.idnotif.toString() : '')
|
||||
const arrbookings = computed(() => calendarStore.findAllBookedByIdEvent(myrec.value._id))
|
||||
|
||||
const filtercustom: any = computed(() => {
|
||||
|
||||
let queryreact = {}
|
||||
|
||||
if (usersList.value.tipofavbook === costanti.TIPOFAVBOOK.SEEN) {
|
||||
queryreact = {seen: true}
|
||||
} else if (usersList.value.tipofavbook === costanti.TIPOFAVBOOK.FAVORITE) {
|
||||
queryreact = {fav: true}
|
||||
} else if (usersList.value.tipofavbook === costanti.TIPOFAVBOOK.BOOKMARK) {
|
||||
queryreact = {book: true}
|
||||
} else if (usersList.value.tipofavbook === costanti.TIPOFAVBOOK.ATTEND) {
|
||||
queryreact = {attend: true}
|
||||
}
|
||||
|
||||
return [{
|
||||
idapp: process.env.APP_ID,
|
||||
tab: tools.getNumTabByTable(props.table),
|
||||
idrec: myrec.value._id,
|
||||
...queryreact,
|
||||
}]
|
||||
})
|
||||
|
||||
function profile() {
|
||||
return userStore.my.profile
|
||||
}
|
||||
|
||||
function load() {
|
||||
// Carica il profilo di quest'utente
|
||||
|
||||
// Carica il record
|
||||
if (props.idRec) {
|
||||
userStore.loadGeneric(props.table, props.idRec, idnotif.value).then((ris) => {
|
||||
myrec.value = ris
|
||||
@@ -210,29 +238,32 @@ export default defineComponent({
|
||||
if (myset) {
|
||||
await userStore.setFavorite($q, t, myrec.value._id, props.table, myrec.value);
|
||||
}
|
||||
mylist = myrec.value.myfav
|
||||
mylist = myrec.value.myreaction ? myrec.value.myreaction.filter((rec: IReaction) => rec.fav) : []
|
||||
} else if (tipo === costanti.TIPOFAVBOOK.BOOKMARK) {
|
||||
if (myset) {
|
||||
await userStore.setBookmark($q, t, myrec.value._id, props.table, myrec.value);
|
||||
}
|
||||
mylist = myrec.value.mybook
|
||||
mylist = myrec.value.myreaction ? myrec.value.myreaction.filter((rec: IReaction) => rec.book) : []
|
||||
} else if (tipo === costanti.TIPOFAVBOOK.SEEN) {
|
||||
if (myset) {
|
||||
loading.value = true
|
||||
const risrecord = await userStore.setSeen($q, t, myrec.value._id, props.table, myrec.value)
|
||||
if (risrecord) {
|
||||
myrec.value = risrecord
|
||||
|
||||
calendarStore.updatearrBookingEvent(myrec.value._id, risrecord.mybookings)
|
||||
if (!userStore.isSeen(myrec.value._id, props.table)) {
|
||||
loading.value = true
|
||||
const risrecord = await userStore.setSeen($q, t, myrec.value._id, props.table, myrec.value)
|
||||
if (risrecord && risrecord.mybookings) {
|
||||
myrec.value = risrecord
|
||||
|
||||
bookEventpage.value.state = EState.None
|
||||
calendarStore.updatearrBookingEvent(myrec.value._id, risrecord.mybookings)
|
||||
|
||||
const findev = calendarStore.findEventBooked(myrec.value._id, false)
|
||||
EditBookEvent(false)
|
||||
bookEventpage.value.state = EState.None
|
||||
|
||||
const findev = calendarStore.findEventBooked(myrec.value._id, false)
|
||||
EditBookEvent(false)
|
||||
}
|
||||
loading.value = false
|
||||
}
|
||||
loading.value = false
|
||||
}
|
||||
mylist = myrec.value.myseen
|
||||
mylist = myrec.value.myreaction ? myrec.value.myreaction.filter((rec: IReaction) => rec.seen) : []
|
||||
} else if (tipo === costanti.TIPOFAVBOOK.ATTEND) {
|
||||
if (myset) {
|
||||
// userStore.setAttend($q, t, myrec.value._id, props.table, bookEventpage.value.bookedevent.numpeople, myrec.value);
|
||||
@@ -240,17 +271,19 @@ export default defineComponent({
|
||||
mylist = arrbookings.value
|
||||
|
||||
if (!myset && mylist && mylist.length > 0) {
|
||||
bookedList.value.show = true;
|
||||
bookedList.value.title = title;
|
||||
bookedList.value.list = mylist;
|
||||
bookedList.value.show = true
|
||||
bookedList.value.title = title
|
||||
bookedList.value.list = mylist
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!myset && mylist && mylist.length > 0) {
|
||||
usersList.value.show = true;
|
||||
usersList.value.title = title;
|
||||
usersList.value.list = mylist;
|
||||
if (!myset && mylist) {
|
||||
usersList.value.show = true
|
||||
usersList.value.title = title
|
||||
usersList.value.tipofavbook = tipo
|
||||
usersList.value.loadfromDb = true
|
||||
usersList.value.list = mylist
|
||||
}
|
||||
}
|
||||
|
||||
@@ -442,6 +475,101 @@ export default defineComponent({
|
||||
arrbookings.value.find((recbook: IBookedEvent) => recbook.userId === userStore.my._id && recbook.booked)
|
||||
}
|
||||
|
||||
function extraparams() {
|
||||
|
||||
return {
|
||||
lookupPipeline1: {
|
||||
lk_tab: 'users',
|
||||
lk_LF: 'userId',
|
||||
lk_FF: '_id',
|
||||
lk_as: 'user',
|
||||
lk_proj: {
|
||||
name: 1,
|
||||
surname: 1,
|
||||
username: 1,
|
||||
'profile.handshake': 1,
|
||||
'profile.img': 1,
|
||||
'profile.mygroups': 1,
|
||||
'profile.qualifica': 1,
|
||||
'profile.resid_province': 1,
|
||||
'mycities.reg': 1,
|
||||
},
|
||||
},
|
||||
/*
|
||||
{
|
||||
$lookup: {
|
||||
from: "users",
|
||||
let: { searchId: { $toObjectId: "$userId" } },
|
||||
pipeline: [
|
||||
{
|
||||
$match: {
|
||||
$expr: {
|
||||
$and: [
|
||||
{ $eq: ["$_id", "$$searchId"] },
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
$project: {
|
||||
name: 1,
|
||||
surname: 1,
|
||||
username: 1,
|
||||
"profile.handshake": 1,
|
||||
"profile.img": 1,
|
||||
"profile.mygroups": 1,
|
||||
"profile.qualifica": 1,
|
||||
"profile.resid_province": 1,
|
||||
"mycities.reg": 1,
|
||||
},
|
||||
}
|
||||
],
|
||||
as: "user",
|
||||
},
|
||||
},
|
||||
{
|
||||
$replaceRoot: {
|
||||
newRoot: {
|
||||
$mergeObjects: [
|
||||
{
|
||||
$arrayElemAt: [
|
||||
"$mycities",
|
||||
0,
|
||||
],
|
||||
},
|
||||
{
|
||||
$arrayElemAt: [
|
||||
"$user",
|
||||
0,
|
||||
],
|
||||
},
|
||||
"$$ROOT",
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
lookup1: {
|
||||
lk_tab: 'provinces',
|
||||
lk_LF: 'profile.resid_province',
|
||||
lk_FF: 'prov',
|
||||
lk_as: 'mycities',
|
||||
lk_proj: {
|
||||
username: 1,
|
||||
name: 1,
|
||||
surname: 1,
|
||||
'profile.handshake': 1,
|
||||
'profile.img': 1,
|
||||
'profile.mygroups': 1,
|
||||
'profile.qualifica': 1,
|
||||
'profile.resid_province': 1,
|
||||
'mycities.reg': 1,
|
||||
}
|
||||
},
|
||||
*/
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
@@ -485,6 +613,11 @@ export default defineComponent({
|
||||
isAlreadyBooked,
|
||||
bookEventForm,
|
||||
loading,
|
||||
arrfilterand,
|
||||
filtercustom,
|
||||
searchList,
|
||||
filter,
|
||||
extraparams,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user