diff --git a/public/images/images/pdnm-android-icon-144x144.png b/public/images/images/pdnm-android-icon-144x144.png new file mode 100644 index 00000000..1db4e939 Binary files /dev/null and b/public/images/images/pdnm-android-icon-144x144.png differ diff --git a/public/images/images/pdnm-android-icon-192x192.png b/public/images/images/pdnm-android-icon-192x192.png new file mode 100644 index 00000000..43247743 Binary files /dev/null and b/public/images/images/pdnm-android-icon-192x192.png differ diff --git a/public/images/images/pdnm-android-icon-48x48.png b/public/images/images/pdnm-android-icon-48x48.png new file mode 100644 index 00000000..ffe0d12b Binary files /dev/null and b/public/images/images/pdnm-android-icon-48x48.png differ diff --git a/public/images/images/pdnm-android-icon-96x96.png b/public/images/images/pdnm-android-icon-96x96.png new file mode 100644 index 00000000..0bd7e619 Binary files /dev/null and b/public/images/images/pdnm-android-icon-96x96.png differ diff --git a/public/images/images/pdnm-apple-icon-114x114.png b/public/images/images/pdnm-apple-icon-114x114.png new file mode 100644 index 00000000..f01b6f18 Binary files /dev/null and b/public/images/images/pdnm-apple-icon-114x114.png differ diff --git a/public/images/images/pdnm-apple-icon-120x120.png b/public/images/images/pdnm-apple-icon-120x120.png new file mode 100644 index 00000000..cdd91bbf Binary files /dev/null and b/public/images/images/pdnm-apple-icon-120x120.png differ diff --git a/public/images/images/pdnm-apple-icon-144x144.png b/public/images/images/pdnm-apple-icon-144x144.png new file mode 100644 index 00000000..1db4e939 Binary files /dev/null and b/public/images/images/pdnm-apple-icon-144x144.png differ diff --git a/public/images/images/pdnm-apple-icon-152x152.png b/public/images/images/pdnm-apple-icon-152x152.png new file mode 100644 index 00000000..6926b821 Binary files /dev/null and b/public/images/images/pdnm-apple-icon-152x152.png differ diff --git a/public/images/images/pdnm-apple-icon-180x180.png b/public/images/images/pdnm-apple-icon-180x180.png new file mode 100644 index 00000000..942eaa82 Binary files /dev/null and b/public/images/images/pdnm-apple-icon-180x180.png differ diff --git a/src/components/CBigBtn/CBigBtn.scss b/src/components/CBigBtn/CBigBtn.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/components/CBigBtn/CBigBtn.ts b/src/components/CBigBtn/CBigBtn.ts new file mode 100755 index 00000000..ab83c103 --- /dev/null +++ b/src/components/CBigBtn/CBigBtn.ts @@ -0,0 +1,45 @@ +import { defineComponent, ref, computed, PropType, toRef } 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' + + +export default defineComponent({ + name: 'CBigBtn', + components: {}, + props: { + label: { + type: String, + required: true + }, + to: { + type: String, + required: false, + default: '' + }, + icon: { + type: String, + required: false, + default: '' + }, + color: { + type: String, + required: false, + default: 'grey' + }, + }, + setup(props, { emit }) { + + const userStore = useUserStore() + const $router = useRouter() + const globalStore = useGlobalStore() + const { t } = useI18n(); + + return { + userStore, + tools, + } + } +}) diff --git a/src/components/CBigBtn/CBigBtn.vue b/src/components/CBigBtn/CBigBtn.vue new file mode 100755 index 00000000..8c8ff7d3 --- /dev/null +++ b/src/components/CBigBtn/CBigBtn.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/src/components/CBigBtn/index.ts b/src/components/CBigBtn/index.ts new file mode 100755 index 00000000..d48fcbb0 --- /dev/null +++ b/src/components/CBigBtn/index.ts @@ -0,0 +1 @@ +export {default as CBigBtn} from './CBigBtn.vue' diff --git a/src/components/CEventsCalendar/CEventsCalendar.vue b/src/components/CEventsCalendar/CEventsCalendar.vue index dfc6fce5..d9bfdf7d 100755 --- a/src/components/CEventsCalendar/CEventsCalendar.vue +++ b/src/components/CEventsCalendar/CEventsCalendar.vue @@ -343,7 +343,7 @@ - + diff --git a/src/components/CGridTableRec/CGridTableRec.ts b/src/components/CGridTableRec/CGridTableRec.ts index 988bf626..8f506950 100755 --- a/src/components/CGridTableRec/CGridTableRec.ts +++ b/src/components/CGridTableRec/CGridTableRec.ts @@ -252,6 +252,7 @@ export default defineComponent({ let returnedData: any = ref([]) let returnedCount = 0 const colVisib: any = ref([]) + const colNotVisib: any = ref([]) const colExtra: any = ref([]) const rowclicksel = ref(null) @@ -816,6 +817,7 @@ export default defineComponent({ // console.log('updatedcol') if (mycolumns.value) { colVisib.value = [] + colNotVisib.value = [] colExtra.value = [] mycolumns.value.forEach((elem: IColGridTable) => { @@ -824,6 +826,8 @@ export default defineComponent({ if (elem.field !== costanti.NOFIELD) { if (checkIfColShow(elem.field)) { colVisib.value.push(elem.field + mysub) + } else { + colNotVisib.value.push(elem.field + mysub) } } @@ -1041,7 +1045,23 @@ export default defineComponent({ function changeCol(newval: any) { // console.log('changecol', mytable.value) if (!!mytable.value) { - tools.setCookie(mytable.value, colVisib.value.join('|')) + let arrcol = [] + let col: IColGridTable = {name: ''} + for (col of mycolumns.value) { + if (col.field !== costanti.NOFIELD) { + let obj = { + n: col.field + (col.subfield ? col.subfield : ''), + v: 0 + } + obj.v = colVisib.value.includes(obj.n) ? 1 : 0 + if (obj.v === 0) { + // scrive solo quelli da nascondere ! + arrcol.push(obj.n + ',' + obj.v) + } + } + } + + tools.setCookie(mytable.value + '_', arrcol.join('|')) } } @@ -1100,17 +1120,46 @@ export default defineComponent({ updatedcol() if (!!mytable.value) { - const myselcol = tools.getCookie(mytable.value, '') + // Leggi la lista delle colonne visibili: + const myselcol = tools.getCookie(mytable.value + '_', '') + + colVisib.value = [] + + let elem: IColGridTable + for (elem of mycolumns.value) { + if (elem.field !== costanti.NOFIELD) { + if (checkIfColShow(elem.field)) { + colVisib.value.push(elem.field! + elem.subfield!) + } + } + } + + if (!!myselcol && myselcol.length > 0) { - colVisib.value = myselcol.split('|') - } else { - mycolumns.value.forEach((elem: any) => { - if (elem.field !== costanti.NOFIELD) { - if (checkIfColShow(elem.field)) { - colVisib.value.push(elem.field + elem.subfield) + const arrselcol = myselcol.split('|') + + for (const col of arrselcol) { + const arrv = col.split(',') + if (arrv.length > 1) { + let field = arrv[0] + let visib = arrv[1] + const rec = mycolumns.value.find((rec: any) => (rec.field + rec.subfield) === field) + + + if (rec) { + if (field) { + if (visib === '1') { + if (!colVisib.value.includes(field)) + colVisib.value.push(field) // se non incluso allora lo aggiungi + } else if (visib === '0') { + // Se da togliere, lo togli + if (colVisib.value.includes(field)) + colVisib.value = colVisib.value.filter((rec: any) => rec !== field) + } + } } } - }) + } } } diff --git a/src/components/CGridTableRec/CGridTableRec.vue b/src/components/CGridTableRec/CGridTableRec.vue index 0913c1f1..94d663a7 100755 --- a/src/components/CGridTableRec/CGridTableRec.vue +++ b/src/components/CGridTableRec/CGridTableRec.vue @@ -349,7 +349,10 @@ - {{props.row['username']}} + + {{ fieldsTable.getValByTabAndId(tablesel, 'adType', props.row['adType']) }} + +
+ v-if="showColCheck(col, tools.TIPOVIS_NEW_RECORD, true, 0, newRecord) && col.foredit ">
- + @@ -530,7 +533,7 @@
- + diff --git a/src/components/CMainView/CMainView.scss b/src/components/CMainView/CMainView.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/components/CMainView/CMainView.ts b/src/components/CMainView/CMainView.ts new file mode 100755 index 00000000..02dc0ff6 --- /dev/null +++ b/src/components/CMainView/CMainView.ts @@ -0,0 +1,26 @@ +import { defineComponent, ref, computed, PropType, toRef } 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 { CBigBtn } from '@/components/CBigBtn' + + +export default defineComponent({ + name: 'CMainView', + components: { CBigBtn }, + props: {}, + setup(props, { emit }) { + + const userStore = useUserStore() + const $router = useRouter() + const globalStore = useGlobalStore() + const { t } = useI18n() + + return { + userStore, + tools, + } + } +}) diff --git a/src/components/CMainView/CMainView.vue b/src/components/CMainView/CMainView.vue new file mode 100755 index 00000000..c356138d --- /dev/null +++ b/src/components/CMainView/CMainView.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/CMainView/index.ts b/src/components/CMainView/index.ts new file mode 100755 index 00000000..0c983a21 --- /dev/null +++ b/src/components/CMainView/index.ts @@ -0,0 +1 @@ +export {default as CMainView} from './CMainView.vue' diff --git a/src/components/CMyEditor/CMyEditor.vue b/src/components/CMyEditor/CMyEditor.vue index 7b99145d..f9756551 100755 --- a/src/components/CMyEditor/CMyEditor.vue +++ b/src/components/CMyEditor/CMyEditor.vue @@ -40,7 +40,7 @@ - + diff --git a/src/components/CMyPopupEdit/CMyPopupEdit.ts b/src/components/CMyPopupEdit/CMyPopupEdit.ts index 77c86133..d8c86245 100755 --- a/src/components/CMyPopupEdit/CMyPopupEdit.ts +++ b/src/components/CMyPopupEdit/CMyPopupEdit.ts @@ -705,6 +705,7 @@ export default defineComponent({ noPopupeditByCol, getTitleEditor, getToByCol, + t, } } }) diff --git a/src/components/CMyPopupEdit/CMyPopupEdit.vue b/src/components/CMyPopupEdit/CMyPopupEdit.vue index 4ced5d2a..d9ee238a 100755 --- a/src/components/CMyPopupEdit/CMyPopupEdit.vue +++ b/src/components/CMyPopupEdit/CMyPopupEdit.vue @@ -417,9 +417,10 @@
-

