The date and time inputs provide a simple way for end users to pick values from a fixed set.
Date
To create an input for selecting a time, use the date input.
...
...
...
def formFieldSet = api.createConfiguratorEntry()
formFieldSet.inputs = [
api.inputBuilderFactory()
.createDateUserEntry('date')
.buildContextParameter()
]
return formFieldSet |
|
Expand |
---|
title | In input generation mode ( |
---|
|
...
...
...
api.inputBuilderFactory()
.createDateUserEntry('date')
.getInput() |
|
...
...
processor.addOrUpdateInput( //❶
'ROOT',
api.inputBuilderFactory()
.createDateUserEntry('date')
.buildMap()
) |
❶ the processor can be one of the quoteProcessor, cProcessor, etc., which references subclasses of the CalculableLineItemCollectionBuilder |
...
Reading input value in a line item logic
...
...
...
|
final datePattern = 'yyyy-MM-dd'
def date = api.parseDate(datePattern, input.date) |
Time
To create an input for selecting a time, use the time input.
...
...
...
def formFieldSet = api.createConfiguratorEntry()
formFieldSet.inputs = [
api.inputBuilderFactory()
.createTimeUserEntry('time')
.buildContextParameter()
]
return formFieldSet |
|
Expand |
---|
title | In input generation mode ( |
---|
|
...
...
...
api.inputBuilderFactory()
.createTimeUserEntry('time', )
.getInput() |
|
...
processor.addOrUpdateInput( //❶
'ROOT',
api.inputBuilderFactory()
.createTimeUserEntry('time')
.buildMap()
) |
❶ the processor can be one of the quoteProcessor, cProcessor, etc., which references subclasses of the CalculableLineItemCollectionBuilder |
...
...
Reading input value in a line item logic
...
...
...
|
def matcher = input.time =~ /(?<hour>[0-9]{2}):(?<minute>[0-9]{2})/
matcher.matches() // ❶
def hour = matcher.group('hour') as Integer
def minute = matcher.group('minute') as Integer |
❶ You need to test if the pattern matches before you can extract groups by name.
Date Time
To create an input for selecting a combination of date and time, use the date-time input:
...
...
...
def formFieldSet = api.createConfiguratorEntry()
formFieldSet.inputs = [
api.inputBuilderFactory()
.createDateTimeUserEntry('dateTime')
.buildContextParameter()
]
return formFieldSet |
|
Expand |
---|
title | In input generation mode ( |
---|
|
...
...
...
api.inputBuilderFactory()
.createDateTimeUserEntry('dateTime', , )
.getInput() |
|
...
processor.addOrUpdateInput( //❶
'ROOT',
api.inputBuilderFactory()
.createDateTimeUserEntry('dateTime')
.buildMap()
) |
❶ the processor can be one of the quoteProcessor, cProcessor, etc., which references subclasses of the CalculableLineItemCollectionBuilder |
...
Reading input value in a line item logic
...
...
...
|
final dateTimePattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
def dateTime = api.parseDateTime(dateTimePattern, input.dateTime) |
Date Range
To create an input for selecting a pair of dates – a date range – use the date range input:
...
...
| def formFieldSet = api.createConfiguratorEntry()
formFieldSet.inputs = [
api.inputBuilderFactory()
.createDateRangeUserEntry('dateRange')
.buildContextParameter()
]
return formFieldSet |
|
Expand |
---|
title | In input generation mode ( |
---|
|
...
...
| api.inputBuilderFactory()
.createDateRangeUserEntry('dateRange', , , )
.getInput() |
|
...
processor.addOrUpdateInput( //❶
'ROOT',
api.inputBuilderFactory()
.createDateRangeUserEntry('dateRange')
.buildMap()
) |
❶ the processor can be one of the quoteProcessor, cProcessor, etc., which references subclasses of the CalculableLineItemCollectionBuilder |
...
Reading input value in a line-item logic
...
...
...
|
final datePattern = 'yyyy-MM-dd'
def dateFrom = api.parseDate(datePattern, input.dateRange[0])
def dateTo = api.parseDate(datePattern, input.dateRange[1]) |
Minimum and Maximum Values
You can restrict the input from the user by setting minimum and maximum dates.
Warning |
---|
As of version 7.3, the functionality for setting the minimum and maximum values has not been implemented in the frontend application. However, you can still set these properties in a Groovy logic. |
...
|
String dateFormat = "yyyy-MM-dd"
Date minDate = api.parseDate(dateFormat, "2021-01-15")
Date maxDate = api.parseDate(dateFormat, "2021-01-25")
api.inputBuilderFactory()
.createDateUserEntry('Date')
.setMin(minDate)
.setMax(maxDate)
.getInput() |