Group Page : visibility, some info, members views.

This commit is contained in:
paoloar77
2022-08-10 17:06:46 +02:00
parent 0c25bed597
commit a8c7c3e443
14 changed files with 144 additions and 49 deletions

View File

@@ -24,3 +24,6 @@
}
.title_param{
font-size: 1.25rem;
}

View File

@@ -16,7 +16,7 @@ import { useI18n } from '@/boot/i18n'
import { toolsext } from '@store/Modules/toolsext'
import { useQuasar } from 'quasar'
import { costanti } from '@costanti'
import { IFriends, IMyGroup, ISearchList, IUserFields } from 'model'
import { ICity, IFriends, IMyGroup, ISearchList, IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { colmyUserPeople, colmyUserGroup } from '@store/Modules/fieldsTable'
import { useNotifStore } from '@store/NotifStore'
@@ -42,6 +42,7 @@ export default defineComponent({
const showPic = ref(false)
const mygrp = ref(<IMyGroup|null>{})
const mystatus = ref(<number>0)
const users_in_group = ref(<IFriends[]>[])
const loading = ref(false)
@@ -54,6 +55,8 @@ export default defineComponent({
const filtercustom_rich: any = ref([])
const searchList = ref(<ISearchList[]>[])
const cities = ref(<ICity[]>[])
function profile() {
return userStore.my.profile
}
@@ -65,16 +68,20 @@ export default defineComponent({
async function loadGroup() {
// Carica il profilo di quest'utente
if (groupname.value) {
await userStore.loadGroup(groupname.value, idnotif.value).then((ris) => {
if (ris) {
mygrp.value = ris.mygroup
await userStore.loadGroup(groupname.value, idnotif.value).then(({ data, status }: {data: any, status: number}) => {
console.log('data', data)
if (data) {
mygrp.value = data.mygroup
cities.value = data.cities
notifStore.setAsRead(idnotif.value)
users_in_group.value = ris.users_in_group
users_in_group.value = data.users_in_group
} else {
mygrp.value = null
users_in_group.value = []
}
mystatus.value = status
loading.value = false
// filtroutente.value = [{ userId: userStore.my._id }]
})
@@ -223,6 +230,8 @@ export default defineComponent({
listaAdmins,
users_in_group,
loading,
mystatus,
cities,
}
}
})

View File

@@ -2,7 +2,14 @@
<div class="q-gutter-sm q-pa-sm q-pb-md">
<div v-if="!mygrp && !loading">
<h3>Gruppo non Esistente</h3>
<div v-if="mystatus === 403">
<h3>Non hai i permessi per accedere al Gruppo.<br>
Occorre prima registrarsi alla App </h3>
</div>
<div v-else>
<h3>Gruppo non Esistente</h3>
</div>
</div>
<div v-else>
@@ -22,7 +29,7 @@
<div class="text-h6">
<span v-if="checkifShow('name')"> {{ mygrp.title }}</span>
</div>
<div class="col-12 text-h7 text-blue text-shadow-2">
<div v-if="mygrp.title !== mygrp.groupname" class="col-12 text-h7 text-blue text-shadow-2">
{{ mygrp.groupname }}
</div>
@@ -95,7 +102,7 @@
<q-tabs v-model="tabgrp" class="text-blue">
<q-tab label="Info" name="info" icon="fas fa-info"></q-tab>
<q-tab v-if="!!mygrp.note" label="Pagina" name="page" icon="fas fa-file-word"></q-tab>
<q-tab v-if="userStore.IsMyGroupByGroupname(mygrp.groupname) || tools.iAmAdminGroup(groupname)"
<q-tab v-if="tools.iCanShowGroupsMember(mygrp) || tools.iAmAdminGroup(groupname)"
:label="t('groups.subscribes')" name="membri" icon="fas fa-users"></q-tab>
<q-tab v-if="tools.iAmAdminGroup(groupname)" label="Richieste" name="rich" icon="fas fa-user-plus"></q-tab>
<q-tab v-if="tools.iAmAdminGroup(groupname)" label="Rifiutati" name="refused" icon="fas fa-user-minus"></q-tab>
@@ -104,30 +111,56 @@
<q-tab-panels v-model="tabgrp" animated>
<q-tab-panel name="info">
<div>
<q-card>
<CMyFieldRec
title="Visibilità"
table="mygroups"
:id="mygrp._id"
:columns="colmyUserGroup"
:rec="mygrp"
field="visibility"
:canEdit="false"
:canModify="false">
</CMyFieldRec>
</q-card>
<q-card>
<q-card-section>
<div class="text-h6">Attività:</div>
<div class="text-h6">{{ t('groups.info') }}</div>
</q-card-section>
<q-separator />
<q-separator/>
<q-card-section>
<div class="creator">
<q-icon name="fas fa-lightbulb"></q-icon>
{{ $t('groups.createdby', {username: mygrp.createdBy, date: tools.getstrDateLong(mygrp.date_created) }) }}
{{ $t('groups.createdby', {
username: mygrp.createdBy,
date: tools.getstrDateLong(mygrp.date_created),
})
}}
</div>
<div v-if="mygrp.visibility.includes(shared_consts.Visibility_Group.PRIVATE)" class="row">
<div class="q-pa-xs">
<q-icon name="fas fa-eye"></q-icon>
</div>
<div>
<div class="title_param"> {{ $t('groups.private') }}</div>
{{ $t('groups.private_descr') }}
</div>
</div>
<div v-if="mygrp.visibility.includes(shared_consts.Visibility_Group.HIDDEN)" class="row">
<div class="q-pa-xs">
<q-icon name="fas fa-search"></q-icon>
</div>
<div>
<div class="title_param"> {{ $t('groups.hidden') }}</div>
{{ $t('groups.hidden_descr') }}
</div>
</div>
<div v-if="cities.length > 0" class="row">
<div class="q-pa-xs">
<q-icon name="fas fa-map-marker-alt"></q-icon>
</div>
<div>
<div class="title_param">
<div v-for="(city, index) of cities" :key="index">
{{ city.comune }} ({{ city.prov }})
</div>
</div>
</div>
</div>
<div class="members">
<q-icon name="fas fa-users"></q-icon>
{{ numUsers() }} {{ numUsers() === 1 ? t('groups.member') : t('groups.members') }}
@@ -152,7 +185,7 @@
<q-card-section>
<div class="text-h6">Descrizione:</div>
</q-card-section>
<q-separator />
<q-separator/>
<q-card-section>
<div class="col-12 text-h7">
@@ -197,7 +230,7 @@
</div>
</q-tab-panel>
<q-tab-panel name="membri" style="max-width: 400px;">
<q-tab-panel name="membri" style="max-width: 400px;" v-if="tools.iCanShowGroupsMember(mygrp)">
<CGridTableRec
ref="tabMembri"
prop_mytable="users"