X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FEditProfilePage.java;h=df5a35220070673f60246834e6e1e1b3b7cdb409;hb=2e03e9dddbea4b81aacaf1aa316f5c3ccffd4bf9;hp=a1b759b7e6e70162a6be8cda105ea97d32740277;hpb=5723a2bb28376b0972a63bae2124846116cf6ca5;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java b/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java index a1b759b..df5a352 100644 --- a/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java +++ b/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java @@ -1,5 +1,5 @@ /* - * Sone - EditProfilePage.java - Copyright © 2010–2012 David Roden + * Sone - EditProfilePage.java - Copyright © 2010–2013 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,6 +17,8 @@ package net.pterodactylus.sone.web; +import static net.pterodactylus.sone.data.Identified.GET_ID; + import java.util.List; import net.pterodactylus.sone.data.Profile; @@ -27,8 +29,11 @@ import net.pterodactylus.util.number.Numbers; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContext; import net.pterodactylus.util.web.Method; + import freenet.clients.http.ToadletContext; +import com.google.common.base.Optional; + /** * This page lets the user edit her profile. * @@ -52,9 +57,6 @@ public class EditProfilePage extends SoneTemplatePage { // TEMPLATEPAGE METHODS // - /** - * {@inheritDoc} - */ @Override protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException { super.processTemplate(request, templateContext); @@ -77,15 +79,13 @@ public class EditProfilePage extends SoneTemplatePage { birthDay = Numbers.safeParseInteger(request.getHttpRequest().getPartAsStringFailsafe("birth-day", 256).trim()); birthMonth = Numbers.safeParseInteger(request.getHttpRequest().getPartAsStringFailsafe("birth-month", 256).trim()); birthYear = Numbers.safeParseInteger(request.getHttpRequest().getPartAsStringFailsafe("birth-year", 256).trim()); - avatarId = request.getHttpRequest().getPartAsStringFailsafe("avatar-id", 36); - profile.setFirstName(firstName.length() > 0 ? firstName : null); - profile.setMiddleName(middleName.length() > 0 ? middleName : null); - profile.setLastName(lastName.length() > 0 ? lastName : null); - profile.setBirthDay(birthDay).setBirthMonth(birthMonth).setBirthYear(birthYear); - profile.setAvatar(webInterface.getCore().getImage(avatarId, false)); + avatarId = request.getHttpRequest().getPartAsStringFailsafe("avatarId", 36); + profile.modify().setFirstName(getNameFromFormField(firstName)).setMiddleName(getNameFromFormField(middleName)).setLastName(getNameFromFormField(lastName)).update(); + profile.modify().setBirthDay(birthDay).setBirthMonth(birthMonth).setBirthYear(birthYear).update(); + profile.setAvatar(webInterface.getCore().getImage(avatarId).transform(GET_ID)); for (Field field : fields) { String value = request.getHttpRequest().getPartAsStringFailsafe("field-" + field.getId(), 400); - field.setValue(value); + profile.setField(field, value); } currentSone.setProfile(profile); webInterface.getCore().touchConfiguration(); @@ -109,21 +109,21 @@ public class EditProfilePage extends SoneTemplatePage { } id = getFieldId(request, "move-up-field-"); if (id != null) { - Field field = profile.getFieldById(id); - if (field == null) { + Optional field = profile.getFieldById(id); + if (!field.isPresent()) { throw new RedirectException("invalid.html"); } - profile.moveFieldUp(field); + profile.moveFieldUp(field.get()); currentSone.setProfile(profile); throw new RedirectException("editProfile.html#profile-fields"); } id = getFieldId(request, "move-down-field-"); if (id != null) { - Field field = profile.getFieldById(id); - if (field == null) { + Optional field = profile.getFieldById(id); + if (!field.isPresent()) { throw new RedirectException("invalid.html"); } - profile.moveFieldDown(field); + profile.moveFieldDown(field.get()); currentSone.setProfile(profile); throw new RedirectException("editProfile.html#profile-fields"); } @@ -139,10 +139,14 @@ public class EditProfilePage extends SoneTemplatePage { templateContext.set("birthDay", birthDay); templateContext.set("birthMonth", birthMonth); templateContext.set("birthYear", birthYear); - templateContext.set("avatar-id", avatarId); + templateContext.set("avatarId", avatarId); templateContext.set("fields", fields); } + private String getNameFromFormField(String name) { + return name.length() > 0 ? name : null; + } + // // PRIVATE METHODS //