strette di mano
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.51"
|
APP_VERSION="0.5.53"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.51"
|
APP_VERSION="0.5.53"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.51"
|
APP_VERSION="0.5.53"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.51"
|
APP_VERSION="0.5.53"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.51"
|
APP_VERSION="0.5.53"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="14"
|
APP_ID="14"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -72,6 +72,7 @@
|
|||||||
"vue-scroll-reveal": "^1.0.11",
|
"vue-scroll-reveal": "^1.0.11",
|
||||||
"vue-social-sharing": "^4.0.0-alpha4",
|
"vue-social-sharing": "^4.0.0-alpha4",
|
||||||
"vue-svgicon": "^4.0.0-alpha.3",
|
"vue-svgicon": "^4.0.0-alpha.3",
|
||||||
|
"vue-timeago3": "^2.3.0",
|
||||||
"vue2-dragula": "^2.5.5",
|
"vue2-dragula": "^2.5.5",
|
||||||
"vuex": "^4.1.0",
|
"vuex": "^4.1.0",
|
||||||
"vuex-router-sync": "^6.0.0-rc.1"
|
"vuex-router-sync": "^6.0.0-rc.1"
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ module.exports = configure((ctx) => ({
|
|||||||
// --> boot files are part of "main.js"
|
// --> boot files are part of "main.js"
|
||||||
// https://v2.quasar.dev/quasar-cli/boot-files
|
// https://v2.quasar.dev/quasar-cli/boot-files
|
||||||
// boot: ['vue-i18n', 'vue-meta', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'vue-idb', 'dragula', 'guard'],
|
// boot: ['vue-i18n', 'vue-meta', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'vue-idb', 'dragula', 'guard'],
|
||||||
boot: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar', 'social-sharing'],
|
boot: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar', 'social-sharing', 'timeago'],
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
|
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
|
||||||
css: [
|
css: [
|
||||||
@@ -238,8 +238,7 @@ module.exports = configure((ctx) => ({
|
|||||||
'Ripple',
|
'Ripple',
|
||||||
'ClosePopup',
|
'ClosePopup',
|
||||||
],
|
],
|
||||||
// Quasar plugins
|
_plugins: [
|
||||||
plugins: [
|
|
||||||
'Meta',
|
'Meta',
|
||||||
'Dialog',
|
'Dialog',
|
||||||
'Notify',
|
'Notify',
|
||||||
@@ -247,13 +246,25 @@ module.exports = configure((ctx) => ({
|
|||||||
'Loading',
|
'Loading',
|
||||||
'AppVisibility',
|
'AppVisibility',
|
||||||
],
|
],
|
||||||
|
get plugins_1() {
|
||||||
|
return this._plugins;
|
||||||
|
},
|
||||||
|
set plugins_1(value) {
|
||||||
|
this._plugins = value;
|
||||||
|
},
|
||||||
|
get plugins() {
|
||||||
|
return this._plugins;
|
||||||
|
},
|
||||||
|
set plugins(value) {
|
||||||
|
this._plugins = value;
|
||||||
|
},
|
||||||
iconSet: 'fontawesome-v5',
|
iconSet: 'fontawesome-v5',
|
||||||
lang: 'it', // Quasar language
|
lang: 'it', // Quasar language
|
||||||
},
|
},
|
||||||
|
|
||||||
// animations: 'all', // --- includes all animations
|
animations: 'all', // --- includes all animations
|
||||||
// https://v2.quasar.dev/options/animations
|
// https://v2.quasar.dev/options/animations
|
||||||
animations: [],
|
// animations: [],
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
|
// https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
|
||||||
ssr: {
|
ssr: {
|
||||||
|
|||||||
7
src/boot/timeago.ts
Executable file
7
src/boot/timeago.ts
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
//@ts-ignore
|
||||||
|
import timeago from 'vue-timeago3'
|
||||||
|
import { boot } from 'quasar/wrappers'
|
||||||
|
|
||||||
|
export default boot(({ app }) => {
|
||||||
|
app.use(timeago)
|
||||||
|
})
|
||||||
@@ -96,10 +96,15 @@ export const shared_consts = {
|
|||||||
FRIENDSCMD: {
|
FRIENDSCMD: {
|
||||||
SETTRUST: 121,
|
SETTRUST: 121,
|
||||||
REQFRIEND: 125,
|
REQFRIEND: 125,
|
||||||
|
REQHANDSHAKE: 128,
|
||||||
SETFRIEND: 132,
|
SETFRIEND: 132,
|
||||||
|
SETHANDSHAKE: 133,
|
||||||
REMOVE_FROM_MYFRIENDS: 144,
|
REMOVE_FROM_MYFRIENDS: 144,
|
||||||
REFUSE_REQ_FRIEND: 145,
|
REFUSE_REQ_FRIEND: 145,
|
||||||
CANCEL_REQ_FRIEND: 146,
|
CANCEL_REQ_FRIEND: 146,
|
||||||
|
REMOVE_FROM_MYHANDSHAKE: 147,
|
||||||
|
REFUSE_REQ_HANDSHAKE: 148,
|
||||||
|
CANCEL_REQ_HANDSHAKE: 149,
|
||||||
BLOCK_USER: 155,
|
BLOCK_USER: 155,
|
||||||
UNBLOCK_USER: 156,
|
UNBLOCK_USER: 156,
|
||||||
REPORT_USER: 158,
|
REPORT_USER: 158,
|
||||||
@@ -997,6 +1002,9 @@ export const shared_consts = {
|
|||||||
StatusNotifs: {
|
StatusNotifs: {
|
||||||
STATUS_FRIENDS_ACCEPTED: 1,
|
STATUS_FRIENDS_ACCEPTED: 1,
|
||||||
STATUS_FRIENDS_REFUSED: 2,
|
STATUS_FRIENDS_REFUSED: 2,
|
||||||
|
STATUS_FRIENDS_REPORTED: 3,
|
||||||
|
STATUS_HANDSHAKE_ACCEPTED: 10,
|
||||||
|
STATUS_HANDSHAKE_REFUSED: 11,
|
||||||
},
|
},
|
||||||
|
|
||||||
GroupsNotifs: {
|
GroupsNotifs: {
|
||||||
@@ -1063,6 +1071,12 @@ export const shared_consts = {
|
|||||||
TYPEDIR_MSGS: 7,
|
TYPEDIR_MSGS: 7,
|
||||||
ID_MSGS_NEW_REC: 1,
|
ID_MSGS_NEW_REC: 1,
|
||||||
|
|
||||||
|
TYPEDIR_HANDSHAKE: 10,
|
||||||
|
ID_HANDSHAKE_NEW_REC: 1,
|
||||||
|
ID_HANDSHAKE_ACCEPTED: 2,
|
||||||
|
ID_HANDSHAKE_REFUSED: 4,
|
||||||
|
ID_HANDSHAKE_ACCEPTED_MY_REQUEST: 8,
|
||||||
|
|
||||||
TYPEDIR_TEST: 444,
|
TYPEDIR_TEST: 444,
|
||||||
ID_TEST_NEW_REC: 1,
|
ID_TEST_NEW_REC: 1,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1044,7 +1044,7 @@
|
|||||||
</q-table>
|
</q-table>
|
||||||
|
|
||||||
<q-page-sticky
|
<q-page-sticky
|
||||||
v-if="mytable && butt_modif_new"
|
v-if="mytable && butt_modif_new && !hidetitleIfEmpty"
|
||||||
position="bottom-right"
|
position="bottom-right"
|
||||||
:offset="[18, 68]"
|
:offset="[18, 68]"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import { CDateTime } from '@/components/CDateTime'
|
|||||||
import { CMyGroup } from '@/components/CMyGroup'
|
import { CMyGroup } from '@/components/CMyGroup'
|
||||||
import { CMyCircuit } from '@/components/CMyCircuit'
|
import { CMyCircuit } from '@/components/CMyCircuit'
|
||||||
import { CNotifAtTop } from '@src/components/CNotifAtTop'
|
import { CNotifAtTop } from '@src/components/CNotifAtTop'
|
||||||
|
import { CTimeAgo } from '@src/components/CTimeAgo'
|
||||||
import { CSendCoins } from '@/components/CSendCoins'
|
import { CSendCoins } from '@/components/CSendCoins'
|
||||||
import { CMyUser } from '@/components/CMyUser'
|
import { CMyUser } from '@/components/CMyUser'
|
||||||
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
|
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
|
||||||
@@ -34,7 +35,8 @@ export default defineComponent({
|
|||||||
name: 'CMyActivities',
|
name: 'CMyActivities',
|
||||||
components: {
|
components: {
|
||||||
CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CCopyBtn, CUserNonVerif, CMyFieldRec, CMyUser,
|
CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CCopyBtn, CUserNonVerif, CMyFieldRec, CMyUser,
|
||||||
CMyGroup, CLabel, CMyCircuit, CSendCoins, CNotifAtTop, CCheckIfIsLogged
|
CMyGroup, CLabel, CMyCircuit, CSendCoins, CNotifAtTop, CCheckIfIsLogged,
|
||||||
|
CTimeAgo
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="last_access">
|
<div class="last_access">
|
||||||
OnLine: {{ tools.timeAgo(myuser.lasttimeonline) }}
|
OnLine: <CTimeAgo :datetime="myuser.lasttimeonline" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="myuser.reported">
|
<div v-if="myuser.reported">
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ export default defineComponent({
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const rectofind = circuitStore.listcircuits.find((circ: ICircuit) => circ.name === circuit.value.circuitname!)
|
const rectofind = circuitStore.listcircuits.find((circ: ICircuit) => circ.name === circuit.value.circuitname!)
|
||||||
if (rectofind) {
|
if (rectofind) {
|
||||||
console.log('rectofind', rectofind)
|
// console.log('rectofind', rectofind)
|
||||||
circuit.value = rectofind
|
circuit.value = rectofind
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,8 +73,14 @@ export default defineComponent({
|
|||||||
arr = userStore.my.profile.friends
|
arr = userStore.my.profile.friends
|
||||||
} else if (props.modelValue === costanti.REQ_FRIENDS) {
|
} else if (props.modelValue === costanti.REQ_FRIENDS) {
|
||||||
arr = userStore.my.profile.req_friends
|
arr = userStore.my.profile.req_friends
|
||||||
|
} else if (props.modelValue === costanti.HANDSHAKE) {
|
||||||
|
arr = userStore.my.profile.handshake
|
||||||
|
} else if (props.modelValue === costanti.REQ_HANDSHAKE) {
|
||||||
|
arr = userStore.my.profile.req_handshake
|
||||||
} else if (props.modelValue === costanti.ASK_SENT_FRIENDS) {
|
} else if (props.modelValue === costanti.ASK_SENT_FRIENDS) {
|
||||||
arr = userStore.my.profile.asked_friends
|
arr = userStore.my.profile.asked_friends
|
||||||
|
} else if (props.modelValue === costanti.ASK_SENT_HANDSHAKE) {
|
||||||
|
arr = userStore.my.profile.asked_handshake
|
||||||
} else if (props.modelValue === costanti.ASK_TRUST) {
|
} else if (props.modelValue === costanti.ASK_TRUST) {
|
||||||
arr = listTrusted.value.filter((user: IUserFields) => user.verified_by_aportador === undefined)
|
arr = listTrusted.value.filter((user: IUserFields) => user.verified_by_aportador === undefined)
|
||||||
} else if (props.modelValue === costanti.TRUSTED) {
|
} else if (props.modelValue === costanti.TRUSTED) {
|
||||||
@@ -101,6 +107,15 @@ export default defineComponent({
|
|||||||
label: t('mypages.request_friends') + ' (' + numReqFriends.value + ')',
|
label: t('mypages.request_friends') + ' (' + numReqFriends.value + ')',
|
||||||
value: costanti.REQ_FRIENDS
|
value: costanti.REQ_FRIENDS
|
||||||
})
|
})
|
||||||
|
if (numHandShake.value > 0 || props.modelValue === costanti.HANDSHAKE)
|
||||||
|
mybutt.push({ label: t('mypages.handshake') + ' (' + numHandShake.value + ')', value: costanti.HANDSHAKE })
|
||||||
|
|
||||||
|
if (numReqHandShake.value > 0 || props.modelValue === costanti.REQ_HANDSHAKE)
|
||||||
|
mybutt.push({
|
||||||
|
label: t('mypages.requesthandshake') + ' (' + numReqHandShake.value + ')',
|
||||||
|
value: costanti.REQ_HANDSHAKE
|
||||||
|
})
|
||||||
|
|
||||||
if (numAskSentFriends.value > 0 || props.modelValue === costanti.ASK_SENT_FRIENDS)
|
if (numAskSentFriends.value > 0 || props.modelValue === costanti.ASK_SENT_FRIENDS)
|
||||||
mybutt.push({
|
mybutt.push({
|
||||||
label: t('mypages.request_sent') + ' (' + numAskSentFriends.value + ')',
|
label: t('mypages.request_sent') + ' (' + numAskSentFriends.value + ')',
|
||||||
@@ -121,11 +136,21 @@ export default defineComponent({
|
|||||||
return (arr) ? arr.length : 0
|
return (arr) ? arr.length : 0
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const numHandShake = computed(() => {
|
||||||
|
const arr = userStore.my.profile.handshake
|
||||||
|
return (arr) ? arr.length : 0
|
||||||
|
})
|
||||||
|
|
||||||
const numReqFriends = computed(() => {
|
const numReqFriends = computed(() => {
|
||||||
const arr = userStore.my.profile.req_friends
|
const arr = userStore.my.profile.req_friends
|
||||||
return (arr) ? arr.length : 0
|
return (arr) ? arr.length : 0
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const numReqHandShake = computed(() => {
|
||||||
|
const arr = userStore.my.profile.req_handshake
|
||||||
|
return (arr) ? arr.length : 0
|
||||||
|
})
|
||||||
|
|
||||||
const numAskSentFriends = computed(() => {
|
const numAskSentFriends = computed(() => {
|
||||||
const arr = userStore.my.profile.asked_friends
|
const arr = userStore.my.profile.asked_friends
|
||||||
return (arr) ? arr.length : 0
|
return (arr) ? arr.length : 0
|
||||||
|
|||||||
@@ -83,6 +83,25 @@
|
|||||||
</q-btn>
|
</q-btn>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
|
<q-item-section side v-else-if="visu === costanti.REQ_HANDSHAKE">
|
||||||
|
<q-item-label>
|
||||||
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
|
<q-menu>
|
||||||
|
<q-list v-if="true" style="min-width: 150px">
|
||||||
|
<q-item clickable v-close-popup @click="setCmd($q, shared_consts.FRIENDSCMD.SETHANDSHAKE, userStore.my.username, '', contact.username)">
|
||||||
|
<q-item-section>{{ $t('friends.accept_handshake') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
<q-list style="min-width: 150px">
|
||||||
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
|
@click="setCmd($q, shared_consts.FRIENDSCMD.REQ_HANDSHAKE, userStore.my.username, false, contact.username, false)">
|
||||||
|
<q-item-section>{{ $t('friends.reject_ask_handshake') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
</q-menu>
|
||||||
|
</q-btn>
|
||||||
|
</q-item-label>
|
||||||
|
</q-item-section>
|
||||||
<q-item-section side v-else-if="visu === costanti.REQ_ADD_USER_TO_GROUP">
|
<q-item-section side v-else-if="visu === costanti.REQ_ADD_USER_TO_GROUP">
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
<q-btn rounded icon="fas fa-ellipsis-h">
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
@@ -253,11 +272,15 @@
|
|||||||
<q-item-label>
|
<q-item-label>
|
||||||
<q-btn rounded icon="fas fa-ellipsis-h">
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
<q-menu>
|
<q-menu>
|
||||||
<q-list v-if="!userStore.IsMyFriendByUsername(contact.username)" style="min-width: 200px">
|
<q-list style="min-width: 200px">
|
||||||
<q-item clickable icon="fas fa-user-plus" v-close-popup
|
<q-item v-if="!userStore.IsMyFriendByUsername(contact.username)" clickable icon="fas fa-user-plus" v-close-popup
|
||||||
@click="setCmd($q, shared_consts.FRIENDSCMD.REQFRIEND, userStore.my.username, true, contact.username)">
|
@click="setCmd($q, shared_consts.FRIENDSCMD.REQFRIEND, userStore.my.username, true, contact.username)">
|
||||||
<q-item-section>{{ $t('friends.ask_friend') }}</q-item-section>
|
<q-item-section>{{ $t('friends.ask_friend') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
|
<q-item v-if="!userStore.IsHandShakeByUsername(contact.username)" clickable icon="far fa-handshake" v-close-popup
|
||||||
|
@click="setCmd($q, shared_consts.FRIENDSCMD.REQ_HANDSHAKE, userStore.my.username, true, contact.username)">
|
||||||
|
<q-item-section>{{ $t('handshake.ask_handshake') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
<q-list style="min-width: 200px">
|
<q-list style="min-width: 200px">
|
||||||
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
@@ -299,6 +322,30 @@
|
|||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section>{{ $t('friends.remove_from_myfriends') }}</q-item-section>
|
<q-item-section>{{ $t('friends.remove_from_myfriends') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
|
|
||||||
|
<q-item v-if="(!userStore.IsHandShakeByUsername(contact.username) && !userStore.IsAskedHandShakeByUsername(contact.username))"
|
||||||
|
clickable v-close-popup @click="setCmd($q, shared_consts.FRIENDSCMD.REQ_HANDSHAKE, userStore.my.username, true, contact.username)">
|
||||||
|
<q-item-section avatar>
|
||||||
|
<q-icon color="positive" name="far fa-handshake"/>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section>{{ $t('handshake.ask_handshake') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
<q-item v-else-if="(!userStore.IsHandShakeByUsername(contact.username) && userStore.IsAskedHandShakeByUsername(contact.username))"
|
||||||
|
clickable v-close-popup @click="setCmd($q, shared_consts.FRIENDSCMD.REQ_HANDSHAKE, userStore.my.username, false, contact.username)">
|
||||||
|
<q-item-section avatar>
|
||||||
|
<q-icon color="negative" name="far fa-handshake-alt-slash"/>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section>{{ $t('handshake.cancel_ask_handshake') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
<q-item v-else-if="userStore.IsHandShakeByUsername(contact.username)" style="min-width: 200px"
|
||||||
|
clickable v-close-popup
|
||||||
|
@click="setCmd($q, shared_consts.FRIENDSCMD.REMOVE_FROM_MYHANDSHAKE, userStore.my.username, '', contact.username)">
|
||||||
|
<q-item-section avatar>
|
||||||
|
<q-icon color="negative" name="far fa-handshake-alt-slash"/>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section>{{ $t('handshake.remove_from_myhandshake') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
|
||||||
<q-item clickable v-close-popup @click="tools.reportUser($q, userStore.my.username, contact.username)">
|
<q-item clickable v-close-popup @click="tools.reportUser($q, userStore.my.username, contact.username)">
|
||||||
<q-item-section avatar>
|
<q-item-section avatar>
|
||||||
<q-icon color="negative" name="fas fa-flag"/>
|
<q-icon color="negative" name="fas fa-flag"/>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import {
|
|||||||
import { INotData } from '../../model/index'
|
import { INotData } from '../../model/index'
|
||||||
import MixinBase from '@src/mixins/mixin-base'
|
import MixinBase from '@src/mixins/mixin-base'
|
||||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||||
|
import { CTimeAgo } from '@/components/CTimeAgo'
|
||||||
import { CCardState } from '../CCardState'
|
import { CCardState } from '../CCardState'
|
||||||
import { CMyFieldRec } from '../CMyFieldRec'
|
import { CMyFieldRec } from '../CMyFieldRec'
|
||||||
import { CElemStat } from '../CElemStat'
|
import { CElemStat } from '../CElemStat'
|
||||||
@@ -28,7 +29,7 @@ export default defineComponent({
|
|||||||
name: 'CStatusReg',
|
name: 'CStatusReg',
|
||||||
props: {},
|
props: {},
|
||||||
components: { CTitleBanner, CElemStat,
|
components: { CTitleBanner, CElemStat,
|
||||||
CCardState, CCardStat, CLineChart, CMyFieldRec },
|
CCardState, CCardStat, CLineChart, CMyFieldRec, CTimeAgo },
|
||||||
setup(props, { attrs, slots, emit }) {
|
setup(props, { attrs, slots, emit }) {
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
const $q = useQuasar()
|
const $q = useQuasar()
|
||||||
|
|||||||
@@ -147,9 +147,17 @@
|
|||||||
tools.getUserNameOnlyIfToShow(user)
|
tools.getUserNameOnlyIfToShow(user)
|
||||||
}}</q-item-label>
|
}}</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side>{{
|
<q-item-section side>
|
||||||
tools.timeAgo(user.lasttimeonline)
|
<div
|
||||||
}}</q-item-section>
|
:class="
|
||||||
|
`text-h6 q-mr-sm text-bold ` + $q.dark.isActive
|
||||||
|
? `text-white`
|
||||||
|
: `text-black`
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<CTimeAgo :datetime="user.lasttimeonline" />
|
||||||
|
</div>
|
||||||
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -157,8 +165,12 @@
|
|||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
<q-tab-panel name="diffusori">
|
<q-tab-panel name="diffusori">
|
||||||
<div class="q-pa-md" style="max-width: 300px">
|
<div class="q-pa-md" style="max-width: 300px">
|
||||||
<div class="text-center text-bold text-h6">Aiuta RISO a crescere</div>
|
<div class="text-center text-bold text-h6">
|
||||||
<div class="text-center"> Condividi il tuo link d'invito, alimentando nuovi ingressi alla RETE Solidale di RISO.
|
Aiuta RISO a crescere
|
||||||
|
</div>
|
||||||
|
<div class="text-center">
|
||||||
|
Condividi il tuo link d'invito, alimentando nuovi ingressi
|
||||||
|
alla RETE Solidale di RISO.
|
||||||
</div>
|
</div>
|
||||||
<q-list bordered>
|
<q-list bordered>
|
||||||
<transition-group
|
<transition-group
|
||||||
@@ -200,9 +212,12 @@
|
|||||||
}}</q-item-label>
|
}}</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side
|
<q-item-section side
|
||||||
><span :class="`text-h6 q-mr-sm text-bold ` + $q.dark.isActive ? `text-white` : `text-black`">{{
|
><div
|
||||||
user.count
|
:class="
|
||||||
}}</span></q-item-section
|
`text-h6 q-mx-sm q-px-sm text-bold ` + ($q.dark.isActive ? `text-white`: `text-black`)
|
||||||
|
"
|
||||||
|
>{{ user.count }}
|
||||||
|
</div></q-item-section
|
||||||
>
|
>
|
||||||
</q-item>
|
</q-item>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
@@ -211,8 +226,11 @@
|
|||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
<q-tab-panel name="sharedlink">
|
<q-tab-panel name="sharedlink">
|
||||||
<div class="q-pa-md" style="max-width: 300px">
|
<div class="q-pa-md" style="max-width: 300px">
|
||||||
<div class="text-center text-bold text-h6">Registrati con questi invitanti:</div>
|
<div class="text-center text-bold text-h6">
|
||||||
<div class="text-center">Cliccare sulla persona per procedere alla registrazione
|
Registrati con questi invitanti:
|
||||||
|
</div>
|
||||||
|
<div class="text-center">
|
||||||
|
Cliccare sulla persona per procedere alla registrazione
|
||||||
</div>
|
</div>
|
||||||
<q-list bordered>
|
<q-list bordered>
|
||||||
<transition-group
|
<transition-group
|
||||||
@@ -254,8 +272,8 @@
|
|||||||
}}</q-item-label>
|
}}</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side
|
<q-item-section side
|
||||||
><span class="text-h6 q-mr-sm"></span></q-item-section
|
><span class="text-h6 q-mr-sm"></span
|
||||||
>
|
></q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
</q-list>
|
</q-list>
|
||||||
|
|||||||
0
src/components/CTimeAgo/CTimeAgo.scss
Executable file
0
src/components/CTimeAgo/CTimeAgo.scss
Executable file
41
src/components/CTimeAgo/CTimeAgo.ts
Executable file
41
src/components/CTimeAgo/CTimeAgo.ts
Executable file
@@ -0,0 +1,41 @@
|
|||||||
|
import { defineComponent, ref, computed, PropType, toRef, onMounted } from 'vue'
|
||||||
|
import { useUserStore } from '@store/UserStore'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
|
import { useGlobalStore } from '@store/globalStore'
|
||||||
|
import { useI18n } from '@/boot/i18n'
|
||||||
|
import { tools } from '@store/Modules/tools'
|
||||||
|
import { toolsext } from '@store/Modules/toolsext'
|
||||||
|
|
||||||
|
import { es, it, enUS } from 'date-fns/locale' // import custom locale
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'CTimeAgo',
|
||||||
|
components: {},
|
||||||
|
props: {
|
||||||
|
datetime: {
|
||||||
|
type: String,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
setup(props, { emit }) {
|
||||||
|
|
||||||
|
const mylocale = ref(<any>null)
|
||||||
|
|
||||||
|
function mounted() {
|
||||||
|
mylocale.value = enUS
|
||||||
|
if (toolsext.getLocale() === 'it')
|
||||||
|
mylocale.value = it
|
||||||
|
else if (toolsext.getLocale() === 'es')
|
||||||
|
mylocale.value = es
|
||||||
|
}
|
||||||
|
|
||||||
|
mounted()
|
||||||
|
|
||||||
|
return {
|
||||||
|
tools,
|
||||||
|
toolsext,
|
||||||
|
mylocale,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
19
src/components/CTimeAgo/CTimeAgo.vue
Executable file
19
src/components/CTimeAgo/CTimeAgo.vue
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
<template>
|
||||||
|
<timeago
|
||||||
|
:datetime="datetime"
|
||||||
|
auto-update
|
||||||
|
:converter-options="{
|
||||||
|
includeSeconds: true,
|
||||||
|
addSuffix: true,
|
||||||
|
useStrict: false,
|
||||||
|
}"
|
||||||
|
:locale="mylocale"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" src="./CTimeAgo.ts">
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import './CTimeAgo.scss';
|
||||||
|
</style>
|
||||||
1
src/components/CTimeAgo/index.ts
Executable file
1
src/components/CTimeAgo/index.ts
Executable file
@@ -0,0 +1 @@
|
|||||||
|
export {default as CTimeAgo} from './CTimeAgo.vue'
|
||||||
@@ -16,6 +16,7 @@ import { useUserStore } from '@store/UserStore'
|
|||||||
|
|
||||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||||
import { CMyFieldRec } from '@/components/CMyFieldRec'
|
import { CMyFieldRec } from '@/components/CMyFieldRec'
|
||||||
|
import { CTimeAgo } from '@/components/CTimeAgo'
|
||||||
import { CMyFieldDb } from '@/components/CMyFieldDb'
|
import { CMyFieldDb } from '@/components/CMyFieldDb'
|
||||||
import { CMyCircuits } from '@/components/CMyCircuits'
|
import { CMyCircuits } from '@/components/CMyCircuits'
|
||||||
import { CFinder } from '@/components/CFinder'
|
import { CFinder } from '@/components/CFinder'
|
||||||
@@ -28,7 +29,7 @@ import { useGlobalStore } from '@store/globalStore'
|
|||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'coinsPopover',
|
name: 'coinsPopover',
|
||||||
components: { CTitleBanner, CMyFieldRec, CMyFieldDb, CMyCircuits, CFinder },
|
components: { CTitleBanner, CMyFieldRec, CTimeAgo, CMyFieldDb, CMyCircuits, CFinder },
|
||||||
emits: ['update:modelValue'],
|
emits: ['update:modelValue'],
|
||||||
props: {
|
props: {
|
||||||
modelValue: {
|
modelValue: {
|
||||||
|
|||||||
@@ -151,7 +151,8 @@
|
|||||||
</q-item-label>
|
</q-item-label>
|
||||||
|
|
||||||
<q-item-label caption lines="1" :class="(!notif.read) ? 'unread-date' : 'read-date'" @click="clickNotif(notif)">
|
<q-item-label caption lines="1" :class="(!notif.read) ? 'unread-date' : 'read-date'" @click="clickNotif(notif)">
|
||||||
{{ tools.timeAgo(notif.datenotif) }}
|
<CTimeAgo :datetime="notif.datenotif" />
|
||||||
|
|
||||||
<!--{{ // getUsernameChatByNotif(notif) }}-->
|
<!--{{ // getUsernameChatByNotif(notif) }}-->
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import { useGlobalStore } from '@store/globalStore'
|
|||||||
import { useUserStore } from '@store/UserStore'
|
import { useUserStore } from '@store/UserStore'
|
||||||
|
|
||||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||||
|
import { CTimeAgo } from '@/components/CTimeAgo'
|
||||||
import { CMyFieldRec } from '@/components/CMyFieldRec'
|
import { CMyFieldRec } from '@/components/CMyFieldRec'
|
||||||
import { CMyFieldDb } from '@/components/CMyFieldDb'
|
import { CMyFieldDb } from '@/components/CMyFieldDb'
|
||||||
import { shared_consts } from '@/common/shared_vuejs'
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
@@ -26,7 +27,7 @@ import { waitAndcheckPendingNotif } from '../../../store/Modules/ApiTables'
|
|||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'notifPopover',
|
name: 'notifPopover',
|
||||||
components: { CTitleBanner, CMyFieldRec, CMyFieldDb },
|
components: { CTitleBanner, CMyFieldRec, CMyFieldDb, CTimeAgo },
|
||||||
emits: ['update:modelValue'],
|
emits: ['update:modelValue'],
|
||||||
props: {
|
props: {
|
||||||
modelValue: {
|
modelValue: {
|
||||||
|
|||||||
@@ -113,6 +113,26 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
|
<q-item-label caption lines="2" v-if="notif.typedir === shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE && notif.status === 0" v-ripple>
|
||||||
|
<div class="row no-wrap justify-evenly" v-if="userStore.IsReqHandShakeByUsername(notif.sender)">
|
||||||
|
<q-btn
|
||||||
|
dense
|
||||||
|
rounded
|
||||||
|
size="sm"
|
||||||
|
icon="fas fa-user-plus"
|
||||||
|
color="positive" :label="$t('handshake.accept')"
|
||||||
|
@click="tools.addToMyHandShake(q, userStore.my.username, notif.sender)"
|
||||||
|
/>
|
||||||
|
<q-btn
|
||||||
|
dense
|
||||||
|
rounded
|
||||||
|
size="sm"
|
||||||
|
icon="fas fa-user-minus"
|
||||||
|
color="negative" :label="$t('handshake.refuse')"
|
||||||
|
@click="tools.refuseReqHandShake(q, userStore.my.username, notif.sender)"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</q-item-label>
|
||||||
<q-item-label caption lines="2"
|
<q-item-label caption lines="2"
|
||||||
v-else-if="notif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS && notif.status === 0 && notif.typeid === shared_consts.TypeNotifs.ID_GROUP_REQUEST_TO_ENTER"
|
v-else-if="notif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS && notif.status === 0 && notif.typeid === shared_consts.TypeNotifs.ID_GROUP_REQUEST_TO_ENTER"
|
||||||
v-ripple>
|
v-ripple>
|
||||||
@@ -137,7 +157,7 @@
|
|||||||
</q-item-label>
|
</q-item-label>
|
||||||
|
|
||||||
<q-item-label caption lines="1" :class="(!notif.read) ? 'unread-date' : 'read-date'" @click="clickNotif(notif)">
|
<q-item-label caption lines="1" :class="(!notif.read) ? 'unread-date' : 'read-date'" @click="clickNotif(notif)">
|
||||||
{{ tools.timeAgo(notif.datenotif) }}
|
<CTimeAgo :datetime="notif.datenotif" />
|
||||||
<!--{{ // getUsernameChatByNotif(notif) }}-->
|
<!--{{ // getUsernameChatByNotif(notif) }}-->
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
|
|||||||
@@ -174,6 +174,19 @@ export default function () {
|
|||||||
descr += '( ' + $t('movement.causal') + ': ' + notif.extrarec.causal + ')'
|
descr += '( ' + $t('movement.causal') + ': ' + notif.extrarec.causal + ')'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE) {
|
||||||
|
if (notif.status === shared_consts.StatusNotifs.STATUS_HANDSHAKE_ACCEPTED) {
|
||||||
|
descr += '<br><em>' + $t('handshake.accepted') + '</em>'
|
||||||
|
} else if (notif.status === shared_consts.StatusNotifs.STATUS_HANDSHAKE_REFUSED) {
|
||||||
|
descr += '<br><em>' + $t('handshake.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) {
|
} else if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS) {
|
||||||
if (notif.status === shared_consts.GroupsNotifs.STATUS_GROUPS_ACCEPTED) {
|
if (notif.status === shared_consts.GroupsNotifs.STATUS_GROUPS_ACCEPTED) {
|
||||||
descr += '<br><em>' + $t('groups.accepted') + '</em>'
|
descr += '<br><em>' + $t('groups.accepted') + '</em>'
|
||||||
|
|||||||
@@ -248,6 +248,8 @@ export interface IConfPages {
|
|||||||
showViewProfile: boolean
|
showViewProfile: boolean
|
||||||
enablePwa: boolean
|
enablePwa: boolean
|
||||||
lang: number
|
lang: number
|
||||||
|
videoPromo: string
|
||||||
|
PDFPromo: string
|
||||||
}
|
}
|
||||||
export interface IContacts {
|
export interface IContacts {
|
||||||
facebook: string
|
facebook: string
|
||||||
|
|||||||
@@ -96,6 +96,8 @@ export interface IUserProfile {
|
|||||||
myshares: IShareWithUs[]
|
myshares: IShareWithUs[]
|
||||||
friends: IFriends[]
|
friends: IFriends[]
|
||||||
req_friends: IFriends[]
|
req_friends: IFriends[]
|
||||||
|
handshake: IFriends[]
|
||||||
|
req_handshake: IFriends[]
|
||||||
mygroups: IMyGroup[]
|
mygroups: IMyGroup[]
|
||||||
mycircuits: IMyCircuit[]
|
mycircuits: IMyCircuit[]
|
||||||
manage_mygroups: IMyGroup[]
|
manage_mygroups: IMyGroup[]
|
||||||
@@ -108,6 +110,7 @@ export interface IUserProfile {
|
|||||||
|
|
||||||
// in memory
|
// in memory
|
||||||
asked_friends: any[]
|
asked_friends: any[]
|
||||||
|
asked_handshake: any[]
|
||||||
asked_groups: IGroupShort[]
|
asked_groups: IGroupShort[]
|
||||||
refused_groups: IGroupShort[]
|
refused_groups: IGroupShort[]
|
||||||
list_usersgroup?: IFriends[]
|
list_usersgroup?: IFriends[]
|
||||||
|
|||||||
@@ -664,6 +664,16 @@
|
|||||||
:type="costanti.FieldType.boolean"
|
:type="costanti.FieldType.boolean"
|
||||||
>
|
>
|
||||||
</CMyFieldDb>
|
</CMyFieldDb>
|
||||||
|
<CMyFieldDb
|
||||||
|
table="sites"
|
||||||
|
:title="$t('confpages.PDFPromo')"
|
||||||
|
:id="mysite._id"
|
||||||
|
:rec="mysite"
|
||||||
|
mykey="confpages"
|
||||||
|
mysubkey="PDFPromo"
|
||||||
|
:type="costanti.FieldType.string"
|
||||||
|
>
|
||||||
|
</CMyFieldDb>
|
||||||
</div>
|
</div>
|
||||||
<CMyFieldDb
|
<CMyFieldDb
|
||||||
table="sites"
|
table="sites"
|
||||||
@@ -675,6 +685,16 @@
|
|||||||
:type="costanti.FieldType.boolean"
|
:type="costanti.FieldType.boolean"
|
||||||
>
|
>
|
||||||
</CMyFieldDb>
|
</CMyFieldDb>
|
||||||
|
<CMyFieldDb
|
||||||
|
table="sites"
|
||||||
|
:title="$t('confpages.videoPromo')"
|
||||||
|
:id="mysite._id"
|
||||||
|
:rec="mysite"
|
||||||
|
mykey="confpages"
|
||||||
|
mysubkey="videoPromo"
|
||||||
|
:type="costanti.FieldType.string"
|
||||||
|
>
|
||||||
|
</CMyFieldDb>
|
||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
</q-tab-panels>
|
</q-tab-panels>
|
||||||
|
|
||||||
|
|||||||
@@ -209,11 +209,14 @@ const msg_it = {
|
|||||||
duplicatedrecord: 'Vuoi Duplicare il record',
|
duplicatedrecord: 'Vuoi Duplicare il record',
|
||||||
recdupfailed: 'Errore durante la duplicazione del Record',
|
recdupfailed: 'Errore durante la duplicazione del Record',
|
||||||
friendsadded: 'Aggiunto alla lista di Amici',
|
friendsadded: 'Aggiunto alla lista di Amici',
|
||||||
|
handshakesadded: 'Aggiunto alla lista Strette di Mano',
|
||||||
domanda_removefriend: 'Rimuovi dagli Amici {username}?',
|
domanda_removefriend: 'Rimuovi dagli Amici {username}?',
|
||||||
|
domanda_removehandshake: 'Rimuovi dalla lista Strette di Mano {username}?',
|
||||||
domanda_exit_fromgroup: 'Uscire dal Gruppo {groupname} ?',
|
domanda_exit_fromgroup: 'Uscire dal Gruppo {groupname} ?',
|
||||||
domanda_addadminofmygroup: 'Aggiungere {username} come Amministratore del Gruppo {groupname} ?',
|
domanda_addadminofmygroup: 'Aggiungere {username} come Amministratore del Gruppo {groupname} ?',
|
||||||
domanda_removeadminofmygroup: 'Rimuovere {username} dall\' incarico di Amministratore del Gruppo {groupname} ?',
|
domanda_removeadminofmygroup: 'Rimuovere {username} dall\' incarico di Amministratore del Gruppo {groupname} ?',
|
||||||
removedfriend: 'Rimosso dalla lista di Amici',
|
removedfriend: 'Rimosso dalla lista di Amici',
|
||||||
|
removedhandshake: 'Rimosso dalla lista Strette di Mano',
|
||||||
addedtoadmin: 'Aggiunto {username} come amministratore',
|
addedtoadmin: 'Aggiunto {username} come amministratore',
|
||||||
removedtoadmin: 'Rimosso {username} come amministratore',
|
removedtoadmin: 'Rimosso {username} come amministratore',
|
||||||
refusedgroup: 'Rifiutato a {username} la richiesta di entrare nel Gruppo',
|
refusedgroup: 'Rifiutato a {username} la richiesta di entrare nel Gruppo',
|
||||||
@@ -223,23 +226,32 @@ const msg_it = {
|
|||||||
insertgoodorservices_to_enter_circuit: 'Per poter entrare nel Circuito è necessario aggiungere almeno un Bene, Servizio o offrire Ospitalità',
|
insertgoodorservices_to_enter_circuit: 'Per poter entrare nel Circuito è necessario aggiungere almeno un Bene, Servizio o offrire Ospitalità',
|
||||||
deletedgroup: 'Gruppo Eliminato',
|
deletedgroup: 'Gruppo Eliminato',
|
||||||
domanda_addtofriend: 'Aggiungere agli amici {username}?',
|
domanda_addtofriend: 'Aggiungere agli amici {username}?',
|
||||||
|
domanda_addtohandshake: 'Hai stretto la mano a {username}?',
|
||||||
|
addtohandshake: 'Hai stretto la mano a {username}',
|
||||||
domanda_addtogroup: 'Aggiungi {username} al gruppo {groupname}?',
|
domanda_addtogroup: 'Aggiungi {username} al gruppo {groupname}?',
|
||||||
domanda_addtocircuit: 'Aggiungi {username} al Circuito {circuitname}?',
|
domanda_addtocircuit: 'Aggiungi {username} al Circuito {circuitname}?',
|
||||||
addedfriend: 'Aggiunto alla lista di Amici',
|
addedfriend: 'Aggiunto alla lista di Amici',
|
||||||
|
addedhandshake: 'Aggiunto alla lista Strette di Mano',
|
||||||
addedgroup: 'Aggiunto al Gruppo',
|
addedgroup: 'Aggiunto al Gruppo',
|
||||||
addedcircuit: 'Aggiunto al Circuito {circuitname}',
|
addedcircuit: 'Aggiunto al Circuito {circuitname}',
|
||||||
domanda_trusted: 'Accettare la Fiducia a {username}?',
|
domanda_trusted: 'Accettare la Fiducia a {username}?',
|
||||||
trusted: 'Accettato la Fiducia',
|
trusted: 'Accettato la Fiducia',
|
||||||
domanda_ask_friend: 'Chiedere l\'Amicizia a {username}?',
|
domanda_ask_friend: 'Chiedere l\'Amicizia a {username}?',
|
||||||
|
domanda_ask_handshake: 'Chiedere di confermare la vostra Stretta di mano a {username}?',
|
||||||
domanda_ask_group: 'Chiedere l\'invito al Gruppo {groupname}?',
|
domanda_ask_group: 'Chiedere l\'invito al Gruppo {groupname}?',
|
||||||
askedtofriend: 'Chiesto l\'Amicizia a {username}',
|
askedtofriend: 'Chiesto l\'Amicizia a {username}',
|
||||||
|
askedtohandshake: 'Chiesto la Stretta di mano a {username}',
|
||||||
domanda_revoke_friend: 'Revocare la richiesta di Amicizia a {username}?',
|
domanda_revoke_friend: 'Revocare la richiesta di Amicizia a {username}?',
|
||||||
|
domanda_revoke_handshake: 'Revocare la richiesta di Stretta di mano a {username}?',
|
||||||
domanda_revoke_group: 'Revocare la richiesta al gruppo {groupname}?',
|
domanda_revoke_group: 'Revocare la richiesta al gruppo {groupname}?',
|
||||||
domanda_refuse_group: 'Rifiutare la richiesta di {username} per entrare nel gruppo {groupname}?',
|
domanda_refuse_group: 'Rifiutare la richiesta di {username} per entrare nel gruppo {groupname}?',
|
||||||
revoketofriend: 'Revocato la richiesta di Amicizia a {username}',
|
revoketofriend: 'Revocato la richiesta di Amicizia a {username}',
|
||||||
|
revoketohandshake: 'Revocato la richiesta di Stretta di mano a {username}',
|
||||||
domanda_cancel_req_friend: 'Annullare la richiesta di Amicizia a {username}?',
|
domanda_cancel_req_friend: 'Annullare la richiesta di Amicizia a {username}?',
|
||||||
|
domanda_cancel_req_handshake: 'Annullare la richiesta di Stretta di mano a {username}?',
|
||||||
domanda_cancel_req_group: 'Annullare la richiesta d\'invito di {username} al gruppo {groupname}?',
|
domanda_cancel_req_group: 'Annullare la richiesta d\'invito di {username} al gruppo {groupname}?',
|
||||||
cancel_req_friend: 'Annullata la richiesta di Amicizia a {username}',
|
cancel_req_friend: 'Annullata la richiesta di Amicizia a {username}',
|
||||||
|
cancel_req_handshake: 'Annullata la richiesta di Stretta di mano a {username}',
|
||||||
cancel_req_group: 'Annullata la richiesta al gruppo {groupname}',
|
cancel_req_group: 'Annullata la richiesta al gruppo {groupname}',
|
||||||
domanda_rejectedtrust: 'Rifiutare la Fiducia a {username}?',
|
domanda_rejectedtrust: 'Rifiutare la Fiducia a {username}?',
|
||||||
rejected: 'Rifiutato la Fiducia',
|
rejected: 'Rifiutato la Fiducia',
|
||||||
@@ -1067,10 +1079,25 @@ const msg_it = {
|
|||||||
block_user: 'Blocca Utente',
|
block_user: 'Blocca Utente',
|
||||||
ask_friend: 'Chiedi l\'Amicizia',
|
ask_friend: 'Chiedi l\'Amicizia',
|
||||||
cancel_ask_friend: 'Annulla la richiesta di Amicizia',
|
cancel_ask_friend: 'Annulla la richiesta di Amicizia',
|
||||||
cancel_ask_friend_short: 'Annulla richiesta',
|
cancel_ask_friend_short: 'Annulla rich. Amicizia',
|
||||||
reject_ask_friend: 'Rifiuta l\'Amicizia',
|
reject_ask_friend: 'Rifiuta l\'Amicizia',
|
||||||
report_user: 'Segnala Utente',
|
report_user: 'Segnala Utente',
|
||||||
},
|
},
|
||||||
|
handshake: {
|
||||||
|
strettedimano: 'Strette di mano',
|
||||||
|
received: 'Ricevute',
|
||||||
|
accept_trust: 'Accetta la Stretta di mano',
|
||||||
|
accepted: 'Stretta di mano Accettata',
|
||||||
|
refused: 'Stretta di mano Rifiutata',
|
||||||
|
accept: 'Accetta',
|
||||||
|
refuse: 'Rifiuta',
|
||||||
|
accept_handshake: 'Accetta la Stretta di mano',
|
||||||
|
remove_from_myhandshake: 'Rimuovi dalle Strette di mano',
|
||||||
|
ask_handshake: 'Chiedi',
|
||||||
|
cancel_ask_handshake: 'Annulla la richiesta di Stretta di mano',
|
||||||
|
cancel_ask_handshake_short: 'Annulla',
|
||||||
|
reject_ask_handshake: 'Rifiuta la Stretta di mano',
|
||||||
|
},
|
||||||
shared: {
|
shared: {
|
||||||
info1: 'Info',
|
info1: 'Info',
|
||||||
subscribes: 'Membri',
|
subscribes: 'Membri',
|
||||||
@@ -1351,9 +1378,11 @@ const msg_it = {
|
|||||||
showViewGroups: 'Bott. Gruppi',
|
showViewGroups: 'Bott. Gruppi',
|
||||||
showViewUsers: 'Bott. Users',
|
showViewUsers: 'Bott. Users',
|
||||||
showViewCircuits: 'Bott. Circuiti',
|
showViewCircuits: 'Bott. Circuiti',
|
||||||
|
videoPromo: 'Video Presentazione',
|
||||||
showViewBooking: 'Bott. Prenotaz.',
|
showViewBooking: 'Bott. Prenotaz.',
|
||||||
showViewProfile: 'Bott. Profile',
|
showViewProfile: 'Bott. Profile',
|
||||||
enablePwa: 'PWA',
|
enablePwa: 'PWA',
|
||||||
|
PDFPromo: 'PDF Presentazione',
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -243,6 +243,10 @@ export const costanti = {
|
|||||||
FIND_GROUP: 20,
|
FIND_GROUP: 20,
|
||||||
MY_GROUPS: 21,
|
MY_GROUPS: 21,
|
||||||
USER_GROUPS: 22,
|
USER_GROUPS: 22,
|
||||||
|
HANDSHAKE: 23,
|
||||||
|
REQ_HANDSHAKE: 24,
|
||||||
|
ASK_SENT_HANDSHAKE: 25,
|
||||||
|
|
||||||
CREATE_GROUP: 30,
|
CREATE_GROUP: 30,
|
||||||
MANAGE_GROUPS: 31,
|
MANAGE_GROUPS: 31,
|
||||||
ADMIN_GROUPS: 40,
|
ADMIN_GROUPS: 40,
|
||||||
|
|||||||
@@ -3030,6 +3030,7 @@ export const tools = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
getstrShortDate(mydate: Date | number | string | undefined) {
|
getstrShortDate(mydate: Date | number | string | undefined) {
|
||||||
|
try {
|
||||||
const DateFormatter = new Intl.DateTimeFormat(toolsext.getLocale() || void 0, {
|
const DateFormatter = new Intl.DateTimeFormat(toolsext.getLocale() || void 0, {
|
||||||
weekday: 'long',
|
weekday: 'long',
|
||||||
day: 'numeric',
|
day: 'numeric',
|
||||||
@@ -3047,6 +3048,10 @@ export const tools = {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
getstrVeryShortDate(mydate: Date | number | string | undefined) {
|
getstrVeryShortDate(mydate: Date | number | string | undefined) {
|
||||||
const DateFormatter = new Intl.DateTimeFormat(toolsext.getLocale() || void 0, {
|
const DateFormatter = new Intl.DateTimeFormat(toolsext.getLocale() || void 0, {
|
||||||
@@ -5455,6 +5460,48 @@ export const tools = {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
addToMyHandShake($q: any, username: string, usernameDest: string) {
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
const notifStore = useNotifStore()
|
||||||
|
$q.dialog({
|
||||||
|
message: t('db.domanda_addtohandshake', { username: usernameDest }),
|
||||||
|
ok: { label: t('dialog.yes'), push: true },
|
||||||
|
cancel: { label: t('dialog.cancel') },
|
||||||
|
title: t('db.domanda')
|
||||||
|
}).onOk(() => {
|
||||||
|
|
||||||
|
userStore.setFriendsCmd($q, t, username, usernameDest, shared_consts.FRIENDSCMD.SETHANDSHAKE, null)
|
||||||
|
.then((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
notifStore.updateNotification = true
|
||||||
|
userStore.my.profile.handshake = [...userStore.my.profile.handshake, res]
|
||||||
|
userStore.my.profile.req_handshake = userStore.my.profile.req_handshake.filter((rec: IFriends) => rec.username !== usernameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.addedhandshake'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
removeFromMyHandShake($q: any, username: string, usernameDest: string) {
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
|
$q.dialog({
|
||||||
|
message: t('db.domanda_removehandshake', { username: usernameDest }),
|
||||||
|
ok: { label: t('dialog.yes'), push: true },
|
||||||
|
cancel: { label: t('dialog.cancel') },
|
||||||
|
title: t('db.domanda')
|
||||||
|
}).onOk(() => {
|
||||||
|
|
||||||
|
userStore.setFriendsCmd($q, t, username, usernameDest, shared_consts.FRIENDSCMD.REMOVE_FROM_MYHANDSHAKE, null).then((res) => {
|
||||||
|
if (res) {
|
||||||
|
userStore.my.profile.handshake = userStore.my.profile.handshake.filter((rec: IFriends) => rec.username !== usernameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.removedhandshake'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
blockUser($q: any, username: string, usernameDest: string) {
|
blockUser($q: any, username: string, usernameDest: string) {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
$q.dialog({
|
$q.dialog({
|
||||||
@@ -5525,6 +5572,27 @@ export const tools = {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
refuseReqHandShake($q: any, username: string, usernameDest: string) {
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
const notifStore = useNotifStore()
|
||||||
|
$q.dialog({
|
||||||
|
message: t('db.domanda_revoke_handshake', { username: usernameDest }),
|
||||||
|
ok: { label: t('dialog.yes'), push: true },
|
||||||
|
cancel: { label: t('dialog.cancel') },
|
||||||
|
title: t('db.domanda')
|
||||||
|
}).onOk(() => {
|
||||||
|
|
||||||
|
userStore.setFriendsCmd($q, t, username, usernameDest, shared_consts.FRIENDSCMD.REMOVE_FROM_MYHANDSHAKE, null).then((res) => {
|
||||||
|
if (res) {
|
||||||
|
notifStore.updateNotification = true
|
||||||
|
userStore.my.profile.req_handshake = userStore.my.profile.req_handshake.filter((user: IFriends) => user.username !== usernameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.removedhandshake'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
updateMyData(res: any) {
|
updateMyData(res: any) {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const circuitStore = useCircuitStore()
|
const circuitStore = useCircuitStore()
|
||||||
@@ -5805,6 +5873,49 @@ export const tools = {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setRequestHandShake($q: any, username: string, usernameDest: string, value: boolean) {
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
|
let msg = ''
|
||||||
|
if (value) {
|
||||||
|
msg = t('db.domanda_ask_handshake', { username: usernameDest })
|
||||||
|
} else {
|
||||||
|
msg = t('db.domanda_revoke_handshake', { username: usernameDest })
|
||||||
|
}
|
||||||
|
|
||||||
|
$q.dialog({
|
||||||
|
message: msg,
|
||||||
|
ok: {
|
||||||
|
label: t('dialog.yes'),
|
||||||
|
push: true
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
label: t('dialog.cancel')
|
||||||
|
},
|
||||||
|
title: t('db.domanda')
|
||||||
|
}).onOk(() => {
|
||||||
|
|
||||||
|
userStore.setFriendsCmd($q, t, username, usernameDest, shared_consts.FRIENDSCMD.REQHANDSHAKE, value)
|
||||||
|
.then((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
if (value) {
|
||||||
|
// ADD to req HandShake
|
||||||
|
userStore.my.profile.asked_handshake.push(res)
|
||||||
|
tools.showPositiveNotif($q, t('db.askedtohandshake', { username: usernameDest }))
|
||||||
|
} else {
|
||||||
|
// REMOVE to req HandShake
|
||||||
|
userStore.my.profile.asked_handshake = userStore.my.profile.asked_handshake.filter((rec: IUserFields) => rec.username !== usernameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.revoketohandshake', { username: usernameDest }))
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
tools.showNegativeNotif($q, t('db.recfailed'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
setRequestGroup($q: any, username: string, groupnameDest: string, value: boolean) {
|
setRequestGroup($q: any, username: string, groupnameDest: string, value: boolean) {
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
@@ -5864,6 +5975,23 @@ export const tools = {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
cancelReqHandShake($q: any, username: string, usernameDest: string) {
|
||||||
|
const userStore = useUserStore()
|
||||||
|
$q.dialog({
|
||||||
|
message: t('db.domanda_cancel_req_handshake', { username: usernameDest }),
|
||||||
|
ok: { label: t('dialog.yes'), push: true },
|
||||||
|
cancel: { label: t('dialog.cancel') },
|
||||||
|
title: t('db.domanda')
|
||||||
|
}).onOk(() => {
|
||||||
|
|
||||||
|
userStore.setFriendsCmd($q, t, username, usernameDest, shared_consts.FRIENDSCMD.CANCEL_REQ_HANDSHAKE, null).then((res) => {
|
||||||
|
if (res) {
|
||||||
|
userStore.my.profile.asked_handshake = userStore.my.profile.asked_handshake.filter((rec: IUserFields) => rec.username !== usernameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.cancel_req_handshake'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
cancelReqGroups($q: any, username: string, groupnameDest: string) {
|
cancelReqGroups($q: any, username: string, groupnameDest: string) {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
$q.dialog({
|
$q.dialog({
|
||||||
@@ -6479,10 +6607,18 @@ export const tools = {
|
|||||||
tools.addToMyFriends($q, username, dest)
|
tools.addToMyFriends($q, username, dest)
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.REQFRIEND) {
|
} else if (cmd === shared_consts.FRIENDSCMD.REQFRIEND) {
|
||||||
tools.setRequestFriendship($q, username, dest, value)
|
tools.setRequestFriendship($q, username, dest, value)
|
||||||
|
} else if (cmd === shared_consts.FRIENDSCMD.SETHANDSHAKE) {
|
||||||
|
tools.addToMyHandShake($q, username, dest)
|
||||||
|
} else if (cmd === shared_consts.FRIENDSCMD.REQHANDSHAKE) {
|
||||||
|
tools.setRequestHandShake($q, username, dest, value)
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.REFUSE_REQ_FRIEND) {
|
} else if (cmd === shared_consts.FRIENDSCMD.REFUSE_REQ_FRIEND) {
|
||||||
tools.refuseReqFriends($q, username, dest)
|
tools.refuseReqFriends($q, username, dest)
|
||||||
|
} else if (cmd === shared_consts.FRIENDSCMD.REFUSE_REQ_HANDSHAKE) {
|
||||||
|
tools.refuseReqHandShake($q, username, dest)
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.CANCEL_REQ_FRIEND) {
|
} else if (cmd === shared_consts.FRIENDSCMD.CANCEL_REQ_FRIEND) {
|
||||||
tools.cancelReqFriends($q, username, dest)
|
tools.cancelReqFriends($q, username, dest)
|
||||||
|
} else if (cmd === shared_consts.FRIENDSCMD.CANCEL_REQ_HANDSHAKE) {
|
||||||
|
tools.cancelReqHandShake($q, username, dest)
|
||||||
} else if (cmd === shared_consts.CIRCUITCMD.SET) {
|
} else if (cmd === shared_consts.CIRCUITCMD.SET) {
|
||||||
tools.addToMyCircuits($q, username, dest)
|
tools.addToMyCircuits($q, username, dest)
|
||||||
} else if (cmd === shared_consts.CIRCUITCMD.REQ) {
|
} else if (cmd === shared_consts.CIRCUITCMD.REQ) {
|
||||||
@@ -7079,30 +7215,6 @@ export const tools = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
timeAgo(input: any) {
|
|
||||||
const date = (input instanceof Date) ? input : new Date(input)
|
|
||||||
const formatter = new Intl.RelativeTimeFormat(toolsext.getLocale() || 'it')
|
|
||||||
const ranges: any = {
|
|
||||||
years: 3600 * 24 * 365,
|
|
||||||
months: 3600 * 24 * 30,
|
|
||||||
weeks: 3600 * 24 * 7,
|
|
||||||
days: 3600 * 24,
|
|
||||||
hours: 3600,
|
|
||||||
minutes: 60,
|
|
||||||
seconds: 1
|
|
||||||
}
|
|
||||||
const secondsElapsed = (date.getTime() - Date.now()) / 1000
|
|
||||||
let key: any
|
|
||||||
for (key in ranges) {
|
|
||||||
if (ranges[key] < Math.abs(secondsElapsed)) {
|
|
||||||
// @ts-ignore
|
|
||||||
const delta = secondsElapsed / ranges[key]
|
|
||||||
// @ts-ignore
|
|
||||||
return formatter.format(Math.round(delta), key)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
getEnv(name: string) {
|
getEnv(name: string) {
|
||||||
const config: any = {
|
const config: any = {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ export const DefaultUser: IUserFields = {
|
|||||||
myshares: [],
|
myshares: [],
|
||||||
friends: [],
|
friends: [],
|
||||||
req_friends: [],
|
req_friends: [],
|
||||||
|
handshake: [],
|
||||||
|
req_handshake: [],
|
||||||
|
asked_handshake: [],
|
||||||
mygroups: [],
|
mygroups: [],
|
||||||
mycircuits: [],
|
mycircuits: [],
|
||||||
manage_mygroups: [],
|
manage_mygroups: [],
|
||||||
@@ -123,6 +126,9 @@ export const DefaultProfile: IUserProfile = {
|
|||||||
myshares: [],
|
myshares: [],
|
||||||
friends: [],
|
friends: [],
|
||||||
req_friends: [],
|
req_friends: [],
|
||||||
|
handshake: [],
|
||||||
|
req_handshake: [],
|
||||||
|
asked_handshake: [],
|
||||||
mygroups: [],
|
mygroups: [],
|
||||||
mycircuits: [],
|
mycircuits: [],
|
||||||
manage_mygroups: [],
|
manage_mygroups: [],
|
||||||
@@ -220,6 +226,12 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
else
|
else
|
||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
|
IsHandShakeByUsername(username: string): boolean {
|
||||||
|
if (this.my.profile.handshake)
|
||||||
|
return this.my.profile.handshake.findIndex((rec) => rec.username === username) >= 0
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
},
|
||||||
|
|
||||||
IsMyGroupByGroupname(groupname: string): boolean {
|
IsMyGroupByGroupname(groupname: string): boolean {
|
||||||
if (this.my.profile.mygroups)
|
if (this.my.profile.mygroups)
|
||||||
@@ -251,6 +263,13 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
IsAskedHandShakeByUsername(username: string): boolean {
|
||||||
|
if (this.my.profile.asked_handshake)
|
||||||
|
return this.my.profile.asked_handshake.findIndex((rec) => rec.username === username) >= 0
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
},
|
||||||
|
|
||||||
IsReqFriendByUsername(username: string): boolean {
|
IsReqFriendByUsername(username: string): boolean {
|
||||||
if (this.my.profile.req_friends)
|
if (this.my.profile.req_friends)
|
||||||
return this.my.profile.req_friends.findIndex((rec) => rec.username === username) >= 0
|
return this.my.profile.req_friends.findIndex((rec) => rec.username === username) >= 0
|
||||||
@@ -258,6 +277,13 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
IsReqHandShakeByUsername(username: string): boolean {
|
||||||
|
if (this.my.profile.req_handshake)
|
||||||
|
return this.my.profile.req_handshake.findIndex((rec) => rec.username === username) >= 0
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
},
|
||||||
|
|
||||||
IsAskedGroupByGroupname(groupname: string): boolean {
|
IsAskedGroupByGroupname(groupname: string): boolean {
|
||||||
if (this.my.profile.asked_groups)
|
if (this.my.profile.asked_groups)
|
||||||
return this.my.profile.asked_groups.findIndex((rec: IGroupShort) => rec.groupname === groupname) >= 0
|
return this.my.profile.asked_groups.findIndex((rec: IGroupShort) => rec.groupname === groupname) >= 0
|
||||||
@@ -733,6 +759,7 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
// Memory
|
// Memory
|
||||||
this.my.profile.manage_mygroups = []
|
this.my.profile.manage_mygroups = []
|
||||||
this.my.profile.asked_friends = []
|
this.my.profile.asked_friends = []
|
||||||
|
this.my.profile.asked_handshake = []
|
||||||
this.my.profile.asked_groups = []
|
this.my.profile.asked_groups = []
|
||||||
this.my.profile.refused_groups = []
|
this.my.profile.refused_groups = []
|
||||||
}
|
}
|
||||||
@@ -1151,7 +1178,10 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
.then((ris) => {
|
.then((ris) => {
|
||||||
this.my.profile.friends = ris.data.friends.listFriends ? ris.data.friends.listFriends : []
|
this.my.profile.friends = ris.data.friends.listFriends ? ris.data.friends.listFriends : []
|
||||||
this.my.profile.req_friends = ris.data.friends.listRequestFriends ? ris.data.friends.listRequestFriends : []
|
this.my.profile.req_friends = ris.data.friends.listRequestFriends ? ris.data.friends.listRequestFriends : []
|
||||||
|
this.my.profile.handshake = ris.data.friends.listHandShake ? ris.data.friends.listHandShake : []
|
||||||
|
this.my.profile.req_handshake = ris.data.friends.listRequestHandShake ? ris.data.friends.listRequestHandShake : []
|
||||||
this.my.profile.asked_friends = ris.data.friends.listSentRequestFriends ? ris.data.friends.listSentRequestFriends : []
|
this.my.profile.asked_friends = ris.data.friends.listSentRequestFriends ? ris.data.friends.listSentRequestFriends : []
|
||||||
|
this.my.profile.asked_handshake = ris.data.friends.listSentRequestHandShake ? ris.data.friends.listSentRequestHandShake : []
|
||||||
|
|
||||||
return ris.data.user
|
return ris.data.user
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
@@ -1255,7 +1285,10 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
.then((ris) => {
|
.then((ris) => {
|
||||||
this.my.profile.friends = ris.data.listFriends ? ris.data.listFriends : []
|
this.my.profile.friends = ris.data.listFriends ? ris.data.listFriends : []
|
||||||
this.my.profile.req_friends = ris.data.listRequestFriends ? ris.data.listRequestFriends : []
|
this.my.profile.req_friends = ris.data.listRequestFriends ? ris.data.listRequestFriends : []
|
||||||
|
this.my.profile.handshake = ris.data.friends.listHandShake ? ris.data.friends.listHandShake : []
|
||||||
|
this.my.profile.req_handshake = ris.data.friends.listRequestHandShake ? ris.data.friends.listRequestHandShake : []
|
||||||
this.my.profile.asked_friends = ris.data.listSentRequestFriends ? ris.data.listSentRequestFriends : []
|
this.my.profile.asked_friends = ris.data.listSentRequestFriends ? ris.data.listSentRequestFriends : []
|
||||||
|
this.my.profile.asked_handshake = ris.data.friends.listSentRequestHandShake ? ris.data.friends.listSentRequestHandShake : []
|
||||||
return ris.data
|
return ris.data
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
return {}
|
return {}
|
||||||
|
|||||||
@@ -174,6 +174,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
showViewProfile: false,
|
showViewProfile: false,
|
||||||
enablePwa: false,
|
enablePwa: false,
|
||||||
lang: costanti.Lang.IT,
|
lang: costanti.Lang.IT,
|
||||||
|
videoPromo: '',
|
||||||
|
PDFPromo: '',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
provinces: [],
|
provinces: [],
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import { CMyGroup } from '@/components/CMyGroup'
|
|||||||
import { CMyCircuit } from '@/components/CMyCircuit'
|
import { CMyCircuit } from '@/components/CMyCircuit'
|
||||||
import { CNotifAtTop } from '@src/components/CNotifAtTop'
|
import { CNotifAtTop } from '@src/components/CNotifAtTop'
|
||||||
import { CSendCoins } from '@/components/CSendCoins'
|
import { CSendCoins } from '@/components/CSendCoins'
|
||||||
|
import { CTimeAgo } from '@/components/CTimeAgo'
|
||||||
import { CMyUser } from '@/components/CMyUser'
|
import { CMyUser } from '@/components/CMyUser'
|
||||||
import { CUserNonVerif } from '@/components/CUserNonVerif'
|
import { CUserNonVerif } from '@/components/CUserNonVerif'
|
||||||
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
|
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
|
||||||
@@ -35,7 +36,7 @@ export default defineComponent({
|
|||||||
components: {
|
components: {
|
||||||
CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CCopyBtn, CUserNonVerif, CMyFieldRec, CMyUser,
|
CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CCopyBtn, CUserNonVerif, CMyFieldRec, CMyUser,
|
||||||
CMyGroup, CLabel, CMyCircuit, CSendCoins, CNotifAtTop,
|
CMyGroup, CLabel, CMyCircuit, CSendCoins, CNotifAtTop,
|
||||||
CCheckIfIsLogged
|
CCheckIfIsLogged, CTimeAgo
|
||||||
},
|
},
|
||||||
props: {},
|
props: {},
|
||||||
setup() {
|
setup() {
|
||||||
@@ -50,6 +51,8 @@ export default defineComponent({
|
|||||||
const { getRefLink } = MixinUsers()
|
const { getRefLink } = MixinUsers()
|
||||||
|
|
||||||
const animation = ref('fade')
|
const animation = ref('fade')
|
||||||
|
const quantiHandShake = ref('')
|
||||||
|
const usersList = ref({show: false, title: '', list: []})
|
||||||
|
|
||||||
const username = computed(() => $route.params.username ? $route.params.username.toString() : userStore.my.username)
|
const username = computed(() => $route.params.username ? $route.params.username.toString() : userStore.my.username)
|
||||||
const idnotif = computed(() => $route.query.idnotif ? $route.query.idnotif.toString() : '')
|
const idnotif = computed(() => $route.query.idnotif ? $route.query.idnotif.toString() : '')
|
||||||
@@ -59,6 +62,7 @@ export default defineComponent({
|
|||||||
const showPic = ref(false)
|
const showPic = ref(false)
|
||||||
const caricato = ref(false)
|
const caricato = ref(false)
|
||||||
const showsendCoinTo = ref(false)
|
const showsendCoinTo = ref(false)
|
||||||
|
const showinghand = ref(false)
|
||||||
|
|
||||||
const myuser = ref(<IUserFields | null>null)
|
const myuser = ref(<IUserFields | null>null)
|
||||||
|
|
||||||
@@ -94,6 +98,8 @@ export default defineComponent({
|
|||||||
filtroutente.value = [{ userId: myuser.value._id }]
|
filtroutente.value = [{ userId: myuser.value._id }]
|
||||||
notifStore.setAsRead(idnotif.value)
|
notifStore.setAsRead(idnotif.value)
|
||||||
|
|
||||||
|
quantiHandShake.value = (myuser.value.profile.handshake ? myuser.value.profile.handshake.length : 0) + ' ' + t('handshake.received')
|
||||||
|
|
||||||
try {
|
try {
|
||||||
listgroupsfiltered.value = globalStore.mygroups.filter((grp: IMyGroup) => myuser.value!.profile.mygroups.findIndex((rec: IMyGroup) => rec.groupname === grp.groupname) >= 0)
|
listgroupsfiltered.value = globalStore.mygroups.filter((grp: IMyGroup) => myuser.value!.profile.mygroups.findIndex((rec: IMyGroup) => rec.groupname === grp.groupname) >= 0)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -175,6 +181,7 @@ export default defineComponent({
|
|||||||
username,
|
username,
|
||||||
profile,
|
profile,
|
||||||
tools,
|
tools,
|
||||||
|
toolsext,
|
||||||
costanti,
|
costanti,
|
||||||
myuser,
|
myuser,
|
||||||
shared_consts,
|
shared_consts,
|
||||||
@@ -201,6 +208,9 @@ export default defineComponent({
|
|||||||
site,
|
site,
|
||||||
listcircuitsfiltered,
|
listcircuitsfiltered,
|
||||||
isDebugOn,
|
isDebugOn,
|
||||||
|
showinghand,
|
||||||
|
quantiHandShake,
|
||||||
|
usersList,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -51,11 +51,19 @@
|
|||||||
color="green"
|
color="green"
|
||||||
>online</q-badge
|
>online</q-badge
|
||||||
>
|
>
|
||||||
|
<q-badge
|
||||||
|
v-if="userStore.IsHandShakeByUsername(myuser.username)"
|
||||||
|
align="bottom"
|
||||||
|
floating
|
||||||
|
color="red"
|
||||||
|
><q-icon name="fas fa-handshake"></q-icon
|
||||||
|
></q-badge>
|
||||||
</q-avatar>
|
</q-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="last_access">
|
<div class="last_access">
|
||||||
OnLine: {{ tools.timeAgo(myuser.lasttimeonline) }}
|
OnLine:
|
||||||
|
<CTimeAgo :datetime="myuser.lasttimeonline" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="myuser.reported">
|
<div v-if="myuser.reported">
|
||||||
@@ -147,7 +155,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="last_access">
|
<div class="last_access">
|
||||||
OnLine: {{ tools.timeAgo(myuser.lasttimeonline) }}
|
OnLine: <CTimeAgo :datetime="myuser.lasttimeonline" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="myuser.reported">
|
<div v-if="myuser.reported">
|
||||||
@@ -210,6 +218,100 @@
|
|||||||
<div v-if="myuser._id" class="col-12 text-h8 q-mt-sm">
|
<div v-if="myuser._id" class="col-12 text-h8 q-mt-sm">
|
||||||
{{ myuser.profile.biografia }}
|
{{ myuser.profile.biografia }}
|
||||||
</div>
|
</div>
|
||||||
|
<q-banner
|
||||||
|
rounded
|
||||||
|
dense
|
||||||
|
size="lg"
|
||||||
|
class="bg-grey-1 shadow-5 q-my-sm"
|
||||||
|
color="primary q-title"
|
||||||
|
style="text-align: center"
|
||||||
|
>
|
||||||
|
<div class="mybanner bg-blue text-white">{{ $t('handshake.strettedimano')}}:</div>
|
||||||
|
<div v-if="userStore.IsHandShakeByUsername(myuser.username)">
|
||||||
|
{{ $t('db.addtohandshake', { username: myuser.username }) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<q-btn
|
||||||
|
:label="quantiHandShake"
|
||||||
|
class="q-my-sm"
|
||||||
|
rounded
|
||||||
|
icon="fas fa-handshake"
|
||||||
|
@click="
|
||||||
|
usersList.show = true;
|
||||||
|
usersList.title = 'Lista Strette di mano';
|
||||||
|
usersList.list = myuser.profile.handshake;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
</q-btn>
|
||||||
|
|
||||||
|
<!--HANDSHAKE-->
|
||||||
|
<div v-if="!isMyRecord(myuser.username)">
|
||||||
|
<div
|
||||||
|
class="row centeritems q-ma-sm q-pa-sm"
|
||||||
|
v-if="userStore.IsReqHandShakeByUsername(myuser.username)"
|
||||||
|
>
|
||||||
|
<q-btn
|
||||||
|
icon="fas fa-handshake"
|
||||||
|
color="positive"
|
||||||
|
:label="$t('handshake.accept_handshake')"
|
||||||
|
@click="
|
||||||
|
tools.addToMyHandShake(
|
||||||
|
$q,
|
||||||
|
userStore.my.username,
|
||||||
|
myuser.username
|
||||||
|
)
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
<q-btn
|
||||||
|
icon="fas fa-handshake-alt-slash"
|
||||||
|
color="negative"
|
||||||
|
:label="$t('handshake.reject_ask_handshake')"
|
||||||
|
@click="
|
||||||
|
tools.refuseReqHandShake(
|
||||||
|
$q,
|
||||||
|
userStore.my.username,
|
||||||
|
myuser.username
|
||||||
|
)
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<q-btn
|
||||||
|
v-if="
|
||||||
|
!userStore.IsHandShakeByUsername(myuser.username) &&
|
||||||
|
!userStore.IsAskedHandShakeByUsername(myuser.username)
|
||||||
|
"
|
||||||
|
icon="fas fa-handshake"
|
||||||
|
color="primary"
|
||||||
|
:label="$t('handshake.ask_handshake')"
|
||||||
|
@click="
|
||||||
|
tools.setRequestHandShake(
|
||||||
|
$q,
|
||||||
|
userStore.my.username,
|
||||||
|
myuser.username,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<q-btn
|
||||||
|
v-if="
|
||||||
|
userStore.IsAskedHandShakeByUsername(myuser.username) &&
|
||||||
|
!userStore.IsHandShakeByUsername(myuser.username)
|
||||||
|
"
|
||||||
|
icon="fas fa-handshake-alt-slash"
|
||||||
|
:label="$t('handshake.cancel_ask_handshake_short')"
|
||||||
|
@click="
|
||||||
|
tools.cancelReqHandShake(
|
||||||
|
$q,
|
||||||
|
userStore.my.username,
|
||||||
|
myuser.username
|
||||||
|
)
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</q-banner>
|
||||||
|
|
||||||
<div v-if="!isMyRecord(myuser.username)">
|
<div v-if="!isMyRecord(myuser.username)">
|
||||||
<div
|
<div
|
||||||
@@ -539,6 +641,27 @@
|
|||||||
<div v-else>
|
<div v-else>
|
||||||
<CUserNonVerif></CUserNonVerif>
|
<CUserNonVerif></CUserNonVerif>
|
||||||
</div>
|
</div>
|
||||||
|
<q-dialog v-model="usersList.show">
|
||||||
|
<q-card class="dialog_card">
|
||||||
|
<q-toolbar class="bg-primary text-white">
|
||||||
|
<q-toolbar-title>
|
||||||
|
{{ usersList.title }}
|
||||||
|
</q-toolbar-title>
|
||||||
|
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||||
|
</q-toolbar>
|
||||||
|
|
||||||
|
<q-card-section class="inset-shadow">
|
||||||
|
<div v-for="(rec, i) in usersList.list" :key="i">
|
||||||
|
<CMyUser
|
||||||
|
:mycontact="rec"
|
||||||
|
:visu="costanti.FIND_PEOPLE"
|
||||||
|
@setCmd="tools.setCmd"
|
||||||
|
>
|
||||||
|
</CMyUser>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
|
</q-card>
|
||||||
|
</q-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" src="./myprofile.ts">
|
<script lang="ts" src="./myprofile.ts">
|
||||||
|
|||||||
@@ -4479,7 +4479,7 @@ dashdash@^1.12.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
|
|
||||||
date-fns@^2.29.3:
|
date-fns@^2.28.0, date-fns@^2.29.3:
|
||||||
version "2.29.3"
|
version "2.29.3"
|
||||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8"
|
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8"
|
||||||
integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==
|
integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==
|
||||||
@@ -12754,6 +12754,13 @@ vue-template-es2015-compiler@^1.2.2:
|
|||||||
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
|
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
|
||||||
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
|
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
|
||||||
|
|
||||||
|
vue-timeago3@^2.3.0:
|
||||||
|
version "2.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/vue-timeago3/-/vue-timeago3-2.3.0.tgz#897b82e27c44f198d76b39141e1807e4c381f250"
|
||||||
|
integrity sha512-9rV/f9thgjkBJeF5X2lsUSp4SENYuL0XjrXsaHvNkc0x5wHRiCG/Aefi6Xl0op/X9Oblio9NmNOQGXVWyRWm5A==
|
||||||
|
dependencies:
|
||||||
|
date-fns "^2.28.0"
|
||||||
|
|
||||||
vue2-dragula@^2.5.5:
|
vue2-dragula@^2.5.5:
|
||||||
version "2.5.5"
|
version "2.5.5"
|
||||||
resolved "https://registry.yarnpkg.com/vue2-dragula/-/vue2-dragula-2.5.5.tgz#a237fb6769b941b4658de2711c350fccd3f4c219"
|
resolved "https://registry.yarnpkg.com/vue2-dragula/-/vue2-dragula-2.5.5.tgz#a237fb6769b941b4658de2711c350fccd3f4c219"
|
||||||
|
|||||||
Reference in New Issue
Block a user