- Toggle Edit Values in CGridTableRec

- Choose the visible column in CGridTableRec
This commit is contained in:
Paolo Arena
2019-10-15 21:43:29 +02:00
parent 9fd858d33f
commit 9462f6ef24
5 changed files with 86 additions and 13 deletions

View File

@@ -37,9 +37,19 @@ export default class CGridTableRec extends Vue {
public filter: string = '' public filter: string = ''
public selected: any public selected: any
public dark: boolean = true public dark: boolean = true
public funcActivated = []
public returnedData public returnedData
public returnedCount public returnedCount
public colVisib: any[] = []
get canEdit() {
return this.funcActivated.includes(lists.MenuAction.CAN_EDIT_TABLE)
}
get lists() {
return lists
}
get tableClass() { get tableClass() {
if (this.dark) { if (this.dark) {
@@ -90,6 +100,11 @@ export default class CGridTableRec extends Vue {
public created() { public created() {
// this.serverData = this.mylist.slice() // [{ chiave: 'chiave1', valore: 'valore 1' }] // this.serverData = this.mylist.slice() // [{ chiave: 'chiave1', valore: 'valore 1' }]
this.mycolumns.forEach((elem) => {
if (elem.field)
this.colVisib.push(elem.field)
})
} }
get getrows() { get getrows() {
@@ -219,7 +234,7 @@ export default class CGridTableRec extends Vue {
} }
public getclassCol(col) { public getclassCol(col) {
return col.disable ? '' : 'colmodif' return (col.disable || !this.canEdit) ? '' : 'colmodif'
} }
public saveFieldValue(mydata) { public saveFieldValue(mydata) {

View File

@@ -1,13 +1,6 @@
<template> <template>
<div class="q-pa-sm"> <div class="q-pa-sm">
<!--<div class="col-2 q-table__title">{{ mytitle }}</div>-->
<!--<q-space/>-->
<!--<p style="color:red"> Rows: {{ getrows }}</p>-->
<q-table <q-table
:title="mytitle"
:data="serverData" :data="serverData"
:columns="mycolumns" :columns="mycolumns"
:filter="filter" :filter="filter"
@@ -16,22 +9,64 @@
:loading="loading" :loading="loading"
@request="onRequest" @request="onRequest"
binary-state-sort binary-state-sort
:visible-columns="colVisib"
> >
<template v-slot:header="props">
<q-tr :props="props">
<q-th
v-for="col in props.cols"
v-if="colVisib.includes(col.field)"
:key="col.name"
:props="props"
class="text-italic text-red text-weight-bold"
>
{{ col.label }}
</q-th>
</q-tr>
</template>
<!--<template v-slot:top="props">--> <template v-slot:top="props">
<div class="col-2 q-table__title">{{ mytitle }}</div>
<!--<p style="color:red"> Rows: {{ getrows }}</p>-->
<q-toggle v-model="funcActivated" :val="lists.MenuAction.CAN_EDIT_TABLE"
:label="$t('grid.editvalues')"></q-toggle>
<q-space/>
<!--<q-toggle v-for="(mycol, index) in mycolumns" v-model="colVisib" :val="rec.field" :label="mycol.label"></q-toggle>-->
<q-select
v-model="colVisib"
multiple
borderless
dense
options-dense
display-value="Colonne"
emit-value
map-options
:options="mycolumns"
option-value="name"
style="min-width: 150px">
</q-select>
</template>
<q-tr slot="body" slot-scope="props" :props="props"> <q-tr slot="body" slot-scope="props" :props="props">
<q-td v-for="col in mycolumns" :key="col.name" :props="props"> <q-td v-for="col in mycolumns" :key="col.name" :props="props" v-if="colVisib.includes(col.field)">
<div v-if="col.action"> <div v-if="col.action">
<q-btn flat round color="red" icon="fas fa-trash-alt" <q-btn flat round color="red" icon="fas fa-trash-alt"
@click="clickFunz(props.row, col)"></q-btn> @click="clickFunz(props.row, col)"></q-btn>
</div> </div>
<div v-else :class="getclassCol(col)"> <div v-else :class="getclassCol(col)">
{{ props.row[col.name] }} {{ props.row[col.name] }}
<q-popup-edit v-model="props.row[col.name]" :disable="col.disable" :title="col.title" buttons <q-popup-edit v-if="canEdit" v-model="props.row[col.name]" :disable="col.disable"
:title="col.title" buttons
@save="SaveValue" @show="selItem(props.row, col.field)"> @save="SaveValue" @show="selItem(props.row, col.field)">
<q-input v-model="props.row[col.name]"/> <q-input v-model="props.row[col.name]"/>
@@ -47,7 +82,7 @@
class="q-ml-md"> class="q-ml-md">
</q-btn> </q-btn>
--> -->
<!--</template>--> <!---->
</q-table> </q-table>
</div> </div>
</template> </template>

View File

@@ -2,6 +2,10 @@ import msg_website from '../db/i18n_website'
const msgglobal = { const msgglobal = {
it: { it: {
grid: {
editvalues: 'Modifica Valori',
showprevedit: 'Mostra Eventi Passati'
},
otherpages: { otherpages: {
admin : { admin : {
menu: 'Amministrazione', menu: 'Amministrazione',
@@ -229,6 +233,10 @@ const msgglobal = {
cookies: 'Usiamo i Cookie per una migliore prestazione web.' cookies: 'Usiamo i Cookie per una migliore prestazione web.'
}, },
es: { es: {
grid: {
editvalues: 'Cambiar valores',
showprevedit: 'Mostrar eventos pasados'
},
otherpages: { otherpages: {
admin : { admin : {
menu: 'Administración', menu: 'Administración',
@@ -450,6 +458,10 @@ const msgglobal = {
cookies: 'Utilizamos cookies para un mejor rendimiento web.' cookies: 'Utilizamos cookies para un mejor rendimiento web.'
}, },
fr: { fr: {
grid: {
editvalues: 'Changer les valeurs',
showprevedit: 'Afficher les événements passés'
},
otherpages: { otherpages: {
admin : { admin : {
menu: 'Administration', menu: 'Administration',
@@ -670,6 +682,10 @@ const msgglobal = {
cookies: 'Nous utilisons des cookies pour améliorer les performances Web.' cookies: 'Nous utilisons des cookies pour améliorer les performances Web.'
}, },
enUs: { enUs: {
grid: {
editvalues: 'Edit Values',
showprevedit: 'Show Past Events'
},
otherpages: { otherpages: {
admin : { admin : {
menu: 'Administration', menu: 'Administration',
@@ -889,6 +905,10 @@ const msgglobal = {
cookies: 'We use cookies for better web performance.' cookies: 'We use cookies for better web performance.'
}, },
de: { de: {
grid: {
editvalues: 'Edit Values',
showprevedit: 'Show Past Events'
},
otherpages: { otherpages: {
admin : { admin : {
menu: 'Administration', menu: 'Administration',

View File

@@ -16,6 +16,9 @@ export const lists = {
THEMEBG: 211, THEMEBG: 211,
DELETE_RECTABLE: 300, DELETE_RECTABLE: 300,
CAN_EDIT_TABLE: 400,
SHOW_PREV_REC: 401,
}, },
selectTheme: [ selectTheme: [

View File

@@ -29,7 +29,7 @@ export default class CfgServer extends Vue {
{ name: 'valore', label: 'Valore', field: 'valore', sortable: false } { name: 'valore', label: 'Valore', field: 'valore', sortable: false }
] ]
public visibleColumns: ['chiave', 'userid', 'valore'] public colVisib: ['chiave', 'userid', 'valore']
public separator: 'horizontal' public separator: 'horizontal'
public filter: string = '' public filter: string = ''
public selected: any[] = [] public selected: any[] = []