|
@ -3,8 +3,7 @@ import { registry } from "@web/core/registry"; |
|
|
import time from 'web.time'; |
|
|
import time from 'web.time'; |
|
|
var translation = require('web.translation'); |
|
|
var translation = require('web.translation'); |
|
|
var _t = translation._t; |
|
|
var _t = translation._t; |
|
|
|
|
|
const { Component,useRef, useState} = owl; |
|
|
const { Component,useRef} = owl; |
|
|
|
|
|
|
|
|
|
|
|
export class DomainSelectorTextField extends Component { |
|
|
export class DomainSelectorTextField extends Component { |
|
|
static template = 'FieldDateMultipleDate' |
|
|
static template = 'FieldDateMultipleDate' |
|
@ -12,40 +11,49 @@ export class DomainSelectorTextField extends Component { |
|
|
setup(){ |
|
|
setup(){ |
|
|
super.setup(); |
|
|
super.setup(); |
|
|
this.input = useRef('inputdate') |
|
|
this.input = useRef('inputdate') |
|
|
|
|
|
this.state = useState({ |
|
|
|
|
|
date: this.props.value |
|
|
|
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
_onSelectDateField(ev){ |
|
|
_onSelectDateField(ev){ |
|
|
var dateFormat = time.getLangDateFormat(); |
|
|
var dateFormat = time.getLangDateFormat(); |
|
|
console.log("dateFormat....",dateFormat); |
|
|
|
|
|
if (dateFormat.includes('MMMM')){ |
|
|
if (dateFormat.includes('MMMM')){ |
|
|
var dates = dateFormat.toLowerCase() |
|
|
var dates = dateFormat.toLowerCase() |
|
|
var result = dates.replace(/mmmm/g, 'MM'); |
|
|
var result = dates.replace(/mmmm/g, 'MM'); |
|
|
console.log("Result..............",result) |
|
|
|
|
|
dateFormat = result |
|
|
dateFormat = result |
|
|
} |
|
|
} |
|
|
else if (dateFormat.includes('MMM')) { |
|
|
else if (dateFormat.includes('MMM')) { |
|
|
var dates = dateFormat.toLowerCase() |
|
|
var dates = dateFormat.toLowerCase() |
|
|
var result = dates.replace(/mmm/g, 'M'); |
|
|
var result = dates.replace(/mmm/g, 'M'); |
|
|
dateFormat = result |
|
|
dateFormat = result |
|
|
console('date',result) |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
else if(dateFormat.includes('ddd')){ |
|
|
else if(dateFormat.includes('ddd')){ |
|
|
var dates =new dateFormat.toLowerCase() |
|
|
var dates =new dateFormat.toLowerCase() |
|
|
var result = new dates.replace(/ddd/g, 'DD'); |
|
|
var result = new dates.replace(/ddd/g, 'DD'); |
|
|
console.log("Result..............",result) |
|
|
|
|
|
dateFormat = result |
|
|
dateFormat = result |
|
|
} |
|
|
} |
|
|
else{ |
|
|
else{ |
|
|
dateFormat = dateFormat.toLowerCase() |
|
|
dateFormat = dateFormat.toLowerCase() |
|
|
} |
|
|
} |
|
|
if (this.input.el){ |
|
|
if (this.input.el){ |
|
|
this.props.update(this.input.el.value.replace(DomainSelectorTextField, '')); |
|
|
|
|
|
console.log('this',dateFormat) |
|
|
|
|
|
$(this.input.el).datepicker({ |
|
|
$(this.input.el).datepicker({ |
|
|
multidate: true, |
|
|
multidate: true, |
|
|
format: dateFormat, |
|
|
format: dateFormat |
|
|
}).trigger('focus'); |
|
|
}).on('changeDate',async (ev) => await this.onSelectDate(ev, dateFormat)).trigger('focus'); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
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) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
convertToMomentFormat(format) { |
|
|
|
|
|
return format.replace(/d{1,2}/g, 'DD') |
|
|
|
|
|
.replace(/m{1,2}/g, 'MM') |
|
|
|
|
|
.replace(/y{2,4}/g, 'YYYY'); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
registry.category("fields").add("multiple_datepicker", DomainSelectorTextField); |
|
|
registry.category("fields").add("multiple_datepicker", DomainSelectorTextField); |
|
|