From 7fe6b5fb6a458bfd251b03f7249c1d53adfc8cbb Mon Sep 17 00:00:00 2001 From: Paolo Arena Date: Wed, 6 Nov 2019 22:28:45 +0100 Subject: [PATCH] - Fixed pagination not refreshing the data... - Start creating single page of an Event --- src/components/CCard/CCard.ts | 1 + src/components/CCard/CCard.vue | 25 +++++-- .../CEventsCalendar/CEventsCalendar.ts | 67 ++----------------- .../CEventsCalendar/CEventsCalendar.vue | 35 ++++++---- src/components/CGridTableRec/CGridTableRec.ts | 16 +++-- src/components/Footer/Footer.ts | 5 ++ src/components/Footer/Footer.vue | 7 +- src/layouts/menuone/menuOne.scss | 4 ++ src/layouts/menuone/menuOne.ts | 3 + src/mixins/mixin-base.ts | 16 +++-- src/model/Calendar.ts | 1 + src/model/GlobalStore.ts | 2 + src/statics/i18n.js | 10 +++ src/store/Modules/fieldsTable.ts | 4 +- src/store/Modules/tools.ts | 7 ++ src/views/admin/testp1/testp1.ts | 5 +- 16 files changed, 112 insertions(+), 96 deletions(-) diff --git a/src/components/CCard/CCard.ts b/src/components/CCard/CCard.ts index 5ff151e..bd6fa95 100644 --- a/src/components/CCard/CCard.ts +++ b/src/components/CCard/CCard.ts @@ -36,6 +36,7 @@ export default class CCard extends Vue { name: '', surname: '', qualification: '', + usertelegram: '', disciplines: '', certifications: '', img: '', diff --git a/src/components/CCard/CCard.vue b/src/components/CCard/CCard.vue index d8d5422..f850d68 100644 --- a/src/components/CCard/CCard.vue +++ b/src/components/CCard/CCard.vue @@ -22,16 +22,27 @@ {{myop.cell}} - + + + + - :href="tools.getHttpForWhatsapp(myop.cell)" target="__blank"> - - + + +
-   +   {{myop.email}}
diff --git a/src/components/CEventsCalendar/CEventsCalendar.ts b/src/components/CEventsCalendar/CEventsCalendar.ts index 6e1b96b..c4c5fd9 100644 --- a/src/components/CEventsCalendar/CEventsCalendar.ts +++ b/src/components/CEventsCalendar/CEventsCalendar.ts @@ -1,5 +1,5 @@ import Vue from 'vue' -import { Component, Prop, Watch } from 'vue-property-decorator' +import { Component, Mixins, Prop, Watch } from 'vue-property-decorator' import { CalendarStore, UserStore } from '@store' import { Logo } from '../../components/logo/index' @@ -31,16 +31,17 @@ import { lists } from '../../store/Modules/lists' import { GlobalStore, MessageStore } from '../../store/Modules' import { IMessagePage, IMessage, IIdentity, MsgDefault } from '../../model' import MixinUsers from '../../mixins/mixin-users' -import { CDateTime } from '../CDateTime' import MixinOperator from '../../mixins/mixin-operator' +import MixinEvents from '../../mixins/mixin-events' +import { CDateTime } from '../CDateTime' import { CMyAvatar } from '../CMyAvatar' @Component({ - mixins: [MixinOperator, MixinUsers], + mixins: [MixinOperator, MixinUsers, MixinEvents], name: 'CEventsCalendar', components: { Logo, Footer, CTitle, CImgText, QDateTimeScroller, QDateScroller, CMySelect, CMyEditor, CDateTime, CMyAvatar } }) -export default class CEventsCalendar extends Vue { +export default class CEventsCalendar extends MixinEvents { public $q public $t: any public calendarView = 'month' @@ -48,6 +49,7 @@ export default class CEventsCalendar extends Vue { public formDefault: IEvents = { title: '', details: '', + bodytext: '', dateTimeStart: tools.getstrYYMMDDDateTime(tools.getDateNow()), dateTimeEnd: tools.getstrYYMMDDDateTime(tools.getDateNow()), icon: '', @@ -284,9 +286,6 @@ export default class CEventsCalendar extends Vue { return (CalendarStore.state.intervalRange.max - CalendarStore.state.intervalRange.min) * (1 / CalendarStore.state.intervalRangeStep) } - get editable() { - return CalendarStore.state.editable - } get containerStyle() { const styles = { height: '' } @@ -851,17 +850,6 @@ export default class CEventsCalendar extends Vue { return await CalendarStore.actions.BookEvent(eventparam) } - public isAlreadyBooked(eventparam: IEvents) { - return CalendarStore.getters.findEventBooked(eventparam, true) - } - - public getImgEvent(event: IEvents) { - if (!!event.img) - return '../../statics/' + event.img - else - return '../../statics/images/noimg.png' - } - get getContribTypeArr() { return CalendarStore.state.contribtype } @@ -874,15 +862,6 @@ export default class CEventsCalendar extends Vue { return CalendarStore.state.wheres } - public isShowPrice(event: IEvents) { - const rec = CalendarStore.getters.getContribtypeRec(event.contribtype) - return (rec) ? rec.showprice : true - } - - public getContribtypeById(id) { - return CalendarStore.getters.getContribtypeById(id) - } - public createContribType(value) { console.log('createContribType', value) tools.createNewRecord(this, 'contribtype', { label: value }).then((myrec) => { @@ -897,26 +876,6 @@ export default class CEventsCalendar extends Vue { return this.dateFormatter.format(mydate) } - public getPrice(event: IEvents) { - let myprice = (event.price > 0) ? event.price + ' €' : '' - myprice = (event.price === -1) ? this.$t('event.askinfo') : myprice - - if (event.infoafterprice) - myprice += ' ' + event.infoafterprice - - return myprice - } - - public getWhereIcon(where) { - const whererec = CalendarStore.getters.getWhereRec(where) - return (whererec) ? whererec.whereicon : '' - } - - public getWhereName(where) { - const whererec = CalendarStore.getters.getWhereRec(where) - return (whererec) ? whererec.placename : '' - } - public badgeClasses(eventparam, type) { const cssColor = tools.isCssColor(eventparam.bgcolor) const isHeader = type === 'header' @@ -1027,22 +986,8 @@ export default class CEventsCalendar extends Vue { return eventsloc } - public isEventEnabled(myevent) { - // check if event is in the past - const datenow = tools.addDays(tools.getDateNow(), -1) - - // console.log('datenow', datenow, 'end', myevent.dateTimeEnd) - - return (new Date(myevent.dateTimeEnd) >= datenow) - } - public getTitleEv(event: IEvents) { return (!!event.short_tit) ? event.short_tit : event.title } - public getStyleByEvent(event: IEvents) { - if (event === this.myevent) { - return 'border: inset; border-color: darkblue; border-width: 3px; padding: 5px !important; ' - } - } } diff --git a/src/components/CEventsCalendar/CEventsCalendar.vue b/src/components/CEventsCalendar/CEventsCalendar.vue index 1383382..52d7f79 100644 --- a/src/components/CEventsCalendar/CEventsCalendar.vue +++ b/src/components/CEventsCalendar/CEventsCalendar.vue @@ -74,7 +74,7 @@ - + {{getWhereName(myevent.wherecode)}} @@ -528,8 +528,8 @@
+ class="text-left padding_cell listaev__tdimg listaev__img cursor-pointer q-mx-sm" + :style="getStyleByEvent(event, event === myevent)"> {{$t('cal.booked')}} @@ -587,16 +587,25 @@
-
- {{event.title}} -
- {{event.title}} - + + + + + + + + + + + + +
diff --git a/src/components/CGridTableRec/CGridTableRec.ts b/src/components/CGridTableRec/CGridTableRec.ts index 6625bcf..7c2ecd5 100644 --- a/src/components/CGridTableRec/CGridTableRec.ts +++ b/src/components/CGridTableRec/CGridTableRec.ts @@ -180,6 +180,10 @@ export default class CGridTableRec extends Vue { const startRow = (page - 1) * rowsPerPage const endRow = startRow + fetchCount + console.log('startRow', startRow) + + this.serverData = [] + // fetch data from "server" this.fetchFromServer(startRow, endRow, filter, sortBy, descending).then((ris) => { @@ -189,12 +193,14 @@ export default class CGridTableRec extends Vue { if (this.returnedData === []) { this.serverData = [] } else { - if (this.serverData.length > 0) - this.serverData.splice(0, this.serverData.length, ...this.returnedData) - else - this.serverData = [...this.returnedData] + // if (this.serverData.length > 0) + // this.serverData.splice(0, this.serverData.length, ...this.returnedData) + // else + this.serverData = [...this.returnedData] } + console.log('this.serverData', this.serverData) + // don't forget to update local pagination object this.pagination.page = page this.pagination.rowsPerPage = rowsPerPage @@ -358,7 +364,7 @@ export default class CGridTableRec extends Vue { // console.log('this.filter', this.filter) this.onRequest({ - pagination: this.pagination, + pagination: this.pagination }) } diff --git a/src/components/Footer/Footer.ts b/src/components/Footer/Footer.ts index efcd5a7..c5e5c8d 100644 --- a/src/components/Footer/Footer.ts +++ b/src/components/Footer/Footer.ts @@ -42,6 +42,11 @@ export default class Footer extends Vue { return GlobalStore.getters.getValueSettingsByKey('WHATSAPP_CELL') } + get Telegram_UsernameHttp() { + + return tools.getHttpForTelegram(GlobalStore.getters.getValueSettingsByKey('TELEGRAM_USERNAME')) + } + get FBPage() { const fb = GlobalStore.getters.getValueSettingsByKey('URL_FACEBOOK') return fb diff --git a/src/components/Footer/Footer.vue b/src/components/Footer/Footer.vue index b893f9c..92d36ce 100644 --- a/src/components/Footer/Footer.vue +++ b/src/components/Footer/Footer.vue @@ -35,7 +35,9 @@ {{ rec.name }}: {{ rec.phone }} - + + +
+ + + diff --git a/src/layouts/menuone/menuOne.scss b/src/layouts/menuone/menuOne.scss index baf8709..395b2d5 100644 --- a/src/layouts/menuone/menuOne.scss +++ b/src/layouts/menuone/menuOne.scss @@ -61,6 +61,10 @@ color: red; } +.isCalendar { + color: #fff241; +} + .isManager { color: green; } diff --git a/src/layouts/menuone/menuOne.ts b/src/layouts/menuone/menuOne.ts index e92c85e..da8ea85 100644 --- a/src/layouts/menuone/menuOne.ts +++ b/src/layouts/menuone/menuOne.ts @@ -74,6 +74,9 @@ export default class MenuOne extends Vue { if (elem.onlyManager) menu += ' isManager' + if (elem.extraclass) + menu += ' ' + elem.extraclass + return menu } } diff --git a/src/mixins/mixin-base.ts b/src/mixins/mixin-base.ts index 72975e3..29b4b31 100644 --- a/src/mixins/mixin-base.ts +++ b/src/mixins/mixin-base.ts @@ -31,12 +31,16 @@ export default class MixinBase extends Vue { public getarrValDb(keystr) { const myval = GlobalStore.getters.getValueSettingsByKey(keystr) // console.log('myval', myval) - if (myval) { - const myrec = JSON.parse(myval) - // console.log('*************** getarrValDb') - // console.table(myrec) - return myrec - } else { + try { + if (myval) { + const myrec = JSON.parse(myval) + // console.log('*************** getarrValDb') + // console.table(myrec) + return myrec + } else { + return [] + } + }catch (e) { return [] } } diff --git a/src/model/Calendar.ts b/src/model/Calendar.ts index a20aae8..32ac880 100644 --- a/src/model/Calendar.ts +++ b/src/model/Calendar.ts @@ -6,6 +6,7 @@ export interface IEvents { short_tit?: string title?: string details?: string + bodytext?: string dateTimeStart?: Date dateTimeEnd?: Date side?: string diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts index 8d3bee1..787418e 100644 --- a/src/model/GlobalStore.ts +++ b/src/model/GlobalStore.ts @@ -96,6 +96,7 @@ export interface IListRoutes { submenu?: boolean onlyAdmin?: boolean onlyManager?: boolean + extraclass?: string meta?: any idelem?: string urlroute?: string @@ -118,6 +119,7 @@ export interface IOperators { certifications?: string img?: string cell?: string + usertelegram?: string paginaweb?: string paginafb?: string intro?: string diff --git a/src/statics/i18n.js b/src/statics/i18n.js index d1d71b6..7cff765 100644 --- a/src/statics/i18n.js +++ b/src/statics/i18n.js @@ -130,6 +130,7 @@ const msgglobal = { }, op: { qualification: 'Qualifica', + usertelegram: 'Username Telegram', disciplines: 'Discipline', certifications: 'Certificazioni', intro: 'Introduzione', @@ -264,6 +265,7 @@ const msgglobal = { short_tit: 'Titolo Breve', title: 'Titolo', details: 'Dettagli', + bodytext: 'Testo Evento', dateTimeStart: 'Data Inizio', dateTimeEnd: 'Data Fine', bgcolor: 'Colore Sfondo', @@ -429,6 +431,7 @@ const msgglobal = { }, op: { qualification: 'Calificación', + usertelegram: 'Username Telegram', disciplines: 'Disciplinas', certifications: 'Certificaciones', intro: 'Introducción', @@ -561,6 +564,7 @@ const msgglobal = { short_tit: 'Título Corto', title: 'Título', details: 'Detalles', + bodytext: 'Texto del evento', dateTimeStart: 'Fecha de Inicio', dateTimeEnd: 'Fecha Final', bgcolor: 'Color de fondo', @@ -725,6 +729,7 @@ const msgglobal = { }, op: { qualification: 'Qualification', + usertelegram: 'Username Telegram', disciplines: 'Disciplines', certifications: 'Certifications', intro: 'Introduction', @@ -857,6 +862,7 @@ const msgglobal = { short_tit: 'Titre abrégé\'', title: 'Titre', details: 'Détails', + bodytext: 'texte de l\'événement', dateTimeStart: 'Data Initiale', dateTimeEnd: 'Date de fin', bgcolor: 'Couleur de fond', @@ -1021,6 +1027,7 @@ const msgglobal = { }, op: { qualification: 'Qualification', + usertelegram: 'Username Telegram', disciplines: 'Disciplines', certifications: 'Certifications', intro: 'Introduction', @@ -1152,6 +1159,7 @@ const msgglobal = { short_tit: 'Short Title', title: 'Title', details: 'Details', + bodytext: 'Event Text', dateTimeStart: 'Date Start', dateTimeEnd: 'Date End', bgcolor: 'Background color', @@ -1317,6 +1325,7 @@ const msgglobal = { }, op: { qualification: 'Qualification', + usertelegram: 'Username Telegram', disciplines: 'Disciplines', certifications: 'Certifications', intro: 'Introduction', @@ -1449,6 +1458,7 @@ const msgglobal = { short_tit: 'Short Title', title: 'Title', details: 'Details', + bodytext: 'Event Text', dateTimeStart: 'Date Start', dateTimeEnd: 'Date End', bgcolor: 'Background color', diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts index c5c6105..f6e1772 100644 --- a/src/store/Modules/fieldsTable.ts +++ b/src/store/Modules/fieldsTable.ts @@ -75,6 +75,7 @@ const colTableOperator = [ AddCol({ name: 'email', label_trans: 'reg.email' }), AddCol({ name: 'img', label_trans: 'event.img' }), AddCol({ name: 'cell', label_trans: 'reg.cell' }), + AddCol({ name: 'usertelegram', label_trans: 'op.usertelegram' }), AddCol({ name: 'qualification', label_trans: 'op.qualification' }), AddCol({ name: 'disciplines', label_trans: 'op.disciplines' }), AddCol({ name: 'certifications', label_trans: 'op.certifications' }), @@ -90,7 +91,8 @@ const colTableEvents = [ AddCol({ name: 'typol', label_trans: 'event.typol' }), AddCol({ name: 'short_tit', label_trans: 'event.short_tit' }), AddCol({ name: 'title', label_trans: 'event.title' }), - AddCol({ name: 'details', label_trans: 'event.details' }), + AddCol({ name: 'details', label_trans: 'event.details', fieldtype: tools.FieldType.html }), + AddCol({ name: 'bodytext', label_trans: 'event.bodytext', fieldtype: tools.FieldType.html }), AddCol({ name: 'dateTimeStart', label_trans: 'event.dateTimeStart', fieldtype: tools.FieldType.date }), AddCol({ name: 'dateTimeEnd', label_trans: 'event.dateTimeEnd', fieldtype: tools.FieldType.date }), AddCol({ name: 'bgcolor', label_trans: 'event.bgcolor' }), diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts index 3e7e1e7..ce226f8 100644 --- a/src/store/Modules/tools.ts +++ b/src/store/Modules/tools.ts @@ -2626,6 +2626,13 @@ export const tools = { return 'https://wa.me/' + mynum else return '' + }, + + getHttpForTelegram(usertelegram) { + if (usertelegram) + return 'https://t.me/' + usertelegram + else + return '' } // getLocale() { diff --git a/src/views/admin/testp1/testp1.ts b/src/views/admin/testp1/testp1.ts index 8d16fde..8aeab2a 100644 --- a/src/views/admin/testp1/testp1.ts +++ b/src/views/admin/testp1/testp1.ts @@ -23,11 +23,12 @@ export default class Testp1 extends Vue { public testpao1_array: (state: IGlobalState, miorec: ICfgServer) => ICfgServer[] @Watch('GlobalStore.state.testp1.mioarray', { immediate: true, deep: true }) - array_changed() { + public array_changed() { console.log('*** array_changed *** ', GlobalStore.state.testp1.mioarray[GlobalStore.state.testp1.mioarray.length - 1]) } - @Watch('$route.params.category') changecat() { + @Watch('$route.params.category') + public changecat() { // this.mytypetransgroup = '' console.log('PRIMA this.paramcategory', this.paramcategory) this.paramcategory = this.$route.params.category