From 5779988cf3a1d737322b2b6a1d568da8713509e7 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 03 Jun 2014 10:34:51 -0400 Subject: [PATCH] Use RepositoryNamePanel in EditRepositoryPage, rename AccessPolicyPanel --- src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java | 63 ++++--------------------------- 1 files changed, 9 insertions(+), 54 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java index c18cd51..4759fd0 100644 --- a/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java +++ b/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java @@ -72,10 +72,13 @@ import com.gitblit.wicket.panels.BasePanel.JavascriptEventConfirmation; import com.gitblit.wicket.panels.BulletListPanel; import com.gitblit.wicket.panels.RegistrantPermissionsPanel; +import com.gitblit.wicket.panels.RepositoryNamePanel; public class EditRepositoryPage extends RootSubPage { private final boolean isCreate; + + RepositoryNamePanel namePanel; private boolean isAdmin; @@ -263,59 +266,8 @@ @Override protected void onSubmit() { try { - // confirm a repository name was entered - if (repositoryModel.name == null && StringUtils.isEmpty(repositoryModel.name)) { - error(getString("gb.pleaseSetRepositoryName")); + if (!namePanel.updateModel(repositoryModel)) { return; - } - - // ensure name is trimmed - repositoryModel.name = repositoryModel.name.trim(); - - // automatically convert backslashes to forward slashes - repositoryModel.name = repositoryModel.name.replace('\\', '/'); - // Automatically replace // with / - repositoryModel.name = repositoryModel.name.replace("//", "/"); - - // prohibit folder paths - if (repositoryModel.name.startsWith("/")) { - error(getString("gb.illegalLeadingSlash")); - return; - } - if (repositoryModel.name.startsWith("../")) { - error(getString("gb.illegalRelativeSlash")); - return; - } - if (repositoryModel.name.contains("/../")) { - error(getString("gb.illegalRelativeSlash")); - return; - } - if (repositoryModel.name.endsWith("/")) { - repositoryModel.name = repositoryModel.name.substring(0, repositoryModel.name.length() - 1); - } - - // confirm valid characters in repository name - Character c = StringUtils.findInvalidCharacter(repositoryModel.name); - if (c != null) { - error(MessageFormat.format(getString("gb.illegalCharacterRepositoryName"), - c)); - return; - } - - if (user.canCreate() && !user.canAdmin() && allowEditName) { - // ensure repository name begins with the user's path - if (!repositoryModel.name.startsWith(user.getPersonalPath())) { - error(MessageFormat.format(getString("gb.illegalPersonalRepositoryLocation"), - user.getPersonalPath())); - return; - } - - if (repositoryModel.name.equals(user.getPersonalPath())) { - // reset path prefix and show error - repositoryModel.name = user.getPersonalPath() + "/"; - error(getString("gb.pleaseSetRepositoryName")); - return; - } } // confirm access restriction selection @@ -426,6 +378,7 @@ } } catch (GitBlitException e) { error(e.getMessage()); + namePanel.resetModel(repositoryModel); return; } setRedirect(false); @@ -437,8 +390,10 @@ form.add(new SimpleAttributeModifier("autocomplete", "off")); // field names reflective match RepositoryModel fields - form.add(new TextField<String>("name").setEnabled(allowEditName)); - form.add(new TextField<String>("description")); + namePanel = new RepositoryNamePanel("namePanel", repositoryModel); + namePanel.setEditable(allowEditName); + form.add(namePanel); + form.add(ownersPalette); form.add(new CheckBox("allowForks").setEnabled(app().settings().getBoolean(Keys.web.allowForking, true))); DropDownChoice<AccessRestrictionType> accessRestriction = new DropDownChoice<AccessRestrictionType>("accessRestriction", -- Gitblit v1.9.1