Files
myprojplanet_vite/src/components/CMyCircuit/CMyCircuit.vue
Surya Paolo b8df3ea721 - aggiornata la grafica della Home di RISO
- Profilo Completition
- Email Verificata
- Invita un Amico (invio di email)
2025-11-15 19:38:39 +01:00

607 lines
19 KiB
Vue
Executable File

<template>
<div v-if="tools.isUserOk() || noaut">
<div v-if="circuit">
<q-item
:class="
`q-my-sm bordo_stondato_circuiti ` +
($q.dark.isActive ? `text-white` : `text-black`)
"
clickable
>
<q-item-section
v-if="visu !== costanti.ENTER_TO_THE_CIRCUIT"
avatar
class="items-center"
@click="naviga(tools.getPathByTableAndRec(table, circuit))"
>
<q-avatar size="60px">
<q-img
:src="getImgCircuit(circuit)"
:alt="circuit.name"
img-class="imgprofile"
height="60px"
/>
</q-avatar>
<div :class="`q-ma-xs q-px-xs shadow-2 rounded-borders `">
<span
:class="`q-ma-sm ` + ($q.dark.isActive ? `text-white` : `text-black`)"
>{{ circuit.numMembers }}</span
>
<q-icon
name="fas fa-users"
size="xs"
color="blue"
></q-icon>
</div>
<div
v-if="circuit.link_group"
:class="` `"
>
<q-btn
icon="fab fa-telegram"
size="xs"
color="blue"
rounded
@click.stop.prevent="tools.openUrl(circuit.link_group)"
></q-btn>
</div>
</q-item-section>
<q-item-section :class="$q.dark.isActive ? `text-white` : `text-black`">
<q-item-label
class="text-center"
@click="naviga(tools.getPathByTableAndRec(table, circuit))"
>
<strong>{{ circuit.name }}</strong>
<span v-if="circuit.subname">({{ circuit.subname }})</span>
</q-item-label>
<!---<q-item-label
@click="naviga(tools.getPathByTableAndRec(table, circuit))"
v-if="circuit.longdescr && circuit.longdescr !== circuit.name"
caption
lines="3"
><em>{{ circuit.longdescr }}</em>
</q-item-label>-->
<q-item-label
v-if="visu === costanti.ENTER_TO_THE_CIRCUIT"
caption
>
<span>Membri: {{ circuit.numMembers }}</span>
</q-item-label>
<!--<q-item-label caption lines="3">
<q-chip
v-if="circuit.status !== undefined && circuit.status !== 0"
:color="circuitStore.getColorCircuitClass(circuit)"
text-color="white"
size="sm"
:icon="
globalStore.getValueByTableSingle(
'statuscircuit',
circuit.status,
'icon'
)
"
>{{
globalStore.getValueByTableSingle(
'statuscircuit',
circuit.status
)
}}
<q-btn
class="q-ml-sm"
icon="fas fa-info"
color="primary"
text-color="white"
size="xs"
round
@click="showingtooltip = !showingtooltip"
>
<q-tooltip :offset="[10, 10]" v-model="showingtooltip">{{
globalStore.getValueByTableSingle(
'statuscircuit',
circuit.status,
'hint'
)
}}</q-tooltip>
</q-btn>
</q-chip>
</q-item-label>-->
<q-item-label
v-if="
!circuit.transactionsEnabled &&
circuit.status === shared_consts.CIRCUIT_STATUS.FASE3_MONETA_ABILITATA
"
caption
lines="1"
>
<q-icon
v-if="!circuit.transactionsEnabled"
name="fas fa-lock"
></q-icon>
<span class="text-red text-weight-bold">
{{ t('circuit.transaction_suspended') }}
</span>
</q-item-label>
<q-item-label
@click="naviga(tools.getPathByTableAndRec(table, circuit))"
lines="1"
>
<CSaldo
v-if="tools.isUserOk() && username === myusername() && account"
:account="account"
:symbol="circuit.symbol"
:color="circuit.color"
:saldo="saldo_pend"
:valueextra="saldo_pend != saldo ? `* ` : ''"
:qtarem="qtarem"
></CSaldo>
</q-item-label>
<q-item-label
lines="4"
v-if="
tools.isUserOk() &&
username === myusername() &&
!account &&
visu !== costanti.ENTER_TO_THE_CIRCUIT
"
>
<div class="centermydiv text-center">
<q-banner
v-if="!circuitStore.SonoDentroAdAlmeno1CircuitoConFido()"
inline-actions
class="bg-blue text-white"
>
<span v-html="$t('circuit.entra_italia_solo_dopo_aver_fido')"></span>
</q-banner>
<q-banner
v-else
inline-actions
class="bg-blue text-white"
>
<span v-html="$t('circuit.non_entrato')"></span>
<template v-slot:action>
<q-btn
v-if="
!userStore.IsMyCircuitByName(circuit.name) &&
!userStore.IsAskedCircuitByName(circuit.name) &&
!userStore.IsRefusedCircuitByName(circuit.name)
"
color="positive"
:label="
circuit.askManagerToEnter ? t('circuit.ask') : t('circuit.apri')
"
@click="
requestToEnterCircuit = true;
groupnameSel = null;
"
/>
</template>
</q-banner>
</div>
</q-item-label>
</q-item-section>
<q-item-section
side
v-if="visu === costanti.USER_CIRCUITS && tools.isUserOk()"
>
<q-item-label>
<div v-if="username === myusername() && !noaut">
<q-btn
rounded
:icon="
userStore.IsMyCircuitByName(circuit.name)
? `fas fa-ellipsis-h`
: `fas fa-user`
"
>
<q-menu>
<q-list
v-if="
!userStore.IsMyCircuitByName(circuit.name) &&
!userStore.IsAskedCircuitByName(circuit.name) &&
!userStore.IsRefusedCircuitByName(circuit.name)
"
style="min-width: 200px"
>
<q-item
clickable
v-close-popup
@click="
tools.setCmd(
$q,
shared_consts.CIRCUITCMD.REQ,
myusername(),
true,
circuitname
)
"
>
<q-item-section>{{
circuit.askManagerToEnter ? t('circuit.ask') : t('circuit.enter')
}}</q-item-section>
</q-item>
</q-list>
<q-list
v-else-if="
!userStore.IsMyCircuitByName(circuit.name) &&
userStore.IsAskedCircuitByName(circuit.name) &&
!userStore.IsRefusedCircuitByName(circuit.name)
"
style="min-width: 200px"
>
<q-item
clickable
v-close-popup
@click="
tools.setCmd(
$q,
shared_consts.CIRCUITCMD.REQ,
myusername(),
false,
circuit.name
)
"
>
<q-item-section>
{{ t('shared.refuse_ask') }}
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
@click="
tools.setCmd(
$q,
shared_consts.CIRCUITCMD.REQ,
myusername(),
false,
circuit.name
)
"
>
<q-item-section>
{{ t('shared.cancel_ask') }}
</q-item-section>
</q-item>
</q-list>
<q-list
v-else-if="
userStore.IsMyCircuitByName(circuit.name) && (saldo === 0 || !saldo)
"
style="min-width: 200px"
>
<q-item
clickable
v-close-popup
@click="
tools.setCmd(
$q,
shared_consts.CIRCUITCMD.REMOVE_FROM_MYLIST,
myusername(),
'',
circuit.name
)
"
>
<q-item-section>{{ t('circuit.exit') }}</q-item-section>
</q-item>
</q-list>
<q-list
v-if="userStore.isAdmin"
style="min-width: 200px"
>
<q-item
clickable
v-close-popup
@click="
tools.setCmd(
$q,
shared_consts.CIRCUITCMD.DELETE,
myusername(),
'',
circuit.name
)
"
>
<q-item-section>{{ t('circuit.delete') }}</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
</div>
<q-btn
v-if="fidoConcessoUtente !== '' && username !== myusername()"
icon="fas fa-house-user"
class="q-ml-sm"
:color="Number(fidoConcessoUtente) > 0 ? 'primary' : 'grey'"
text-color="white"
round
size="sm"
>
</q-btn>
</q-item-label>
</q-item-section>
<q-item-section
side
v-if="visu === costanti.REQ_CIRCUIT && tools.isUserOk()"
>
<q-item-label>
<q-btn
rounded
icon="fas fa-ellipsis-h"
>
<q-menu>
<q-list style="min-width: 150px">
<q-item
clickable
icon="fas fa-user-minus"
outline
v-close-popup
@click="
tools.setCmd(
$q,
shared_consts.CIRCUITCMD.REFUSE_REQ,
myusername(),
false,
circuit.name
)
"
>
<q-item-section>
{{ t('circuit.reject_ask') }}
</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
</q-item-label>
</q-item-section>
<q-item-section
side
v-if="visu === costanti.ASK_SENT_CIRCUIT && tools.isUserOk()"
>
<q-item-label>
<q-btn
rounded
icon="fas fa-ellipsis-h"
>
<q-menu>
<q-list style="min-width: 150px">
<q-item
clickable
icon="fas fa-user-minus"
outline
v-close-popup
@click="
tools.setCmd(
$q,
shared_consts.CIRCUITCMD.REFUSE_REQ,
myusername(),
'',
circuit.name
)
"
>
<q-item-section>
{{ t('shared.refuse_ask') }}
</q-item-section>
</q-item>
<q-item
clickable
icon="fas fa-user-minus"
outline
v-close-popup
@click="
tools.setCmd(
$q,
shared_consts.CIRCUITCMD.CANCEL_REQ,
myusername(),
'',
circuit.name
)
"
>
<q-item-section>
{{ t('shared.cancel_ask') }}
</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
</q-item-label>
</q-item-section>
</q-item>
<div
class="centermydiv text-center"
v-if="visu === costanti.ENTER_TO_THE_CIRCUIT"
>
<q-btn
v-if="
!userStore.IsMyCircuitByName(circuit.name) &&
!userStore.IsAskedCircuitByName(circuit.name) &&
!userStore.IsRefusedCircuitByName(circuit.name)
"
icon="fas fa-user-plus"
color="primary"
:label="circuit.askManagerToEnter ? t('circuit.ask') : t('circuit.enter')"
rounded
size="lg"
@click="
requestToEnterCircuit = true;
groupnameSel = null;
"
/>
<q-btn
v-if="userStore.IsMyCircuitByName(circuit.name)"
rounded
icon="fas fa-ellipsis-h"
>
<q-menu>
<q-list
v-if="true"
style="min-width: 150px"
>
<q-item
clickable
v-close-popup
v-if="true"
@click="
saldo < 0
? tools.showNegativeNotif(
$q,
t('circuit.per_uscire_dal_circuito_occorre_essere_a_zero', {
symbol: circuit.symbol,
}),
30000
)
: tools.removeFromMyCircuits(
$q,
userStore.my.username,
circuit.name,
'',
t('circuit.domanda_exit_fromcircuit', {
circuitname: circuit.name,
})
)
"
>
<q-item-section avatar>
<q-icon
color="negative"
name="fas fa-user-minus"
/>
</q-item-section>
<q-item-section>
{{ t('circuit.exit_circuit') }}
</q-item-section>
</q-item>
<q-list
v-if="userStore.isAdmin"
style="min-width: 200px"
>
<q-item
clickable
v-close-popup
@click="
tools.setCmd(
$q,
shared_consts.CIRCUITCMD.DELETE,
userStore.my.username,
'',
circuit.name
)
"
>
<q-item-section avatar>
<q-icon
color="negative"
name="fas fa-trash-alt"
/>
</q-item-section>
<q-item-section>{{ t('circuit.delete') }}</q-item-section>
</q-item>
</q-list>
</q-list>
</q-menu>
</q-btn>
<q-btn
v-if="
userStore.IsAskedCircuitByName(circuit.name) &&
!userStore.IsMyCircuitByName(circuit.name)
"
icon="fas fa-user-minus"
flat
outline
:label="$t('shared.cancel_ask_short')"
@click="tools.cancelReqCircuit($q, userStore.my.username, circuit.name)"
/>
</div>
</div>
<q-dialog
v-model="requestToEnterCircuit"
maximized
transition-show="slide-up"
transition-hide="slide-down"
>
<q-card
v-if="circuit"
class="dialog_card"
>
<q-toolbar
class="bg-primary text-white"
dense
>
<!--<q-toolbar :class="tools.displayClasses(myevent)"-->
<!--:style="tools.displayStyles(myevent) + ` min-width: `+ tools.myheight_dialog() + `px;`">-->
<q-toolbar-title>
{{ circuit.name }}
<div v-if="groupnameSel">Gruppo: {{ groupnameSel.groupname }}</div>
</q-toolbar-title>
<q-btn
flat
round
color="white"
icon="close"
v-close-popup
></q-btn>
</q-toolbar>
<q-card-section
v-if="circuit.symbol === 'RIS'"
class="inset-shadow"
>
<div v-html="t('circuit.disclaimer')"></div>
</q-card-section>
<q-card-section class="inset-shadow">
<div style="font-weight: bold; font-size: 1.25rem">Regolamento:</div>
<q-btn
label="vedi Regolamento"
@click="showrules = !showrules"
></q-btn>
<div
v-if="showrules"
v-html="getRegulation(circuit.regulation)"
></div>
</q-card-section>
<q-card-actions align="center">
<q-btn
class="centeritems"
icon="fas fa-user-plus"
color="positive"
:label="$t('circuit.acceptregulation')"
@click="
requestToEnterCircuit = false;
tools.setRequestCircuit(
$q,
userStore.my.username,
circuit.name,
true,
groupnameSel ? groupnameSel.groupname : ''
);
"
/>
<q-btn
outline
:label="$t('dialog.cancel')"
icon="close"
v-close-popup
></q-btn>
</q-card-actions>
</q-card>
</q-dialog>
</div>
<div v-else>
<CUserNonVerif></CUserNonVerif>
</div>
</template>
<script lang="ts" src="./CMyCircuit.ts"></script>
<style lang="scss" scoped>
@import './CMyCircuit.scss';
</style>