From 9f3fb14cb10eb87b6a6624417170218e462c750c Mon Sep 17 00:00:00 2001 From: AjmalCybro Date: Fri, 28 Mar 2025 11:25:26 +0530 Subject: [PATCH] Mar 28 : [UPDT] Updated 'multiple_datepicker_widget' --- .../doc/RELEASE_NOTES.md | 23 +++++++-- .../src/js/multiple_date_picker_widget.js | 47 ++++++++++++++----- 2 files changed, 55 insertions(+), 15 deletions(-) diff --git a/multiple_datepicker_widget/doc/RELEASE_NOTES.md b/multiple_datepicker_widget/doc/RELEASE_NOTES.md index 1a8b2081c..879db3d22 100644 --- a/multiple_datepicker_widget/doc/RELEASE_NOTES.md +++ b/multiple_datepicker_widget/doc/RELEASE_NOTES.md @@ -1,24 +1,41 @@ ## Module #### 30.11.2021 + #### Version 16.0.1.0.0 + ##### ADD -- Initial commit for Multiple Date Picker Widget +- Initial commit for Multiple Date Picker Widget ## Module #### 24.05.2024 + #### Version 16.0.1.0.1 + #### UPDT - Remove useInputField function from setup. - ## Module #### 18.06.2024 + #### Version 16.0.1.0.2 + #### UPDT -- Add new function onSelectDate for storing value. \ No newline at end of file +- Add new function onSelectDate for storing value. + +## Module + +#### 26.03.2025 + +#### Version 16.0.1.0.3 + +#### FIX + +- Fixed date duplication and ensured proper removal of all selected dates in + onSelectDate function. + diff --git a/multiple_datepicker_widget/static/src/js/multiple_date_picker_widget.js b/multiple_datepicker_widget/static/src/js/multiple_date_picker_widget.js index 1c04f718e..7fcef5ed1 100644 --- a/multiple_datepicker_widget/static/src/js/multiple_date_picker_widget.js +++ b/multiple_datepicker_widget/static/src/js/multiple_date_picker_widget.js @@ -17,25 +17,37 @@ export class DomainSelectorTextField extends Component { } _onSelectDateField(ev){ + var dateFormat = time.getLangDateFormat(); - if (dateFormat.includes('MMMM')){ + + if (dateFormat.includes('MMMM')){ var dates = dateFormat.toLowerCase() var result = dates.replace(/mmmm/g, 'MM'); + console.log(result, 'res1') dateFormat = result - } - else if (dateFormat.includes('MMM')) { + } + + else if (dateFormat.includes('MMM')) { var dates = dateFormat.toLowerCase() var result = dates.replace(/mmm/g, 'M'); + console.log(result, 'res2') + dateFormat = result - } - else if(dateFormat.includes('ddd')){ + } + + else if(dateFormat.includes('ddd')){ var dates =new dateFormat.toLowerCase() var result = new dates.replace(/ddd/g, 'DD'); + console.log(result, 'res3') + dateFormat = result - } - else{ - dateFormat = dateFormat.toLowerCase() - } + } + + else { + dateFormat = dateFormat.toLowerCase() + console.log(dateFormat, 'res4') + } + console.log($(this.input.el), 'eee') if (this.input.el){ $(this.input.el).datepicker({ multidate: true, @@ -45,11 +57,22 @@ export class DomainSelectorTextField extends Component { } async onSelectDate(ev, dateFormat) { - const newDate = moment(ev.date).format(this.convertToMomentFormat(dateFormat)) - this.state.date = `${this.state.date},${newDate}` - await this.props.update(this.state.date) + if (ev.dates.length === 0) { + this.state.date = ""; + await this.props.update(this.state.date); + + $(this.input.el).val(''); + return; + } + + let dateList = ev.dates.map(date => moment(date).format(this.convertToMomentFormat(dateFormat))); + + this.state.date = [...new Set(dateList)].join(','); + + await this.props.update(this.state.date); } + convertToMomentFormat(format) { return format.replace(/d{1,2}/g, 'DD') .replace(/m{1,2}/g, 'MM')