mirror of
https://github.com/InsanusMokrassar/KotlinPublicationScriptsBuilder.git
synced 2025-09-04 15:39:17 +00:00
add support of JS publish scripts
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package dev.inmo.kmppscriptbuilder.web.views
|
||||
|
||||
import dev.inmo.kmppscriptbuilder.core.models.*
|
||||
import dev.inmo.kmppscriptbuilder.web.utils.ukActive
|
||||
import kotlinx.browser.document
|
||||
import org.w3c.dom.HTMLElement
|
||||
import org.w3c.dom.HTMLInputElement
|
||||
@@ -10,23 +11,51 @@ class MavenProjectInfoView : View {
|
||||
private val descriptionElement = document.getElementById("projectDescriptionInput") as HTMLInputElement
|
||||
private val urlElement = document.getElementById("projectUrlInput") as HTMLInputElement
|
||||
private val vcsUrlElement = document.getElementById("projectVCSUrlInput") as HTMLInputElement
|
||||
private val includeGpgElement = document.getElementById("includeGpgSignToggle") as HTMLInputElement
|
||||
private val disableGpgSigningElement = document.getElementById("disableGpgSigning") as HTMLElement
|
||||
private val optionalGpgSigningElement = document.getElementById("optionalGpgSigning") as HTMLElement
|
||||
private val enableGpgSigningElement = document.getElementById("enableGpgSigning") as HTMLElement
|
||||
private val includeMavenCentralElement = document.getElementById("includeMavenCentralTargetRepoToggle") as HTMLInputElement
|
||||
private val developersView = DevelopersView(document.getElementById("developersListDiv") as HTMLElement)
|
||||
private val repositoriesView = RepositoriesView(document.getElementById("repositoriesListDiv") as HTMLElement)
|
||||
|
||||
private var gpgSignMode: GpgSigning = GpgSigning.Disabled
|
||||
set(value) {
|
||||
field = value
|
||||
when (value) {
|
||||
GpgSigning.Enabled -> {
|
||||
enableGpgSigningElement.ukActive = true
|
||||
disableGpgSigningElement.ukActive = false
|
||||
optionalGpgSigningElement.ukActive = false
|
||||
}
|
||||
GpgSigning.Optional -> {
|
||||
enableGpgSigningElement.ukActive = false
|
||||
disableGpgSigningElement.ukActive = false
|
||||
optionalGpgSigningElement.ukActive = true
|
||||
}
|
||||
GpgSigning.Disabled -> {
|
||||
enableGpgSigningElement.ukActive = false
|
||||
disableGpgSigningElement.ukActive = true
|
||||
optionalGpgSigningElement.ukActive = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var mavenConfig: MavenConfig
|
||||
get() = MavenConfig(
|
||||
nameElement.value.ifBlank { defaultProjectName },
|
||||
descriptionElement.value.ifBlank { defaultProjectDescription },
|
||||
urlElement.value,
|
||||
vcsUrlElement.value,
|
||||
includeGpgElement.checked,
|
||||
developersView.developers,
|
||||
repositoriesView.repositories + if (includeMavenCentralElement.checked) {
|
||||
listOf(SonatypeRepository)
|
||||
} else {
|
||||
emptyList()
|
||||
},
|
||||
when {
|
||||
optionalGpgSigningElement.ukActive -> GpgSigning.Optional
|
||||
enableGpgSigningElement.ukActive -> GpgSigning.Enabled
|
||||
else -> GpgSigning.Disabled
|
||||
}
|
||||
)
|
||||
set(value) {
|
||||
@@ -34,10 +63,20 @@ class MavenProjectInfoView : View {
|
||||
descriptionElement.value = value.description
|
||||
urlElement.value = value.url
|
||||
vcsUrlElement.value = value.vcsUrl
|
||||
includeGpgElement.checked = value.includeGpgSigning
|
||||
gpgSignMode = if (value.includeGpgSigning) {
|
||||
GpgSigning.Enabled
|
||||
} else {
|
||||
value.gpgSigning
|
||||
}
|
||||
developersView.developers = value.developers
|
||||
val reposWithoutSonatype = value.repositories.filter { it != SonatypeRepository }
|
||||
includeMavenCentralElement.checked = value.repositories.size != reposWithoutSonatype.size
|
||||
repositoriesView.repositories = reposWithoutSonatype
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
enableGpgSigningElement.onclick = { gpgSignMode = GpgSigning.Enabled; Unit }
|
||||
disableGpgSigningElement.onclick = { gpgSignMode = GpgSigning.Disabled; Unit }
|
||||
optionalGpgSigningElement.onclick = { gpgSignMode = GpgSigning.Optional; Unit }
|
||||
}
|
||||
}
|
||||
|
@@ -8,16 +8,18 @@ import org.w3c.dom.HTMLElement
|
||||
class ProjectTypeView : View {
|
||||
private val mppProjectTypeElement = document.getElementById("mppProjectType") as HTMLElement
|
||||
private val jvmProjectTypeElement = document.getElementById("jvmProjectType") as HTMLElement
|
||||
private val jsProjectTypeElement = document.getElementById("jsProjectType") as HTMLElement
|
||||
|
||||
var projectType: ProjectType
|
||||
get() = if (jvmProjectTypeElement.ukActive) {
|
||||
JVMProjectType
|
||||
} else {
|
||||
MultiplatformProjectType
|
||||
get() = when {
|
||||
jvmProjectTypeElement.ukActive -> JVMProjectType
|
||||
jsProjectTypeElement.ukActive -> JSProjectType
|
||||
else -> MultiplatformProjectType
|
||||
}
|
||||
set(value) {
|
||||
mppProjectTypeElement.ukActive = value == MultiplatformProjectType
|
||||
jvmProjectTypeElement.ukActive = value == JVMProjectType
|
||||
jsProjectTypeElement.ukActive = value == JSProjectType
|
||||
}
|
||||
|
||||
init {
|
||||
@@ -29,5 +31,9 @@ class ProjectTypeView : View {
|
||||
projectType = JVMProjectType
|
||||
Unit
|
||||
}
|
||||
jsProjectTypeElement.onclick = {
|
||||
projectType = JSProjectType
|
||||
Unit
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -27,15 +27,11 @@
|
||||
<ul class="uk-subnav uk-subnav-pill">
|
||||
<li id="mppProjectType" class="uk-active"><a href="#">Multiplatform</a></li>
|
||||
<li id="jvmProjectType"><a href="#">JVM</a></li>
|
||||
<li id="jsProjectType"><a href="#">JS</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<legend class="uk-legend">Licenses</legend>
|
||||
<div id="licensesListDiv" class="uk-padding-small">
|
||||
<!-- <div class="uk-margin uk-width-1-1">-->
|
||||
<!-- <input id="searchFilterInput" class="uk-input uk-width-expand" type="text" placeholder="License search filter">-->
|
||||
<!-- </div>-->
|
||||
<!-- <button class="uk-button uk-button-primary">Add empty license</button>-->
|
||||
</div>
|
||||
<div id="licensesListDiv" class="uk-padding-small"></div>
|
||||
|
||||
<legend class="uk-legend">Project information</legend>
|
||||
|
||||
@@ -58,7 +54,15 @@
|
||||
</div>
|
||||
|
||||
<div class="uk-margin">
|
||||
<label><input id="includeGpgSignToggle" class="uk-checkbox" type="checkbox" checked> Include GPG Signing</label>
|
||||
<label>GPG Signing</label>
|
||||
|
||||
<div class="uk-padding-small">
|
||||
<ul class="uk-subnav uk-subnav-pill">
|
||||
<li id="disableGpgSigning" class="uk-active" uk-tooltip="title: Signing will not be added"><a href="#">Disabled</a></li>
|
||||
<li id="optionalGpgSigning" uk-tooltip="title: Signing will be added, but disabled in case of absence 'signatory.keyId'"><a href="#">Optional</a></li>
|
||||
<li id="enableGpgSigning" uk-tooltip="title: Signing will be always enabled"><a href="#">Enabled</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-margin">
|
||||
<label><input id="includeMavenCentralTargetRepoToggle" class="uk-checkbox" type="checkbox"> Include publication to MavenCentral</label>
|
||||
@@ -78,4 +82,4 @@
|
||||
<!-- Internal JS -->
|
||||
<script src="kmppscriptbuilder.web.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
Reference in New Issue
Block a user