Skip to content

Commit abdc9fb

Browse files
committed
pkp/pkp-lib#8850 Add disabled property for form text in ui-library
1 parent aef7a2f commit abdc9fb

File tree

6 files changed

+55
-11
lines changed

6 files changed

+55
-11
lines changed

src/components/Form/fields/FieldBase.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export default {
2626
formId: String,
2727
isMultilingual: Boolean,
2828
isRequired: Boolean,
29+
disabled: Boolean,
2930
showWhen: [String, Array],
3031
primaryLocale: String,
3132
localeKey: String,

src/components/Form/fields/FieldText.vue

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,13 @@
4646
:name="localizedName"
4747
:aria-describedby="describedByIds"
4848
:aria-invalid="errors && errors.length"
49-
:disabled="isDisabled"
49+
:disabled="disabled"
5050
:required="isRequired"
5151
:style="inputStyles"
5252
/>
5353
<span
5454
v-if="prefix"
5555
class="pkpFormField__inputPrefix"
56-
v-html="prefix"
5756
ref="prefix"
5857
:style="prefixStyles"
5958
@click="setFocus"
@@ -65,9 +64,9 @@
6564
:total="locales.length"
6665
/>
6766
<pkp-button
68-
v-if="optIntoEdit && isDisabled"
67+
v-if="optIntoEdit && disabled"
6968
class="pkpFormField--text__optIntoEdit"
70-
@click="isDisabled = false"
69+
@click="enable()"
7170
>
7271
{{ optIntoEditLabel }}
7372
</pkp-button>
@@ -80,7 +79,6 @@
8079
</div>
8180
</div>
8281
</template>
83-
8482
<script>
8583
import FieldBase from './FieldBase.vue';
8684
@@ -102,7 +100,6 @@ export default {
102100
data() {
103101
return {
104102
inputStyles: {},
105-
isDisabled: false,
106103
prefixStyles: {},
107104
};
108105
},
@@ -143,6 +140,12 @@ export default {
143140
setFocus() {
144141
this.$refs.input.focus();
145142
},
143+
/**
144+
* Set disable prop false
145+
*/
146+
enable() {
147+
this.$emit('change', this.disabled, 'disabled', false);
148+
},
146149
},
147150
mounted() {
148151
/**
@@ -194,11 +197,6 @@ export default {
194197
}
195198
}, 700);
196199
});
197-
198-
// Set the field to disabled if optIntoEdit is passed
199-
if (this.optIntoEdit) {
200-
this.isDisabled = true;
201-
}
202200
},
203201
};
204202
</script>

src/docs/components/Form/fields/FieldText/ComponentFieldText.vue

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import PreviewFieldTextPrefix from './previews/PreviewFieldTextPrefix.vue';
1010
import PreviewFieldTextPrefixTemplate from '!raw-loader!./previews/PreviewFieldTextPrefix.vue';
1111
import PreviewFieldTextOptIntoEdit from './previews/PreviewFieldTextOptIntoEdit.vue';
1212
import PreviewFieldTextOptIntoEditTemplate from '!raw-loader!./previews/PreviewFieldTextOptIntoEdit.vue';
13+
import PreviewFieldTextDisable from './previews/PreviewFieldTextDisable.vue';
14+
import PreviewFieldTextDisableTemplate from '!raw-loader!./previews/PreviewFieldTextDisable.vue';
1315
import readme from '!raw-loader!./readme.md';
1416
1517
export default {
@@ -45,6 +47,11 @@ export default {
4547
name: 'Editing Opt-in',
4648
template: this.extractTemplate(PreviewFieldTextOptIntoEditTemplate),
4749
},
50+
{
51+
component: PreviewFieldTextDisable,
52+
name: 'Disable',
53+
template: this.extractTemplate(PreviewFieldTextDisableTemplate),
54+
},
4855
],
4956
};
5057
},
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<template>
2+
<field-text v-bind="field" @change="change" label="Disable" />
3+
</template>
4+
5+
<script>
6+
import FieldText from '@/components/Form/fields/FieldText.vue';
7+
import PreviewFieldBase from '../../FieldBase/previews/PreviewFieldBase.vue';
8+
import fieldBase from '../../../helpers/field-base';
9+
import field from '../../../helpers/field-text-given-name';
10+
11+
export default {
12+
extends: PreviewFieldBase,
13+
components: {
14+
FieldText,
15+
},
16+
data() {
17+
return {
18+
field: {
19+
...fieldBase,
20+
...field,
21+
isRequired: false,
22+
disabled: true,
23+
},
24+
};
25+
},
26+
};
27+
</script>

src/docs/components/Form/fields/FieldText/previews/PreviewFieldTextOptIntoEdit.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,18 @@ export default {
2525
...fieldBase,
2626
...field,
2727
isRequired: false,
28+
disabled: true,
2829
},
2930
};
3031
},
32+
methods: {
33+
change(name, prop, newValue, localeKey) {
34+
if (localeKey) {
35+
this.field[prop][localeKey] = newValue;
36+
} else {
37+
this.field[prop] = newValue;
38+
}
39+
},
40+
},
3141
};
3242
</script>

src/docs/components/Form/helpers/field-text-given-name.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ export default {
44
inputType: 'text',
55
label: 'Given Name',
66
isRequired: true,
7+
disabled: false,
78
value: '',
89
};

0 commit comments

Comments
 (0)