vedere le Richieste di Fiducia solo se si è verificati Telegram

Corretto il mio account che doveva confermare in automatico... non lo faceva...
"Riregistrarsi se l'invitante non ha ancora confermato l'invito.
Annullo la richiesta precedente. (inviando un msg di annullamento. (Si è già registrato con un alto invito.)"
CMyEditor: non posso andare in edit sul HTML (nella table)
Aggiornare il msg di benvenuto ! (prendere da msgtemplate)
Dal Profilo: è possibile inviarsi il messaggio da condividere agli Amici
Visualizzare la data d'inserimento dell'annuncio e l'ultima modifica fatta
Link alla pagina di un Evento o Bene o Servizio !
Se aggiornamento: mettere messaggio che dice di chiudere e riaprire per aggiornare.
Quando un utente chiede di entrare nel Gruppo, mettere l'abilitazione anche su Telegram. (e correggere il msg)
This commit is contained in:
paoloar77
2022-03-06 00:48:14 +01:00
parent e244dd3a91
commit c6539f4378
43 changed files with 381 additions and 69 deletions

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.3.5"
APP_VERSION="0.3.6"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet"
@@ -11,7 +11,7 @@ PROVA_PAOLO="PROVA ENV FUNZIONA!"
LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="http://192.168.0.200:3000"
MONGODB_HOST="http://localhost:3000"
LOGO_REG='riso-logo-full.png'
TEST_NAME="Paolo"
TEST_SURNAME="Arena"

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.3.5"
APP_VERSION="0.3.6"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -26,6 +26,7 @@ const msg_website_enUs = {
profile2: 'ProfiloU',
mypage2: 'mypage2',
myservice2: 'myservice2',
mygood2: 'mygood2',
test: 'Test',
projects: 'Progetti',
report: 'Report Ore',

View File

@@ -25,6 +25,7 @@ const msg_website_it = {
profile2: 'ProfiloU',
mypage2: 'mypage2',
myservice2: 'myservice2',
mygood2: 'mygood2',
test: 'Test',
projects: 'Progetti',
report: 'Report Ore',

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.3.5"
APP_VERSION="0.3.6"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="12"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.3.5"
APP_VERSION="0.3.6"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.3.5"
APP_VERSION="0.3.6"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -26,6 +26,7 @@ const msg_website_es = {
profile2: 'ProfiloU',
mypage2: 'mypage2',
myservice2: 'myservice2',
mygood2: 'mygood2',
test: 'Test',
projects: 'Progetti',
report: 'Report Ore',

View File

@@ -25,6 +25,7 @@ const msg_website_it = {
profile2: 'ProfiloU',
mypage2: 'mypage2',
myservice2: 'myservice2',
mygood2: 'mygood2',
test: 'Test',
projects: 'Progetti',
report: 'Report Ore',

View File

@@ -79,6 +79,9 @@ module.exports = {
SEND_TO_CONSIGLIO: 5,
SEND_TO_NON_SOCI: 10,
SEND_TO_PAOLO: 20,
SEND_TO_USER: 25,
SEND_TO_GROUP: 30,
SEND_TO_MYSELF: 40,
},
TypeMsg_Actions: {
@@ -116,6 +119,19 @@ module.exports = {
CANCELED: 10,
},
MsgTeleg: {
SHARE_MSGREG: 1
},
TypeMsgTemplate: {
MSG_BENVENUTO_SHARE_LINK: 2000
},
TypeSend: {
PUSH_NOTIFICATION: 1,
TELEGRAM: 2,
},
fieldsUserToChange() {
return ['_id', 'index', 'username', 'email', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'notask_verif', 'verified_by_aportador', 'ipaddr', 'lasttimeonline', 'profile', 'calcstat', 'news_on', 'aportador_solidario', 'made_gift', 'ind_order', 'old_order', 'numinvitati', 'numinvitatiattivi', 'qualified']
},

View File

@@ -39,6 +39,7 @@ export const shared_consts = {
FILTER_MISSING_PAYMENT: 262144,
FILTER_TO_MAKE_MEMBERSHIP_CARD: 524288,
FILTER_MEMBERSHIP_CARD_OK: 1048576,
FILTER_USER_NO_VERIFIED_APORTADOR: 2097152,
OPTIONS_SEARCH_ONLY_FULL_WORDS: 1,
OPTIONS_SEARCH_USER_ONLY_FULL_WORDS: 2,
@@ -94,7 +95,7 @@ export const shared_consts = {
TABLES_WITH_DATE: ['mybachecas'],
TABLES_WITH_SORTING: ['mybachecas'],
TABLES_PERM_NEWREC: ['skills', 'goods', 'subskills', 'mygroups'],
TABLES_REC_ID: ['skills', 'goods', 'subskills'],
TABLES_REC_ID: ['skills', 'goods', 'subskills', 'myskills', 'mybachecas', 'mygoods'],
// costanti.VISUTABLE_SCHEDA_USER, VISUTABLE_SCHEDA_GROUP, VISUTABLE_USER_TABGROUP
VERTIC_SHOW_GRID: [-1, 2, -3, -4],
@@ -667,12 +668,19 @@ export const shared_consts = {
Notify_ByPushNotification: 4,
},
CmdToSend: {
SHARE_MSGREG: 1,
},
TypeMsg: {
SEND_TO_ALL: 1,
SEND_TO_SOCI: 2,
SEND_TO_SOCIO_RESIDENTE: 3,
SEND_TO_NON_SOCI: 10,
SEND_TO_PAOLO: 20,
SEND_TO_USER: 25,
SEND_TO_GROUP: 30,
SEND_TO_MYSELF: 40,
},
TypeMsg_Actions: {
@@ -787,6 +795,19 @@ export const shared_consts = {
Need_Aportador_On_DataReg_To_Verify_Reg: 4,
},
MsgTeleg: {
SHARE_MSGREG: 1
},
TypeMsgTemplate: {
MSG_BENVENUTO: 2010,
MS_SHARE_LINK: 2000
},
TypeSend: {
PUSH_NOTIFICATION: 1,
TELEGRAM: 2,
},
getStatusStr(status: number) {
const trovatorec = this.OrderStatusStr.find((rec) => rec.value === status)

View File

@@ -13,7 +13,7 @@
<p v-if="globalStore.serverMsgError" class="errore">{{globalStore.getMsgServerError()}}</p>
<p v-if="tools.isCurrentUrlSignUp() && globalStore.isErroreDispositivoServer()" class="errore">Se l'Errore persiste, significa che questo browser non riesce a collegarsi col Server.<br>
Soluzione: Provare ad installare un altro browser:<br>
👉🏻 Clicca per installare <a href="https://play.google.com/store/apps/details?id=com.opera.browser&hl=it&gl=IT">Opera per Android</a>. </p>
👉🏻 Clicca per installare <a href="https://download.opera.com/download/get/?partner=www&nothanks=yes&product=Android">Opera per Android</a>. </p>
<q-btn
size="md"

View File

@@ -34,7 +34,12 @@ export default defineComponent({
type: Number,
required: false,
default: 0
}
},
nopopup: {
type: Boolean,
required: false,
default: false
},
},
setup(props) {
@@ -45,7 +50,7 @@ export default defineComponent({
const showPic = ref(false)
const myrec = ref({})
const myrec = ref(<any>{})
const col = ref(<IColGridTable>{})
function profile() {
@@ -74,6 +79,10 @@ export default defineComponent({
load()
}
function condividipag() {
return tools.copyStringToClipboard($q, self.location.host + tools.getPathByTable(props.table, myrec.value._id), true)
}
onMounted(mounted)
return {
@@ -90,6 +99,7 @@ export default defineComponent({
colCitys,
toolsext,
col,
condividipag,
}
}
})

View File

@@ -1,14 +1,16 @@
<template>
<q-card class="dialog_card q-mb-lg" v-if="myrec">
<q-card class="dialog_card q-mb-lg" v-if="myrec._id">
<q-footer
v-if="!nopopup"
class="bg-white small-screen-only text-center"
bordered
>
<q-btn push rounded color="primary" icon="close" label="Chiudi" v-close-popup></q-btn>
</q-footer>
<q-bar dense class="bg-primary text-white">
<q-bar v-if="!nopopup" dense class="bg-primary text-white">
{{ myrec.username }}
<q-space/>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
@@ -77,6 +79,36 @@
</div>
</div>
<br>
<div v-if="myrec.date_created" class="row justify-center">
<span class="cal__where-title"> {{ $t('reg.pub_created') }}:</span>
<span v-html="tools.getstrDate(myrec.date_created)"></span>
</div>
<div v-if="tools.getstrDate(myrec.date_updated) !== tools.getstrDate(myrec.date_created)" class="row justify-center">
<span class="cal__where-title"> {{ $t('reg.pub_updated') }}:</span>
<span v-html="tools.getstrDate(myrec.date_updated)"></span>
</div>
<div v-if="!nopopup"
class="row q-ma-sm q-pa-sm justify-center">
<div class="q-ma-sm">
<q-btn
icon="far fa-file-alt" label="Apri Pagina" color="primary" text-color="white"
:to="tools.getToByCol(col, table, myrec)"
/>
</div>
</div>
<div v-if="myrec._id"
class="row q-ma-sm q-pa-sm justify-center">
<div class="q-ma-sm">
<q-btn
color="primary" text-color="white" icon="fas fa-copy" label="Condividi Pagina"
@click="condividipag"></q-btn>
</div>
</div>
<br><br>
</q-card-section>

View File

@@ -523,7 +523,7 @@
</div>
</div>
<div v-else>
<!--
<div class="row justify-evenly">
<q-btn
v-if="myvalue"
@@ -540,8 +540,8 @@
>
</q-btn>
</div>
-->
<!--<div v-html="visuValByType(myvalue, col, row)" @click="visueditor = true"></div>-->
<div v-html="visuValByType(myvalue, col, row)" @click="visueditor = true"></div>
<div v-if="!isFieldDb()">
<q-dialog v-model="visuhtml" full-height full-width>

View File

@@ -25,6 +25,8 @@
:label="`Profilo di ` + tools.getAportadorSolidario()">
</q-btn>
</q-banner>
</div>
</div>

View File

@@ -26,6 +26,7 @@ const msg_website_es = {
profile2: 'ProfiloU',
mypage2: 'mypage2',
myservice2: 'myservice2',
mygood2: 'mygood2',
test: 'Test',
projects: 'Progetti',
report: 'Report Ore',

View File

@@ -25,6 +25,7 @@ const msg_website_it = {
profile2: 'ProfiloU',
mypage2: 'mypage2',
myservice2: 'myservice2',
mygood2: 'mygood2',
test: 'Test',
projects: 'Progetti',
report: 'Report Ore',

View File

@@ -525,6 +525,17 @@ const baseroutes: IListRoutes[] = [
inmenu: false,
infooter: false,
},
{
active: true,
order: 132,
path: '/mygood/:idGood',
materialIcon: '',
name: 'pages.mygood2',
component: () => import('@/views/user/mypagegood/mypagegood.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 400,

View File

@@ -612,6 +612,22 @@ export interface IDataPass {
fieldsvalue: any
}
export interface IMsgGlobParam {
typemsg: number,
title?: string,
content?: string,
openUrl?: string,
openUrl2?: string,
tag?: string,
actions?: any[],
cmd?: number
usernameOrig?: string
usernameDest?: string
groupnameDest?: string
text?: string
typesend: number
}
export interface IDataToSet {
id?: string | null
username?: string

View File

@@ -18,6 +18,7 @@ import { useUserStore } from '@store/UserStore'
import { static_data } from '@/db/static_data'
import MixinBase from '@/mixins/mixin-base'
import MixinUsers from '@/mixins/mixin-users'
import { shared_consts } from '@/common/shared_vuejs'
export default defineComponent({
@@ -35,6 +36,8 @@ export default defineComponent({
static_data,
getRefLink,
userStore,
shared_consts,
globalStore,
}
},
})

View File

@@ -11,6 +11,20 @@
<!--<CMapsEsempio></CMapsEsempio>-->
<q-banner
v-if="globalStore.isNewVersionAvailable"
rounded
dense
class="bg-green text-white"
color="primary q-title"
style="text-align: center;">
<template v-slot:avatar>
<q-icon name="fas fa-exclamation-triangle" color="yellow" size="xs" />
</template>
<span class="mybanner">Per Aggiornare alla nuova versione, chiudere e riaprire la APP (o il browser)</span>
</q-banner>
<q-banner
v-if="tools.isTest()"
rounded
@@ -34,9 +48,20 @@
<CDashboard></CDashboard>
<CCopyBtn v-if="userStore.my.username" :title="$t('reg.link_reg')" :texttocopy="getRefLink(userStore.my.username)">
<div class="row justify-evenly items-center q-pa-sm q-ma-sm">
<q-btn
icon="fas fa-share-alt"
color="blue" type="a"
size="md"
rounded
:label="$t('reg.link_reg_and_msg')"
@click="tools.sendMsgTelegramCmd($q, $t, shared_consts.MsgTeleg.SHARE_MSGREG)">
</q-btn>
</div>
</CCopyBtn>
<!--<CCopyBtn v-if="userStore.my.username" :title="$t('reg.link_reg')" :texttocopy="getRefLink(userStore.my.username)">
</CCopyBtn>-->
<CStatusReg>

View File

@@ -8,6 +8,7 @@ import { useI18n } from '@src/boot/i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { useQuasar } from 'quasar'
import { IMsgGlobParam } from 'model'
export default defineComponent({
name: 'Sendpushnotif',
@@ -66,24 +67,16 @@ export default defineComponent({
}
function SendMsgToParam(typemsg: any) {
interface IPushParam {
typemsg: string,
title: string,
content: string,
openUrl: string,
openUrl2: string,
tag: string,
actions: any[],
}
let param: IPushParam = {
let param: IMsgGlobParam = {
typemsg,
title: title.value,
content: content.value,
openUrl: openUrl.value,
openUrl2: openUrl2.value,
tag: tag.value,
actions: []
actions: [],
typesend: shared_consts.TypeSend.PUSH_NOTIFICATION
}
param.actions = []

View File

@@ -30,6 +30,10 @@ export default defineComponent({
label: 'Non hanno l\'Invitante',
value: shared_consts.FILTER_USER_NO_INVITANTE
},
{
label: 'Non sono stati Approvati dall\'Invitante',
value: shared_consts.FILTER_USER_NO_VERIFIED_APORTADOR
},
{
label: 'No Telegram ID',
value: shared_consts.FILTER_USER_NO_TELEGRAM_ID

View File

@@ -306,6 +306,8 @@ const msg_de = {
booked_error: 'Reservation failed. Try again later',
sendmsg_error: 'Message not sent. Try again later',
sendmsg_sent: 'Message sent',
sendmsg_sent_sharedlink: 'Il Messaggio da inviare lo trovi nella Chat Telegram',
sendmsgs_sent: 'Messages sent',
booking: 'Book the Event',
titlebooking: 'Reservation',
modifybooking: 'Modify Reservation',

View File

@@ -383,8 +383,8 @@ const msg_enUs = {
invitante_regalato: 'Inviting Given',
legenda: 'Legend',
aportador_solidario: 'Solidarity Contributor',
verified_by_aportador: 'Verificato dall\'Invitante',
notAsk_ToVerify: 'Non chiedere la verifica Registrazione',
verified_by_aportador: 'Verificato',
notAsk_ToVerify: 'No Verif. Reg',
trust_modified: 'Fiducia Modificata',
blocked: 'Bloccato',
username_who_block: 'Bloccato da',
@@ -498,6 +498,8 @@ const msg_enUs = {
image: 'Immagine',
date: 'Data',
date_created: 'Creato il',
pub_created: 'Pubblicato il',
pub_updated: 'Aggiornato il',
options: 'Opzioni',
link_telegram: 'Link al Canale/Gruppo Telegram',
err: {
@@ -648,6 +650,8 @@ const msg_enUs = {
booked_error: 'Reservation failed. Try again later',
sendmsg_error: 'Message not sent. Try again later',
sendmsg_sent: 'Message sent',
sendmsg_sent_sharedlink: 'Il Messaggio da inviare lo trovi nella Chat Telegram',
sendmsgs_sent: 'Messages sent',
booking: 'Book the Event',
titlebooking: 'Reservation',
modifybooking: 'Modify Reservation',

View File

@@ -353,8 +353,8 @@ const msg_es = {
invitante_regalato: 'Invitando Regalato',
legenda: 'Legenda',
aportador_solidario: 'Aportador Solidario',
verified_by_aportador: 'Verificato dall\'Invitante',
notAsk_ToVerify: 'Non chiedere la verifica Registrazione',
verified_by_aportador: 'Verificato',
notAsk_ToVerify: 'No Verif. Reg',
trust_modified: 'Fiducia Modificata',
blocked: 'Bloccato',
username_who_block: 'Bloccato da',
@@ -399,7 +399,6 @@ const msg_es = {
select: 'selecciona',
img: 'File image',
date_reg: 'Fecha Reg.',
deleted: 'Cancellato',
requirement: 'Requisitos',
perm: 'Permisos',
elimina: 'Elimina',
@@ -466,6 +465,8 @@ const msg_es = {
image: 'Immagine',
date: 'Data',
date_created: 'Creato il',
pub_created: 'Pubblicato il',
pub_updated: 'Aggiornato il',
options: 'Opzioni',
link_telegram: 'Link al Canale/Gruppo Telegram',
err: {
@@ -601,6 +602,8 @@ const msg_es = {
booked_error: 'Reserva fallida. Intenta nuevamente más tarde',
sendmsg_error: 'Mensaje no enviado Intenta nuevamente más tarde',
sendmsg_sent: 'Mensaje enviado',
sendmsgs_sent: 'Mensajes enviados',
sendmsg_sent_sharedlink: 'Il Messaggio da inviare lo trovi nella Chat Telegram',
booking: 'Reserva Evento',
titlebooking: 'Reserva',
modifybooking: 'Edita Reserva',

View File

@@ -505,6 +505,8 @@ const msg_fr = {
booked_error: 'La réservation a échoué. Réessayez plus tard',
sendmsg_error: 'Message non envoyé. Réessayez plus tard',
sendmsg_sent: 'Message envoyé',
sendmsgs_sent: 'Messages envoyé',
sendmsg_sent_sharedlink: 'Il Messaggio da inviare lo trovi nella Chat Telegram',
booking: 'Réserver l\'événement',
titlebooking: 'Réservation',
modifybooking: 'changement de réservation',

View File

@@ -87,8 +87,8 @@ const msg_it = {
email_not_verif: 'Email non Verificate',
telegram_non_attivi: 'Telegram Non Attivi',
telegram_pendenti: 'Telegram Pendenti',
reg_daily: 'Registrazioni Giornaliere',
reg_weekly: 'Registrazioni Settimanali',
reg_daily: 'Registrazioni',
reg_weekly: 'Settimanali',
reg_total: 'Registrazioni Totali',
},
steps: {
@@ -396,8 +396,8 @@ const msg_it = {
invitante_regalato: 'Invitante Regalato',
legenda: 'Legenda',
aportador_solidario: 'Chi ti ha Invitato',
verified_by_aportador: 'Verificato dall\'Invitante',
notAsk_ToVerify: 'Non chiedere la verifica Registrazione',
verified_by_aportador: 'Verificato',
notAsk_ToVerify: 'No Verif. Reg',
trust_modified: 'Fiducia Modificata',
blocked: 'Bloccato',
username_who_block: 'Bloccato da',
@@ -437,6 +437,7 @@ const msg_it = {
teleg_auth: 'Codice Autorizzazione',
click_per_copiare: 'Cliccaci sopra per copiarlo sugli appunti',
link_reg: 'Clicca per copiare il link da condividere agli Amici',
link_reg_and_msg: 'Condividi Link ad Amici',
copia_messaggio: 'Copia Messaggio',
teleg_torna_sul_bot: '1) Copia il codice cliccando sul bottone qui sopra<br>2) torna su {botname} cliccando qui sotto 👇 ed incolla (o scrivi) il codice',
teleg_checkcode: 'Codice Telegram',
@@ -516,6 +517,8 @@ const msg_it = {
image: 'Immagine',
date: 'Data',
date_created: 'Creato il',
pub_created: 'Pubblicato il',
pub_updated: 'Aggiornato il',
options: 'Opzioni',
link_telegram: 'Link al Canale/Gruppo Telegram',
err: {
@@ -669,6 +672,9 @@ const msg_it = {
booked_error: 'Prenotazione non avvenuta. Riprovare più tardi',
sendmsg_error: 'Messaggio non inviato. Riprovare più tardi',
sendmsg_sent: 'Messaggio Inviato',
sendmsg_sent_sharedlink: 'Il Messaggio da inviare lo trovi nella Chat Telegram',
sendmsgs_sent: 'Messaggi Inviati',
err_sendmsg: 'Errore durante l\'invio del Messaggio',
booking: 'Prenota Evento',
titlebooking: 'Prenotazione',
modifybooking: 'Modifica Prenotazione',

View File

@@ -516,6 +516,8 @@ const msg_pt = {
booked_error: 'Prenotazione non avvenuta. Riprovare più tardi',
sendmsg_error: 'Messaggio non inviato. Riprovare più tardi',
sendmsg_sent: 'Messaggio Inviato',
sendmsg_sent_sharedlink: 'Il Messaggio da inviare lo trovi nella Chat Telegram',
sendmsgs_sent: 'Messaggi Inviati',
booking: 'Prenota Evento',
titlebooking: 'Prenotazione',
modifybooking: 'Modifica Prenotazione',

View File

@@ -465,6 +465,8 @@ const msg_si = {
booked_error: 'Rezervacija ni možna. Poskusi kasneje.',
sendmsg_error: 'Sporočilo ni bilo poslano. Poskusi kasneje.',
sendmsg_sent: 'Sporočilo Poslano',
sendmsg_sent_sharedlink: 'Il Messaggio da inviare lo trovi nella Chat Telegram',
sendmsgs_sent: 'Messaggi Inviati',
booking: 'Rezerviraj Dogodek',
titlebooking: 'Rezervacija',
modifybooking: 'Popravilo rezervacije',

View File

@@ -130,6 +130,7 @@ export const costanti = {
visible: false,
title: 'Gruppi',
to: '',
table: 'mygroups',
icon: 'fas fa-users',
color: 'blue-6',
hint: '',

View File

@@ -573,7 +573,12 @@ export const colmyUserGroup = [
jointable: 'friendsandme',
field_outtype: costanti.FieldType.object,
}),
AddCol({ name: 'date_created', label_trans: 'event.dateCreated', fieldtype: costanti.FieldType.onlydate,
AddCol({ name: 'date_created', label_trans: 'reg.pub_created', fieldtype: costanti.FieldType.onlydate,
required: false,
visible: false,
sortable: true,
showWhen: 0}),
AddCol({ name: 'date_updated', label_trans: 'reg.pub_updated', fieldtype: costanti.FieldType.onlydate,
required: false,
visible: false,
sortable: true,

View File

@@ -12,7 +12,7 @@ import {
ITodo,
IUserFields,
Privacy,
TipoVisu, IGroup, IMySkill, IMyBacheca, IImgGallery,
TipoVisu, IGroup, IMySkill, IMyBacheca, IImgGallery, IMsgGlobParam,
} from '@model'
import { addToDate } from '@quasar/quasar-ui-qcalendar'
@@ -5167,6 +5167,8 @@ export const tools = {
return 'myservice'
} else if (table === toolsext.TABMYBACHECAS) {
return 'mypage'
} else if (table === toolsext.TABMYGOODS) {
return 'mygood'
} else if (table === toolsext.TABMYGROUPS) {
return 'grp'
}
@@ -5231,6 +5233,10 @@ export const tools = {
return '/' + tools.getDirectoryByTable(table) + '/' + grp.groupname
},
getPathByTable(table: string, pagename: string) {
return '/' + tools.getDirectoryByTable(table) + '/' + pagename
},
getAportadorSolidario() {
const userStore = useUserStore()
return userStore.my ? userStore.my.aportador_solidario : ''
@@ -5264,6 +5270,28 @@ export const tools = {
return window.location.pathname.indexOf('signup') >= 0
},
async sendMsgTelegram($q: any, $t: any, mydata: IMsgGlobParam) {
const userStore = useUserStore()
return userStore.sendMsgToBotTelegram($q, $t, mydata)
},
async sendMsgTelegramCmd($q: any, $t: any, cmd: number) {
let mydata: IMsgGlobParam = {
typemsg: 0,
typesend: shared_consts.TypeSend.TELEGRAM,
cmd,
}
if (cmd === shared_consts.CmdToSend.SHARE_MSGREG) {
mydata.typemsg = shared_consts.TypeMsg.SEND_TO_MYSELF
}
return this.sendMsgTelegram($q, $t, mydata)
},
// getLocale() {
// if (navigator.languages && navigator.languages.length > 0) {

View File

@@ -1,7 +1,7 @@
import { defineStore } from 'pinia'
import {
IFriends,
IFriends, IMsgGlobParam,
ISigninOptions,
ISignupOptions, IUserFields, IUserProfile, IUserState,
} from '@src/model'
@@ -880,7 +880,17 @@ export const useUserStore = defineStore('UserStore', {
verified_by_aportador,
made_gift,
perm,
profile: { img, teleg_id, myshares: [], friends: [], req_friends: [], asked_friends: [], mygroups: [], asked_groups: [], manage_mygroups: [] },
profile: {
img,
teleg_id,
myshares: [],
friends: [],
req_friends: [],
asked_friends: [],
mygroups: [],
asked_groups: [],
manage_mygroups: []
},
})
isLogged = true
@@ -1004,6 +1014,25 @@ export const useUserStore = defineStore('UserStore', {
},
async sendMsgToBotTelegram($q: any, t: any, mydata: IMsgGlobParam) {
return Api.SendReq('/users/mgt', 'POST', { mydata })
.then((res) => {
console.log('res', res)
let msgok = (res.data.nummsgsent === 1) ? res.data.nummsgsent + ' ' + t('cal.sendmsg_sent') : res.data.nummsgsent + ' ' + t('cal.sendmsgs_sent')
if (mydata.cmd === shared_consts.MsgTeleg.SHARE_MSGREG) {
msgok = t('cal.sendmsg_sent_sharedlink') + ' ' + tools.getBotName()
}
if (res.data.nummsgsent >= 0) {
tools.showPositiveNotif($q, msgok)
return true
}
return false
}).catch((error) => {
tools.showNegativeNotif($q, t('cal.err_sendmsg'))
return {}
})
},
async importToServerCmd($q: any, t: any, cmd: number, data: any) {
return Api.SendReq('/admin/import', 'POST', { cmd, data })
.then((res) => {

View File

@@ -128,11 +128,11 @@ export default defineComponent({
}
function extraparams() {
let lk_tab = ''
let lk_LF = ''
let lk_FF = ''
let lk_as = ''
let af_objId_tab = ''
let lk_tab = 'users'
let lk_LF = 'userId'
let lk_FF = '_id'
let lk_as = 'user'
let af_objId_tab = 'myId'
return {
lookup1: {

View File

@@ -1,5 +1,5 @@
<template>
<CMyPage title="Pagina:"
<CMyPage title="Evento"
imgbackground="images/calendario_eventi.jpg"
sizes="max-height: 120px" styleadd="bottom: -20px !important;">
@@ -10,6 +10,7 @@
<CMyCardPopup
v-if="!!idBacheca"
:table="toolsext.TABMYBACHECAS"
:nopopup="true"
:idRec="idBacheca">
</CMyCardPopup>

View File

@@ -0,0 +1,18 @@
.profile {
width: 100%;
margin: 0 auto;
max-width: 450px;
}
.myrow{
display: flex;
@media (max-width: 600px) {
flex-flow: column;
}
}
.qualifica{
border: solid 2px #4198ef;
border-radius: 1rem;
padding: 5px;
}

View File

@@ -0,0 +1,31 @@
import { computed, defineComponent, onMounted, ref, watch } from 'vue'
import { useUserStore } from '@store/UserStore'
import { useRoute, useRouter } from 'vue-router'
import { useI18n } from '@/boot/i18n'
import { useQuasar } from 'quasar'
import { CMyCardPopup } from '@/components/CMyCardPopup'
import { CMyPage } from '@/components/CMyPage'
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
import { toolsext } from '@store/Modules/toolsext'
import { tools } from '@store/Modules/tools'
export default defineComponent({
name: 'mypagegood',
components: { CMyCardPopup, CMyPage, CCheckIfIsLogged },
props: {},
setup() {
const userStore = useUserStore()
const $route = useRoute()
const $q = useQuasar()
const { t } = useI18n()
const idGood = computed(() => $route.params.idGood ? $route.params.idGood.toString() : 0)
return {
t,
idGood,
toolsext,
tools,
}
}
})

View File

@@ -0,0 +1,30 @@
<template>
<CMyPage title="Bene"
imgbackground="images/calendario_eventi.jpg"
sizes="max-height: 120px" styleadd="bottom: -20px !important;">
<div v-if="!tools.isLogged()">
<CCheckIfIsLogged></CCheckIfIsLogged>
</div>
<CMyCardPopup
v-if="!!idGood"
:table="toolsext.TABMYGOODS"
:nopopup="true"
:idRec="idGood">
</CMyCardPopup>
<br>
<br>
</CMyPage>
</template>
<script lang="ts" src="./mypagegood.ts">
</script>
<style lang="scss" scoped>
@import './mypagegood.scss';
</style>

View File

@@ -122,12 +122,19 @@
:href="getLinkWebSite()" target="__blank">
</q-btn>
</div>
<CCopyBtn v-if="myuser.username === myusername()" :title="$t('reg.link_reg')"
:texttocopy="getRefLink(username)">
</CCopyBtn>
</div>
<div class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
<div v-if="myuser._id" class="col-12">
<q-btn
v-if="myuser.username === myusername()"
icon="fas fa-share-alt"
color="blue"
size="md"
rounded
:label="$t('reg.link_reg_and_msg')"
@click="tools.sendMsgTelegramCmd($q, $t, shared_consts.MsgTeleg.SHARE_MSGREG)">
</q-btn>
</div>
</div>
</div>
<div v-else class="fit column no-wrap justify-evenly items-center content-start">

View File

@@ -3,6 +3,7 @@ import { CTitleBanner } from '@/components/CTitleBanner'
import { CProfile } from '@/components/CProfile'
import { CDateTime } from '@/components/CDateTime'
import { CMyPage } from '@/components/CMyPage'
import { CMyCardPopup } from '@/components/CMyCardPopup'
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
import { CSkill } from '@/components/CSkill'
import { tools } from '@store/Modules/tools'
@@ -23,7 +24,7 @@ import { colCitys } from '@store/Modules/fieldsTable'
export default defineComponent({
name: 'myservice',
components: { CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CMyPage, CCheckIfIsLogged },
components: { CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CMyPage, CCheckIfIsLogged, CMyCardPopup },
props: {},
setup() {
const userStore = useUserStore()
@@ -43,7 +44,7 @@ export default defineComponent({
const myskill = ref(<IMySkill>{})
const username = computed(() => (myskill.value && myskill.value.username) ? myskill.value.username : 'Pagina')
const username = computed(() => (myskill.value && myskill.value.username) ? myskill.value.username : 'Servizio')
function profile() {
return userStore.my.profile
@@ -56,6 +57,7 @@ export default defineComponent({
function loadSkill() {
// Carica il profilo di quest'utente
if (idSkill.value) {
/*
userStore.loadSkill(idSkill.value).then((ris) => {
myskill.value = ris
if (ris.userId) {
@@ -63,7 +65,7 @@ export default defineComponent({
}
})
*/
}
}
@@ -88,6 +90,7 @@ export default defineComponent({
tools,
costanti,
myskill,
toolsext,
shared_consts,
checkifShow,
globalStore,
@@ -101,6 +104,7 @@ export default defineComponent({
colCitys,
table,
username,
idSkill,
}
}
})

View File

@@ -6,7 +6,17 @@
<div v-if="!tools.isLogged()">
<CCheckIfIsLogged></CCheckIfIsLogged>
</div>
<div v-else>
<CMyCardPopup
v-if="!!idSkill"
:table="toolsext.TABMYSKILLS"
:nopopup="true"
:idRec="idSkill">
</CMyCardPopup>
</div>
<!--
<div class="q-ma-sm q-gutter-sm q-pa-xs">
<div v-if="!!myskill.note" v-html="myskill.note"></div>
@@ -27,21 +37,9 @@
</CSkill>
</div>
<!--
<div class="row justify-evenly q-mt-md">
<q-btn
type="a" rounded size="md"
color="white" text-color="blue" :icon="`img:`+userStore.getImgByUsername(myskill.username)"
:to="'/my/'+myskill.username"
:label="myskill.username"
>
</q-btn>
</div>
-->
</div>
<br>