diff --git a/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardServlet.java b/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardServlet.java index 6a11896008..66c1006d4f 100644 --- a/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardServlet.java +++ b/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardServlet.java @@ -19,6 +19,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -65,8 +66,13 @@ class MigrationWizardServlet extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp) { resp.setStatus(200); - req.getParameterMap().forEach( - (name, strategy) -> migrationStrategyDao.set(name, MigrationStrategy.valueOf(strategy[0])) + Arrays.stream(req.getParameterValues("ids")).forEach( + id -> { + String strategy = req.getParameter("strategy-" + id); + String namespace = req.getParameter("namespace-" + id); + String name = req.getParameter("name-" + id); + migrationStrategyDao.set(id, MigrationStrategy.valueOf(strategy), namespace, name); + } ); MustacheFactory mf = new DefaultMustacheFactory(); diff --git a/scm-webapp/src/main/java/sonia/scm/update/repository/MigrationStrategyDao.java b/scm-webapp/src/main/java/sonia/scm/update/repository/MigrationStrategyDao.java index 8ddb5e02df..07c049bc84 100644 --- a/scm-webapp/src/main/java/sonia/scm/update/repository/MigrationStrategyDao.java +++ b/scm-webapp/src/main/java/sonia/scm/update/repository/MigrationStrategyDao.java @@ -23,8 +23,8 @@ public class MigrationStrategyDao { return plan.get(id); } - public void set(String repositoryId, MigrationStrategy strategy) { - plan.set(repositoryId, strategy); + public void set(String repositoryId, MigrationStrategy strategy, String newNamespace, String newName) { + plan.set(repositoryId, strategy, newNamespace, newName); store.set(plan); } } diff --git a/scm-webapp/src/main/java/sonia/scm/update/repository/RepositoryMigrationPlan.java b/scm-webapp/src/main/java/sonia/scm/update/repository/RepositoryMigrationPlan.java index f2b2dc9788..c839eba5b0 100644 --- a/scm-webapp/src/main/java/sonia/scm/update/repository/RepositoryMigrationPlan.java +++ b/scm-webapp/src/main/java/sonia/scm/update/repository/RepositoryMigrationPlan.java @@ -28,10 +28,12 @@ class RepositoryMigrationPlan { .map(RepositoryEntry::getDataMigrationStrategy); } - public void set(String repositoryId, MigrationStrategy strategy) { + public void set(String repositoryId, MigrationStrategy strategy, String newNamespace, String newName) { Optional entry = findEntry(repositoryId); if (entry.isPresent()) { entry.get().setStrategy(strategy); + entry.get().setNewNamespace(newNamespace); + entry.get().setNewName(newName); } else { entries.add(new RepositoryEntry(repositoryId, strategy)); } @@ -49,6 +51,8 @@ class RepositoryMigrationPlan { private String repositoryId; private MigrationStrategy dataMigrationStrategy; + private String newNamespace; + private String newName; RepositoryEntry() { } @@ -62,8 +66,24 @@ class RepositoryMigrationPlan { return dataMigrationStrategy; } + public String getNewNamespace() { + return newNamespace; + } + + public String getNewName() { + return newName; + } + private void setStrategy(MigrationStrategy strategy) { this.dataMigrationStrategy = strategy; } + + private void setNewNamespace(String newNamespace) { + this.newNamespace = newNamespace; + } + + private void setNewName(String newName) { + this.newName = newName; + } } } diff --git a/scm-webapp/src/main/resources/templates/repository-migration.mustache b/scm-webapp/src/main/resources/templates/repository-migration.mustache index 83d2fe94dd..5a9085fb4b 100644 --- a/scm-webapp/src/main/resources/templates/repository-migration.mustache +++ b/scm-webapp/src/main/resources/templates/repository-migration.mustache @@ -46,7 +46,8 @@ Original name Type - New namespace and name + New namespace + New name Strategy {{#repositories}} @@ -58,12 +59,15 @@ {{type}} - {{newNamespace}}/{{newName}} + + + +
- {{#strategies}} {{/strategies}} @@ -74,6 +78,9 @@ {{/repositories}} + {{#repositories}} + + {{/repositories}}