Skip to content

Commit

Permalink
Bump deps, start on web navigation
Browse files Browse the repository at this point in the history
  • Loading branch information
gdude2002 committed Jul 8, 2024
1 parent 39522bc commit 4bb2696
Show file tree
Hide file tree
Showing 15 changed files with 88 additions and 186 deletions.
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ logging = "7.0.0"
mongodb = "5.1.1"
pf4j = "3.12.0"
semver = "2.0.0"
sentry = "7.10.0"
sentry = "7.11.0"
slf4j = "2.0.13"
time4j-base = "5.9.4"
time4j-tzdata = "5.0-2024a"
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import kotlinx.serialization.Serializable

@Serializable
public abstract class Block {
public abstract val classes: List<String>
public abstract val id: String?
public open val classes: MutableList<String> = mutableListOf()
public open val id: String? = null
public open val content: String? = null
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/

package dev.kordex.extra.web.oldvalues
package dev.kordex.extra.web.pages

import kotlinx.datetime.Instant
import kotlinx.serialization.Serializable
public abstract class Page {
public abstract val path: String

@Serializable
public data class Value<T : Any?> (
val time: Instant,
val value: T?,
)
// TODO: Global settings
// TODO: Page pickers/settings
// TODO: Layout/blocks
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,4 @@ import kotlinx.serialization.Serializable
@SerialName("text-label")
public class TextLabel(
public val text: String,

override val classes: List<String> = emptyList(),
override val id: String? = null
) : Block()
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,4 @@ import kotlinx.serialization.Serializable
public class ValueLabel(
public val value: String,
public val template: String = "", // TODO: Figure out template format

override val classes: List<String> = emptyList(),
override val id: String? = null
) : Block()
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/

package dev.kordex.extra.web.pages.navigation

import dev.kordex.extra.web.types.Identifier

public class ExtensionNavigation(
public val extension: String,
public val icon: Identifier,

public val setup: () -> Unit
) {
public val navigation: MutableList<NavigationItem> = mutableListOf()

public fun navigation(body: NavigationItem.Builder.() -> Unit): NavigationItem {
val builder = NavigationItem.Builder()
body(builder)

val item = builder.build()
navigation.add(item)

return item
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,45 @@

package dev.kordex.extra.web.pages.navigation

import dev.kordex.extra.web.types.Identifier
import kotlinx.serialization.Serializable

@Serializable
public sealed class NavigationItem {
public abstract val name: String
public abstract val icon: String
public abstract val iconOnly: Boolean
public abstract val path: String?

@Serializable
public class WithChildren(
override val name: String,
override val path: String?,
override val icon: String,
override val iconOnly: Boolean = false,

public val children: List<NavigationItem> = listOf(),
) : NavigationItem()

@Serializable
public class Single(
override val name: String,
override val path: String?,
override val icon: String,
override val iconOnly: Boolean = false,
) : NavigationItem()
public data class NavigationItem(
public val name: String,
public val icon: Identifier,
public val page: String?,
public val children: MutableList<NavigationItem> = mutableListOf(),
) {
public class Builder {
public lateinit var name: String
public lateinit var icon: Identifier
public lateinit var page: String

public var children: MutableList<NavigationItem> = mutableListOf()

public fun build(): NavigationItem =
NavigationItem(
name = name,
icon = icon,

page = if (this::page.isInitialized) {
page
} else {
null
},

children = children
)

public fun child(body: Builder.() -> Unit): NavigationItem {
val builder = Builder()
body(builder)

val item = builder.build()
children.add(item)

return item
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,11 @@ public fun WebServer.configureRouting(app: Application, config: WebServerConfig)
}
}

route("/api/extensions/{path...}") {
route("/api/p/{extension}/{path...}") {
// TODO: Pages
}

route("/api/e/{path...}") {
delete {
routeRegistry.handle(Verb.DELETE, this)
}
Expand Down Expand Up @@ -86,7 +90,7 @@ public fun WebServer.configureRouting(app: Application, config: WebServerConfig)
}
}

route("/ws/extensions/{path...}") {
route("/ws/e/{path...}") {
webSocket {
wsRegistry.handle(this)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/

@file:Suppress("UnnecessaryParentheses", "MagicNumber")
@file:Suppress("MagicNumber", "UnnecessaryParentheses")

package dev.kordex.extra.web.oldvalues
package dev.kordex.extra.web.values

import kotlinx.datetime.LocalDateTime
import kotlinx.serialization.Serializable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ package dev.kordex.extra.web.values.serializers

import com.kotlindiscord.kord.extensions.utils.collections.FixedLengthQueue
import com.kotlindiscord.kord.extensions.utils.collections.serializers.FixedLengthQueueSerializer
import dev.kordex.extra.web.oldvalues.ValueInterval
import dev.kordex.extra.web.types.Identifier
import dev.kordex.extra.web.values.TimedContainer
import dev.kordex.extra.web.values.ValueInterval
import dev.kordex.extra.web.values.types.TrackedValue
import kotlinx.serialization.KSerializer
import kotlinx.serialization.builtins.nullable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
package dev.kordex.extra.web.values.types

import com.kotlindiscord.kord.extensions.utils.collections.FixedLengthQueue
import dev.kordex.extra.web.oldvalues.ValueInterval
import dev.kordex.extra.web.types.Identifier
import dev.kordex.extra.web.values.TimedContainer
import dev.kordex.extra.web.values.ValueInterval
import dev.kordex.extra.web.values.serializers.TrackedValueSerializer
import kotlinx.datetime.Clock
import kotlinx.serialization.KSerializer
Expand Down
2 changes: 1 addition & 1 deletion web/frontend/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import com.github.gradle.node.pnpm.task.PnpmTask
plugins {
java

id("com.github.node-gradle.node") version "7.0.1"
id("com.github.node-gradle.node") version "7.0.2"
id("dev.yumi.gradle.licenser")
}

Expand Down

0 comments on commit 4bb2696

Please sign in to comment.