From 6f35e3fa0e598321f0c32b6d86b4d0e0e2e6046f Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Thu, 14 Mar 2024 15:26:35 +0600 Subject: [PATCH] pkp/pkp-lib#5885 removed unnecessary fields and controls with field range component enhancement --- src/components/Form/FormGroup.vue | 2 - src/components/Form/fields/FieldCheckbox.vue | 152 ------------------ .../Form/fields/FieldRangeSlider.vue | 108 +++++++++++-- 3 files changed, 92 insertions(+), 170 deletions(-) delete mode 100644 src/components/Form/fields/FieldCheckbox.vue diff --git a/src/components/Form/FormGroup.vue b/src/components/Form/FormGroup.vue index 6d1322255..526954375 100644 --- a/src/components/Form/FormGroup.vue +++ b/src/components/Form/FormGroup.vue @@ -62,7 +62,6 @@ import FieldPubId from './fields/FieldPubId.vue'; import FieldHtml from './fields/FieldHtml.vue'; import FieldMetadataSetting from './fields/FieldMetadataSetting.vue'; import FieldOptions from './fields/FieldOptions.vue'; -import FieldCheckbox from './fields/FieldCheckbox.vue'; import FieldRangeSlider from './fields/FieldRangeSlider.vue'; import FieldPreparedContent from './fields/FieldPreparedContent.vue'; import FieldRadioInput from './fields/FieldRadioInput.vue'; @@ -92,7 +91,6 @@ export default { FieldHtml, FieldMetadataSetting, FieldOptions, - FieldCheckbox, FieldRangeSlider, FieldPreparedContent, FieldRadioInput, diff --git a/src/components/Form/fields/FieldCheckbox.vue b/src/components/Form/fields/FieldCheckbox.vue deleted file mode 100644 index de0a300cb..000000000 --- a/src/components/Form/fields/FieldCheckbox.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - diff --git a/src/components/Form/fields/FieldRangeSlider.vue b/src/components/Form/fields/FieldRangeSlider.vue index c08a8dee7..182bc503e 100644 --- a/src/components/Form/fields/FieldRangeSlider.vue +++ b/src/components/Form/fields/FieldRangeSlider.vue @@ -15,18 +15,18 @@ >
-
+
+ + +
+ + +
@@ -71,15 +81,27 @@ export default { /** The disable state of range slider */ disable: { type: Boolean, - required: false, default: false, }, + /** Range slider should be disable if input field value set to NULL on render */ + disableOnNull: { + type: Boolean, + default: true, + }, + /** The current value for this field. */ value: { type: Number, required: false, - default: 0, + default: null, + }, + + /** Range value to set on reset when enabiling/disbaling. */ + onResetValue: { + type: Number, + required: false, + default: null, }, /** The min value of the slider range. */ @@ -98,7 +120,7 @@ export default { step: { type: Number, required: false, - deault: 1, + default: 1, }, /** Slider value update label on realtime */ @@ -112,7 +134,7 @@ export default { size: { type: String, required: true, - default: 'small', + default: 'normal', validator: function (value) { return ['small', 'normal', 'large'].indexOf(value) !== -1; }, @@ -127,20 +149,76 @@ export default { return ['before', 'after'].indexOf(value) !== -1; }, }, + + /** Should allow the toggle to slider state disable/enable */ + allowStateToggle: { + type: Boolean, + default: true, + }, + + /** The disable/enable control label when disable */ + controlLabelOnDisable: { + type: String, + required: function () { + return this.allowStateToggle; + }, + }, + + /** The disable/enable control label when enable */ + controlLabelOnEnable: { + type: String, + required: function () { + return this.allowStateToggle; + }, + }, }, data() { return { sliderSize: { - small: 'range-sm', - normal: '', - large: 'range-lg', + small: { + '--thumb-height': '0.5em', + '--track-height': '0.075em', + }, + normal: { + '--thumb-height': '0.8em', + '--track-height': '0.125em', + }, + large: { + '--thumb-height': '1.2em', + '--track-height': '0.250em', + }, }, + + rangeDisableState: this.disable, }; }, + computed: { + toggleControlLabelText() { + return this.rangeDisableState + ? this.controlLabelOnDisable + : this.controlLabelOnEnable; + }, + }, + created() { + if ( + this.disableOnNull && + (this.value === null || this.value === undefined) + ) { + this.rangeDisableState = true; + } + }, + methods: { + toogleRangeState() { + this.rangeDisableState = !this.rangeDisableState; + this.currentValue = this.rangeDisableState + ? null + : this.value ?? this.onResetValue; + }, + }, }; -