|
@@ -33,6 +33,7 @@
|
|
<!-- The Actual Table -->
|
|
<!-- The Actual Table -->
|
|
<v-data-table
|
|
<v-data-table
|
|
:headers="headers"
|
|
:headers="headers"
|
|
|
|
+ :item-class="(item) => itemIsReadOnly(item) ? 'text--disabled grey lighten-4' : ''"
|
|
:items="rows"
|
|
:items="rows"
|
|
:search="search"
|
|
:search="search"
|
|
:custom-filter="filterSearchableCols"
|
|
:custom-filter="filterSearchableCols"
|
|
@@ -169,7 +170,8 @@
|
|
<component
|
|
<component
|
|
:is="column.datatype"
|
|
:is="column.datatype"
|
|
:key="id"
|
|
:key="id"
|
|
- :readonly="column.readonly || $store.getters.working"
|
|
|
|
|
|
+ :readonly="column.readonly"
|
|
|
|
+ :disabled="$store.getters.working || itemIsReadOnly(itemFieldProps.item)"
|
|
v-model="itemFieldProps.item[column.value]"
|
|
v-model="itemFieldProps.item[column.value]"
|
|
v-bind="column.fieldProps ? column.fieldProps(itemFieldProps.item) : {}"
|
|
v-bind="column.fieldProps ? column.fieldProps(itemFieldProps.item) : {}"
|
|
@keyup="keyupHandler"
|
|
@keyup="keyupHandler"
|
|
@@ -182,7 +184,7 @@
|
|
>
|
|
>
|
|
<v-btn
|
|
<v-btn
|
|
v-for="action in actions"
|
|
v-for="action in actions"
|
|
- :disabled="$store.getters.working"
|
|
|
|
|
|
+ :disabled="$store.getters.working || itemIsReadOnly(itemFieldProps.item)"
|
|
:key="action.key"
|
|
:key="action.key"
|
|
color="grey"
|
|
color="grey"
|
|
icon
|
|
icon
|
|
@@ -192,7 +194,7 @@
|
|
</v-btn>
|
|
</v-btn>
|
|
<v-btn
|
|
<v-btn
|
|
v-if="updatable"
|
|
v-if="updatable"
|
|
- :disabled="$store.getters.working"
|
|
|
|
|
|
+ :disabled="$store.getters.working || itemIsReadOnly(itemFieldProps.item)"
|
|
color="grey"
|
|
color="grey"
|
|
class="hover-green"
|
|
class="hover-green"
|
|
icon
|
|
icon
|
|
@@ -202,7 +204,7 @@
|
|
</v-btn>
|
|
</v-btn>
|
|
<v-btn
|
|
<v-btn
|
|
v-if="destroyable"
|
|
v-if="destroyable"
|
|
- :disabled="$store.getters.working"
|
|
|
|
|
|
+ :disabled="$store.getters.working || itemIsReadOnly(itemFieldProps.item)"
|
|
color="grey"
|
|
color="grey"
|
|
class="hover-red"
|
|
class="hover-red"
|
|
icon
|
|
icon
|
|
@@ -375,6 +377,7 @@ export default {
|
|
// object
|
|
// object
|
|
itemDefaults: () => ({}),
|
|
itemDefaults: () => ({}),
|
|
// callbacks
|
|
// callbacks
|
|
|
|
+ itemIsReadOnly: () => false,
|
|
postcreate: () => (undefined),
|
|
postcreate: () => (undefined),
|
|
keyupHandler: (e) => {
|
|
keyupHandler: (e) => {
|
|
// Intercept Enter key
|
|
// Intercept Enter key
|
|
@@ -610,4 +613,7 @@ export default {
|
|
>>> tbody tr > :hover {
|
|
>>> tbody tr > :hover {
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
|
|
+ >>> tbody tr.text--disabled > :hover {
|
|
|
|
+ cursor: auto;
|
|
|
|
+ }
|
|
</style>
|
|
</style>
|