diff --git a/commons.wicket/src/main/java/com/pmease/commons/wicket/editable/nuemric/NumericPropertyEditContext.java b/commons.wicket/src/main/java/com/pmease/commons/wicket/editable/nuemric/NumericPropertyEditContext.java index eba54e07c2..a057032fc3 100644 --- a/commons.wicket/src/main/java/com/pmease/commons/wicket/editable/nuemric/NumericPropertyEditContext.java +++ b/commons.wicket/src/main/java/com/pmease/commons/wicket/editable/nuemric/NumericPropertyEditContext.java @@ -17,7 +17,7 @@ public class NumericPropertyEditContext extends PropertyEditContext { public NumericPropertyEditContext(Serializable bean, String propertyName) { super(bean, propertyName); - Integer propertyValue = (Integer) getPropertyValue(); + Serializable propertyValue = getPropertyValue(); if (propertyValue != null) inputModel = new Model(propertyValue.toString()); else @@ -45,10 +45,15 @@ public class NumericPropertyEditContext extends PropertyEditContext { @Override protected void doValidation() { String input = inputModel.getObject(); - Integer convertedInput; + + Serializable convertedInput; + try { if (input != null) { - convertedInput = Integer.valueOf(input); + if (getPropertyGetter().getReturnType() == int.class || getPropertyGetter().getReturnType() == Integer.class) + convertedInput = Integer.valueOf(input); + else + convertedInput = Long.valueOf(input); } else { convertedInput = null; } diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AbstractGateKeeper.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AbstractGateKeeper.java index 44d89e2189..98a3b02c61 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AbstractGateKeeper.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AbstractGateKeeper.java @@ -4,7 +4,10 @@ import java.util.List; import javax.annotation.Nullable; +import com.pmease.commons.editable.annotation.Editable; + @SuppressWarnings("serial") +@Editable public abstract class AbstractGateKeeper implements GateKeeper { @Override diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AlwaysAccept.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AlwaysAccept.java index f53203d09f..36fb6ac8cb 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AlwaysAccept.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AlwaysAccept.java @@ -1,8 +1,10 @@ package com.pmease.gitop.core.gatekeeper; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; @SuppressWarnings("serial") +@Editable public class AlwaysAccept extends AbstractGateKeeper { @Override diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AndGateKeeper.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AndGateKeeper.java index 2a166f1bc7..e63d540295 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AndGateKeeper.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/AndGateKeeper.java @@ -3,11 +3,16 @@ package com.pmease.gitop.core.gatekeeper; import java.util.ArrayList; import java.util.List; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +import com.pmease.commons.editable.annotation.Editable; import com.pmease.commons.util.trimmable.AndOrConstruct; import com.pmease.commons.util.trimmable.TrimUtils; import com.pmease.gitop.core.model.MergeRequest; @SuppressWarnings("serial") +@Editable(name="All sub gate keepers accept") public class AndGateKeeper extends AbstractGateKeeper { private List gateKeepers = new ArrayList(); @@ -16,6 +21,9 @@ public class AndGateKeeper extends AbstractGateKeeper { this.gateKeepers = gateKeepers; } + @Editable(name="Sub Gate Keepers") + @NotNull + @Size(min=1, message="At least one element has to be added.") public List getGateKeepers() { return gateKeepers; } diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByAuthorizedUsers.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByAuthorizedUsers.java index 87a01ffb15..a3ef63d235 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByAuthorizedUsers.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByAuthorizedUsers.java @@ -2,11 +2,13 @@ package com.pmease.gitop.core.gatekeeper; import java.util.Collection; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; import com.pmease.gitop.core.model.User; import com.pmease.gitop.core.permission.operation.RepositoryOperation; @SuppressWarnings("serial") +@Editable public class ApprovedByAuthorizedUsers extends AbstractGateKeeper { @Override diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByMajoritiesOfSpecifiedTeam.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByMajoritiesOfSpecifiedTeam.java index 417b77bfcd..24718b8ff0 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByMajoritiesOfSpecifiedTeam.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByMajoritiesOfSpecifiedTeam.java @@ -1,8 +1,10 @@ package com.pmease.gitop.core.gatekeeper; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; @SuppressWarnings("serial") +@Editable public class ApprovedByMajoritiesOfSpecifiedTeam extends TeamAwareGateKeeper { @Override diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByRepositoryOwner.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByRepositoryOwner.java index d5d9c53bab..6c6a8021dd 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByRepositoryOwner.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedByRepositoryOwner.java @@ -1,11 +1,13 @@ package com.pmease.gitop.core.gatekeeper; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.commons.util.EasySet; import com.pmease.gitop.core.model.MergeRequest; import com.pmease.gitop.core.model.User; import com.pmease.gitop.core.model.Vote; @SuppressWarnings("serial") +@Editable public class ApprovedByRepositoryOwner extends AbstractGateKeeper { @Override diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedBySpecifiedTeam.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedBySpecifiedTeam.java index a65d687cf2..50d0b60470 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedBySpecifiedTeam.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedBySpecifiedTeam.java @@ -5,17 +5,20 @@ import java.util.HashSet; import javax.validation.constraints.Min; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; import com.pmease.gitop.core.model.TeamMembership; import com.pmease.gitop.core.model.User; import com.pmease.gitop.core.model.Vote; @SuppressWarnings("serial") +@Editable public class ApprovedBySpecifiedTeam extends TeamAwareGateKeeper { private int leastApprovals = 1; - - @Min(1) + + @Editable + @Min(value=1, message="Least approvals should not be less than 1.") public int getLeastApprovals() { return leastApprovals; } diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedBySpecifiedUser.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedBySpecifiedUser.java index aeeb4d6639..9da7116ce6 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedBySpecifiedUser.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/ApprovedBySpecifiedUser.java @@ -1,5 +1,8 @@ package com.pmease.gitop.core.gatekeeper; +import javax.validation.constraints.NotNull; + +import com.pmease.commons.editable.annotation.Editable; import com.pmease.commons.loader.AppLoader; import com.pmease.commons.util.EasySet; import com.pmease.gitop.core.manager.UserManager; @@ -8,10 +11,13 @@ import com.pmease.gitop.core.model.User; import com.pmease.gitop.core.model.Vote; @SuppressWarnings("serial") +@Editable public class ApprovedBySpecifiedUser extends AbstractGateKeeper { private Long userId; + @Editable + @NotNull public Long getUserId() { return userId; } diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/GateKeeper.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/GateKeeper.java index ace55739fd..8f6ed5a8ce 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/GateKeeper.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/GateKeeper.java @@ -2,9 +2,11 @@ package com.pmease.gitop.core.gatekeeper; import java.io.Serializable; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.commons.util.trimmable.Trimmable; import com.pmease.gitop.core.model.MergeRequest; +@Editable public interface GateKeeper extends Trimmable, Serializable { CheckResult check(MergeRequest request); diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/GetMinScoreFromSpecifiedTeam.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/GetMinScoreFromSpecifiedTeam.java index 22f7862c6f..09c90d1acd 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/GetMinScoreFromSpecifiedTeam.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/GetMinScoreFromSpecifiedTeam.java @@ -5,19 +5,22 @@ import java.util.HashSet; import javax.validation.constraints.Min; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; import com.pmease.gitop.core.model.TeamMembership; import com.pmease.gitop.core.model.User; import com.pmease.gitop.core.model.Vote; @SuppressWarnings("serial") +@Editable public class GetMinScoreFromSpecifiedTeam extends TeamAwareGateKeeper { private int minScore = 1; private boolean requireVoteOfAllMembers; - @Min(1) + @Editable + @Min(value=1, message="Min score should not be less than 1.") public int getMinScore() { return minScore; } diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/HasSourceBranch.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/HasSourceBranch.java index 342b6e50e9..0f27d3f587 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/HasSourceBranch.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/HasSourceBranch.java @@ -1,8 +1,10 @@ package com.pmease.gitop.core.gatekeeper; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; @SuppressWarnings("serial") +@Editable public class HasSourceBranch extends AbstractGateKeeper { @Override diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/IfThenGateKeeper.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/IfThenGateKeeper.java index 6384a83aff..d4cafe5435 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/IfThenGateKeeper.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/IfThenGateKeeper.java @@ -2,15 +2,18 @@ package com.pmease.gitop.core.gatekeeper; import javax.validation.constraints.NotNull; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; @SuppressWarnings("serial") +@Editable public class IfThenGateKeeper extends AbstractGateKeeper { private GateKeeper ifGate; private GateKeeper thenGate; + @Editable @NotNull public GateKeeper getIfGate() { return ifGate; @@ -20,6 +23,7 @@ public class IfThenGateKeeper extends AbstractGateKeeper { this.ifGate = ifGate; } + @Editable @NotNull public GateKeeper getThenGate() { return thenGate; diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/IsFastForward.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/IsFastForward.java index 50c92617ad..8ba7ec1c82 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/IsFastForward.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/IsFastForward.java @@ -1,8 +1,10 @@ package com.pmease.gitop.core.gatekeeper; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; @SuppressWarnings("serial") +@Editable public class IsFastForward extends AbstractGateKeeper { @Override diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NeverAccept.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NeverAccept.java index a3058ddc25..4945c65109 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NeverAccept.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NeverAccept.java @@ -1,8 +1,10 @@ package com.pmease.gitop.core.gatekeeper; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; @SuppressWarnings("serial") +@Editable public class NeverAccept extends AbstractGateKeeper { @Override diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NoRejectionBySpecifiedTeam.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NoRejectionBySpecifiedTeam.java index 536243adc0..6d55c4748d 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NoRejectionBySpecifiedTeam.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NoRejectionBySpecifiedTeam.java @@ -1,10 +1,12 @@ package com.pmease.gitop.core.gatekeeper; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; import com.pmease.gitop.core.model.TeamMembership; import com.pmease.gitop.core.model.Vote; @SuppressWarnings("serial") +@Editable public class NoRejectionBySpecifiedTeam extends TeamAwareGateKeeper { @Override diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NotGateKeeper.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NotGateKeeper.java index aaaed92043..aca2e22a74 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NotGateKeeper.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/NotGateKeeper.java @@ -1,12 +1,18 @@ package com.pmease.gitop.core.gatekeeper; +import javax.validation.constraints.NotNull; + +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; @SuppressWarnings("serial") +@Editable public class NotGateKeeper extends AbstractGateKeeper { private GateKeeper gateKeeper; + @Editable + @NotNull public GateKeeper getGateKeeper() { return gateKeeper; } diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/OrGateKeeper.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/OrGateKeeper.java index 4a350fd7d8..59dd72eb4b 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/OrGateKeeper.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/OrGateKeeper.java @@ -3,16 +3,24 @@ package com.pmease.gitop.core.gatekeeper; import java.util.ArrayList; import java.util.List; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +import com.pmease.commons.editable.annotation.Editable; import com.pmease.commons.util.trimmable.AndOrConstruct; import com.pmease.commons.util.trimmable.TrimUtils; import com.pmease.commons.util.trimmable.Trimmable; import com.pmease.gitop.core.model.MergeRequest; @SuppressWarnings("serial") +@Editable(name="Any sub gate keeper accepts") public class OrGateKeeper extends AbstractGateKeeper { private List gateKeepers = new ArrayList(); - + + @Editable(name="Sub Gate Keepers") + @NotNull + @Size(min=1, message="At least one element has to be added.") public List getGateKeepers() { return gateKeepers; } diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/SubmittedToSpecifiedBranch.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/SubmittedToSpecifiedBranch.java index 8c990bad65..94cd6bff90 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/SubmittedToSpecifiedBranch.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/SubmittedToSpecifiedBranch.java @@ -1,6 +1,9 @@ package com.pmease.gitop.core.gatekeeper; +import javax.validation.constraints.NotNull; + import com.google.common.base.Preconditions; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.commons.loader.AppLoader; import com.pmease.commons.util.namedentity.EntityLoader; import com.pmease.commons.util.namedentity.EntityMatcher; @@ -12,10 +15,13 @@ import com.pmease.gitop.core.model.MergeRequest; import com.pmease.gitop.core.model.Repository; @SuppressWarnings("serial") +@Editable public class SubmittedToSpecifiedBranch extends AbstractGateKeeper { private String branchPatterns; + @Editable + @NotNull public String getBranchPatterns() { return branchPatterns; } diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/SubmittedViaPush.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/SubmittedViaPush.java index 255afb55f9..3f4d90fa2c 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/SubmittedViaPush.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/SubmittedViaPush.java @@ -1,8 +1,10 @@ package com.pmease.gitop.core.gatekeeper; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.model.MergeRequest; @SuppressWarnings("serial") +@Editable public class SubmittedViaPush extends AbstractGateKeeper { @Override diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/TeamAwareGateKeeper.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/TeamAwareGateKeeper.java index f132d4c48e..42caeff38c 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/TeamAwareGateKeeper.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/TeamAwareGateKeeper.java @@ -1,5 +1,8 @@ package com.pmease.gitop.core.gatekeeper; +import javax.validation.constraints.NotNull; + +import com.pmease.commons.editable.annotation.Editable; import com.pmease.gitop.core.Gitop; import com.pmease.gitop.core.manager.TeamManager; import com.pmease.gitop.core.model.Team; @@ -9,6 +12,8 @@ public abstract class TeamAwareGateKeeper extends AbstractGateKeeper { private Long teamId; + @Editable + @NotNull public Long getTeamId() { return teamId; } diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/TouchSpecifiedFiles.java b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/TouchSpecifiedFiles.java index 7a2a63188a..e0c6806c1b 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/TouchSpecifiedFiles.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/gatekeeper/TouchSpecifiedFiles.java @@ -5,6 +5,7 @@ import java.util.Collection; import org.hibernate.validator.constraints.NotEmpty; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.commons.git.FindChangedFilesCommand; import com.pmease.commons.git.Git; import com.pmease.commons.loader.AppLoader; @@ -14,10 +15,12 @@ import com.pmease.gitop.core.model.MergeRequest; import com.pmease.gitop.core.model.MergeRequestUpdate; @SuppressWarnings("serial") +@Editable public class TouchSpecifiedFiles extends AbstractGateKeeper { private String filePaths; + @Editable @NotEmpty public String getFilePaths() { return filePaths; diff --git a/gitop.core/src/main/java/com/pmease/gitop/core/model/Repository.java b/gitop.core/src/main/java/com/pmease/gitop/core/model/Repository.java index 17035d1f99..c447e7cf66 100644 --- a/gitop.core/src/main/java/com/pmease/gitop/core/model/Repository.java +++ b/gitop.core/src/main/java/com/pmease/gitop/core/model/Repository.java @@ -13,6 +13,7 @@ import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.UniqueConstraint; +import com.pmease.commons.editable.annotation.Editable; import com.pmease.commons.hibernate.AbstractEntity; import com.pmease.gitop.core.Gitop; import com.pmease.gitop.core.gatekeeper.GateKeeper; @@ -27,6 +28,7 @@ import com.pmease.gitop.core.permission.operation.RepositoryOperation; @UniqueConstraint(columnNames={"owner", "name"}) }) @SuppressWarnings("serial") +@Editable public class Repository extends AbstractEntity implements UserBelonging { @ManyToOne @@ -61,6 +63,7 @@ public class Repository extends AbstractEntity implements UserBelonging { this.owner = owner; } + @Editable public String getName() { return name; } @@ -69,6 +72,7 @@ public class Repository extends AbstractEntity implements UserBelonging { this.name = name; } + @Editable public String getDescription() { return description; } @@ -77,6 +81,7 @@ public class Repository extends AbstractEntity implements UserBelonging { this.description = description; } + @Editable public boolean isPubliclyAccessible() { return publiclyAccessible; } @@ -94,9 +99,8 @@ public class Repository extends AbstractEntity implements UserBelonging { this.defaultAuthorizedOperation = defaultAuthorizedOperation; } + @Editable public GateKeeper getGateKeeper() { - if (gateKeeper != null) - gateKeeper = (GateKeeper) gateKeeper.trim(this); return gateKeeper; } diff --git a/gitop.web/src/main/java/com/pmease/gitop/web/HomePage.html b/gitop.web/src/main/java/com/pmease/gitop/web/HomePage.html index 7dd3caf1a0..4ae881545b 100644 --- a/gitop.web/src/main/java/com/pmease/gitop/web/HomePage.html +++ b/gitop.web/src/main/java/com/pmease/gitop/web/HomePage.html @@ -1,3 +1,8 @@ -

Welcome Home!

+
+
+
+ +
+
\ No newline at end of file diff --git a/gitop.web/src/main/java/com/pmease/gitop/web/HomePage.java b/gitop.web/src/main/java/com/pmease/gitop/web/HomePage.java index 16d9d8d4f6..32530d052e 100644 --- a/gitop.web/src/main/java/com/pmease/gitop/web/HomePage.java +++ b/gitop.web/src/main/java/com/pmease/gitop/web/HomePage.java @@ -1,11 +1,38 @@ package com.pmease.gitop.web; +import org.apache.commons.lang3.SerializationUtils; +import org.apache.wicket.markup.html.form.Form; + +import com.pmease.commons.editable.EditContext; +import com.pmease.commons.wicket.editable.EditHelper; +import com.pmease.gitop.core.model.Repository; + @SuppressWarnings("serial") public class HomePage extends BasePage { + private static Repository repository = new Repository(); + @Override protected void onInitialize() { super.onInitialize(); + + final Repository cloned = SerializationUtils.clone(repository); + final EditContext editContext = EditHelper.getContext(cloned); + + Form form = new Form("form") { + + @Override + protected void onSubmit() { + super.onSubmit(); + editContext.validate(); + if (!editContext.hasError(true)) + repository = cloned; + } + + }; + form.add(EditHelper.renderForEdit(editContext, "editor")); + + add(form); } @Override