From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 30 Apr 2016 04:19:14 -0400 Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates --- src/main/java/com/gitblit/wicket/pages/NewRepositoryPage.java | 66 ++++++++++++++------------------ 1 files changed, 29 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/NewRepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/NewRepositoryPage.java index e2e5d4b..d2589e6 100644 --- a/src/main/java/com/gitblit/wicket/pages/NewRepositoryPage.java +++ b/src/main/java/com/gitblit/wicket/pages/NewRepositoryPage.java @@ -22,14 +22,9 @@ import java.util.Collections; import java.util.List; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.behavior.SimpleAttributeModifier; import org.apache.wicket.markup.html.form.Button; -import org.apache.wicket.markup.html.form.CheckBox; -import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Form; -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; @@ -60,8 +55,11 @@ import com.gitblit.utils.StringUtils; import com.gitblit.wicket.GitBlitWebSession; import com.gitblit.wicket.WicketUtils; +import com.gitblit.wicket.panels.AccessPolicyPanel; +import com.gitblit.wicket.panels.BooleanChoiceOption; +import com.gitblit.wicket.panels.BooleanOption; import com.gitblit.wicket.panels.RepositoryNamePanel; -import com.gitblit.wicket.panels.RepositoryPermissionPanel; +import com.google.common.base.Optional; public class NewRepositoryPage extends RootSubPage { @@ -70,7 +68,7 @@ private Model<String> gitignoreModel; private IModel<Boolean> addGitflowModel; private IModel<Boolean> addGitignoreModel; - private RepositoryPermissionPanel permissionPanel; + private AccessPolicyPanel accessPolicyPanel; private RepositoryNamePanel namePanel; public NewRepositoryPage() { @@ -109,7 +107,7 @@ if (!namePanel.updateModel(repositoryModel)) { return; } - permissionPanel.updateModel(repositoryModel); + accessPolicyPanel.updateModel(repositoryModel); repositoryModel.owners = new ArrayList<String>(); repositoryModel.owners.add(GitBlitWebSession.get().getUsername()); @@ -133,7 +131,7 @@ if (addGitignore) { gitignore = gitignoreModel.getObject(); if (StringUtils.isEmpty(gitignore)) { - throw new GitBlitException("Please select a .gitignore file"); + throw new GitBlitException(getString("gb.pleaseSelectGitIgnore")); } } @@ -145,7 +143,6 @@ } catch (GitBlitException e) { error(e.getMessage()); - namePanel.resetModel(repositoryModel); return; } setRedirect(true); @@ -158,8 +155,6 @@ namePanel = new RepositoryNamePanel("namePanel", repositoryModel); form.add(namePanel); - - form.add(new TextField<String>("description")); // prepare the default access controls AccessRestrictionType defaultRestriction = AccessRestrictionType.fromName( @@ -177,8 +172,8 @@ repositoryModel.authorizationControl = defaultControl; repositoryModel.accessRestriction = defaultRestriction; - permissionPanel = new RepositoryPermissionPanel("permissionPanel", repositoryModel); - form.add(permissionPanel); + accessPolicyPanel = new AccessPolicyPanel("accessPolicyPanel", repositoryModel); + form.add(accessPolicyPanel); // // initial commit options @@ -186,7 +181,10 @@ // add README addReadmeModel = Model.of(false); - form.add(new CheckBox("addReadme", addReadmeModel)); + form.add(new BooleanOption("addReadme", + getString("gb.initWithReadme"), + getString("gb.initWithReadmeDescription"), + addReadmeModel)); // add .gitignore File gitignoreDir = app().runtime().getFileOrFolder(Keys.git.gitignoreFolder, "${baseFolder}/gitignore"); @@ -201,29 +199,22 @@ } } Collections.sort(gitignores); + gitignoreModel = Model.of(""); - final DropDownChoice<String> gitignoreChoice = new DropDownChoice<String>("gitignore", gitignoreModel, gitignores); - gitignoreChoice.setOutputMarkupId(true); - form.add(gitignoreChoice.setEnabled(false)); - addGitignoreModel = Model.of(false); - final CheckBox gitignoreCheckbox = new CheckBox("addGitignore", addGitignoreModel); - form.add(gitignoreCheckbox); + form.add(new BooleanChoiceOption<String>("addGitIgnore", + getString("gb.initWithGitignore"), + getString("gb.initWithGitignoreDescription"), + addGitignoreModel, + gitignoreModel, + gitignores).setVisible(gitignores.size() > 0)); - gitignoreCheckbox.add(new AjaxFormComponentUpdatingBehavior("onchange") { - - private static final long serialVersionUID = 1L; - - @Override - protected void onUpdate(AjaxRequestTarget target) { - gitignoreChoice.setEnabled(addGitignoreModel.getObject()); - target.addComponent(gitignoreChoice); - } - }); - - // TODO add .gitflow + // TODO consider gitflow at creation (ticket-55) addGitflowModel = Model.of(false); - form.add(new CheckBox("addGitflow", addGitflowModel)); + form.add(new BooleanOption("addGitFlow", + "Include a .gitflow file", + "This will generate a config file which guides Git clients in setting up Gitflow branches.", + addGitflowModel).setVisible(false)); form.add(new Button("create")); @@ -253,7 +244,8 @@ try { UserModel user = GitBlitWebSession.get().getUser(); - PersonIdent author = new PersonIdent(user.getDisplayName(), user.emailAddress); + String email = Optional.fromNullable(user.emailAddress).or(user.username + "@" + "gitblit"); + PersonIdent author = new PersonIdent(user.getDisplayName(), email); DirCache newIndex = DirCache.newInCore(); DirCacheBuilder indexBuilder = newIndex.builder(); @@ -367,14 +359,14 @@ } } } finally { - revWalk.release(); + revWalk.close(); } } catch (UnsupportedEncodingException e) { logger().error(null, e); } catch (IOException e) { logger().error(null, e); } finally { - odi.release(); + odi.close(); db.close(); } return success; -- Gitblit v1.9.1