From 6b18b0761b726fd9aef1ebcc21b760378f7d4b5c Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 16 Jun 2014 17:36:12 -0400
Subject: [PATCH] Merge release 1.6.0

---
 src/main/java/com/gitblit/wicket/panels/AccessPolicyPanel.java |   34 +++++++++++++++++++++++++++++++---
 1 files changed, 31 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..d8dcdce 100644
--- a/src/main/java/com/gitblit/wicket/panels/AccessPolicyPanel.java
+++ b/src/main/java/com/gitblit/wicket/panels/AccessPolicyPanel.java
@@ -19,11 +19,14 @@
 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.IModel;
 import org.apache.wicket.model.Model;
 
 import com.gitblit.Constants.AccessRestrictionType;
@@ -44,11 +47,20 @@
 
 	private final RepositoryModel repository;
 
+	private final AjaxFormChoiceComponentUpdatingBehavior callback;
+
 	private RadioGroup<AccessPolicy> policiesGroup;
 
+	private IModel<Boolean> allowForks;
+
 	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,16 +140,32 @@
 			}
 		};
 		policiesGroup.add(policiesList);
+		if (callback != null) {
+			policiesGroup.add(callback);
+			policiesGroup.setOutputMarkupId(true);
+		}
+		add(policiesGroup);
+
+		allowForks = Model.of(app().settings().getBoolean(Keys.web.allowForking, true));
+		if (allowForks.getObject()) {
+			Fragment fragment = new Fragment("allowForks", "allowForksFragment", this);
+			fragment.add(new BooleanOption("allowForks",
+				getString("gb.allowForks"),
+				getString("gb.allowForksDescription"),
+				allowForks));
+			add(fragment);
+		} else {
+			add(new Label("allowForks").setVisible(false));
+		}
 
 		setOutputMarkupId(true);
-
-		add(policiesGroup);
 	}
 
 	public void updateModel(RepositoryModel repository) {
 		AccessPolicy policy = policiesGroup.getModelObject();
 		repository.authorizationControl = policy.control;
 		repository.accessRestriction = policy.type;
+		repository.allowForks = allowForks.getObject();
 	}
 
 	@Override
@@ -145,7 +173,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