X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FEditProfilePage.kt;fp=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FEditProfilePage.kt;h=54b7efd0acba382bb3cc4c85d603b882d7124481;hp=95c40c87a0fad1883980acf237a5631faba79f92;hb=03cec6a6772c2d836d94864adddaf544cbe9d72f;hpb=6f1f26e3998cfef155b0cf59152827accea70d30 diff --git a/src/main/kotlin/net/pterodactylus/sone/web/pages/EditProfilePage.kt b/src/main/kotlin/net/pterodactylus/sone/web/pages/EditProfilePage.kt index 95c40c8..54b7efd 100644 --- a/src/main/kotlin/net/pterodactylus/sone/web/pages/EditProfilePage.kt +++ b/src/main/kotlin/net/pterodactylus/sone/web/pages/EditProfilePage.kt @@ -1,21 +1,25 @@ package net.pterodactylus.sone.web.pages -import net.pterodactylus.sone.data.Profile.DuplicateField -import net.pterodactylus.sone.data.Sone -import net.pterodactylus.sone.text.TextFilter -import net.pterodactylus.sone.utils.isPOST -import net.pterodactylus.sone.web.WebInterface -import net.pterodactylus.sone.web.page.FreenetRequest -import net.pterodactylus.util.template.Template -import net.pterodactylus.util.template.TemplateContext +import net.pterodactylus.sone.data.* +import net.pterodactylus.sone.data.Profile.* +import net.pterodactylus.sone.main.* +import net.pterodactylus.sone.text.* +import net.pterodactylus.sone.utils.* +import net.pterodactylus.sone.web.* +import net.pterodactylus.sone.web.page.* +import net.pterodactylus.util.template.* +import javax.inject.* /** * This page lets the user edit her profile. */ -class EditProfilePage(template: Template, webInterface: WebInterface) : - LoggedInPage("editProfile.html", template, "Page.EditProfile.Title", webInterface) { +@MenuName("EditProfile") +@TemplatePath("/templates/editProfile.html") +@ToadletPath("editProfile.html") +class EditProfilePage @Inject constructor(webInterface: WebInterface, loaders: Loaders, templateRenderer: TemplateRenderer) : + LoggedInPage("Page.EditProfile.Title", webInterface, loaders, templateRenderer) { - override fun handleRequest(freenetRequest: FreenetRequest, currentSone: Sone, templateContext: TemplateContext) { + override fun handleRequest(soneRequest: SoneRequest, currentSone: Sone, templateContext: TemplateContext) { currentSone.profile.let { profile -> templateContext["firstName"] = profile.firstName templateContext["middleName"] = profile.middleName @@ -25,42 +29,42 @@ class EditProfilePage(template: Template, webInterface: WebInterface) : templateContext["birthYear"] = profile.birthYear templateContext["avatarId"] = profile.avatar templateContext["fields"] = profile.fields - if (freenetRequest.isPOST) { - if (freenetRequest.httpRequest.getPartAsStringFailsafe("save-profile", 4) == "true") { - profile.firstName = freenetRequest.httpRequest.getPartAsStringFailsafe("first-name", 256).trim() - profile.middleName = freenetRequest.httpRequest.getPartAsStringFailsafe("middle-name", 256).trim() - profile.lastName = freenetRequest.httpRequest.getPartAsStringFailsafe("last-name", 256).trim() - profile.birthDay = freenetRequest.httpRequest.getPartAsStringFailsafe("birth-day", 256).trim().toIntOrNull() - profile.birthMonth = freenetRequest.httpRequest.getPartAsStringFailsafe("birth-month", 256).trim().toIntOrNull() - profile.birthYear = freenetRequest.httpRequest.getPartAsStringFailsafe("birth-year", 256).trim().toIntOrNull() - profile.setAvatar(webInterface.core.getImage(freenetRequest.httpRequest.getPartAsStringFailsafe("avatarId", 256).trim(), false)) + if (soneRequest.isPOST) { + if (soneRequest.httpRequest.getPartAsStringFailsafe("save-profile", 4) == "true") { + profile.firstName = soneRequest.httpRequest.getPartAsStringFailsafe("first-name", 256).trim() + profile.middleName = soneRequest.httpRequest.getPartAsStringFailsafe("middle-name", 256).trim() + profile.lastName = soneRequest.httpRequest.getPartAsStringFailsafe("last-name", 256).trim() + profile.birthDay = soneRequest.httpRequest.getPartAsStringFailsafe("birth-day", 256).trim().toIntOrNull() + profile.birthMonth = soneRequest.httpRequest.getPartAsStringFailsafe("birth-month", 256).trim().toIntOrNull() + profile.birthYear = soneRequest.httpRequest.getPartAsStringFailsafe("birth-year", 256).trim().toIntOrNull() + profile.setAvatar(soneRequest.core.getImage(soneRequest.httpRequest.getPartAsStringFailsafe("avatarId", 256).trim(), false)) profile.fields.forEach { field -> - field.value = TextFilter.filter(freenetRequest.httpRequest.getHeader("Host"), freenetRequest.httpRequest.getPartAsStringFailsafe("field-${field.id}", 400).trim()) + field.value = TextFilter.filter(soneRequest.httpRequest.getHeader("Host"), soneRequest.httpRequest.getPartAsStringFailsafe("field-${field.id}", 400).trim()) } currentSone.profile = profile - webInterface.core.touchConfiguration() + soneRequest.core.touchConfiguration() throw RedirectException("editProfile.html") - } else if (freenetRequest.httpRequest.getPartAsStringFailsafe("add-field", 4) == "true") { - val fieldName = freenetRequest.httpRequest.getPartAsStringFailsafe("field-name", 100) + } else if (soneRequest.httpRequest.getPartAsStringFailsafe("add-field", 4) == "true") { + val fieldName = soneRequest.httpRequest.getPartAsStringFailsafe("field-name", 100) try { profile.addField(fieldName) currentSone.profile = profile - webInterface.core.touchConfiguration() + soneRequest.core.touchConfiguration() throw RedirectException("editProfile.html#profile-fields") } catch (e: DuplicateField) { templateContext["fieldName"] = fieldName templateContext["duplicateFieldName"] = true } } else profile.fields.forEach { field -> - if (freenetRequest.httpRequest.getPartAsStringFailsafe("delete-field-${field.id}", 4) == "true") { + if (soneRequest.httpRequest.getPartAsStringFailsafe("delete-field-${field.id}", 4) == "true") { throw RedirectException("deleteProfileField.html?field=${field.id}") - } else if (freenetRequest.httpRequest.getPartAsStringFailsafe("edit-field-${field.id}", 4) == "true") { + } else if (soneRequest.httpRequest.getPartAsStringFailsafe("edit-field-${field.id}", 4) == "true") { throw RedirectException("editProfileField.html?field=${field.id}") - } else if (freenetRequest.httpRequest.getPartAsStringFailsafe("move-down-field-${field.id}", 4) == "true") { + } else if (soneRequest.httpRequest.getPartAsStringFailsafe("move-down-field-${field.id}", 4) == "true") { profile.moveFieldDown(field) currentSone.profile = profile throw RedirectException("editProfile.html#profile-fields") - } else if (freenetRequest.httpRequest.getPartAsStringFailsafe("move-up-field-${field.id}", 4) == "true") { + } else if (soneRequest.httpRequest.getPartAsStringFailsafe("move-up-field-${field.id}", 4) == "true") { profile.moveFieldUp(field) currentSone.profile = profile throw RedirectException("editProfile.html#profile-fields")