aboutsummaryrefslogtreecommitdiff
path: root/kvision-modules/kvision-bootstrap-datetime
diff options
context:
space:
mode:
Diffstat (limited to 'kvision-modules/kvision-bootstrap-datetime')
-rw-r--r--kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt2
-rw-r--r--kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt26
2 files changed, 25 insertions, 3 deletions
diff --git a/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt b/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt
index aa3e77b2..68ec96a2 100644
--- a/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt
+++ b/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt
@@ -196,7 +196,7 @@ open class DateTime(
this.input.id = idc
this.name = name
}
- final override val flabel: FieldLabel = FieldLabel(idc, label, rich)
+ final override val flabel: FieldLabel = FieldLabel(idc, label, rich, setOf("control-label"))
final override val invalidFeedback: InvalidFeedback = InvalidFeedback().apply { visible = false }
init {
diff --git a/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt b/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt
index daeda692..967ca9db 100644
--- a/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt
+++ b/kvision-modules/kvision-bootstrap-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt
@@ -36,6 +36,7 @@ import pl.treksoft.kvision.panel.SimplePanel
import pl.treksoft.kvision.types.toDateF
import pl.treksoft.kvision.types.toStringF
import pl.treksoft.kvision.utils.obj
+import pl.treksoft.kvision.utils.set
import kotlin.js.Date
internal const val DEFAULT_STEPPING = 5
@@ -78,10 +79,12 @@ open class DateTimeInput(
input.value = value?.toStringF(format)
refreshState()
}
+
/**
* Date/time format.
*/
var format by refreshOnUpdate(format) { refreshDatePicker() }
+
/**
* The placeholder for the date/time input.
*/
@@ -90,6 +93,7 @@ open class DateTimeInput(
set(value) {
input.placeholder = value
}
+
/**
* The name attribute of the generated HTML input element.
*/
@@ -98,6 +102,7 @@ open class DateTimeInput(
set(value) {
input.name = value
}
+
/**
* Determines if the field is disabled.
*/
@@ -106,6 +111,7 @@ open class DateTimeInput(
set(value) {
input.disabled = value
}
+
/**
* Determines if the text input is automatically focused.
*/
@@ -114,6 +120,7 @@ open class DateTimeInput(
set(value) {
input.autofocus = value
}
+
/**
* Determines if the date/time input is read-only.
*/
@@ -122,6 +129,7 @@ open class DateTimeInput(
set(value) {
input.readonly = value
}
+
/**
* The size of the input.
*/
@@ -130,6 +138,7 @@ open class DateTimeInput(
set(value) {
input.size = value
}
+
/**
* The validation status of the input.
*/
@@ -139,46 +148,57 @@ open class DateTimeInput(
input.validationStatus = value
refresh()
}
+
/**
* Days of the week that should be disabled. Multiple values should be comma separated.
*/
var daysOfWeekDisabled by refreshOnUpdate(arrayOf<Int>()) { refreshDatePicker() }
+
/**
* Determines if *Clear* button should be visible.
*/
var showClear by refreshOnUpdate(true) { refreshDatePicker() }
+
/**
* Determines if *Close* button should be visible.
*/
var showClose by refreshOnUpdate(true) { refreshDatePicker() }
+
/**
* Determines if *Today* button should be visible.
*/
var showTodayButton by refreshOnUpdate(true) { refreshDatePicker() }
+
/**
* The increment used to build the hour view.
*/
var stepping by refreshOnUpdate(DEFAULT_STEPPING) { refreshDatePicker() }
+
/**
* Prevents date selection before this date.
*/
var minDate: Date? by refreshOnUpdate { refreshDatePicker() }
+
/**
* Prevents date selection after this date.
*/
var maxDate: Date? by refreshOnUpdate { refreshDatePicker() }
+
/**
* Shows date and time pickers side by side.
*/
var sideBySide by refreshOnUpdate(false) { refreshDatePicker() }
+
/**
* An array of enabled dates.
*/
var enabledDates by refreshOnUpdate(arrayOf<Date>()) { refreshDatePicker() }
+
/**
* An array of disabled dates.
*/
var disabledDates by refreshOnUpdate(arrayOf<Date>()) { refreshDatePicker() }
+
/**
* Allow date picker for readonly component.
*/
@@ -392,10 +412,12 @@ open class DateTimeInput(
* It takes the same parameters as the constructor of the built component.
*/
fun Container.dateTimeInput(
- value: Date? = null, format: String = "YYYY-MM-DD HH:mm", classes: Set<String> = setOf(),
+ value: Date? = null, format: String = "YYYY-MM-DD HH:mm",
+ classes: Set<String>? = null,
+ className: String? = null,
init: (DateTimeInput.() -> Unit)? = null
): DateTimeInput {
- val dateTimeInput = DateTimeInput(value, format, classes).apply { init?.invoke(this) }
+ val dateTimeInput = DateTimeInput(value, format, classes ?: className.set).apply { init?.invoke(this) }
this.add(dateTimeInput)
return dateTimeInput
}