From 87163b405e60dba58453105cd8c06181d4f6b13a Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 05 Mar 2015 09:17:34 -0500
Subject: [PATCH] Merged #243 "Allow Forks is not saved on repository edit"

---
 src/main/java/com/gitblit/wicket/panels/AccessPolicyPanel.java |   30 +++++++++++++++++++++++++++---
 1 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/panels/AccessPolicyPanel.java b/src/main/java/com/gitblit/wicket/panels/AccessPolicyPanel.java
index a115e25..2c88024 100644
--- a/src/main/java/com/gitblit/wicket/panels/AccessPolicyPanel.java
+++ b/src/main/java/com/gitblit/wicket/panels/AccessPolicyPanel.java
@@ -19,12 +19,15 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Radio;
 import org.apache.wicket.markup.html.form.RadioGroup;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.Fragment;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
 
 import com.gitblit.Constants.AccessRestrictionType;
 import com.gitblit.Constants.AuthorizationControl;
@@ -44,11 +47,18 @@
 
 	private final RepositoryModel repository;
 
+	private final AjaxFormChoiceComponentUpdatingBehavior callback;
+
 	private RadioGroup<AccessPolicy> policiesGroup;
 
 	public AccessPolicyPanel(String wicketId, RepositoryModel repository) {
+		this(wicketId, repository, null);
+	}
+
+	public AccessPolicyPanel(String wicketId, RepositoryModel repository, AjaxFormChoiceComponentUpdatingBehavior callback) {
 		super(wicketId);
 		this.repository = repository;
+		this.callback = callback;
 	}
 
 	@Override
@@ -128,10 +138,24 @@
 			}
 		};
 		policiesGroup.add(policiesList);
+		if (callback != null) {
+			policiesGroup.add(callback);
+			policiesGroup.setOutputMarkupId(true);
+		}
+		add(policiesGroup);
+
+		if (app().settings().getBoolean(Keys.web.allowForking, true)) {
+			Fragment fragment = new Fragment("allowForks", "allowForksFragment", this);
+			fragment.add(new BooleanOption("allowForks",
+				getString("gb.allowForks"),
+				getString("gb.allowForksDescription"),
+				new PropertyModel<Boolean>(repository, "allowForks")));
+			add(fragment);
+		} else {
+			add(new Label("allowForks").setVisible(false));
+		}
 
 		setOutputMarkupId(true);
-
-		add(policiesGroup);
 	}
 
 	public void updateModel(RepositoryModel repository) {
@@ -145,7 +169,7 @@
 		return false;
 	}
 
-	private static class AccessPolicy implements Serializable {
+	public static class AccessPolicy implements Serializable {
 
 		private static final long serialVersionUID = 1L;
 

--
Gitblit v1.9.1