diff options
| author | Robert Jaros <rjaros@finn.pl> | 2018-10-13 03:37:40 +0200 |
|---|---|---|
| committer | Robert Jaros <rjaros@finn.pl> | 2018-10-13 03:37:40 +0200 |
| commit | ebce2c4b839c0b2f8be78bc31c1ce12c45a0164c (patch) | |
| tree | 7cac3c5449eb8aa398b279d62d9a67ed34fa4115 | |
| parent | 470953c78c2509224bb452c16f8bbea54e53b3d7 (diff) | |
| download | kvision-ebce2c4b839c0b2f8be78bc31c1ce12c45a0164c.tar.gz kvision-ebce2c4b839c0b2f8be78bc31c1ce12c45a0164c.tar.bz2 kvision-ebce2c4b839c0b2f8be78bc31c1ce12c45a0164c.zip | |
Major refactoring of the multi-platform components.
Dependencies upgrade.
A lot of code style fixes.
50 files changed, 544 insertions, 361 deletions
diff --git a/build.gradle b/build.gradle index abb8f25d..35fa82c7 100644 --- a/build.gradle +++ b/build.gradle @@ -34,6 +34,7 @@ configure(allprojects - project(':kvision-modules')) { } configure(allprojects - project(':kvision-modules') - project(":kvision-modules:kvision-base")) { + apply plugin: 'io.gitlab.arturbosch.detekt' apply plugin: 'com.jfrog.bintray' apply plugin: 'maven' apply plugin: 'maven-publish' @@ -54,6 +55,11 @@ configure(allprojects - project(':kvision-modules') - project(":kvision-modules: tasks.build.dependsOn(['sourceJar', 'emptyJar']) + detekt { + config = files(rootProject.projectDir.path + "/detekt.yml") + filters = ".*test.*,.*/resources/.*,.*/tmp/.*" + } + publishing { publications { mavenProject(MavenPublication) { @@ -88,7 +94,6 @@ if (!project.gradle.startParameter.taskNames.contains("dokka")) { apply plugin: 'kotlin' } apply plugin: 'org.jetbrains.kotlin.frontend' -apply plugin: 'io.gitlab.arturbosch.detekt' apply plugin: 'org.jetbrains.dokka' apply plugin: 'kotlinx-serialization' @@ -145,15 +150,6 @@ kotlinFrontend { } -detekt { - version = "${detektVersion}" - profile("main") { - input = "$projectDir/src/main/kotlin" - config = "$projectDir/detekt.yml" - filters = ".*test.*,.*/resources/.*,.*/tmp/.*" - } -} - dokka { includes = ['Module.md'] sourceDirs = files('kvision-modules/kvision-bootstrap/src/main/kotlin', diff --git a/gradle.properties b/gradle.properties index 8bbe74bd..a7d1cbf9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,14 +1,14 @@ group=pl.treksoft version=0.0.18 -kotlinVersion=1.3.0-rc-116 +kotlinVersion=1.3.0-rc-146 javaVersion=1.8 -coroutinesVersion=0.26.1-eap13 +coroutinesVersion=0.30.0-eap13 serializationVersion=0.8.1-rc13 frontendPluginVersion=0.0.37 dokkaVersion=0.9.17 -detektVersion=1.0.0.RC8 +detektVersion=1.0.0.RC9.2 junitVersion=4.12 -joobyVersion=1.5.0 +joobyVersion=1.5.1 kweryVersion=0.17 dependencyManagementPluginVersion=1.0.4.RELEASE -jacksonModuleKotlinVersion=2.9.6 +jacksonModuleKotlinVersion=2.9.7 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar Binary files differindex a5fe1cb9..f6b961fd 100644 --- a/gradle/wrapper/gradle-wrapper.jar +++ b/gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 79799daf..d76b502e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Wed Mar 28 23:46:27 CEST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip diff --git a/src/main/kotlin/pl/treksoft/kvision/types/KDate.kt b/kvision-modules/kvision-common/src/main/kotlin/pl/treksoft/kvision/types/Date.kt index c81ebde1..86a72b33 100644 --- a/src/main/kotlin/pl/treksoft/kvision/types/KDate.kt +++ b/kvision-modules/kvision-common/src/main/kotlin/pl/treksoft/kvision/types/Date.kt @@ -21,19 +21,8 @@ */ package pl.treksoft.kvision.types -import pl.treksoft.kvision.utils.toDateF -import pl.treksoft.kvision.utils.toStringF -import kotlin.js.Date +expect class Date -@Suppress("MayBeConstant", "TopLevelPropertyNaming") -actual val KDATE_FORMAT = "YYYY-MM-DD HH:mm:ss" +expect fun String.toDateF(format: String = "YYYY-MM-DD HH:mm:ss"): Date -actual fun nowDate(): KDate = - KDate(Date().getTime().toLong()) - -actual fun String.toKDateF(format: String): KDate = - this.toDateF(format)?.getTime()?.toLong()?.let { KDate(it) } ?: KDate() - -actual fun KDate.toStringF(format: String) = this.toJS().toStringF(format) - -fun KDate.toJS(): kotlin.js.Date = kotlin.js.Date(this.time) +expect fun Date.toStringF(format: String = "YYYY-MM-DD HH:mm:ss"): String diff --git a/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/KVManagerDatetime.kt b/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/KVManagerDatetime.kt index cde55b1e..4cc71c8b 100644 --- a/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/KVManagerDatetime.kt +++ b/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/KVManagerDatetime.kt @@ -21,7 +21,7 @@ */ package pl.treksoft.kvision -internal val KVManagerDatetimeInit = KVManagerDatetime.init() +internal val kVManagerDatetimeInit = KVManagerDatetime.init() /** * Internal singleton object which initializes and configures KVision datetime module. diff --git a/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt b/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt index 9cdd0369..3d32fd8c 100644 --- a/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt +++ b/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTime.kt @@ -24,12 +24,12 @@ package pl.treksoft.kvision.form.time import pl.treksoft.kvision.core.Container import pl.treksoft.kvision.core.StringBoolPair import pl.treksoft.kvision.core.Widget +import pl.treksoft.kvision.form.DateFormControl import pl.treksoft.kvision.form.FieldLabel import pl.treksoft.kvision.form.HelpBlock -import pl.treksoft.kvision.form.KDateFormControl import pl.treksoft.kvision.panel.SimplePanel -import pl.treksoft.kvision.types.KDate import pl.treksoft.kvision.utils.SnOn +import kotlin.js.Date /** * Form field date/time chooser component. @@ -42,9 +42,9 @@ import pl.treksoft.kvision.utils.SnOn * @param rich determines if [label] can contain HTML code */ open class DateTime( - value: KDate? = null, name: String? = null, format: String = "YYYY-MM-DD HH:mm", label: String? = null, + value: Date? = null, name: String? = null, format: String = "YYYY-MM-DD HH:mm", label: String? = null, rich: Boolean = false -) : SimplePanel(setOf("form-group")), KDateFormControl { +) : SimplePanel(setOf("form-group")), DateFormControl { /** * Date/time input value. @@ -235,7 +235,7 @@ open class DateTime( * It takes the same parameters as the constructor of the built component. */ fun Container.dateTime( - value: KDate? = null, name: String? = null, format: String = "YYYY-MM-DD HH:mm", label: String? = null, + value: Date? = null, name: String? = null, format: String = "YYYY-MM-DD HH:mm", label: String? = null, rich: Boolean = false, init: (DateTime.() -> Unit)? = null ): DateTime { val dateTime = DateTime(value, name, format, label, rich).apply { init?.invoke(this) } diff --git a/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt b/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt index 1df8a082..69b84c87 100644 --- a/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt +++ b/kvision-modules/kvision-datetime/src/main/kotlin/pl/treksoft/kvision/form/time/DateTimeInput.kt @@ -29,11 +29,10 @@ import pl.treksoft.kvision.core.Widget import pl.treksoft.kvision.form.FormInput import pl.treksoft.kvision.form.InputSize import pl.treksoft.kvision.i18n.I18n -import pl.treksoft.kvision.types.KDate -import pl.treksoft.kvision.types.toJS -import pl.treksoft.kvision.types.toKDateF +import pl.treksoft.kvision.types.toDateF import pl.treksoft.kvision.types.toStringF import pl.treksoft.kvision.utils.obj +import kotlin.js.Date internal const val DEFAULT_MINUTE_STEP = 5 internal const val MAX_VIEW = 4 @@ -48,7 +47,7 @@ internal const val MAX_VIEW = 4 */ @Suppress("TooManyFunctions") open class DateTimeInput( - value: KDate? = null, format: String = "YYYY-MM-DD HH:mm", + value: Date? = null, format: String = "YYYY-MM-DD HH:mm", classes: Set<String> = setOf() ) : Widget(classes + "form-control"), FormInput { @@ -63,11 +62,11 @@ open class DateTimeInput( /** * Date/time input value. */ - var value by refreshOnUpdate(value, { refreshState() }) + var value by refreshOnUpdate(value) { refreshState() } /** * Date/time format. */ - var format by refreshOnUpdate(format, { refreshDatePicker() }) + var format by refreshOnUpdate(format) { refreshDatePicker() } /** * The placeholder for the date/time input. */ @@ -95,31 +94,31 @@ open class DateTimeInput( /** * Day of the week start. 0 (Sunday) to 6 (Saturday). */ - var weekStart by refreshOnUpdate(0, { refreshDatePicker() }) + var weekStart by refreshOnUpdate(0) { refreshDatePicker() } /** * Days of the week that should be disabled. Multiple values should be comma separated. */ - var daysOfWeekDisabled by refreshOnUpdate(arrayOf<Int>(), { refreshDatePicker() }) + var daysOfWeekDisabled by refreshOnUpdate(arrayOf<Int>()) { refreshDatePicker() } /** * Determines if *Clear* button should be visible. */ - var clearBtn by refreshOnUpdate(true, { refreshDatePicker() }) + var clearBtn by refreshOnUpdate(true) { refreshDatePicker() } /** * Determines if *Today* button should be visible. */ - var todayBtn by refreshOnUpdate(false, { refreshDatePicker() }) + var todayBtn by refreshOnUpdate(false) { refreshDatePicker() } /** * Determines if the current day should be highlighted. */ - var todayHighlight by refreshOnUpdate(false, { refreshDatePicker() }) + var todayHighlight by refreshOnUpdate(false) { refreshDatePicker() } /** * The increment used to build the hour view. */ - var minuteStep by refreshOnUpdate(DEFAULT_MINUTE_STEP, { refreshDatePicker() }) + var minuteStep by refreshOnUpdate(DEFAULT_MINUTE_STEP) { refreshDatePicker() } /** * Determines if meridian views are visible in day and hour views. */ - var showMeridian by refreshOnUpdate(false, { refreshDatePicker() }) + var showMeridian by refreshOnUpdate(false) { refreshDatePicker() } override fun render(): VNode { return render("input") @@ -164,7 +163,7 @@ open class DateTimeInput( @Suppress("UnsafeCastFromDynamic") protected open fun refreshState() { value?.let { - getElementJQueryD()?.datetimepicker("update", it.toJS()) + getElementJQueryD()?.datetimepicker("update", it) } ?: run { getElementJQueryD()?.`val`(null) getElementJQueryD()?.datetimepicker("update", null) @@ -181,7 +180,7 @@ open class DateTimeInput( protected open fun changeValue() { val v = getElementJQuery()?.`val`() as String? if (v != null && v.isNotEmpty()) { - this.value = v.toKDateF(format) + this.value = v.toDateF(format) } else { this.value = null } @@ -205,15 +204,15 @@ open class DateTimeInput( override fun afterInsert(node: VNode) { if (!this.disabled) { this.initDateTimePicker() - this.getElementJQuery()?.on("changeDate", { e, _ -> + this.getElementJQuery()?.on("changeDate") { e, _ -> this.dispatchEvent("change", obj { detail = e }) - }) - this.getElementJQuery()?.on("show", { e, _ -> + } + this.getElementJQuery()?.on("show") { e, _ -> this.dispatchEvent("showBsDateTime", obj { detail = e }) - }) - this.getElementJQuery()?.on("hide", { e, _ -> + } + this.getElementJQuery()?.on("hide") { e, _ -> this.dispatchEvent("hideBsDateTime", obj { detail = e }) - }) + } refreshState() } } @@ -280,7 +279,7 @@ open class DateTimeInput( * It takes the same parameters as the constructor of the built component. */ fun Container.dateTimeInput( - value: KDate? = 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> = setOf(), init: (DateTimeInput.() -> Unit)? = null ): DateTimeInput { val dateTimeInput = DateTimeInput(value, format, classes).apply { init?.invoke(this) } diff --git a/kvision-modules/kvision-datetime/src/test/kotlin/test/pl/treksoft/kvision/form/time/DateTimeInputSpec.kt b/kvision-modules/kvision-datetime/src/test/kotlin/test/pl/treksoft/kvision/form/time/DateTimeInputSpec.kt index d824125b..69ab46ec 100644 --- a/kvision-modules/kvision-datetime/src/test/kotlin/test/pl/treksoft/kvision/form/time/DateTimeInputSpec.kt +++ b/kvision-modules/kvision-datetime/src/test/kotlin/test/pl/treksoft/kvision/form/time/DateTimeInputSpec.kt @@ -23,9 +23,9 @@ package test.pl.treksoft.kvision.form.time import pl.treksoft.kvision.form.time.DateTimeInput import pl.treksoft.kvision.panel.Root -import pl.treksoft.kvision.types.KDate import pl.treksoft.kvision.types.toStringF import test.pl.treksoft.kvision.DomSpec +import kotlin.js.Date import kotlin.test.Test import kotlin.test.assertEquals @@ -35,7 +35,7 @@ class DateTimeInputSpec : DomSpec { fun render() { run { val root = Root("test", true) - val data = KDate() + val data = Date() val dti = DateTimeInput(value = data).apply { placeholder = "place" id = "idti" diff --git a/kvision-modules/kvision-datetime/src/test/kotlin/test/pl/treksoft/kvision/form/time/DateTimeSpec.kt b/kvision-modules/kvision-datetime/src/test/kotlin/test/pl/treksoft/kvision/form/time/DateTimeSpec.kt index 482a7b7a..19cefd86 100644 --- a/kvision-modules/kvision-datetime/src/test/kotlin/test/pl/treksoft/kvision/form/time/DateTimeSpec.kt +++ b/kvision-modules/kvision-datetime/src/test/kotlin/test/pl/treksoft/kvision/form/time/DateTimeSpec.kt @@ -23,10 +23,10 @@ package test.pl.treksoft.kvision.form.time import pl.treksoft.kvision.form.time.DateTime import pl.treksoft.kvision.panel.Root -import pl.treksoft.kvision.types.KDate import pl.treksoft.kvision.types.toStringF import test.pl.treksoft.kvision.DomSpec import kotlin.browser.document +import kotlin.js.Date import kotlin.test.Test class DateTimeSpec : DomSpec { @@ -35,7 +35,7 @@ class DateTimeSpec : DomSpec { fun render() { run { val root = Root("test", true) - val data = KDate() + val data = Date() val ti = DateTime(value = data, label = "Label").apply { placeholder = "place" name = "name" diff --git a/kvision-modules/kvision-handlebars/src/main/kotlin/pl/treksoft/kvision/KVManagerHandlebars.kt b/kvision-modules/kvision-handlebars/src/main/kotlin/pl/treksoft/kvision/KVManagerHandlebars.kt index b7f5fbc6..b2e52bf7 100644 --- a/kvision-modules/kvision-handlebars/src/main/kotlin/pl/treksoft/kvision/KVManagerHandlebars.kt +++ b/kvision-modules/kvision-handlebars/src/main/kotlin/pl/treksoft/kvision/KVManagerHandlebars.kt @@ -21,10 +21,7 @@ */ package pl.treksoft.kvision -import org.w3c.dom.asList -import kotlin.browser.document - -internal val KVManagerHandlebarsInit = KVManagerHandlebars.init() +internal val kVManagerHandlebarsInit = KVManagerHandlebars.init() /** * Internal singleton object which initializes and configures KVision handlebars module. diff --git a/kvision-modules/kvision-i18n/src/main/kotlin/pl/treksoft/kvision/KVManagerI18n.kt b/kvision-modules/kvision-i18n/src/main/kotlin/pl/treksoft/kvision/KVManagerI18n.kt index 66e3e72c..9e24327b 100644 --- a/kvision-modules/kvision-i18n/src/main/kotlin/pl/treksoft/kvision/KVManagerI18n.kt +++ b/kvision-modules/kvision-i18n/src/main/kotlin/pl/treksoft/kvision/KVManagerI18n.kt @@ -21,10 +21,7 @@ */ package pl.treksoft.kvision -import org.w3c.dom.asList -import kotlin.browser.document - -internal val KVManagerI18nInit = KVManagerI18n.init() +internal val kVManagerI18nInit = KVManagerI18n.init() /** * Internal singleton object which initializes and configures KVision i18n module. diff --git a/kvision-modules/kvision-richtext/src/main/kotlin/pl/treksoft/kvision/KVManagerRichText.kt b/kvision-modules/kvision-richtext/src/main/kotlin/pl/treksoft/kvision/KVManagerRichText.kt index 1ccd7a85..c7cd444c 100644 --- a/kvision-modules/kvision-richtext/src/main/kotlin/pl/treksoft/kvision/KVManagerRichText.kt +++ b/kvision-modules/kvision-richtext/src/main/kotlin/pl/treksoft/kvision/KVManagerRichText.kt @@ -25,7 +25,7 @@ import pl.treksoft.kvision.i18n.I18n import pl.treksoft.kvision.utils.obj import kotlin.browser.window -internal val KVManagerRichTextInit = KVManagerRichText.init() +internal val kVManagerRichTextInit = KVManagerRichText.init() /** * Internal singleton object which initializes and configures KVision RichText module. diff --git a/kvision-modules/kvision-richtext/src/main/kotlin/pl/treksoft/kvision/form/text/RichTextInput.kt b/kvision-modules/kvision-richtext/src/main/kotlin/pl/treksoft/kvision/form/text/RichTextInput.kt index 961c27cd..43b018f4 100644 --- a/kvision-modules/kvision-richtext/src/main/kotlin/pl/treksoft/kvision/form/text/RichTextInput.kt +++ b/kvision-modules/kvision-richtext/src/main/kotlin/pl/treksoft/kvision/form/text/RichTextInput.kt @@ -23,7 +23,6 @@ package pl.treksoft.kvision.form.text import com.github.snabbdom.VNode import pl.treksoft.jquery.jQuery -import pl.treksoft.kvision.KVManagerRichText import pl.treksoft.kvision.core.Container import pl.treksoft.kvision.core.StringPair import kotlin.browser.document @@ -67,7 +66,7 @@ open class RichTextInput(value: String? = null, classes: Set<String> = setOf()) if (this.disabled || this.readonly == true) { this.getElementJQuery()?.removeAttr("contenteditable") } else { - this.getElementJQuery()?.on("trix-change", { _, _ -> + this.getElementJQuery()?.on("trix-change") { _, _ -> if (trixId != null) { val v = document.getElementById("trix-input-$trixId")?.let { jQuery(it).`val`() as String? } value = if (v != null && v.isNotEmpty()) { @@ -78,9 +77,9 @@ open class RichTextInput(value: String? = null, classes: Set<String> = setOf()) val event = org.w3c.dom.events.Event("change") this.getElement()?.dispatchEvent(event) } - }) + } } - this.getElementJQuery()?.on("trix-initialize", { _, _ -> + this.getElementJQuery()?.on("trix-initialize") { _, _ -> trixId = this.getElementJQuery()?.attr("trix-id") if (trixId != null) { value?.let { @@ -89,8 +88,8 @@ open class RichTextInput(value: String? = null, classes: Set<String> = setOf()) } } } - }) - this.getElementJQuery()?.on("trix-file-accept", { e, _ -> e.preventDefault() }) + } + this.getElementJQuery()?.on("trix-file-accept") { e, _ -> e.preventDefault() } } override fun afterDestroy() { diff --git a/kvision-modules/kvision-select/src/main/kotlin/pl/treksoft/kvision/KVManagerSelect.kt b/kvision-modules/kvision-select/src/main/kotlin/pl/treksoft/kvision/KVManagerSelect.kt index c7c3815a..e2c556c1 100644 --- a/kvision-modules/kvision-select/src/main/kotlin/pl/treksoft/kvision/KVManagerSelect.kt +++ b/kvision-modules/kvision-select/src/main/kotlin/pl/treksoft/kvision/KVManagerSelect.kt @@ -21,7 +21,7 @@ */ package pl.treksoft.kvision -internal val KVManagerSelectInit = KVManagerSelect.init() +internal val kVManagerSelectInit = KVManagerSelect.init() /** * Internal singleton object which initializes and configures KVision select module. diff --git a/kvision-modules/kvision-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt b/kvision-modules/kvision-select/src/main/kotlin/pl/treksoft/kvision/form/select/SelectInput.kt |
