Split account pages
This commit is contained in:
parent
dce2567160
commit
17f81e8952
1 changed files with 37 additions and 12 deletions
|
@ -2,18 +2,15 @@ package de.kif.backend.route
|
||||||
|
|
||||||
import de.kif.backend.authenticate
|
import de.kif.backend.authenticate
|
||||||
import de.kif.backend.authenticateOrRedirect
|
import de.kif.backend.authenticateOrRedirect
|
||||||
import de.kif.backend.util.Backup
|
|
||||||
import de.kif.backend.repository.TrackRepository
|
import de.kif.backend.repository.TrackRepository
|
||||||
import de.kif.backend.repository.WorkGroupRepository
|
import de.kif.backend.repository.WorkGroupRepository
|
||||||
import de.kif.backend.route.api.error
|
import de.kif.backend.route.api.error
|
||||||
|
import de.kif.backend.util.Backup
|
||||||
import de.kif.backend.util.WikiImporter
|
import de.kif.backend.util.WikiImporter
|
||||||
import de.kif.backend.view.MainTemplate
|
|
||||||
import de.kif.backend.view.MenuTemplate
|
|
||||||
import de.kif.backend.view.respondMain
|
import de.kif.backend.view.respondMain
|
||||||
import de.kif.common.RepositoryType
|
import de.kif.common.RepositoryType
|
||||||
import de.kif.common.model.Permission
|
import de.kif.common.model.Permission
|
||||||
import io.ktor.application.call
|
import io.ktor.application.call
|
||||||
import io.ktor.html.respondHtmlTemplate
|
|
||||||
import io.ktor.http.ContentType
|
import io.ktor.http.ContentType
|
||||||
import io.ktor.http.HttpStatusCode
|
import io.ktor.http.HttpStatusCode
|
||||||
import io.ktor.http.content.PartData
|
import io.ktor.http.content.PartData
|
||||||
|
@ -35,10 +32,6 @@ private val logger = KotlinLogging.logger {}
|
||||||
fun Route.account() {
|
fun Route.account() {
|
||||||
get("/account") {
|
get("/account") {
|
||||||
authenticateOrRedirect { user ->
|
authenticateOrRedirect { user ->
|
||||||
|
|
||||||
val tracks = TrackRepository.all()
|
|
||||||
val wikiSections = WikiImporter.loadSections()
|
|
||||||
|
|
||||||
respondMain {
|
respondMain {
|
||||||
content {
|
content {
|
||||||
h1 { +"Account" }
|
h1 { +"Account" }
|
||||||
|
@ -54,6 +47,23 @@ fun Route.account() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a(href = "/account/backup", classes = "form-btn") {
|
||||||
|
+"Backup"
|
||||||
|
}
|
||||||
|
a(href = "/account/import", classes = "form-btn") {
|
||||||
|
+"Import wiki"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get("/account/backup") {
|
||||||
|
authenticateOrRedirect { user ->
|
||||||
|
respondMain {
|
||||||
|
content {
|
||||||
|
h1 { +"Backup" }
|
||||||
|
|
||||||
div("account-backup") {
|
div("account-backup") {
|
||||||
if (user.checkPermission(Permission.ROOM)) {
|
if (user.checkPermission(Permission.ROOM)) {
|
||||||
a("/account/backup/rooms.json", classes = "form-btn") {
|
a("/account/backup/rooms.json", classes = "form-btn") {
|
||||||
|
@ -99,9 +109,11 @@ fun Route.account() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user.checkPermission(Permission.ADMIN)) {
|
if (user.checkPermission(Permission.ADMIN)) {
|
||||||
|
h1 { +"Restore" }
|
||||||
|
|
||||||
div("account-import") {
|
div("account-import") {
|
||||||
form(
|
form(
|
||||||
action = "/account/import",
|
action = "/account/restore",
|
||||||
method = FormMethod.post,
|
method = FormMethod.post,
|
||||||
encType = FormEncType.multipartFormData
|
encType = FormEncType.multipartFormData
|
||||||
) {
|
) {
|
||||||
|
@ -146,12 +158,25 @@ fun Route.account() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get("/account/import") {
|
||||||
|
authenticateOrRedirect { user ->
|
||||||
|
val tracks = TrackRepository.all()
|
||||||
|
val wikiSections = WikiImporter.loadSections()
|
||||||
|
|
||||||
|
respondMain {
|
||||||
|
content {
|
||||||
|
h1 { +"Import wiki" }
|
||||||
|
|
||||||
if (user.checkPermission(Permission.ADMIN)) {
|
if (user.checkPermission(Permission.ADMIN)) {
|
||||||
div("account-import-wiki") {
|
div("account-import-wiki") {
|
||||||
span { +"Import work group data from the kif wiki" }
|
span { +"Import work group data from the kif wiki" }
|
||||||
|
|
||||||
form(action = "/account/import-wiki", method = FormMethod.post) {
|
form(action = "/account/import", method = FormMethod.post) {
|
||||||
for ((index, section) in wikiSections.withIndex()) {
|
for ((index, section) in wikiSections.withIndex()) {
|
||||||
div("form-group") {
|
div("form-group") {
|
||||||
label {
|
label {
|
||||||
|
@ -277,7 +302,7 @@ fun Route.account() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
post("/account/import") {
|
post("/account/restore") {
|
||||||
authenticate(Permission.ADMIN) {
|
authenticate(Permission.ADMIN) {
|
||||||
var reset = false
|
var reset = false
|
||||||
var import = ""
|
var import = ""
|
||||||
|
@ -308,7 +333,7 @@ fun Route.account() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
post("/account/import-wiki") {
|
post("/account/import") {
|
||||||
authenticate(Permission.ADMIN) {
|
authenticate(Permission.ADMIN) {
|
||||||
val params = call.receiveParameters().toMap().mapValues { (_, list) ->
|
val params = call.receiveParameters().toMap().mapValues { (_, list) ->
|
||||||
list.firstOrNull()
|
list.firstOrNull()
|
||||||
|
|
Loading…
Reference in a new issue