From e4e5b4cb811238abd83631def73f9c64e820dbfe Mon Sep 17 00:00:00 2001 From: Robin Shen Date: Sun, 19 Feb 2023 12:37:21 +0800 Subject: [PATCH] Fix issue #1227 - Issues should be sorted by number descending after copy/move --- .../entitymanager/impl/DefaultIssueManager.java | 1 + .../component/issue/list/IssueListPanel.java | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/server-core/src/main/java/io/onedev/server/entitymanager/impl/DefaultIssueManager.java b/server-core/src/main/java/io/onedev/server/entitymanager/impl/DefaultIssueManager.java index ea129ea127..0f24d71906 100644 --- a/server-core/src/main/java/io/onedev/server/entitymanager/impl/DefaultIssueManager.java +++ b/server-core/src/main/java/io/onedev/server/entitymanager/impl/DefaultIssueManager.java @@ -986,6 +986,7 @@ public class DefaultIssueManager extends BaseEntityManager implements Iss clonedIssue.setUUID(UUID.randomUUID().toString()); clonedIssue.setProject(targetProject); Project numberScope = targetProject.getForkRoot(); + clonedIssue.setNumberScope(numberScope); clonedIssue.setNumber(getNextNumber(numberScope)); cloneMapping.put(issue, clonedIssue); diff --git a/server-core/src/main/java/io/onedev/server/web/component/issue/list/IssueListPanel.java b/server-core/src/main/java/io/onedev/server/web/component/issue/list/IssueListPanel.java index e118c929b4..fc9abc74eb 100644 --- a/server-core/src/main/java/io/onedev/server/web/component/issue/list/IssueListPanel.java +++ b/server-core/src/main/java/io/onedev/server/web/component/issue/list/IssueListPanel.java @@ -1,5 +1,6 @@ package io.onedev.server.web.component.issue.list; +import com.google.common.collect.Lists; import com.google.common.collect.Sets; import edu.emory.mathcs.backport.java.util.Collections; import io.onedev.commons.codeassist.parser.TerminalExpect; @@ -553,6 +554,14 @@ public abstract class IssueListPanel extends Panel { add(new MenuLink("operations") { + private String getQueryAfterCopyOrMove() { + EntitySort sort = new EntitySort(); + sort.setField(Issue.NAME_NUMBER); + sort.setDirection(EntitySort.Direction.DESCENDING); + IssueQuery query = new IssueQuery(null, Lists.newArrayList(sort)); + return query.toString(); + } + @Override protected List getMenuItems(FloatingPanel dropdown) { List menuItems = new ArrayList<>(); @@ -677,7 +686,7 @@ public abstract class IssueListPanel extends Panel { issues.add(each.getObject()); OneDev.getInstance(IssueManager.class).move(issues, getProject(), getTargetProject()); setResponsePage(ProjectIssueListPage.class, - ProjectIssueListPage.paramsOf(getTargetProject(), null, 0)); + ProjectIssueListPage.paramsOf(getTargetProject(), getQueryAfterCopyOrMove(), 0)); Session.get().success("Issues moved"); } @@ -759,7 +768,7 @@ public abstract class IssueListPanel extends Panel { issues.add(each.getObject()); OneDev.getInstance(IssueManager.class).copy(issues, getProject(), getTargetProject()); setResponsePage(ProjectIssueListPage.class, - ProjectIssueListPage.paramsOf(getTargetProject(), null, 0)); + ProjectIssueListPage.paramsOf(getTargetProject(), getQueryAfterCopyOrMove(), 0)); Session.get().success("Issues copied"); } @@ -980,7 +989,7 @@ public abstract class IssueListPanel extends Panel { } OneDev.getInstance(IssueManager.class).move(issues, getProject(), getTargetProject()); setResponsePage(ProjectIssueListPage.class, - ProjectIssueListPage.paramsOf(getTargetProject(), null, 0)); + ProjectIssueListPage.paramsOf(getTargetProject(), getQueryAfterCopyOrMove(), 0)); Session.get().success("Issues moved"); } @@ -1064,7 +1073,7 @@ public abstract class IssueListPanel extends Panel { } OneDev.getInstance(IssueManager.class).copy(issues, getProject(), getTargetProject()); setResponsePage(ProjectIssueListPage.class, - ProjectIssueListPage.paramsOf(getTargetProject(), null, 0)); + ProjectIssueListPage.paramsOf(getTargetProject(), getQueryAfterCopyOrMove(), 0)); Session.get().success("Issues copied"); }