From 1c23d9f734d4c0f3b04e4748c9c14f6484678fee Mon Sep 17 00:00:00 2001 From: TheSaminator Date: Wed, 6 Jul 2022 12:53:09 -0400 Subject: [PATCH] Add 'set all' buttons to cluster-gen test form --- http/ShutDownUrl.http | 2 +- .../starshipfights/campaign/cluster_params.kt | 4 +- .../starshipfights/campaign/cluster_gen.kt | 2 +- .../campaign/endpoints_campaign.kt | 51 +++++++++++++++++++ src/jvmMain/resources/static/init.js | 45 +++++++++++++--- 5 files changed, 94 insertions(+), 10 deletions(-) diff --git a/http/ShutDownUrl.http b/http/ShutDownUrl.http index d483a8e..0060e59 100644 --- a/http/ShutDownUrl.http +++ b/http/ShutDownUrl.http @@ -1 +1 @@ -GET http://localhost:8080/admin/shutdown +POST http://localhost:8080/admin/shutdown diff --git a/src/commonMain/kotlin/net/starshipfights/campaign/cluster_params.kt b/src/commonMain/kotlin/net/starshipfights/campaign/cluster_params.kt index 921c5c0..5c91d8f 100644 --- a/src/commonMain/kotlin/net/starshipfights/campaign/cluster_params.kt +++ b/src/commonMain/kotlin/net/starshipfights/campaign/cluster_params.kt @@ -88,8 +88,8 @@ value class ClusterFactions private constructor(private val factions: Map if (Random.nextBoolean()) faction diff --git a/src/jvmMain/kotlin/net/starshipfights/campaign/endpoints_campaign.kt b/src/jvmMain/kotlin/net/starshipfights/campaign/endpoints_campaign.kt index 6729a97..86c9ba5 100644 --- a/src/jvmMain/kotlin/net/starshipfights/campaign/endpoints_campaign.kt +++ b/src/jvmMain/kotlin/net/starshipfights/campaign/endpoints_campaign.kt @@ -104,6 +104,16 @@ fun Routing.installCampaign() { } } h3 { +"Per-Faction Modes" } + p { + strong { +"Set All" } + for (mode in ClusterFactionMode.values()) { + +Entities.nbsp + a(href = "#", classes = "set-all") { + attributes["data-enable-class"] = "faction-mode-${mode.toUrlSlug()}" + +mode.displayName + } + } + } for (factionFlavor in FactionFlavor.values()) p { strong { +factionFlavor.displayName } @@ -120,15 +130,56 @@ fun Routing.installCampaign() { required = true if (mode == ClusterFactionMode.ALLOW) checked = true + classes = setOf( + "faction-choice", + "faction-loyalty-${factionFlavor.loyalties.first().toUrlSlug()}", + "faction-shipset-${factionFlavor.shipSource.toUrlSlug()}", + "faction-mode-${mode.toUrlSlug()}", + ) } +mode.displayName +Entities.nbsp } } } + p { + strong { +"Set All by Faction Loyalty" } + val loyalties = FactionFlavor.values().map { it.loyalties.first() }.distinct() + for (loyalty in loyalties) { + br + +"${loyalty.shortName}:" + for (mode in ClusterFactionMode.values()) { + +Entities.nbsp + a(href = "#", classes = "set-all-by-faction") { + attributes["data-filter-class"] = "faction-loyalty-${loyalty.toUrlSlug()}" + attributes["data-enable-class"] = "faction-mode-${mode.toUrlSlug()}" + +mode.displayName + } + } + } + } + p { + strong { +"Set All by Shipset" } + val shipSets = FactionFlavor.values().map { it.shipSource }.distinct() + for (shipSet in shipSets) { + br + +"${shipSet.shortName}:" + for (mode in ClusterFactionMode.values()) { + +Entities.nbsp + a(href = "#", classes = "set-all-by-faction") { + attributes["data-filter-class"] = "faction-shipset-${shipSet.toUrlSlug()}" + attributes["data-enable-class"] = "faction-mode-${mode.toUrlSlug()}" + +mode.displayName + } + } + } + } submitInput { value = "Generate Star Cluster" } + script { + unsafe { +"window.sfClusterGenTest = true;" } + } } } } diff --git a/src/jvmMain/resources/static/init.js b/src/jvmMain/resources/static/init.js index dd03391..f7cb6d6 100644 --- a/src/jvmMain/resources/static/init.js +++ b/src/jvmMain/resources/static/init.js @@ -32,7 +32,7 @@ } const canvasLoads = []; - for (let canvas of canvases) { + for (const canvas of canvases) { const modelName = canvas.getAttribute("data-model"); if (modelName == null) continue; @@ -106,7 +106,7 @@ window.addEventListener("load", function () { // Localize dates and times const moments = document.getElementsByClassName("moment"); - for (let moment of moments) { + for (const moment of moments) { let date = new Date(Number(moment.innerHTML.trim())); moment.innerHTML = date.toLocaleString(); moment.style.display = "inline"; @@ -147,7 +147,7 @@ const nameBox = document.getElementById("name"); const isFemaleButton = document.getElementById("sex-female"); const generators = document.getElementsByClassName("generate-admiral-name"); - for (let generator of generators) { + for (const generator of generators) { const flavor = generator.getAttribute("data-flavor"); generator.onclick = (e) => { e.preventDefault(); @@ -161,7 +161,7 @@ window.addEventListener("load", function () { // Indicate maximum and used length of