From 916e848bd77cc0a63f083ff48e5a2e4e788e1f51 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 19 Dec 2011 09:11:52 -0500 Subject: [PATCH] Fixed commit url in sendemail.groovy --- src/com/gitblit/wicket/pages/EditRepositoryPage.java | 71 ++++++++++++++++++++++++++++++++--- 1 files changed, 65 insertions(+), 6 deletions(-) diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java index 3b6e6f3..56e44f8 100644 --- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java +++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java @@ -33,6 +33,8 @@ import org.apache.wicket.markup.html.form.IChoiceRenderer; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.model.CompoundPropertyModel; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; import org.apache.wicket.model.util.CollectionModel; import org.apache.wicket.model.util.ListModel; @@ -47,11 +49,13 @@ import com.gitblit.wicket.GitBlitWebSession; import com.gitblit.wicket.WicketUtils; -public class EditRepositoryPage extends BasePage { +public class EditRepositoryPage extends RootSubPage { private final boolean isCreate; private boolean isAdmin; + + private IModel<String> mailRecipients; public EditRepositoryPage() { // create constructor @@ -73,21 +77,38 @@ // ensure this user can create or edit this repository checkPermissions(repositoryModel); + List<String> federationSets = new ArrayList<String>(); List<String> repositoryUsers = new ArrayList<String>(); + List<String> repositoryTeams = new ArrayList<String>(); if (isCreate) { - super.setupPage("", getString("gb.newRepository")); + super.setupPage(getString("gb.newRepository"), ""); } else { - super.setupPage("", getString("gb.edit")); + super.setupPage(getString("gb.edit"), repositoryModel.name); if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) { repositoryUsers.addAll(GitBlit.self().getRepositoryUsers(repositoryModel)); + repositoryTeams.addAll(GitBlit.self().getRepositoryTeams(repositoryModel)); Collections.sort(repositoryUsers); } + federationSets.addAll(repositoryModel.federationSets); } final String oldName = repositoryModel.name; + // users palette final Palette<String> usersPalette = new Palette<String>("users", new ListModel<String>( repositoryUsers), new CollectionModel<String>(GitBlit.self().getAllUsernames()), new ChoiceRenderer<String>("", ""), 10, false); + + // teams palette + final Palette<String> teamsPalette = new Palette<String>("teams", new ListModel<String>( + repositoryTeams), new CollectionModel<String>(GitBlit.self().getAllTeamnames()), + new ChoiceRenderer<String>("", ""), 10, false); + + // federation sets palette + List<String> sets = GitBlit.getStrings(Keys.federation.sets); + final Palette<String> federationSetsPalette = new Palette<String>("federationSets", + new ListModel<String>(federationSets), new CollectionModel<String>(sets), + new ChoiceRenderer<String>("", ""), 10, false); + CompoundPropertyModel<RepositoryModel> model = new CompoundPropertyModel<RepositoryModel>( repositoryModel); Form<RepositoryModel> form = new Form<RepositoryModel>("editForm", model) { @@ -136,11 +157,34 @@ return; } + // confirm federation strategy selection + if (repositoryModel.federationStrategy == null) { + error("Please select federation strategy!"); + return; + } + + // save federation set preferences + if (repositoryModel.federationStrategy.exceeds(FederationStrategy.EXCLUDE)) { + repositoryModel.federationSets.clear(); + Iterator<String> sets = federationSetsPalette.getSelectedChoices(); + while (sets.hasNext()) { + repositoryModel.federationSets.add(sets.next()); + } + } + + // set mail recipients + String ml = mailRecipients.getObject(); + if (!StringUtils.isEmpty(ml)) { + List<String> list = StringUtils.getStringsFromValue(ml.trim(), " "); + repositoryModel.mailRecipients = list; + } + // save the repository GitBlit.self().updateRepositoryModel(oldName, repositoryModel, isCreate); - // save the repository access list + // repository access if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) { + // save the user access list Iterator<String> users = usersPalette.getSelectedChoices(); List<String> repositoryUsers = new ArrayList<String>(); while (users.hasNext()) { @@ -152,6 +196,14 @@ repositoryUsers.add(repositoryModel.owner); } GitBlit.self().setRepositoryUsers(repositoryModel, repositoryUsers); + + // save the team access list + Iterator<String> teams = teamsPalette.getSelectedChoices(); + List<String> repositoryTeams = new ArrayList<String>(); + while (teams.hasNext()) { + repositoryTeams.add(teams.next()); + } + GitBlit.self().setRepositoryTeams(repositoryModel, repositoryTeams); } } catch (GitBlitException e) { error(e.getMessage()); @@ -171,8 +223,8 @@ .asList(AccessRestrictionType.values()), new AccessRestrictionRenderer())); form.add(new CheckBox("isFrozen")); // TODO enable origin definition - form.add(new TextField<String>("origin").setEnabled(false/*isCreate*/)); - + form.add(new TextField<String>("origin").setEnabled(false/* isCreate */)); + // federation strategies - remove ORIGIN choice if this repository has // no origin. List<FederationStrategy> federationStrategies = new ArrayList<FederationStrategy>( @@ -186,7 +238,14 @@ form.add(new CheckBox("useDocs")); form.add(new CheckBox("showRemoteBranches")); form.add(new CheckBox("showReadme")); + form.add(new CheckBox("skipSizeCalculation")); + form.add(new CheckBox("skipSummaryMetrics")); + mailRecipients = new Model<String>(repositoryModel.mailRecipients == null ? "" + : StringUtils.flattenStrings(repositoryModel.mailRecipients, " ")); + form.add(new TextField<String>("mailRecipients", mailRecipients)); form.add(usersPalette); + form.add(teamsPalette); + form.add(federationSetsPalette); form.add(new Button("save")); Button cancel = new Button("cancel") { -- Gitblit v1.9.1