1
0

Add categories

This commit is contained in:
2020-09-10 16:34:03 +02:00
parent cf46ec26c4
commit 7f2256bcbb
8 changed files with 52 additions and 13 deletions
+8 -1
View File
@@ -12,7 +12,14 @@ class Config {
val dependenciesNode: NightConfig = cfg["dependencies"]
@Suppress("UNCHECKED_CAST") val dependenciesMap = dependenciesNode.valueMap() as Map<String, NightConfig>
val dependencies = dependenciesMap.map { (name, values) ->
Dependency(name, values["groupId"], values["artifactId"], values["version"], values.getOrElse("default", false))
Dependency(
name,
values["groupId"],
values["artifactId"],
values["version"],
values.getOrElse("default", false),
values.getEnumOrElse("category", Category.Other)
)
}
val inputsNode: NightConfig = cfg["inputs"]
+12 -1
View File
@@ -1,4 +1,15 @@
package starter
data class Dependency(val name: String, val groupId: String, val artifactId: String, val version: String, val default: Boolean)
enum class Category {
Server, Database, Other
}
data class Dependency(
val name: String,
val groupId: String,
val artifactId: String,
val version: String,
val default: Boolean,
val category: Category,
)
data class Input(val name: String, val display: String, val value: String? = null)
+7 -5
View File
@@ -14,11 +14,15 @@ private fun PebbleEngine.render(name: String, args: Map<String, Any?> = mapOf())
class Views(private val engine: PebbleEngine) {
private val logger = LoggerFactory.getLogger(javaClass)
fun index(dependencies: List<Dependency>, inputs: List<Input>) = engine.render("views/index",
mapOf("dependencies" to dependencies, "inputs" to inputs)
)
fun index(dependencies: List<Dependency>, inputs: List<Input>): String {
val dependenciesByCategory = dependencies.groupBy { it.category }.toSortedMap()
return engine.render("views/index",
mapOf("dependencies" to dependenciesByCategory, "inputs" to inputs)
)
}
fun pom(dependencies: List<Dependency>, inputs: List<Input>): String {
val args: MutableMap<String, Any?> = mutableMapOf(
"dependencies" to dependencies,
)
@@ -27,8 +31,6 @@ class Views(private val engine: PebbleEngine) {
args[it.name] = it.value
}
logger.debug(args.toString())
return engine.render("starter/pom",
args
)
File diff suppressed because one or more lines are too long
+11 -4
View File
@@ -8,10 +8,17 @@
{% for input in inputs %}
{{ input(input) }}
{% endfor %}
<hr>
<div class="flex flex-wrap">
{% for dependency in dependencies %}
{{ dependency(dependency) }}
<div class="mt-4">
{% for category in dependencies %}
<section>
<h2 class="category">{{ category.key }}</h2>
<ul>
{% for dependency in category.value %}
<li>{{ dependency(dependency) }}</li>
{% endfor %}
</ul>
</section>
{% endfor %}
</div>
<button type="submit" class="w-full btn btn-purple">Submit</button>