From 340c813a7c6c6fcd841b84606c1892b5edfde24b Mon Sep 17 00:00:00 2001 From: Paolo Arena Date: Mon, 28 Oct 2019 16:00:37 +0100 Subject: [PATCH] - Added CDateTime component (to save in the db)... in the component CGridTableRec and for CEventsCalendar --- src/common/shared_vuejs.ts | 19 ++- src/components/CDateTime/CDateTime.scss | 6 + src/components/CDateTime/CDateTime.ts | 79 +++++++++++++ src/components/CDateTime/CDateTime.vue | 46 ++++++++ src/components/CDateTime/index.ts | 1 + .../CEventsCalendar/CEventsCalendar.scss | 7 -- .../CEventsCalendar/CEventsCalendar.ts | 21 +--- .../CEventsCalendar/CEventsCalendar.vue | 62 ++-------- .../CGridTableRec/CGridTableRec.scss | 5 + src/components/CGridTableRec/CGridTableRec.ts | 109 +++++++++++++++--- .../CGridTableRec/CGridTableRec.vue | 89 ++++++++------ src/components/index.ts | 1 + src/model/GlobalStore.ts | 4 +- src/model/UserStore.ts | 7 ++ src/store/Modules/GlobalStore.ts | 10 +- src/store/Modules/UserStore.ts | 6 +- src/store/Modules/fieldsTable.ts | 56 +++++++-- src/store/Modules/tools.ts | 7 ++ src/views/categories/category/category.ts | 1 - 19 files changed, 383 insertions(+), 153 deletions(-) create mode 100644 src/components/CDateTime/CDateTime.scss create mode 100644 src/components/CDateTime/CDateTime.ts create mode 100644 src/components/CDateTime/CDateTime.vue create mode 100644 src/components/CDateTime/index.ts diff --git a/src/common/shared_vuejs.ts b/src/common/shared_vuejs.ts index 7f3693d..1b70895 100644 --- a/src/common/shared_vuejs.ts +++ b/src/common/shared_vuejs.ts @@ -1,9 +1,22 @@ export const shared_consts = { Permissions: { - Normal: 0, - Admin: 1, - Manager: 2, + Normal: { + value: 0, + label: '[None]' + }, + Admin: { + value: 1, + label: 'Admin' + }, + Manager: { + value: 2, + label: 'Manager' + }, + Teacher: { + value: 4, + label: 'Teacher' + } }, MessageOptions: { diff --git a/src/components/CDateTime/CDateTime.scss b/src/components/CDateTime/CDateTime.scss new file mode 100644 index 0000000..7dfc793 --- /dev/null +++ b/src/components/CDateTime/CDateTime.scss @@ -0,0 +1,6 @@ +.calendar_comp{ + max-width: 170px; + @media (max-width: 400px) { + max-width: 400px; + } +} diff --git a/src/components/CDateTime/CDateTime.ts b/src/components/CDateTime/CDateTime.ts new file mode 100644 index 0000000..7f6e5f6 --- /dev/null +++ b/src/components/CDateTime/CDateTime.ts @@ -0,0 +1,79 @@ +import Vue from 'vue' +import { Component, Prop, Watch } from 'vue-property-decorator' +import { tools } from '@src/store/Modules/tools' +import { toolsext } from '@src/store/Modules/toolsext' + +import { date } from 'quasar' +import { CalendarStore } from '../../store/Modules' + +@Component({ + name: 'CDateTime' +}) + +export default class CDateTime extends Vue { + public $q + public $t + @Prop() public value!: Date + @Prop({ required: false, default: '' }) public label: string + @Prop({ required: false, default: '' }) public data_class!: string + @Prop({ required: false, default: false }) public readonly!: boolean + @Prop({ required: false, default: false }) public disable!: boolean + @Prop({ required: false, default: '' }) public bgcolor!: string + @Prop({ required: false, default: false }) public dense: boolean + + public mystyleicon: string = 'font-size: 1.5rem;' + public showDateTimeScroller: boolean = false + public saveit: boolean = false + public myvalue: Date = new Date() + public valueprec: Date = new Date() + + get getclass() { + return 'calendar_comp ' + this.data_class + } + + @Watch('showDateTimeScroller') + public Opening() { + if (this.showDateTimeScroller) { + this.saveit = false + this.valueprec = this.myvalue + this.$emit('show') + } else { + if (!this.saveit) + this.myvalue = this.valueprec + } + } + + public savetoclose() { + this.saveit = true + this.showDateTimeScroller = false + this.$emit('savetoclose', this.myvalue, this.valueprec) + } + + get scrollerPopupStyle280() { + if (this.$q.screen.lt.sm) { + return { + width: '100vw', + height: '100vh' + } + } else { + return { + maxHeight: '400px', + height: '400px', + width: '280px' + } + } + } + + get locale() { + return CalendarStore.state.locale + } + + public mounted() { + this.myvalue = this.value + } + + public changeval(newval) { + console.log('changeval', newval) + this.$emit('update:value', newval) + } +} diff --git a/src/components/CDateTime/CDateTime.vue b/src/components/CDateTime/CDateTime.vue new file mode 100644 index 0000000..0238e01 --- /dev/null +++ b/src/components/CDateTime/CDateTime.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/components/CDateTime/index.ts b/src/components/CDateTime/index.ts new file mode 100644 index 0000000..eaa621c --- /dev/null +++ b/src/components/CDateTime/index.ts @@ -0,0 +1 @@ +export {default as CDateTime} from './CDateTime.vue' diff --git a/src/components/CEventsCalendar/CEventsCalendar.scss b/src/components/CEventsCalendar/CEventsCalendar.scss index d3f47d1..2c4c783 100644 --- a/src/components/CEventsCalendar/CEventsCalendar.scss +++ b/src/components/CEventsCalendar/CEventsCalendar.scss @@ -247,13 +247,6 @@ $graytext: #555; color: white; } -.calendar_comp{ - max-width: 170px; - @media (max-width: 400px) { - max-width: 400px; - } -} - .myflex{ display: flex; flex: 1; diff --git a/src/components/CEventsCalendar/CEventsCalendar.ts b/src/components/CEventsCalendar/CEventsCalendar.ts index c7621e0..8b93d46 100644 --- a/src/components/CEventsCalendar/CEventsCalendar.ts +++ b/src/components/CEventsCalendar/CEventsCalendar.ts @@ -31,11 +31,12 @@ 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' @Component({ mixins: [MixinUsers], name: 'CEventsCalendar', - components: { Logo, Footer, CTitle, CImgText, QDateTimeScroller, QDateScroller, CMySelect, CMyEditor } + components: { Logo, Footer, CTitle, CImgText, QDateTimeScroller, QDateScroller, CMySelect, CMyEditor, CDateTime } }) export default class CEventsCalendar extends Vue { public $q @@ -110,9 +111,6 @@ export default class CEventsCalendar extends Vue { public dragging = false public draggedEvent = null public ignoreNextSwipe = false - public showDateScrollerAllDay = false - public showDateTimeScrollerStart = false - public showDateTimeScrollerEnd = false public resources = [ { @@ -319,21 +317,6 @@ export default class CEventsCalendar extends Vue { } } - get scrollerPopupStyle280() { - if (this.$q.screen.lt.sm) { - return { - width: '100vw', - height: '100vh' - } - } else { - return { - maxHeight: '400px', - height: '400px', - width: '280px' - } - } - } - get tools() { return tools } diff --git a/src/components/CEventsCalendar/CEventsCalendar.vue b/src/components/CEventsCalendar/CEventsCalendar.vue index c432b6e..abd4000 100644 --- a/src/components/CEventsCalendar/CEventsCalendar.vue +++ b/src/components/CEventsCalendar/CEventsCalendar.vue @@ -121,58 +121,16 @@
- - - - - - + + + +
diff --git a/src/components/CGridTableRec/CGridTableRec.scss b/src/components/CGridTableRec/CGridTableRec.scss index 614fcef..4129ee2 100644 --- a/src/components/CGridTableRec/CGridTableRec.scss +++ b/src/components/CGridTableRec/CGridTableRec.scss @@ -1,3 +1,8 @@ .colmodif { cursor: pointer; } + +.coldate { + max-width: 250px; + min-width: 200px; +} diff --git a/src/components/CGridTableRec/CGridTableRec.ts b/src/components/CGridTableRec/CGridTableRec.ts index d44f9a4..89a4add 100644 --- a/src/components/CGridTableRec/CGridTableRec.ts +++ b/src/components/CGridTableRec/CGridTableRec.ts @@ -9,8 +9,13 @@ import { ICategory, IColGridTable, ITableRec } from '../../model' import { CTodo } from '../todos/CTodo' import { SingleProject } from '../projects/SingleProject' import { lists } from '../../store/Modules/lists' +import { IParamsQuery } from '../../model/GlobalStore' +import { fieldsTable } from '../../store/Modules/fieldsTable' +import { CDateTime } from '../CDateTime' -@Component({}) +@Component({ + components: { CDateTime } +}) export default class CGridTableRec extends Vue { @Prop({ required: false }) public prop_mytable: string @Prop({ required: true }) public prop_mytitle: string @@ -24,6 +29,7 @@ export default class CGridTableRec extends Vue { public mytitle: string public mycolumns: any[] public colkey: string + public search: string = '' public tablesel: string = '' @@ -42,12 +48,12 @@ export default class CGridTableRec extends Vue { public spinner_visible: boolean = false public idsel: string = '' - public colsel: string = '' + public colsel: IColGridTable = {name: ''} public valPrec: string = '' public separator: 'horizontal' public filter: string = '' - public selected: any + public rowsel: any public dark: boolean = true public funcActivated = [] @@ -70,25 +76,27 @@ export default class CGridTableRec extends Vue { } } - public selItem(item, colsel) { + public selItem(item, col: IColGridTable) { // console.log('item', item) - this.selected = item + this.rowsel = item this.idsel = item._id - this.colsel = colsel + this.colsel = col + + this.updateValueExtra(col, this.rowsel[col.name]) // console.log('this.idsel', this.idsel) } public undoVal() { - console.log('undoVal', 'colsel', this.colsel, 'valprec', this.valPrec, 'this.colkey', this.colkey, 'this.selected', this.selected) + console.log('undoVal', 'colsel', this.colsel, 'valprec', this.valPrec, 'this.colkey', this.colkey, 'this.selected', this.rowsel) console.table(this.serverData) if (this.colsel) - this.selected[this.colsel] = this.valPrec + this.rowsel[this.colsel.field] = this.valPrec // this.serverData[this.colsel] = this.valPrec } public SaveValue(newVal, valinitial) { - // console.log('SaveValue', newVal, 'selected', this.selected) + console.log('SaveValue', newVal, 'rowsel', this.rowsel) const mydata = { id: this.idsel, @@ -96,7 +104,7 @@ export default class CGridTableRec extends Vue { fieldsvalue: {} } - mydata.fieldsvalue[this.colsel] = newVal + mydata.fieldsvalue[this.colsel.field] = newVal this.valPrec = valinitial @@ -135,7 +143,7 @@ export default class CGridTableRec extends Vue { public onRequest(props) { const { page, rowsPerPage, rowsNumber, sortBy, descending } = props.pagination - const filter = props.filter + const filter = this.filter if (!this.mytable) return @@ -146,7 +154,7 @@ export default class CGridTableRec extends Vue { // update rowsCount with appropriate value - // get all rows if "All" (0) is selected + // get all rows if "All" (0) is rowsel const fetchCount = rowsPerPage === 0 ? rowsNumber : rowsPerPage // calculate starting row of data @@ -193,7 +201,7 @@ export default class CGridTableRec extends Vue { myobj[sortBy] = 1 } - const params = { + const params: IParamsQuery = { table: this.mytable, startRow, endRow, @@ -269,7 +277,10 @@ export default class CGridTableRec extends Vue { } public getclassCol(col) { - return (col.disable || !this.canEdit) ? '' : 'colmodif' + let mycl = (col.disable || !this.canEdit) ? '' : 'colmodif' + mycl += (col.fieldtype === tools.FieldType.date) ? ' coldate flex flex-container' : '' + + return mycl } public async createNewRecord() { @@ -279,6 +290,11 @@ export default class CGridTableRec extends Vue { table: this.mytable, data: {} } + + // const mykey = fieldsTable.getKeyByTable(this.mytable) + + // mydata.data[mykey] = '' + const data = await GlobalStore.actions.saveTable(mydata) this.serverData.push(data) @@ -307,9 +323,13 @@ export default class CGridTableRec extends Vue { } public refresh() { + if (this.search !== '') + this.filter = this.search + else + this.filter = '' + this.onRequest({ - pagination: this.pagination, - filter: undefined + pagination: this.pagination }) } @@ -319,6 +339,7 @@ export default class CGridTableRec extends Vue { } } + public ActionAfterYes(action, item, data) { if (action === lists.MenuAction.DELETE_RECTABLE) { if (this.serverData.length > 0) @@ -343,14 +364,19 @@ export default class CGridTableRec extends Vue { } public visuValByType(col, val) { - if (col.fieldtype === 'date') { + if (col.fieldtype === tools.FieldType.date) { if (val === undefined) { return '[]' } else { return tools.getstrDateTime(val) } - } else if (col.fieldtype === 'boolean') { + } else if (col.fieldtype === tools.FieldType.boolean) { return (val) ? this.$t('dialog.yes') : this.$t('dialog.no') + } else if (col.fieldtype === tools.FieldType.binary) { + if (val === undefined) + return '[]' + else + return val } else { if (val === undefined) return '[]' @@ -395,4 +421,51 @@ export default class CGridTableRec extends Vue { this.updatedcol() this.refresh() } + + get tools() { + return tools + } + + get db_fieldsTable() { + return fieldsTable + } + + public doSearch() { + + this.refresh() + } + + public setResultJoin(col: IColGridTable, row) { + let myval = 0 + const tabjoin = fieldsTable.getTableJoinByName(col.jointable) + col.resultjoin.forEach((mycol) => { + myval = tools.SetBit(myval, mycol) + }) + + row[col.name] = myval + + console.log('col.resultjoin') + console.table(col.resultjoin) + console.log('row[col.name]', row[col.name]) + } + + public updateValueExtra(col: IColGridTable, myval) { + if (col.jointable) { + const tabjoin = fieldsTable.getTableJoinByName(col.jointable) + const arr = [] + if (myval !== undefined && tabjoin !== undefined) { + tabjoin.forEach((mybit) => { + if (tools.isBitActive(myval, mybit.value)) + arr.push(mybit) + }) + } + + col.resultjoin = arr + + console.log('col', col.field, 'myval', myval, 'arr', arr) + console.log('resultjoin') + console.table(col.resultjoin) + } + } + } diff --git a/src/components/CGridTableRec/CGridTableRec.vue b/src/components/CGridTableRec/CGridTableRec.vue index 5e11dd2..e13354a 100644 --- a/src/components/CGridTableRec/CGridTableRec.vue +++ b/src/components/CGridTableRec/CGridTableRec.vue @@ -35,11 +35,16 @@ + + + - - @@ -84,47 +89,26 @@ -
-
-
- - - - - - - - - -
- {{ visuValByType(col, props.row[col.name]) }} -
- - - - - - - - - - - -
+
+
+ +
-
+
{{ visuValByType(col, props.row[col.name]) }} + @save="SaveValue" @show="selItem(props.row, col)"> @@ -133,12 +117,41 @@
+
+
+ {{ visuValByType(col, props.row[col.name]) }} + + + + + + + + {{ visuValByType(col, props.row[col.name]) }} + + +
+
{{ visuValByType(col, props.row[col.name]) }} + @save="SaveValue" @show="selItem(props.row, col)"> diff --git a/src/components/index.ts b/src/components/index.ts index 7fe6b03..eda2bba 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -15,6 +15,7 @@ export * from './CSignIn' export * from './CSignUp' export * from './CEventsCalendar' export * from './CDate' +export * from './CDateTime' export * from './BannerCookies' export * from './PagePolicy' export * from './FormNewsletter' diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts index 49e5a99..0063914 100644 --- a/src/model/GlobalStore.ts +++ b/src/model/GlobalStore.ts @@ -228,7 +228,9 @@ export interface IColGridTable { action?: any askaction?: string foredit?: boolean - fieldtype?: string + fieldtype?: number + jointable?: string + resultjoin?: string[] visuonlyEditVal?: boolean } diff --git a/src/model/UserStore.ts b/src/model/UserStore.ts index bdbc3dd..8a34cb0 100644 --- a/src/model/UserStore.ts +++ b/src/model/UserStore.ts @@ -28,6 +28,11 @@ password?: string lang */ +export interface IPerm { + _id: number + label: string +} + export interface IUserState { my: IUserFields lang?: string @@ -43,6 +48,8 @@ export interface IUserState { isLogged?: boolean isAdmin?: boolean isManager?: boolean + isTeacher?: boolean usersList?: IUserFields[] + permissionsList?: IPerm[] countusers?: number } diff --git a/src/store/Modules/GlobalStore.ts b/src/store/Modules/GlobalStore.ts index 4bb0d22..cca45dc 100644 --- a/src/store/Modules/GlobalStore.ts +++ b/src/store/Modules/GlobalStore.ts @@ -23,6 +23,7 @@ import { IDataPass, IParamsQuery } from '@src/model/GlobalStore' import { serv_constants } from '@src/store/Modules/serv_constants' import { IUserState } from '@src/model' import { Calendar } from 'element-ui' +import { fieldsTable } from '@src/store/Modules/fieldsTable' // import { static_data } from '@src/db/static_data' let stateConnDefault = 'online' @@ -284,6 +285,8 @@ namespace Mutations { return UserStore.state.usersList else if (table === 'sendmsgs') return MessageStore.state.last_msgs + else if (table === 'permissions') + return UserStore.state.permissionsList else return null @@ -296,8 +299,9 @@ namespace Mutations { try { const mylist = getListByTable(table) + const mykey = fieldsTable.getKeyByTable(table) - const myrec = mylist.find((event) => event._id === id) + const myrec = mylist.find((event) => event[mykey] === id) // console.log('myrec', myrec) if (myrec) { for (const [key, value] of Object.entries(mydata.fieldsvalue)) { @@ -535,6 +539,10 @@ namespace Actions { UserStore.mutations.setusersList(res.data.usersList) } + if (res.data.permissionsList) { + UserStore.state.permissionsList = res.data.permissionsList + } + if (res.data.last_msgs) { MessageStore.state.last_msgs = [...res.data.last_msgs] } diff --git a/src/store/Modules/UserStore.ts b/src/store/Modules/UserStore.ts index 8c0ed01..e0502b2 100644 --- a/src/store/Modules/UserStore.ts +++ b/src/store/Modules/UserStore.ts @@ -41,6 +41,7 @@ const state: IUserState = { isAdmin: false, isManager: false, usersList: [], + permissionsList: [], countusers: 0 } @@ -197,8 +198,9 @@ namespace Mutations { function authUser(mystate: IUserState, data: IUserFields) { mystate.my = {...data} - mystate.isAdmin = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Admin) - mystate.isManager = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Manager) + mystate.isAdmin = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Admin.value) + mystate.isManager = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Manager.value) + mystate.isTeacher = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Teacher.value) // console.log('authUser', 'state.isAdmin', mystate.isAdmin) console.table(mystate) diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts index cc8648d..3eb1bf8 100644 --- a/src/store/Modules/fieldsTable.ts +++ b/src/store/Modules/fieldsTable.ts @@ -1,6 +1,7 @@ import { IColGridTable } from '../../model' import { lists } from './lists' import { tools } from '@src/store/Modules/tools' +import { shared_consts } from '@src/common/shared_vuejs' const DeleteRec = { name: 'deleterec', @@ -30,9 +31,10 @@ function AddCol(params: IColGridTable) { icon: (params.icon === undefined) ? '' : params.icon, action: (params.action === undefined) ? '' : params.action, foredit: (params.foredit === undefined) ? true : params.foredit, - fieldtype: (params.fieldtype === undefined) ? 'string' : params.fieldtype, + fieldtype: (params.fieldtype === undefined) ? tools.FieldType.string : params.fieldtype, visuonlyEditVal: (params.visuonlyEditVal === undefined) ? false : params.visuonlyEditVal, - askaction: (params.askaction === undefined) ? '' : params.askaction + askaction: (params.askaction === undefined) ? '' : params.askaction, + jointable: (params.jointable === undefined) ? '' : params.jointable } } @@ -45,7 +47,13 @@ const colTableWhere = [ const colcontribtype = [ AddCol({ name: 'label', label_trans: 'proj.longdescr' }), - AddCol({ name: 'showprice', label_trans: 'event.showprice', fieldtype: 'boolean' }), + AddCol({ name: 'showprice', label_trans: 'event.showprice', fieldtype: tools.FieldType.boolean }), + AddCol(DeleteRec) +] + +const colTablePermission = [ + AddCol({ name: '_id', label_trans: 'others.value' }), + AddCol({ name: 'label', label_trans: 'proj.longdescr' }), AddCol(DeleteRec) ] @@ -65,7 +73,7 @@ const colTableEvents = [ 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: 'dateTimeStart', label_trans: 'event.dateTimeStart', fieldtype: 'date' }), + AddCol({ name: 'dateTimeStart', label_trans: 'event.dateTimeStart', fieldtype: tools.FieldType.date }), AddCol({ name: 'dateTimeEnd', label_trans: 'event.dateTimeEnd' }), AddCol({ name: 'bgcolor', label_trans: 'event.bgcolor' }), AddCol({ name: 'icon', label_trans: 'event.icon' }), @@ -80,12 +88,12 @@ const colTableEvents = [ AddCol({ name: 'infoextra', label_trans: 'event.infoextra' }), AddCol({ name: 'linkpage', label_trans: 'event.linkpage' }), AddCol({ name: 'linkpdf', label_trans: 'event.linkpdf' }), - AddCol({ name: 'nobookable', label_trans: 'event.nobookable', fieldtype: 'boolean' }), - AddCol({ name: 'news', label_trans: 'event.news', fieldtype: 'boolean' }), - AddCol({ name: 'canceled', label_trans: 'event.canceled', fieldtype: 'boolean' }), - AddCol({ name: 'deleted', label_trans: 'event.deleted', fieldtype: 'boolean' }), + AddCol({ name: 'nobookable', label_trans: 'event.nobookable', fieldtype: tools.FieldType.boolean }), + AddCol({ name: 'news', label_trans: 'event.news', fieldtype: tools.FieldType.boolean }), + AddCol({ name: 'canceled', label_trans: 'event.canceled', fieldtype: tools.FieldType.boolean }), + AddCol({ name: 'deleted', label_trans: 'event.deleted', fieldtype: tools.FieldType.boolean }), AddCol({ name: 'dupId', label_trans: 'event.dupId' }), - AddCol({ name: 'modified', label_trans: 'event.modified', fieldtype: 'boolean' }), + AddCol({ name: 'modified', label_trans: 'event.modified', fieldtype: tools.FieldType.boolean }), AddCol(DeleteRec), AddCol({ name: 'copyrec', @@ -103,6 +111,26 @@ const colTableEvents = [ ] export const fieldsTable = { + getColByTable(table) { + if (table === 'permissions') { + return ['value', 'label'] + } + }, + getTableJoinByName(table) { + if (table === 'permissions') { + return [shared_consts.Permissions.Normal, shared_consts.Permissions.Admin, shared_consts.Permissions.Manager, shared_consts.Permissions.Teacher] + } + }, + getrecTableList(mytable) { + return this.tablesList.find((rec) => rec.value === mytable) + }, + getKeyByTable(mytable): string { + const myrec = this.getrecTableList(mytable) + if (myrec) + return ((myrec.colkey) ? myrec.colkey : '_id') + else + return '_id' + }, tablesList: [ { value: 'operators', @@ -127,6 +155,12 @@ export const fieldsTable = { label: 'Tipi di Contributi', columns: colcontribtype, colkey: '_id' + }, + { + value: 'permissions', + label: 'Permessi', + columns: colTablePermission, + colkey: 'value' } ], @@ -136,8 +170,8 @@ export const fieldsTable = { AddCol({ name: 'name', label_trans: 'reg.name' }), AddCol({ name: 'surname', label_trans: 'reg.surname' }), AddCol({ name: 'email', label_trans: 'reg.email' }), - AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: 'date' }), - AddCol({ name: 'perm', label_trans: 'reg.perm' }), + AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: tools.FieldType.date }), + AddCol({ name: 'perm', label_trans: 'reg.perm', fieldtype: tools.FieldType.binary, jointable: 'permissions' }), AddCol({ name: 'img', label_trans: 'reg.img', sortable: false }), AddCol(DeleteRec), AddCol({ diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts index 85ed71b..d918c35 100644 --- a/src/store/Modules/tools.ts +++ b/src/store/Modules/tools.ts @@ -96,6 +96,13 @@ export const tools = { COMPLETED: 10 }, + FieldType: { + boolean: 1, + date: 2, + string: 4, + binary: 8 + }, + SelectListNumPeople: [ { id: 1, diff --git a/src/views/categories/category/category.ts b/src/views/categories/category/category.ts index 96e7515..9424180 100644 --- a/src/views/categories/category/category.ts +++ b/src/views/categories/category/category.ts @@ -76,7 +76,6 @@ export default class Category extends Vue { this.updatetable() } - created() { this.loadCat() }