- {{ $t('event.testo_di_spiegazione') }}: -

+ + {{t(col.label_trans)}} {{ $t('event.testo_di_spiegazione') }}: + +
import('@src/root/home_pdnm/home_pdnm.vue'), + //component: () => import('@src/root/home_pdnm/home_pdnm.vue'), + component: () => import('@src/root/mainview/mainview.vue'), reqauth: false, inmenu: true, infooter: true, @@ -423,6 +424,17 @@ const baseroutes: IListRoutes[] = [ inmenu: true, infooter: true, }, + { + active: true, + order: 130, + path: '/work', + materialIcon: 'fas fa-bullhorn', + name: 'mypages.work', + component: () => import('@/root/work/work.vue'), + meta: { requiresAuth: true }, + inmenu: true, + infooter: true, + }, { active: functionality.ENABLE_GROUPS, order: 132, diff --git a/src/mixins/mixin-users.ts b/src/mixins/mixin-users.ts index 9aec9bc7..19f404f7 100755 --- a/src/mixins/mixin-users.ts +++ b/src/mixins/mixin-users.ts @@ -193,5 +193,6 @@ export default function () { TelegVerificato, isVerified, paotest, + getRefLink, } } diff --git a/src/root/mainview/mainview.scss b/src/root/mainview/mainview.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/root/mainview/mainview.ts b/src/root/mainview/mainview.ts new file mode 100755 index 00000000..2bad5fb2 --- /dev/null +++ b/src/root/mainview/mainview.ts @@ -0,0 +1,70 @@ +import { + defineComponent, ref, computed, +} from 'vue' + +import { tools } from '@src/store/Modules/tools' +import { CSkill } from '@/components/CSkill' +import { CMainView } from '@/components/CMainView' +import { CDashboard } from '@/components/CDashboard' +import { CChartMap } from '@src/components/CChartMap' +import { CUserNonVerif } from '@/components/CUserNonVerif' +import { CCopyBtn } from '@/components/CCopyBtn' +import { CMapsEsempio } from '@src/components/CMapsEsempio' +import { CVerifyEmail } from '@src/components/CVerifyEmail' +import { CVerifyTelegram } from '@src/components/CVerifyTelegram' +import { useGlobalStore } from '@store/globalStore' +import { useUserStore } from '@store/UserStore' +import { static_data } from '@/db/static_data' +import MixinBase from '@/mixins/mixin-base' +import MixinUsers from '@/mixins/mixin-users' + + +export default defineComponent({ + name: 'mainview', + components: { CSkill, CChartMap, CMapsEsempio, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CMainView, CCopyBtn }, + setup() { + const globalStore = useGlobalStore() + const userStore = useUserStore() + const { getValDb } = MixinBase() + const { isEmailVerified, TelegVerificato } = MixinUsers() + + const { getRefLink } = MixinUsers() + + function TelegCode() { + return userStore.my.profile.teleg_checkcode + } + + function openrighttoolbar() { + globalStore.rightDrawerOpen = true + } + + function isLogged() { + return userStore.isLogged + } + function isUserOk() { + return userStore.isUserOk() + } + + function getLinkBotTelegram(): string { + if ( tools.isTest() && !process.env.DEV) { + return getValDb('TELEG_BOT_LINK_TEST', false) + } else{ + return getValDb('TELEG_BOT_LINK', false) + } + } + + return { + tools, + static_data, + isEmailVerified, + TelegCode, + TelegVerificato, + isLogged, + openrighttoolbar, + isUserOk, + getLinkBotTelegram, + getRefLink, + userStore, + } + }, +}) diff --git a/src/root/mainview/mainview.vue b/src/root/mainview/mainview.vue new file mode 100755 index 00000000..421e3ebe --- /dev/null +++ b/src/root/mainview/mainview.vue @@ -0,0 +1,77 @@ + + + diff --git a/src/root/work/work.scss b/src/root/work/work.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/root/work/work.ts b/src/root/work/work.ts new file mode 100755 index 00000000..e0a72b85 --- /dev/null +++ b/src/root/work/work.ts @@ -0,0 +1,65 @@ +import { + defineComponent, ref, computed, +} from 'vue' + +import { tools } from '@src/store/Modules/tools' +import { CSkill } from '@/components/CSkill' +import { CFinder } from '@/components/CFinder' +import { CDashboard } from '@/components/CDashboard' +import { CChartMap } from '@src/components/CChartMap' +import { CUserNonVerif } from '@/components/CUserNonVerif' +import { CMapsEsempio } from '@src/components/CMapsEsempio' +import { CVerifyEmail } from '@src/components/CVerifyEmail' +import { CVerifyTelegram } from '@src/components/CVerifyTelegram' +import { useGlobalStore } from '@store/globalStore' +import { useUserStore } from '@store/UserStore' +import { static_data } from '@/db/static_data' +import MixinBase from '@/mixins/mixin-base' +import MixinUsers from '@/mixins/mixin-users' + + +export default defineComponent({ + name: 'work', + components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif }, + setup() { + const globalStore = useGlobalStore() + const userStore = useUserStore() + const { getValDb } = MixinBase() + const { isEmailVerified, TelegVerificato } = MixinUsers() + + function TelegCode() { + return userStore.my.profile.teleg_checkcode + } + + function openrighttoolbar() { + globalStore.rightDrawerOpen = true + } + + function isLogged() { + return userStore.isLogged + } + function isUserOk() { + return userStore.isUserOk() + } + + function getLinkBotTelegram(): string { + if ( tools.isTest() && !process.env.DEV) { + return getValDb('TELEG_BOT_LINK_TEST', false) + } else{ + return getValDb('TELEG_BOT_LINK', false) + } + } + + return { + tools, + static_data, + isEmailVerified, + TelegCode, + TelegVerificato, + isLogged, + openrighttoolbar, + isUserOk, + getLinkBotTelegram, + } + }, +}) diff --git a/src/root/work/work.vue b/src/root/work/work.vue new file mode 100755 index 00000000..66b1792e --- /dev/null +++ b/src/root/work/work.vue @@ -0,0 +1,28 @@ + + + diff --git a/src/statics/lang/it.js b/src/statics/lang/it.js index c7b6fa0e..b3ea37c6 100755 --- a/src/statics/lang/it.js +++ b/src/statics/lang/it.js @@ -431,6 +431,7 @@ const msg_it = { teleg_id_old: 'OLD Tel ID', teleg_auth: 'Codice Autorizzazione', click_per_copiare: 'Cliccaci sopra per copiarlo sugli appunti', + link_reg: 'Clicca per copiare il link da condividere agli Amici', copia_messaggio: 'Copia Messaggio', teleg_torna_sul_bot: '1) Copia il codice cliccando sul bottone qui sopra
2) torna su {botname} cliccando qui sotto ๐Ÿ‘‡ ed incolla (o scrivi) il codice', teleg_checkcode: 'Codice Telegram', @@ -874,6 +875,7 @@ const msg_it = { follow_groups: 'Gruppi che Seguo', create_group: 'Crea Gruppo', friends: 'Amici', + work: 'Lavoro', groups: 'Gruppi', request_friends: 'Rich. Amicizia', request_sent_friends: 'Rich. Inviate', @@ -911,6 +913,9 @@ const msg_it = { finder: { search_skill: 'Cerca una specializzazione' }, + adTypes: { + name: 'Tipo', + } }, }; diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts index db117a3e..a8b5b284 100755 --- a/src/store/Modules/fieldsTable.ts +++ b/src/store/Modules/fieldsTable.ts @@ -2,6 +2,7 @@ import { IColGridTable } from '@model' import { useUserStore } from '@store/UserStore' import { lists } from './lists' import { costanti } from './costanti' +import { useGlobalStore } from '@store/globalStore' const DeleteRec = { name: 'deleterec', @@ -531,14 +532,14 @@ export const colmySkills = [ // AddCol({ name: 'subTitle', label_trans: 'event.title', fieldtype: costanti.FieldType.string, // showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit , maxlength: 70, noshowlabel: true }), AddCol({ - name: 'adTypes', + name: 'adType', label_trans: 'adTypes.name', fieldtype: costanti.FieldType.select, required: true, jointable: 'adtypes', - showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist, + showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit, + icon: 'fas fa-bullhorn', noshowlabel: true, - icon: 'grading', }), AddCol({ name: 'descr', label_trans: 'proj.shortdescr', fieldtype: costanti.FieldType.string, showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist, noshowlabel: true, maxlength: 200 }), @@ -1068,6 +1069,15 @@ export const fieldsTable = { } return 'label' }, + getValByTabAndId(table: string, field: string, idvalue: any) { + const globalStore = useGlobalStore() + + const col = fieldsTable.getColByTable(table, field) + if (col) { + return globalStore.getValueByTable(col, idvalue) + } + return '' + }, getTitleByTable(mytable: string): string { const myrec = this.getrecTableList(mytable) if (myrec) return myrec.label diff --git a/src/store/globalStore.ts b/src/store/globalStore.ts index 806a4166..ea2a3de1 100644 --- a/src/store/globalStore.ts +++ b/src/store/globalStore.ts @@ -1332,8 +1332,8 @@ export const useGlobalStore = defineStore('GlobalStore', { } if (key === 'username') { - console.log('key=', key, 'collab', collab, 'val', val) - console.log('myris', risultato) + // console.log('key=', key, 'collab', collab, 'val', val) + // console.log('myris', risultato) } return risultato diff --git a/src/views/user/myprofile/myprofile.ts b/src/views/user/myprofile/myprofile.ts index ad6671e5..7f1ec60c 100755 --- a/src/views/user/myprofile/myprofile.ts +++ b/src/views/user/myprofile/myprofile.ts @@ -1,6 +1,7 @@ import { CMyFieldDb } from '@/components/CMyFieldDb' import { CTitleBanner } from '@/components/CTitleBanner' import { CProfile } from '@/components/CProfile' +import { CCopyBtn } from '@/components/CCopyBtn' import { CSkill } from '@/components/CSkill' import { CDateTime } from '@/components/CDateTime' import { tools } from '@store/Modules/tools' @@ -15,11 +16,12 @@ import { costanti } from '@costanti' import { IUserFields } from 'model' import { shared_consts } from '@/common/shared_vuejs' import { static_data } from '@/db/static_data' +import MixinUsers from '@/mixins/mixin-users' export default defineComponent({ name: 'myprofile', - components: { CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime }, + components: { CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CCopyBtn }, props: {}, setup() { const userStore = useUserStore() @@ -27,6 +29,8 @@ export default defineComponent({ const $q = useQuasar() const { t } = useI18n() + const { getRefLink } = MixinUsers() + const animation = ref('fade') const username = computed(() => $route.params.username ? $route.params.username.toString() : userStore.my.username) @@ -114,6 +118,7 @@ export default defineComponent({ static_data, animation, isMyRecord, + getRefLink, } } }) diff --git a/src/views/user/myprofile/myprofile.vue b/src/views/user/myprofile/myprofile.vue index 7e29b7ec..33c638b9 100755 --- a/src/views/user/myprofile/myprofile.vue +++ b/src/views/user/myprofile/myprofile.vue @@ -81,6 +81,11 @@ :href="getLinkWebSite()" target="__blank">
+ + + + +