Members, Circuits
This commit is contained in:
@@ -628,6 +628,32 @@ export const shared_consts = {
|
||||
},
|
||||
],
|
||||
|
||||
StatusCircuit: [
|
||||
{
|
||||
value: 0,
|
||||
label: '',
|
||||
hint: ''
|
||||
},
|
||||
{
|
||||
value: 1,
|
||||
label: 'Creazione Gruppo in corso',
|
||||
hint: 'Prima di abilitare il circuito monetario RIS, è consigliato raggiungere un certo numero di partecipanti.',
|
||||
icon: 'fas fa-users',
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
label: 'Sottoscrizione regolamento',
|
||||
hint: 'I membri devono ora accettare il regolamento prima di attivare gli scambi in RIS',
|
||||
icon: 'far fa-hourglass',
|
||||
},
|
||||
{
|
||||
value: 3,
|
||||
label: 'Circuito Abilitato️',
|
||||
hint: 'il Circuito è stato abilitato allo scambio di monete RIS',
|
||||
icon: 'far fa-check-circle',
|
||||
},
|
||||
],
|
||||
|
||||
Permissions: {
|
||||
Admin: {
|
||||
value: 1,
|
||||
@@ -1107,6 +1133,12 @@ export const shared_consts = {
|
||||
},
|
||||
],
|
||||
|
||||
CIRCUIT_STATUS: {
|
||||
FASE0: 0,
|
||||
FASE1_CREAZIONE_GRUPPO: 1,
|
||||
FASE2_ORGANIZZAZIONE: 2,
|
||||
FASE3_MONETA_ABILITATA: 3,
|
||||
},
|
||||
|
||||
getStatusStr(status: number) {
|
||||
const trovatorec = this.OrderStatusStr.find((rec) => rec.value === status)
|
||||
|
||||
@@ -1089,6 +1089,7 @@ export default defineComponent({
|
||||
subname: 1,
|
||||
longdescr: 1,
|
||||
regulation: 1,
|
||||
numMembers: 1,
|
||||
totCircolante: 1,
|
||||
totTransato: 1,
|
||||
systemUserId: 1,
|
||||
@@ -1098,6 +1099,7 @@ export default defineComponent({
|
||||
nome_valuta: 1,
|
||||
fido_scoperto_default: 1,
|
||||
deperimento: 1,
|
||||
status: 1,
|
||||
transactionsEnabled: 1,
|
||||
qta_max_default: 1,
|
||||
valuta_per_euro: 1,
|
||||
|
||||
@@ -1880,6 +1880,9 @@ export default defineComponent({
|
||||
visupagedialog.value = true
|
||||
myrecdialog.value = id
|
||||
return true
|
||||
} else if (cmd === costanti.CMD_OPEN_PAGE) {
|
||||
$router.push(tools.getPathByTableAndRec(mytable.value, id))
|
||||
return true
|
||||
}
|
||||
|
||||
let action = 0
|
||||
|
||||
@@ -2,3 +2,4 @@
|
||||
display: flex;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import { useRoute, useRouter } from 'vue-router'
|
||||
import { CUserNonVerif } from '@/components/CUserNonVerif'
|
||||
import { CSaldo } from '@/components/CSaldo'
|
||||
import { toolsext } from '@store/Modules/toolsext'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CMyCircuit',
|
||||
@@ -43,6 +44,8 @@ export default defineComponent({
|
||||
const $router = useRouter()
|
||||
const $route = useRoute()
|
||||
|
||||
const globalStore = useGlobalStore()
|
||||
|
||||
const circuit = ref(<ICircuit | null>null)
|
||||
const account = computed(() => circuit.value ? userStore.getAccountByCircuitId(circuit.value._id) : null )
|
||||
|
||||
@@ -51,6 +54,8 @@ export default defineComponent({
|
||||
|
||||
const table = ref(toolsext.TABCIRCUITS)
|
||||
|
||||
const showingtooltip = ref(false)
|
||||
|
||||
watch(() => props.mycircuit, (newval, oldval) => {
|
||||
mounted()
|
||||
})
|
||||
@@ -101,6 +106,8 @@ export default defineComponent({
|
||||
account,
|
||||
qtarem,
|
||||
saldo,
|
||||
globalStore,
|
||||
showingtooltip,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -6,29 +6,54 @@
|
||||
<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-mx-xs">{{ circuit.numMembers }}</span>
|
||||
<q-icon name="fas fa-users" size="xs" color="blue"></q-icon>
|
||||
</div>
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section @click="naviga(tools.getPathByTableAndRec(table, circuit))">
|
||||
<q-item-label><strong>{{ circuit.name }}</strong> <span v-if="circuit.subname"> ({{ circuit.subname }})</span>
|
||||
<q-item-section>
|
||||
<q-item-label @click="naviga(tools.getPathByTableAndRec(table, circuit))"><strong>{{ circuit.name }}</strong> <span
|
||||
v-if="circuit.subname"> ({{ circuit.subname }})</span>
|
||||
</q-item-label>
|
||||
<q-item-label v-if="circuit.longdescr" caption lines="3"><em>{{ circuit.longdescr }}</em></q-item-label>
|
||||
<q-item-label v-if="!circuit.transactionsEnabled" caption lines="1">
|
||||
<q-icon name="fas fa-lock">
|
||||
</q-icon></q-item-label>
|
||||
<q-item-label @click="naviga(tools.getPathByTableAndRec(table, circuit))" v-if="circuit.longdescr" caption lines="3"><em>{{ circuit.longdescr }}</em>
|
||||
</q-item-label>
|
||||
<q-item-label caption lines="1">
|
||||
<q-chip
|
||||
v-if="circuit.status !== undefined && circuit.status !== 0" :color="circuitStore.getColorCircuitClass(circuit)"
|
||||
text-color="white"
|
||||
size="md"
|
||||
: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 lines="1">
|
||||
</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
|
||||
:account="account"
|
||||
:symbol="circuit.symbol"
|
||||
:color="circuit.color"
|
||||
:saldo="saldo"
|
||||
:qtarem="qtarem"
|
||||
>
|
||||
>
|
||||
</CSaldo>
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
|
||||
|
||||
<q-item-section side v-if="visu === costanti.USER_CIRCUITS">
|
||||
<q-item-label>
|
||||
<q-btn rounded :icon="userStore.IsMyCircuitByName(circuit.name) ? `fas fa-ellipsis-h` : `fas fa-user`">
|
||||
|
||||
@@ -322,7 +322,7 @@ export default defineComponent({
|
||||
|
||||
function changevalRec(newval: any) {
|
||||
if (col.value && col.value.allowchar === costanti.ALLOWCHAR_CODE) {
|
||||
myvalue.value = tools.removespaces(newval)
|
||||
myvalue.value = tools.removespaces_slash(newval)
|
||||
}
|
||||
// console.log('popypedit: changevalRec', newval)
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { defineComponent, onMounted, PropType, ref, watch } from 'vue'
|
||||
import { useCircuitStore } from '@store/CircuitStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { IImgGallery, IUserFields, IUserProfile } from 'model'
|
||||
import { costanti } from '@costanti'
|
||||
@@ -31,11 +33,15 @@ export default defineComponent({
|
||||
setup(props, { emit }) {
|
||||
|
||||
const userStore = useUserStore()
|
||||
const circuitStore = useCircuitStore()
|
||||
const globalStore = useGlobalStore()
|
||||
// const $q = useQuasar()
|
||||
const { t } = useI18n()
|
||||
// const $router = useRouter()
|
||||
|
||||
const myrec = ref(<any | null>null)
|
||||
const circuit = ref(<any | null>null)
|
||||
|
||||
const showingtooltip = ref(false)
|
||||
|
||||
watch(() => props.prop_myrec, (newval, oldval) => {
|
||||
|
||||
@@ -44,7 +50,7 @@ export default defineComponent({
|
||||
|
||||
function mounted() {
|
||||
if (props.prop_myrec) {
|
||||
myrec.value = props.prop_myrec
|
||||
circuit.value = props.prop_myrec
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,7 +66,7 @@ export default defineComponent({
|
||||
|
||||
return {
|
||||
t,
|
||||
myrec,
|
||||
circuit,
|
||||
costanti,
|
||||
// naviga,
|
||||
setCmd,
|
||||
@@ -70,6 +76,9 @@ export default defineComponent({
|
||||
toolsext,
|
||||
fieldsTable,
|
||||
cmdExt,
|
||||
globalStore,
|
||||
circuitStore,
|
||||
showingtooltip,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -2,45 +2,64 @@
|
||||
<div class="q-py-xs centermydiv cardrec"
|
||||
:style="`max-width: `+ (tools.getwidth($q) - 20) +`px; ` + ($q.screen.lt.sm ? (`min-width: `+ (tools.getwidth($q) - 20) +`px;`) : ``)">
|
||||
|
||||
<q-item v-if="myrec" clickable v-ripple class="shadow-2 q-btn--rounded bg-teal-1">
|
||||
<q-item v-if="circuit" clickable v-ripple class="shadow-2 q-btn--rounded bg-teal-1">
|
||||
|
||||
<q-item-section v-if="myrec.photo" avatar
|
||||
@click="cmdExt(costanti.CMD_SHOW_PAGE, myrec)">
|
||||
<q-item-section v-if="circuit.photos" avatar
|
||||
@click="cmdExt(costanti.CMD_OPEN_PAGE, circuit)">
|
||||
<q-avatar size="60px">
|
||||
<q-img :src="userStore.getImgByCircuit(myrec)" :alt="myrec.descr"
|
||||
<q-img :src="userStore.getImgByCircuit(circuit)" :alt="circuit.descr"
|
||||
img-class="imgprofile" height="60px"/>
|
||||
</q-avatar>
|
||||
<q-chip class="glossy" icon-right="fas fa-users" text-color="blue"><span style="font-size: 1rem;" class="q-mr-xs">{{circuit.numMembers}}</span></q-chip>
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section @click="cmdExt(costanti.CMD_SHOW_PAGE, myrec)">
|
||||
<q-item-label v-if="myrec.name" lines="1" class="text_title">
|
||||
<span class="text-weight-bold">{{ myrec.name }}</span>
|
||||
</q-item-label>
|
||||
<q-item-label v-if="myrec.subname" lines="1" class="text_title">
|
||||
<span>{{ myrec.subname }}</span>
|
||||
<span v-if="!myrec.transactionsEnabled"><q-icon name="fas fa-lock"></q-icon></span>
|
||||
</q-item-label>
|
||||
<q-item-label lines="3" v-if="myrec.longdescr">{{ myrec.longdescr }}<br>
|
||||
</q-item-label>
|
||||
<!--
|
||||
<CCurrencyValue
|
||||
:symbol="myrec.symbol"
|
||||
:tips="t('account.saldo_tips')"
|
||||
:color="myrec.color"
|
||||
:value="myrec.account.saldo"
|
||||
label="Saldo">
|
||||
<q-item-section @click="cmdExt(costanti.CMD_OPEN_PAGE, circuit)">
|
||||
|
||||
</CCurrencyValue>
|
||||
<q-item-label @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" caption lines="3"><em>{{ circuit.longdescr }}</em></q-item-label>
|
||||
<q-item-label caption lines="1">
|
||||
<q-chip
|
||||
v-if="circuit.status !== undefined && circuit.status !== 0" :color="circuitStore.getColorCircuitClass(circuit)"
|
||||
text-color="white"
|
||||
size="md"
|
||||
: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 v-if="circuit.name" lines="1" class="text_title">
|
||||
<span class="text-weight-bold">{{ circuit.name }}</span>
|
||||
</q-item-label>
|
||||
<q-item-label v-if="circuit.subname" lines="1" class="text_title">
|
||||
<span>{{ circuit.subname }}</span>
|
||||
<span v-if="!circuit.transactionsEnabled"><q-icon name="fas fa-lock"></q-icon></span>
|
||||
</q-item-label>
|
||||
<q-item-label lines="3" v-if="circuit.longdescr">{{ circuit.longdescr }}<br>
|
||||
</q-item-label>
|
||||
-->
|
||||
|
||||
</q-item-section>
|
||||
<q-item-section side v-if="tools.canModifyThisRec(myrec, table)">
|
||||
<q-item-section side v-if="tools.canModifyThisRec(circuit, table)">
|
||||
<q-item-label>
|
||||
<q-btn rounded icon="fas fa-pencil-alt">
|
||||
<q-menu>
|
||||
<q-list style="min-width: 150px">
|
||||
<q-item clickable v-close-popup
|
||||
@click="cmdExt(costanti.CMD_MODIFY, myrec._id)">
|
||||
@click="cmdExt(costanti.CMD_MODIFY, circuit._id)">
|
||||
<q-item-section side>
|
||||
<q-icon name="fas fa-pencil-alt"/>
|
||||
</q-item-section>
|
||||
@@ -48,7 +67,7 @@
|
||||
</q-item>
|
||||
</q-list>
|
||||
<q-list style="min-width: 150px">
|
||||
<q-item clickable v-close-popup @click="cmdExt(costanti.CMD_DELETE, myrec._id)">
|
||||
<q-item clickable v-close-popup @click="cmdExt(costanti.CMD_DELETE, circuit._id)">
|
||||
<q-item-section side>
|
||||
<q-icon name="fas fa-trash-alt"/>
|
||||
</q-item-section>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<q-item v-if="myrec" clickable v-ripple class="shadow-2 q-btn--rounded bg-teal-1">
|
||||
|
||||
<q-item-section v-if="(shared_consts.TABLES_VISU_IMG.includes(table)) && (myrec.photos && myrec.photos.length > 0)" avatar
|
||||
@click="cmdExt(costanti.CMD_SHOW_PAGE, myrec)">
|
||||
@click="cmdExt(costanti.CMD_OPEN_PAGE, myrec)">
|
||||
<q-avatar size="60px">
|
||||
<q-img :src="tools.getFullFileName(myrec.photos, table, myrec.username, myrec.groupname)" :alt="myrec.descr"
|
||||
img-class="imgprofile" height="60px"/>
|
||||
@@ -22,7 +22,7 @@
|
||||
</q-avatar>
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section @click="cmdExt(costanti.CMD_SHOW_PAGE, myrec)">
|
||||
<q-item-section @click="cmdExt(costanti.CMD_OPEN_PAGE, myrec)">
|
||||
<q-item-label class="full-width">
|
||||
<span v-for="(rec, ind) of myrec.recCatGrp" :key="ind"> <q-chip
|
||||
dense
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<template v-slot:avatar>
|
||||
<q-icon name="fas fa-exclamation-triangle" color="yellow" size="xs"/>
|
||||
</template>
|
||||
<q-item clickable v-for="(notif, index) in lasts_notifs_req" :key="index">
|
||||
<q-item v-for="(notif, index) in lasts_notifs_req" :key="index">
|
||||
|
||||
<!--<q-item-section avatar>
|
||||
<q-avatar>
|
||||
@@ -24,24 +24,26 @@
|
||||
</q-item-section>
|
||||
|
||||
|
||||
<q-item-section v-ripple>
|
||||
<q-item-section>
|
||||
<q-item-label lines="5" :class="(!notif.read) ? 'unread' : 'read'" @click="clickNotif(notif)">
|
||||
<div v-html="getNotifText($t, notif, false)"></div>
|
||||
</q-item-label>
|
||||
<q-item-label caption lines="18"
|
||||
v-if="notif.typedir === shared_consts.TypeNotifs.TYPEDIR_CIRCUITS && notif.status === 0 && notif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ"
|
||||
v-ripple>
|
||||
>
|
||||
<div class="row no-wrap justify-evenly q-pa-sm">
|
||||
<q-btn
|
||||
size="md"
|
||||
icon="fas fa-coins"
|
||||
:disable="notif.disablecoinclick"
|
||||
color="positive" :label="$t('circuit.accept_coins_qty', {qty: notif.extrarec.qty, symbol: notif.extrarec.symbol})"
|
||||
@click="tools.acceptCoins(q, notif.sender, notif)"
|
||||
@click="notif.disablecoinclick = true; tools.acceptCoins(q, notif.sender, notif)"
|
||||
/>
|
||||
<q-btn
|
||||
size="md"
|
||||
:disable="notif.disablecoinclick"
|
||||
color="negative" :label="$t('circuit.refuse_coins_qty', {qty: notif.extrarec.qty, symbol: notif.extrarec.symbol})"
|
||||
@click="tools.refuseCoins(q, notif.sender, notif)"
|
||||
@click="notif.disablecoinclick = true; tools.refuseCoins(q, notif.sender, notif)"
|
||||
/>
|
||||
</div>
|
||||
</q-item-label>
|
||||
|
||||
@@ -235,7 +235,7 @@ body.mobile .landing:before {
|
||||
|
||||
.home {
|
||||
//background-color: rgb(250, 250, 250);
|
||||
padding: 3.125rem;
|
||||
padding: 2.125rem;
|
||||
display: flex;
|
||||
//flex-wrap: nowrap;
|
||||
flex-direction: column;
|
||||
@@ -244,7 +244,7 @@ body.mobile .landing:before {
|
||||
}
|
||||
|
||||
.btn-start {
|
||||
margin: 3.125rem;
|
||||
margin: 1.125rem;
|
||||
}
|
||||
|
||||
.shadow {
|
||||
@@ -461,3 +461,7 @@ ul li::before {
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.buttreg {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import { tools } from '@store/Modules/tools'
|
||||
import { LandingFooter, Logo } from '@components'
|
||||
import { CFundRaising } from '@/components/CFundRaising'
|
||||
import { CShowContentPage } from '@/components/CShowContentPage'
|
||||
import { static_data } from '@src/db/static_data'
|
||||
|
||||
|
||||
export default defineComponent({
|
||||
@@ -124,6 +125,7 @@ export default defineComponent({
|
||||
openCreatePostModal,
|
||||
slide,
|
||||
tools,
|
||||
static_data,
|
||||
animare,
|
||||
}
|
||||
},
|
||||
|
||||
@@ -37,7 +37,11 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div v-if="!tools.isLogged()" style="margin: 5px; padding: 5px;" class="home">
|
||||
<div v-if="!tools.isLogged()" style="margin: 5px; padding: 5px" class="home">
|
||||
<q-btn
|
||||
v-if="static_data.functionality.ENABLE_REGISTRATION && static_data.functionality.ENABLE_REG_BY_BOT"
|
||||
type="a" rounded size="lg" color="primary" href="/bot" :label="$t('reg.submit')" class="buttreg">
|
||||
</q-btn>
|
||||
<q-btn
|
||||
rounded size="lg" color="primary" @click="PagLogin"
|
||||
class="btn-start">
|
||||
|
||||
@@ -64,7 +64,14 @@
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="static_data.functionality.ENABLE_REGISTRATION && showregbutt"
|
||||
v-if="static_data.functionality.ENABLE_REGISTRATION && showregbutt && static_data.functionality.ENABLE_REG_BY_BOT"
|
||||
style="margin-top:10px; text-align: center;">
|
||||
Se non sei ancora Registrato:<br>
|
||||
<q-btn type="a" rounded size="md" color="primary" href="/bot" :label="$t('reg.submit')">
|
||||
</q-btn>
|
||||
</div>
|
||||
<div
|
||||
v-else-if="static_data.functionality.ENABLE_REGISTRATION && showregbutt"
|
||||
style="margin-top:10px; text-align: center;">
|
||||
Se non sei ancora Registrato:<br>
|
||||
<q-btn rounded size="md" color="primary" to="/signup" :label="$t('reg.submit')">
|
||||
|
||||
@@ -28,16 +28,9 @@
|
||||
|
||||
<q-btn class="q-ma-sm" color="positive" icon="fas fa-home" label="Se sei già Registrato CLICCA QUI" to="/"></q-btn>
|
||||
|
||||
<q-banner
|
||||
v-if="need_Telegram"
|
||||
rounded
|
||||
class="bg-warning text-black"
|
||||
style="text-align: center;"
|
||||
>
|
||||
<span class="mybanner" v-html="t('pages.need_Telegram')"></span>
|
||||
</q-banner>
|
||||
<div v-if="need_Telegram" class="mybanner" v-html="t('pages.need_Telegram')"></div><br>
|
||||
|
||||
<div v-if="!isalreadyReg">
|
||||
<div v-if="!isalreadyReg && !(visubuttBOT && need_Telegram)">
|
||||
<CTitleBanner :title="$t('pages.SignUp')"></CTitleBanner>
|
||||
|
||||
</div>
|
||||
@@ -45,6 +38,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div v-if="visubuttBOT && need_Telegram" class="q-gutter-md">
|
||||
<q-banner
|
||||
rounded
|
||||
|
||||
@@ -1136,3 +1136,27 @@ $heightBtn: 100%;
|
||||
.feat-descr {
|
||||
font-size: 1.15rem;
|
||||
}
|
||||
|
||||
.circuito_abilitato {
|
||||
background-color: green;
|
||||
color: green;
|
||||
margin-right: 4px;
|
||||
padding: 2px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.circuito_fase_2 {
|
||||
background-color: orange;
|
||||
color: white;
|
||||
margin-right: 4px;
|
||||
padding: 2px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.circuito_in_creazione {
|
||||
background-color: blue;
|
||||
color: white;
|
||||
margin-right: 4px;
|
||||
padding: 2px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -51,11 +51,12 @@ const msg_website_it = {
|
||||
presentazione2: 'Presentazione',
|
||||
invita: 'Invita Persone',
|
||||
SignUp: 'Modulo di Registrazione:',
|
||||
need_Telegram: 'Per poter utilizzare la Piattaforma occorre avere Telegram installato.<br><a href="https://play.google.com/store/apps/details?id=org.telegram.messenger" target="_blank">Clicca qui per scaricarlo</a>',
|
||||
Registrazione_Con_Bot: 'Per Registrarsi occorre prima verificarsi su Telegram sul <strong>BOT RISO</strong>',
|
||||
need_Telegram: 'Per poter utilizzare la Piattaforma occorre avere <a href="https://play.google.com/store/apps/details?id=org.telegram.messenger" target="_blank">Telegram</a> installato<br>',
|
||||
Registrazione_Con_Bot: '1) Copia questo username cliccandoci sopra:',
|
||||
SignUpIscrizione: 'Diventa Socio CNM',
|
||||
SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !',
|
||||
SignUp2: 'Registrazione',
|
||||
SignUpBot: 'Registrati',
|
||||
SignIn: 'Login',
|
||||
status: 'Statistiche',
|
||||
nextzoom: 'Conferenze',
|
||||
|
||||
@@ -10,8 +10,9 @@ const functionality: IFunctionality = {
|
||||
PWA: true,
|
||||
SHOW_USER_MENU: true, // Cambiare con true
|
||||
SHOW_PROFILE: true,
|
||||
SHOW_REG_BUTTON: false,
|
||||
SHOW_REG_BUTTON: true,
|
||||
ENABLE_REGISTRATION: true,
|
||||
ENABLE_REG_BY_BOT: true,
|
||||
ENABLE_REG_NEED_TELEGRAM: true,
|
||||
SHOW_NEWSLETTER: false,
|
||||
SHOW_ONLY_POLICY: true,
|
||||
@@ -780,6 +781,16 @@ const baseroutes: IListRoutes[] = [
|
||||
infooter: false,
|
||||
separator: false
|
||||
},
|
||||
{
|
||||
active: functionality.ENABLE_REG_BY_BOT,
|
||||
order: 1000,
|
||||
path: '/bot',
|
||||
materialIcon: 'how_to_reg',
|
||||
name: 'pages.SignUpBot',
|
||||
inmenu: functionality.ENABLE_REG_BY_BOT,
|
||||
infooter: functionality.ENABLE_REG_BY_BOT,
|
||||
separator: false
|
||||
},
|
||||
/*{
|
||||
active: functionality.ENABLE_REGISTRATION && !functionality.ENABLE_REG_NEED_TELEGRAM,
|
||||
order: 1000,
|
||||
|
||||
@@ -167,6 +167,13 @@ export default function () {
|
||||
} else if (notif.status === shared_consts.StatusNotifs.STATUS_FRIENDS_REFUSED) {
|
||||
descr += '<br><em>' + $t('friends.refused') + '</em>'
|
||||
}
|
||||
} else if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_CIRCUITS) {
|
||||
if (notif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ) {
|
||||
// console.log('notif.extrarec', notif.extrarec)
|
||||
if (notif.extrarec && notif.extrarec.hasOwnProperty('causal') && notif.extrarec.causal) {
|
||||
descr += '( ' + $t('movement.causal') + ': ' + notif.extrarec.causal + ')'
|
||||
}
|
||||
}
|
||||
} else if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS) {
|
||||
if (notif.status === shared_consts.GroupsNotifs.STATUS_GROUPS_ACCEPTED) {
|
||||
descr += '<br><em>' + $t('groups.accepted') + '</em>'
|
||||
@@ -181,6 +188,7 @@ export default function () {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return descr
|
||||
|
||||
}
|
||||
|
||||
@@ -486,6 +486,7 @@ export interface IParamDialog {
|
||||
export interface IFunctionality {
|
||||
PWA?: boolean
|
||||
ENABLE_REGISTRATION?: boolean
|
||||
ENABLE_REG_BY_BOT?: boolean
|
||||
ENABLE_REG_NEED_TELEGRAM?: boolean
|
||||
SHOW_REG_BUTTON?: boolean
|
||||
SHOW_PROFILE?: boolean
|
||||
@@ -935,6 +936,7 @@ export interface ICircuit {
|
||||
data_costituz?: Date
|
||||
deperimento: boolean
|
||||
transactionsEnabled: boolean
|
||||
status: number
|
||||
freq_deper?: string
|
||||
minuto_deper?: string
|
||||
ora_deper?: string
|
||||
@@ -947,6 +949,8 @@ export interface ICircuit {
|
||||
date_updated?: Date
|
||||
admins?: IFriends[]
|
||||
createdBy?: string
|
||||
regulation?: string
|
||||
numMembers?: number
|
||||
// --- Mem:
|
||||
movements: IMovement[]
|
||||
}
|
||||
@@ -984,4 +988,6 @@ export interface IAccount {
|
||||
qta_maxConcessa: number
|
||||
importo_iniziale?: number
|
||||
saldo: number
|
||||
totTransato: number
|
||||
regulation_ok: boolean
|
||||
}
|
||||
|
||||
@@ -254,7 +254,7 @@ const msg_it = {
|
||||
open: 'Clicca sul bottone qui sotto, si aprirà una chat Telegram speciale (chiamata BOT)',
|
||||
ifclose: 'poi premi "AVVIA" o "START" e segui le istruzioni indicate.',
|
||||
openbot: 'Entra qui',
|
||||
regbot: 'Registrati cliccando qui (si aprirà Telegram)',
|
||||
regbot: '2) Clicca qui per Registrarti',
|
||||
},
|
||||
login: {
|
||||
facebook: 'Facebook',
|
||||
@@ -1187,6 +1187,7 @@ const msg_it = {
|
||||
qta_remaining_to_send: 'Quantità massima inviabile {maxqta} {symbol}',
|
||||
qta_not_valid: 'Quantità non valida',
|
||||
qta_max_to_send: 'Quantità massima inviabile {maxqta} {symbol}',
|
||||
transaction_suspended: 'Transazioni sospese',
|
||||
},
|
||||
|
||||
account: {
|
||||
|
||||
@@ -26,9 +26,7 @@ export const useCircuitStore = defineStore('CircuitStore', {
|
||||
listcircuits: []
|
||||
}),
|
||||
|
||||
getters: {
|
||||
|
||||
},
|
||||
getters: {},
|
||||
|
||||
actions: {
|
||||
getRemainingCoinsToSend(account: IAccount) {
|
||||
@@ -52,6 +50,24 @@ export const useCircuitStore = defineStore('CircuitStore', {
|
||||
return 0
|
||||
},
|
||||
|
||||
getCircuitClass(circuit: ICircuit) {
|
||||
if (circuit.status === shared_consts.CIRCUIT_STATUS.FASE3_MONETA_ABILITATA)
|
||||
return 'circuito_abilitato'
|
||||
else if (circuit.status === shared_consts.CIRCUIT_STATUS.FASE2_ORGANIZZAZIONE)
|
||||
return 'circuito_fase_2'
|
||||
else if (circuit.status === shared_consts.CIRCUIT_STATUS.FASE1_CREAZIONE_GRUPPO)
|
||||
return 'circuito_in_creazione'
|
||||
},
|
||||
|
||||
getColorCircuitClass(circuit: ICircuit) {
|
||||
if (circuit.status === shared_consts.CIRCUIT_STATUS.FASE3_MONETA_ABILITATA)
|
||||
return 'green'
|
||||
else if (circuit.status === shared_consts.CIRCUIT_STATUS.FASE2_ORGANIZZAZIONE)
|
||||
return 'orange'
|
||||
else if (circuit.status === shared_consts.CIRCUIT_STATUS.FASE1_CREAZIONE_GRUPPO)
|
||||
return 'red'
|
||||
},
|
||||
|
||||
async loadCircuits() {
|
||||
return Api.SendReq('/users/circuits', 'POST', null)
|
||||
.then((res) => {
|
||||
|
||||
@@ -212,6 +212,7 @@ export const costanti = {
|
||||
CMD_DELETE: 1,
|
||||
CMD_MODIFY: 2,
|
||||
CMD_SHOW_PAGE: 3,
|
||||
CMD_OPEN_PAGE: 4,
|
||||
|
||||
SHOW_ALL: 50,
|
||||
|
||||
|
||||
@@ -2605,6 +2605,12 @@ export const colTableCircuit = [
|
||||
AddCol({ name: 'regulation', label_trans: 'circuit.regulation', fieldtype: costanti.FieldType.html, required: true }),
|
||||
AddCol({ name: 'deperimento', label_trans: 'circuit.deperimento', fieldtype: costanti.FieldType.boolean, disable: true }),
|
||||
AddCol({ name: 'transactionsEnabled', label_trans: 'circuit.transactionsEnabled', fieldtype: costanti.FieldType.boolean }),
|
||||
AddCol({ name: 'status', label_trans: 'circuit.status',
|
||||
fieldtype: costanti.FieldType.select,
|
||||
jointable: 'statuscircuit',
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||
}
|
||||
),
|
||||
AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }),
|
||||
AddCol({
|
||||
name: 'photos',
|
||||
@@ -2649,6 +2655,7 @@ export const colTableNotifCoins = [
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
|
||||
}),
|
||||
AddCol({ name: 'extrarec.qty', field: 'extrarec', subfield: 'qty', label_trans: 'movement.amount', fieldtype: costanti.FieldType.currency }),
|
||||
AddCol({ name: 'extrarec.causal', field: 'extrarec', subfield: 'causal', label_trans: 'movement.causal', tipovisu: costanti.TipoVisu.TESTO_BORDATO }),
|
||||
|
||||
]
|
||||
|
||||
@@ -3016,6 +3023,15 @@ export const fieldsTable = {
|
||||
colicon: 'icon',
|
||||
noshow: true,
|
||||
},
|
||||
{
|
||||
value: 'statuscircuit',
|
||||
label: 'Stato Circuito',
|
||||
columns: colTableGeneric,
|
||||
colkey: 'value',
|
||||
collabel: 'label',
|
||||
colicon: 'icon',
|
||||
noshow: true,
|
||||
},
|
||||
{
|
||||
value: 'pub_to_share',
|
||||
label: 'Visibilità',
|
||||
|
||||
@@ -3717,6 +3717,16 @@ export const tools = {
|
||||
return mystr.replace(/\s+/g, '')
|
||||
},
|
||||
|
||||
removespaces_slash(mystr: string) {
|
||||
mystr = mystr.replace(/\s+/g, '')
|
||||
mystr = mystr.replace(/\//g, '')
|
||||
mystr = mystr.replace(/:/g, '')
|
||||
mystr = mystr.replace(/./g, '')
|
||||
mystr = mystr.replace(/,/g, '')
|
||||
mystr = mystr.replace(/'/g, '')
|
||||
return mystr
|
||||
},
|
||||
|
||||
copyStringToClipboard(myq: any, mystr: string, show: boolean) {
|
||||
|
||||
copyToClipboard(mystr).then(() => {
|
||||
@@ -5899,6 +5909,7 @@ export const tools = {
|
||||
color: '#ff5500',
|
||||
deperimento: false,
|
||||
transactionsEnabled: false,
|
||||
status: shared_consts.CIRCUIT_STATUS.FASE1_CREAZIONE_GRUPPO,
|
||||
symbol: 'RIS',
|
||||
fido_scoperto_default: 100,
|
||||
qta_max_default: 200,
|
||||
@@ -5966,13 +5977,16 @@ export const tools = {
|
||||
},
|
||||
|
||||
getFullFileName(arrimage: IImgGallery[], table: string, username: string, groupname: string) {
|
||||
console.log('arrimage', arrimage)
|
||||
|
||||
if (shared_consts.TABLES_DIRECTORY_A_PARTE.includes(table)) {
|
||||
return `upload/${table}/` + groupname + '/' + arrimage[0].imagefile
|
||||
} else if (shared_consts.TABLES_DIRECTORY_SINGLE_IMG.includes(table)) {
|
||||
return `upload/${table}/` + groupname + '/' + arrimage[0].imagefile
|
||||
} else {
|
||||
console.log('username', username, 'table', table)
|
||||
if (arrimage && arrimage.length > 0) {
|
||||
return 'upload/profile/' + username + '/' + table + '/' + arrimage[0].imagefile
|
||||
return `upload/profile/${username}/${table}` + arrimage[0].imagefile
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
|
||||
@@ -1495,11 +1495,13 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
}
|
||||
},
|
||||
|
||||
getValueByTableSingle(table: string, val: any) {
|
||||
getValueByTableSingle(table: string, val: any, lab?: any) {
|
||||
if (table) {
|
||||
const mylist = this.getTableJoinByName(table)
|
||||
const key = fieldsTable.getKeyByTable(table)
|
||||
const collab = fieldsTable.getLabelByTable(table)
|
||||
let collab = lab
|
||||
if (!lab)
|
||||
collab = fieldsTable.getLabelByTable(table)
|
||||
|
||||
// console.table(mylist)
|
||||
let risultato = ''
|
||||
@@ -1622,6 +1624,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
else if (table === 'visibility') myarr = shared_consts.Visibility
|
||||
else if (table === 'pub_to_share') myarr = shared_consts.Pub_to_Share
|
||||
else if (table === 'visibilGroup') myarr = shared_consts.VisibilGroup
|
||||
else if (table === 'statuscircuit') myarr = shared_consts.StatusCircuit
|
||||
else if (table === 'lang') myarr = shared_consts.Lang
|
||||
else if (table === 'regions') myarr = shared_consts.Regions
|
||||
else if (table === 'shippings') myarr = shared_consts.Shippings
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
Occorre prima registrarsi alla App </h3>
|
||||
</div>
|
||||
<div v-else-if="tools.isLogged()">
|
||||
<div v-else-if="tools.isLogged() && path">
|
||||
<h3>Circuito non Esistente</h3>
|
||||
</div>
|
||||
<div v-else>
|
||||
|
||||
@@ -284,24 +284,24 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 q-ma-xs col-xs-12">
|
||||
<CLabel
|
||||
v-if="!!myuser.useraport"
|
||||
:label="t('profile.aportador_him')"
|
||||
>
|
||||
<CMyUser
|
||||
:mycontact="myuser.useraport"
|
||||
:visu="costanti.FIND_PEOPLE"
|
||||
@setCmd="tools.setCmd"
|
||||
>
|
||||
</CMyUser>
|
||||
</CLabel>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</CTitleBanner>
|
||||
</div>
|
||||
<div class="col-md-6 col-sm-6 q-ma-xs col-xs-12">
|
||||
<CLabel
|
||||
v-if="!!myuser.useraport"
|
||||
:label="t('profile.aportador_him')"
|
||||
>
|
||||
<CMyUser
|
||||
:mycontact="myuser.useraport"
|
||||
:visu="costanti.FIND_PEOPLE"
|
||||
@setCmd="tools.setCmd"
|
||||
>
|
||||
</CMyUser>
|
||||
</CLabel>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user