2
0
mirror of https://github.com/frappe/books.git synced 2024-09-20 19:29:02 +00:00
books/ui/components/controls/FrappeControl.vue
sahil28297 231b36a51b Make datatable non-editable in Report and formula field selectable (#85)
* making the datatable fields non editable and making the field selectable that uses formula

* Revised the datatable selectable property

* Update index.vue
2018-09-20 16:23:18 +05:30

80 lines
1.6 KiB
Vue

<template>
<component
:is="component"
:docfield="docfield"
:value="value"
:onlyInput="onlyInput"
:disabled="isDisabled"
@change="$emit('change', $event)"
/>
</template>
<script>
import Base from './Base';
import Autocomplete from './Autocomplete';
import Check from './Check';
import Code from './Code';
import Currency from './Currency';
import Data from './Data';
import Date from './Date';
import DynamicLink from './DynamicLink';
import File from './File';
import Float from './Float';
import Int from './Int';
import Link from './Link';
import Password from './Password';
import Select from './Select';
import Table from './Table';
import Text from './Text';
import Time from './Time';
export default {
props: ['docfield', 'value', 'onlyInput', 'doc'],
computed: {
component() {
if (this.docfield.template) {
// for controls with their own template
// create a vue object for it
return {
extends: Base,
render: null,
template: this.docfield.template()
};
}
return {
Autocomplete,
Check,
Code,
Currency,
Data,
Date,
DynamicLink,
File,
Float,
Int,
Link,
Password,
Select,
Table,
Text,
Time
}[this.docfield.fieldtype];
},
isDisabled() {
let disabled = this.docfield.disabled;
if (this.doc && this.doc.submitted) {
disabled = true;
}
return Boolean(disabled);
}
}
};
</script>
<style scoped>
.form-group {
position: relative;
}
</style>