From b9a849b4ebf397b04b4b3c405de325b740b958aa Mon Sep 17 00:00:00 2001 From: Robert Jaros Date: Fri, 3 Nov 2017 15:16:42 +0100 Subject: Select input components --- build.gradle | 2 + src/main/assets/js/bootstrap-select-i18n.min.js | 1 + src/main/kotlin/pl/treksoft/kvision/Showcase.kt | 86 ++++++--- .../kotlin/pl/treksoft/kvision/form/SelectInput.kt | 203 +++++++++++++++++++++ .../pl/treksoft/kvision/form/SelectOptGroup.kt | 60 ++++++ .../pl/treksoft/kvision/form/SelectOption.kt | 75 ++++++++ 6 files changed, 404 insertions(+), 23 deletions(-) create mode 100644 src/main/assets/js/bootstrap-select-i18n.min.js create mode 100644 src/main/kotlin/pl/treksoft/kvision/form/SelectInput.kt create mode 100644 src/main/kotlin/pl/treksoft/kvision/form/SelectOptGroup.kt create mode 100644 src/main/kotlin/pl/treksoft/kvision/form/SelectOption.kt diff --git a/build.gradle b/build.gradle index e58a071b..8e43c79b 100644 --- a/build.gradle +++ b/build.gradle @@ -52,6 +52,8 @@ kotlinFrontend { dependency "file-loader" dependency "url-loader" dependency("awesome-bootstrap-checkbox", "0.3.7") + dependency "bootstrap-select" + dependency "ajax-bootstrap-select" dependency("snabbdom", "0.6.9") dependency "snabbdom-virtualize" dependency "navigo" diff --git a/src/main/assets/js/bootstrap-select-i18n.min.js b/src/main/assets/js/bootstrap-select-i18n.min.js new file mode 100644 index 00000000..4428d3c0 --- /dev/null +++ b/src/main/assets/js/bootstrap-select-i18n.min.js @@ -0,0 +1 @@ +!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"",noneResultsText:"",countSelectedText:function(a,b){return 1==a?"... ({n})":"... ({n})"},maxOptionsText:function(a,b){return[1==a?"🛇":"🛇",1==b?"🛇":"🛇"]},selectAllText:"++",deselectAllText:"--",multipleSeparator:", "}}(a)}); \ No newline at end of file diff --git a/src/main/kotlin/pl/treksoft/kvision/Showcase.kt b/src/main/kotlin/pl/treksoft/kvision/Showcase.kt index 282ea510..8821e94b 100644 --- a/src/main/kotlin/pl/treksoft/kvision/Showcase.kt +++ b/src/main/kotlin/pl/treksoft/kvision/Showcase.kt @@ -2,26 +2,12 @@ package pl.treksoft.kvision import com.lightningkite.kotlin.observable.list.observableListOf import pl.treksoft.kvision.basic.Label -import pl.treksoft.kvision.core.BGATTACH -import pl.treksoft.kvision.core.BGREPEAT -import pl.treksoft.kvision.core.BGSIZE -import pl.treksoft.kvision.core.BORDERSTYLE -import pl.treksoft.kvision.core.Background -import pl.treksoft.kvision.core.Border -import pl.treksoft.kvision.core.COLOR -import pl.treksoft.kvision.core.Img -import pl.treksoft.kvision.core.Root +import pl.treksoft.kvision.core.* import pl.treksoft.kvision.data.DataComponent import pl.treksoft.kvision.data.DataContainer import pl.treksoft.kvision.dropdown.DD.* import pl.treksoft.kvision.dropdown.DropDown -import pl.treksoft.kvision.form.CheckBox -import pl.treksoft.kvision.form.INPUTSIZE -import pl.treksoft.kvision.form.TEXTINPUTTYPE -import pl.treksoft.kvision.form.Text -import pl.treksoft.kvision.form.TextArea -import pl.treksoft.kvision.form.TextAreaInput -import pl.treksoft.kvision.form.TextInput +import pl.treksoft.kvision.form.* import pl.treksoft.kvision.html.* import pl.treksoft.kvision.html.TAG.DIV import pl.treksoft.kvision.html.TAG.H1 @@ -73,7 +59,7 @@ class Showcase : ApplicationBase() { } } root.add(mbutton2) - val textField = TextInput(placeholder = "Wprowadź hasło ...", value = "abc") + val textField = TextInput(value = "abc").apply { placeholder = "Wprowadź hasło ..." } val mbutton3 = Button("Ukryj/Pokaż").setEventListener