From 49844d1595c3229ab0629146022ffc449115eb7d Mon Sep 17 00:00:00 2001 From: Eduard Heimbuch Date: Thu, 20 Jan 2022 11:00:49 +0100 Subject: [PATCH] Compare branches, tags and revisions (#1920) Add branch/tag/revision compare to see diffs and changesets between the source and target revisions. This feature is reachable from the branch/tag detail page and also the source code view. Co-authored-by: Florian Scholdei Co-authored-by: Sebastian Sdorra --- .../repo/assets/repository-compare-view.png | Bin 0 -> 124744 bytes docs/de/user/repo/compare.md | 12 + docs/de/user/repo/index.md | 1 + .../repo/assets/repository-compare-view.png | Bin 0 -> 121890 bytes docs/en/user/repo/compare.md | 12 + docs/en/user/repo/index.md | 1 + gradle/changelog/compare.yaml | 2 + .../v2/resources/RepositoryLinkEnricher.java | 2 +- .../java/sonia/scm/repository/GitUtil.java | 2 +- .../scm/repository/spi/GitLogComputer.java | 6 +- .../resources/RepositoryLinkEnricherTest.java | 2 +- .../spi/GitDiffCommandWithTagsTest.java | 74 +++++ .../scm/repository/spi/HgDiffCommand.java | 9 +- .../scm/repository/spi/HgLogCommand.java | 150 ++++------ .../spi/HgRepositoryServiceProvider.java | 3 +- .../scm/repository/spi/HgDiffCommandTest.java | 22 ++ .../spi/HgLogCommandAncestorTest.java | 130 +++++++++ .../scm/repository/spi/HgLogCommandTest.java | 16 +- scm-ui/ui-api/src/compare.ts | 90 ++++++ scm-ui/ui-api/src/index.ts | 1 + scm-ui/ui-styles/public/_styleguide.html | 33 +++ scm-ui/ui-styles/src/highcontrast.scss | 2 + scm-ui/ui-styles/src/light.scss | 2 + scm-ui/ui-webapp/public/locales/de/repos.json | 25 ++ scm-ui/ui-webapp/public/locales/en/repos.json | 25 ++ .../branches/components/BranchDetail.tsx | 6 +- .../codeSection/components/CodeActionBar.tsx | 11 +- .../src/repos/compare/CompareLink.tsx | 62 ++++ .../src/repos/compare/CompareRoot.tsx | 61 ++++ .../src/repos/compare/CompareSelectBar.tsx | 117 ++++++++ .../src/repos/compare/CompareSelector.tsx | 149 ++++++++++ .../src/repos/compare/CompareSelectorList.tsx | 272 ++++++++++++++++++ .../compare/CompareSelectorListEntry.tsx | 57 ++++ .../src/repos/compare/CompareTabs.tsx | 60 ++++ .../src/repos/compare/CompareView.tsx | 86 ++++++ .../src/repos/compare/IncomingChangesets.tsx | 43 +++ .../src/repos/containers/Changesets.tsx | 35 ++- .../src/repos/containers/ChangesetsRoot.tsx | 10 +- .../src/repos/containers/RepositoryRoot.tsx | 60 ++-- .../src/repos/sources/containers/Sources.tsx | 8 +- .../src/repos/tags/components/TagDetail.tsx | 4 + 41 files changed, 1488 insertions(+), 175 deletions(-) create mode 100644 docs/de/user/repo/assets/repository-compare-view.png create mode 100644 docs/de/user/repo/compare.md create mode 100644 docs/en/user/repo/assets/repository-compare-view.png create mode 100644 docs/en/user/repo/compare.md create mode 100644 gradle/changelog/compare.yaml create mode 100644 scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/GitDiffCommandWithTagsTest.java create mode 100644 scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgLogCommandAncestorTest.java create mode 100644 scm-ui/ui-api/src/compare.ts create mode 100644 scm-ui/ui-webapp/src/repos/compare/CompareLink.tsx create mode 100644 scm-ui/ui-webapp/src/repos/compare/CompareRoot.tsx create mode 100644 scm-ui/ui-webapp/src/repos/compare/CompareSelectBar.tsx create mode 100644 scm-ui/ui-webapp/src/repos/compare/CompareSelector.tsx create mode 100644 scm-ui/ui-webapp/src/repos/compare/CompareSelectorList.tsx create mode 100644 scm-ui/ui-webapp/src/repos/compare/CompareSelectorListEntry.tsx create mode 100644 scm-ui/ui-webapp/src/repos/compare/CompareTabs.tsx create mode 100644 scm-ui/ui-webapp/src/repos/compare/CompareView.tsx create mode 100644 scm-ui/ui-webapp/src/repos/compare/IncomingChangesets.tsx diff --git a/docs/de/user/repo/assets/repository-compare-view.png b/docs/de/user/repo/assets/repository-compare-view.png new file mode 100644 index 0000000000000000000000000000000000000000..09e9b7854da7d0e5dffd01560518828124be4192 GIT binary patch literal 124744 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 diff --git a/docs/en/user/repo/assets/repository-compare-view.png b/docs/en/user/repo/assets/repository-compare-view.png new file mode 100644 index 0000000000000000000000000000000000000000..f3265997e713c7d72e3307bfe439afd463dd9efd GIT binary patch literal 121890 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 z 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�#Y3nK%#?d#oUCjsEVF%&v`4ri|ncafeRK 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 iterator = revWalk.iterator(); diff --git a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/api/v2/resources/RepositoryLinkEnricherTest.java b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/api/v2/resources/RepositoryLinkEnricherTest.java index 501afedb92..cff10b201f 100644 --- a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/api/v2/resources/RepositoryLinkEnricherTest.java +++ b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/api/v2/resources/RepositoryLinkEnricherTest.java @@ -50,7 +50,7 @@ import static org.mockito.Mockito.verify; ) class RepositoryLinkEnricherTest { - private static final Repository REPOSITORY = RepositoryTestData.create42Puzzle(); + private static final Repository REPOSITORY = RepositoryTestData.create42Puzzle("git"); private RepositoryLinkEnricher repositoryLinkEnricher; diff --git a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/GitDiffCommandWithTagsTest.java b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/GitDiffCommandWithTagsTest.java new file mode 100644 index 0000000000..c04d2e55c1 --- /dev/null +++ b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/spi/GitDiffCommandWithTagsTest.java @@ -0,0 +1,74 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository.spi; + +import org.junit.Test; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class GitDiffCommandWithTagsTest extends AbstractGitCommandTestBase { + + @Test + public void diffBetweenTwoTagsShouldCreateDiff() throws IOException { + GitDiffCommand gitDiffCommand = new GitDiffCommand(createContext()); + DiffCommandRequest diffCommandRequest = new DiffCommandRequest(); + diffCommandRequest.setRevision("1.0.0"); + diffCommandRequest.setAncestorChangeset("test-tag"); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + gitDiffCommand.getDiffResult(diffCommandRequest).accept(output); + assertEquals("diff --git a/a.txt b/a.txt\n" + + "index 7898192..2f8bc28 100644\n" + + "--- a/a.txt\n" + + "+++ b/a.txt\n" + + "@@ -1 +1,2 @@\n" + + " a\n" + + "+line for blame\n", output.toString()); + } + + @Test + public void diffBetweenTagAndBranchShouldCreateDiff() throws IOException { + GitDiffCommand gitDiffCommand = new GitDiffCommand(createContext()); + DiffCommandRequest diffCommandRequest = new DiffCommandRequest(); + diffCommandRequest.setRevision("master"); + diffCommandRequest.setAncestorChangeset("test-tag"); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + gitDiffCommand.getDiffResult(diffCommandRequest).accept(output); + assertEquals("diff --git a/a.txt b/a.txt\n" + + "index 7898192..2f8bc28 100644\n" + + "--- a/a.txt\n" + + "+++ b/a.txt\n" + + "@@ -1 +1,2 @@\n" + + " a\n" + + "+line for blame\n", output.toString()); + } + + @Override + protected String getZippedRepositoryResource() { + return "sonia/scm/repository/spi/scm-git-spi-test-tags.zip"; + } +} diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgDiffCommand.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgDiffCommand.java index ca6165ef43..03e6ed0d57 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgDiffCommand.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgDiffCommand.java @@ -38,7 +38,6 @@ import java.io.InputStream; import java.io.OutputStream; /** - * * @author Sebastian Sdorra */ public class HgDiffCommand extends AbstractCommand implements DiffCommand { @@ -74,7 +73,13 @@ public class HgDiffCommand extends AbstractCommand implements DiffCommand { if (format == DiffFormat.GIT) { cmd.git(); } - cmd.change(HgUtil.getRevision(request.getRevision())); + String revision = HgUtil.getRevision(request.getRevision()); + if (request.getAncestorChangeset() != null) { + String ancestor = HgUtil.getRevision(request.getAncestorChangeset()); + cmd.cmdAppend(String.format("-r ancestor(%s,%s):%s", ancestor, revision, revision)); + } else { + cmd.change(revision); + } return cmd; } diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgLogCommand.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgLogCommand.java index 324be36452..53726a84eb 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgLogCommand.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgLogCommand.java @@ -24,38 +24,22 @@ package sonia.scm.repository.spi; -//~--- non-JDK imports -------------------------------------------------------- - import com.google.common.base.Strings; +import com.google.common.collect.Lists; import sonia.scm.repository.Changeset; import sonia.scm.repository.ChangesetPagingResult; import sonia.scm.repository.spi.javahg.HgLogChangesetCommand; import java.util.ArrayList; +import java.util.Collections; import java.util.List; -//~--- JDK imports ------------------------------------------------------------ +public class HgLogCommand extends AbstractCommand implements LogCommand { -/** - * - * @author Sebastian Sdorra - */ -public class HgLogCommand extends AbstractCommand implements LogCommand -{ - - /** - * Constructs ... - * - * @param context - * - */ - HgLogCommand(HgCommandContext context) - { + HgLogCommand(HgCommandContext context) { super(context); } - //~--- get methods ---------------------------------------------------------- - @Override public Changeset getChangeset(String id, LogCommandRequest request) { org.javahg.Repository repository = open(); @@ -66,17 +50,15 @@ public class HgLogCommand extends AbstractCommand implements LogCommand @Override public ChangesetPagingResult getChangesets(LogCommandRequest request) { - ChangesetPagingResult result = null; + ChangesetPagingResult result; org.javahg.Repository repository = open(); if (!Strings.isNullOrEmpty(request.getPath()) - ||!Strings.isNullOrEmpty(request.getBranch())) - { + || !Strings.isNullOrEmpty(request.getBranch()) + || !Strings.isNullOrEmpty(request.getAncestorChangeset())) { result = collectSafely(repository, request); - } - else - { + } else { int start = -1; int end = 0; @@ -84,133 +66,107 @@ public class HgLogCommand extends AbstractCommand implements LogCommand String startChangeset = request.getStartChangeset(); String endChangeset = request.getEndChangeset(); - if (!Strings.isNullOrEmpty(startChangeset)) - { + if (!Strings.isNullOrEmpty(startChangeset)) { start = on(repository).rev(startChangeset).singleRevision(); - } - else if (!Strings.isNullOrEmpty(endChangeset)) - { + } else if (!Strings.isNullOrEmpty(endChangeset)) { end = on(repository).rev(endChangeset).singleRevision(); } - if (start < 0) - { + if (start < 0) { start = on(repository).rev("tip").singleRevision(); } - if (start >= 0) - { + if (start >= 0) { int total = start - end + 1; - if (request.getPagingStart() > 0) - { + if (request.getPagingStart() > 0) { start -= request.getPagingStart(); } - if (request.getPagingLimit() > 0) - { + if (request.getPagingLimit() > 0) { end = start - request.getPagingLimit() + 1; } - if (end < 0) - { + if (end < 0) { end = 0; } List changesets = on(repository).rev(start + ":" - + end).execute(); + + end).execute(); if (request.getBranch() == null) { result = new ChangesetPagingResult(total, changesets); } else { result = new ChangesetPagingResult(total, changesets, request.getBranch()); } - } - else - { + } else { // empty repository - result = new ChangesetPagingResult(0, new ArrayList()); + result = new ChangesetPagingResult(0, new ArrayList<>()); } } return result; } - //~--- methods -------------------------------------------------------------- - - /** - * Method description - * - * - * @param repository - * @param request - * - * @return - */ private ChangesetPagingResult collectSafely( - org.javahg.Repository repository, LogCommandRequest request) - { + org.javahg.Repository repository, LogCommandRequest request) { HgLogChangesetCommand cmd = on(repository); String startChangeset = request.getStartChangeset(); String endChangeset = request.getEndChangeset(); + String ancestorChangeset = request.getAncestorChangeset(); - if (!Strings.isNullOrEmpty(startChangeset) - &&!Strings.isNullOrEmpty(endChangeset)) - { + if (!Strings.isNullOrEmpty(startChangeset) && !Strings.isNullOrEmpty(endChangeset)) { cmd.rev(startChangeset.concat(":").concat(endChangeset)); - } - else if (!Strings.isNullOrEmpty(endChangeset)) - { + } else if (!Strings.isNullOrEmpty(startChangeset) && !Strings.isNullOrEmpty(ancestorChangeset)) { + int start = on(repository).rev(startChangeset).singleRevision(); + int ancestor = on(repository).rev(ancestorChangeset).singleRevision(); + cmd.rev(String.format("only(%s,%s)", start, ancestor)); + } else if (!Strings.isNullOrEmpty(endChangeset)) { cmd.rev("tip:".concat(endChangeset)); - } - else if (!Strings.isNullOrEmpty(startChangeset)) - { + } else if (!Strings.isNullOrEmpty(startChangeset)) { cmd.rev(startChangeset.concat(":0")); } - if (!Strings.isNullOrEmpty(request.getBranch())) - { + if (!Strings.isNullOrEmpty(request.getBranch())) { cmd.branch(request.getBranch()); } int start = request.getPagingStart(); int limit = request.getPagingLimit(); - List changesets = null; - int total = 0; + List changesets; + int total; - if ((start == 0) && (limit < 0)) - { - if (!Strings.isNullOrEmpty(request.getPath())) - { + if ((start == 0) && (limit < 0)) { + if (!Strings.isNullOrEmpty(request.getPath())) { changesets = cmd.execute(request.getPath()); - } - else - { + } else { changesets = cmd.execute(); } total = changesets.size(); - } - else - { + } else { limit = limit + start; - List revisionList = null; + List revisionList; - if (!Strings.isNullOrEmpty(request.getPath())) - { + if (!Strings.isNullOrEmpty(request.getPath())) { revisionList = cmd.loadRevisions(request.getPath()); - } - else - { + } else { revisionList = cmd.loadRevisions(); } - if ((limit > revisionList.size()) || (limit < 0)) - { + if (!Strings.isNullOrEmpty(request.getAncestorChangeset())) { + revisionList = Lists.reverse(revisionList); + } + + if (revisionList.isEmpty()) { + return new ChangesetPagingResult(0, Collections.emptyList()); + } + + if ((limit > revisionList.size()) || (limit < 0)) { limit = revisionList.size(); } @@ -220,8 +176,7 @@ public class HgLogCommand extends AbstractCommand implements LogCommand String[] revs = new String[sublist.size()]; - for (int i = 0; i < sublist.size(); i++) - { + for (int i = 0; i < sublist.size(); i++) { revs[i] = sublist.get(i).toString(); } @@ -231,16 +186,7 @@ public class HgLogCommand extends AbstractCommand implements LogCommand return new ChangesetPagingResult(total, changesets); } - /** - * Method description - * - * - * @param repository - * - * @return - */ - private HgLogChangesetCommand on(org.javahg.Repository repository) - { + private HgLogChangesetCommand on(org.javahg.Repository repository) { return HgLogChangesetCommand.on(repository, getContext().getConfig()); } } diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgRepositoryServiceProvider.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgRepositoryServiceProvider.java index c4ceefcccf..89bd88d97a 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgRepositoryServiceProvider.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/spi/HgRepositoryServiceProvider.java @@ -62,7 +62,8 @@ public class HgRepositoryServiceProvider extends RepositoryServiceProvider { public static final Set FEATURES = EnumSet.of( Feature.COMBINED_DEFAULT_BRANCH, - Feature.MODIFICATIONS_BETWEEN_REVISIONS + Feature.MODIFICATIONS_BETWEEN_REVISIONS, + Feature.INCOMING_REVISION ); private final Injector commandInjector; diff --git a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgDiffCommandTest.java b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgDiffCommandTest.java index 9775a5cd42..3884ac1d30 100644 --- a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgDiffCommandTest.java +++ b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgDiffCommandTest.java @@ -53,6 +53,28 @@ public class HgDiffCommandTest extends AbstractHgCommandTestBase { assertThat(content).contains("git"); } + @Test + public void shouldCreateDiffComparedToAncestor() throws IOException { + DiffCommandRequest request = new DiffCommandRequest(); + request.setRevision("3049df33fdbbded08b707bac3eccd0f7b453c58b"); + request.setAncestorChangeset("a9bacaf1b7fa0cebfca71fed4e59ed69a6319427"); + + String content = diff(cmdContext, request); + assertThat(content) + .contains("+++ b/c/d.txt") + .contains("+++ b/c/e.txt"); + } + + @Test + public void shouldNotCreateDiffWithAncestorIfNoChangesExists() throws IOException { + DiffCommandRequest request = new DiffCommandRequest(); + request.setRevision("a9bacaf1b7fa0cebfca71fed4e59ed69a6319427"); + request.setAncestorChangeset("3049df33fdbbded08b707bac3eccd0f7b453c58b"); + + String content = diff(cmdContext, request); + assertThat(content).isEmpty(); + } + @Test public void shouldCloseContent() throws IOException { HgCommandContext context = spy(cmdContext); diff --git a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgLogCommandAncestorTest.java b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgLogCommandAncestorTest.java new file mode 100644 index 0000000000..0dbc101485 --- /dev/null +++ b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgLogCommandAncestorTest.java @@ -0,0 +1,130 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository.spi; + +import org.junit.Test; +import sonia.scm.repository.Changeset; +import sonia.scm.repository.ChangesetPagingResult; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class HgLogCommandAncestorTest extends AbstractHgCommandTestBase { + + @Test + public void testAncestorRange() { + LogCommandRequest request = new LogCommandRequest(); + + request.setStartChangeset("default"); + request.setAncestorChangeset("testbranch"); + + ChangesetPagingResult result = new HgLogCommand(cmdContext).getChangesets(request); + + assertNotNull(result); + assertEquals(3, result.getTotal()); + assertEquals(3, result.getChangesets().size()); + + Changeset c1 = result.getChangesets().get(0); + Changeset c2 = result.getChangesets().get(1); + Changeset c3 = result.getChangesets().get(2); + + assertNotNull(c1); + assertEquals("94dd2a4ebc27d30f811d7ac02fbd1cc382386bf3", c1.getId()); + assertNotNull(c2); + assertEquals("aed7afe001a4d5d3111a5916a5656b3032eb4dc2", c2.getId()); + assertNotNull(c3); + assertEquals("03a757fea8b21879d33944b710347c46aa4cfde1", c3.getId()); + + } + + @Test + public void testAncestorReverseRange() { + LogCommandRequest request = new LogCommandRequest(); + + request.setStartChangeset("testbranch"); + request.setAncestorChangeset("default"); + + ChangesetPagingResult result = new HgLogCommand(cmdContext).getChangesets(request); + + assertNotNull(result); + assertEquals(1, result.getTotal()); + assertEquals(1, result.getChangesets().size()); + + Changeset c1 = result.getChangesets().get(0); + + assertNotNull(c1); + assertEquals("d2bb8ada6ae68405627d2c757d9d656a4c21799f", c1.getId()); + } + + @Test + public void testAncestorRangeWithPagination() { + LogCommandRequest request = new LogCommandRequest(); + + request.setPagingStart(1); + request.setPagingLimit(2); + request.setStartChangeset("default"); + request.setAncestorChangeset("testbranch"); + + ChangesetPagingResult result = new HgLogCommand(cmdContext).getChangesets(request); + + assertNotNull(result); + assertEquals(3, result.getTotal()); + assertEquals(2, result.getChangesets().size()); + + Changeset c1 = result.getChangesets().get(0); + Changeset c2 = result.getChangesets().get(1); + + assertNotNull(c1); + assertEquals("aed7afe001a4d5d3111a5916a5656b3032eb4dc2", c1.getId()); + assertNotNull(c2); + assertEquals("03a757fea8b21879d33944b710347c46aa4cfde1", c2.getId()); + } + + @Test + public void testAncestorReverseRangeWithPagination() { + LogCommandRequest request = new LogCommandRequest(); + + request.setPagingStart(0); + request.setPagingLimit(2); + request.setStartChangeset("testbranch"); + request.setAncestorChangeset("default"); + + ChangesetPagingResult result = new HgLogCommand(cmdContext).getChangesets(request); + + assertNotNull(result); + assertEquals(1, result.getTotal()); + assertEquals(1, result.getChangesets().size()); + + Changeset c1 = result.getChangesets().get(0); + + assertNotNull(c1); + assertEquals("d2bb8ada6ae68405627d2c757d9d656a4c21799f", c1.getId()); + } + + @Override + protected String getZippedRepositoryResource() { + return "sonia/scm/repository/spi/scm-hg-ahead-behind-test.zip"; + } +} diff --git a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgLogCommandTest.java b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgLogCommandTest.java index d548ebf75e..ecfecc01bf 100644 --- a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgLogCommandTest.java +++ b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/spi/HgLogCommandTest.java @@ -51,7 +51,7 @@ public class HgLogCommandTest extends AbstractHgCommandTestBase @Test public void testGetAll() { ChangesetPagingResult result = - createComamnd().getChangesets(new LogCommandRequest()); + createCommand().getChangesets(new LogCommandRequest()); assertNotNull(result); assertEquals(5, result.getTotal()); @@ -64,7 +64,7 @@ public class HgLogCommandTest extends AbstractHgCommandTestBase request.setPath("a.txt"); - ChangesetPagingResult result = createComamnd().getChangesets(request); + ChangesetPagingResult result = createCommand().getChangesets(request); assertNotNull(result); assertEquals(3, result.getTotal()); @@ -83,7 +83,7 @@ public class HgLogCommandTest extends AbstractHgCommandTestBase request.setPath("a.txt"); - ChangesetPagingResult result = createComamnd().getChangesets(request); + ChangesetPagingResult result = createCommand().getChangesets(request); assertNotNull(result); assertEquals(1, @@ -98,7 +98,7 @@ public class HgLogCommandTest extends AbstractHgCommandTestBase request.setPagingLimit(2); - ChangesetPagingResult result = createComamnd().getChangesets(request); + ChangesetPagingResult result = createCommand().getChangesets(request); assertNotNull(result); assertEquals(5, result.getTotal()); @@ -122,7 +122,7 @@ public class HgLogCommandTest extends AbstractHgCommandTestBase request.setPagingStart(1); request.setPagingLimit(2); - ChangesetPagingResult result = createComamnd().getChangesets(request); + ChangesetPagingResult result = createCommand().getChangesets(request); assertNotNull(result); assertEquals(5, result.getTotal()); @@ -141,7 +141,7 @@ public class HgLogCommandTest extends AbstractHgCommandTestBase @Test public void testGetCommit() throws IOException { - HgLogCommand command = createComamnd(); + HgLogCommand command = createCommand(); String revision = "a9bacaf1b7fa0cebfca71fed4e59ed69a6319427"; Changeset c = command.getChangeset(revision, null); @@ -173,7 +173,7 @@ public class HgLogCommandTest extends AbstractHgCommandTestBase request.setStartChangeset("3049df33fdbb"); request.setEndChangeset("a9bacaf1b7fa"); - ChangesetPagingResult result = createComamnd().getChangesets(request); + ChangesetPagingResult result = createCommand().getChangesets(request); assertNotNull(result); assertEquals(2, result.getTotal()); @@ -194,7 +194,7 @@ public class HgLogCommandTest extends AbstractHgCommandTestBase * * @return */ - private HgLogCommand createComamnd() + private HgLogCommand createCommand() { return new HgLogCommand(cmdContext); } diff --git a/scm-ui/ui-api/src/compare.ts b/scm-ui/ui-api/src/compare.ts new file mode 100644 index 0000000000..5254079930 --- /dev/null +++ b/scm-ui/ui-api/src/compare.ts @@ -0,0 +1,90 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import { ChangesetCollection, Link, Repository } from "@scm-manager/ui-types"; +import { useQuery, useQueryClient } from "react-query"; +import { ApiResultWithFetching } from "./base"; +import { apiClient } from "./apiclient"; +import { changesetQueryKey } from "./changesets"; + +function createIncomingUrl(repository: Repository, linkName: string, source: string, target: string) { + const link = repository._links[linkName]; + if ((link as Link)?.templated) { + return (link as Link).href + .replace("{source}", encodeURIComponent(source)) + .replace("{target}", encodeURIComponent(target)); + } else { + return (link as Link).href; + } +} + +export function createChangesetUrl(repository: Repository, source: string, target: string) { + return createIncomingUrl(repository, "incomingChangesets", source, target); +} + +export function createDiffUrl(repository: Repository, source: string, target: string) { + if (repository._links.incomingDiffParsed) { + return createIncomingUrl(repository, "incomingDiffParsed", source, target); + } else { + return createIncomingUrl(repository, "incomingDiff", source, target); + } +} + +type UseIncomingChangesetsRequest = { + page?: string | number; + limit?: number; +}; + +export const useIncomingChangesets = ( + repository: Repository, + source: string, + target: string, + request?: UseIncomingChangesetsRequest +): ApiResultWithFetching => { + const queryClient = useQueryClient(); + + let link = createChangesetUrl(repository, source, target); + + if (request?.page || request?.limit) { + if (request?.page && request?.limit) { + link = `${link}?page=${request.page}&pageSize=${request.limit}`; + } else if (request.page) { + link = `${link}?page=${request.page}`; + } else if (request.limit) { + link = `${link}?pageSize=${request.limit}`; + } + } + + return useQuery( + ["repository", repository.namespace, repository.name, "compare", source, target, "changesets", request?.page || 0], + () => apiClient.get(link).then(response => response.json()), + { + onSuccess: changesetCollection => { + changesetCollection._embedded?.changesets.forEach(changeset => { + queryClient.setQueryData(changesetQueryKey(repository, changeset.id), changeset); + }); + } + } + ); +}; diff --git a/scm-ui/ui-api/src/index.ts b/scm-ui/ui-api/src/index.ts index aa058f1453..16413856f5 100644 --- a/scm-ui/ui-api/src/index.ts +++ b/scm-ui/ui-api/src/index.ts @@ -62,6 +62,7 @@ export * from "./annotations"; export * from "./search"; export * from "./loginInfo"; export * from "./usePluginCenterAuthInfo"; +export * from "./compare"; export { default as ApiProvider } from "./ApiProvider"; export * from "./ApiProvider"; diff --git a/scm-ui/ui-styles/public/_styleguide.html b/scm-ui/ui-styles/public/_styleguide.html index 5a64176328..942caca161 100644 --- a/scm-ui/ui-styles/public/_styleguide.html +++ b/scm-ui/ui-styles/public/_styleguide.html @@ -957,6 +957,39 @@ sync-alt Update + + + + + + + + + bell + Notifications + + + + + + + + + + shield-alt + Alert + + + + + + + + + + retweet + Compare + diff --git a/scm-ui/ui-styles/src/highcontrast.scss b/scm-ui/ui-styles/src/highcontrast.scss index bb5b2c53e1..1c9d4ae05f 100644 --- a/scm-ui/ui-styles/src/highcontrast.scss +++ b/scm-ui/ui-styles/src/highcontrast.scss @@ -70,6 +70,8 @@ $tooltip-color: $scheme-main; --scm-secondary-background: #{$scheme-main}; --scm-secondary-text: #{$white}; --scm-border: 2px solid #{$white-ter}; + --scm-info-color: #{$info}; + --scm-hover-color: #{$grey}; --scm-column-selection: #{$link-dark}; --sh-base-color: #fff; diff --git a/scm-ui/ui-styles/src/light.scss b/scm-ui/ui-styles/src/light.scss index 7ef5bcd5cf..68766ba5dd 100644 --- a/scm-ui/ui-styles/src/light.scss +++ b/scm-ui/ui-styles/src/light.scss @@ -34,6 +34,8 @@ $button-disabled-opacity: 0.25; --scm-secondary-background: #{$white}; --scm-secondary-text: #{$black}; --scm-border: 1px solid #dbdbdb; + --scm-info-color: #{$info}; + --scm-hover-color: #{$black-ter}; --scm-column-selection: #{$link-25}; --sh-base-color: #363636; diff --git a/scm-ui/ui-webapp/public/locales/de/repos.json b/scm-ui/ui-webapp/public/locales/de/repos.json index 3aab7f2dd3..9cabb5a539 100644 --- a/scm-ui/ui-webapp/public/locales/de/repos.json +++ b/scm-ui/ui-webapp/public/locales/de/repos.json @@ -161,6 +161,31 @@ } } }, + "compare": { + "title": "Vergleiche Änderungen", + "linkTitle": "Vergleichen mit...", + "selector": { + "title": "Branch, Tag oder Revision auswählen", + "source": "Source", + "target": "Target", + "with": "Vergleiche Änderungen mit...", + "filter": "Auswahl filtern...", + "emptyResult": "Es wurden keine dem Filter entsprechenden Ergebnisse gefunden.", + "tabs": { + "b": "Branches", + "t": "Tags", + "r": "Revision" + }, + "revision": { + "input": "Revision eingeben", + "submit": "Auswählen" + } + }, + "tabs": { + "diff": "Diff", + "commits": "Commits" + } + }, "tags": { "overview": { "title": "Übersicht aller verfügbaren Tags", diff --git a/scm-ui/ui-webapp/public/locales/en/repos.json b/scm-ui/ui-webapp/public/locales/en/repos.json index bd8552c276..afd12676a8 100644 --- a/scm-ui/ui-webapp/public/locales/en/repos.json +++ b/scm-ui/ui-webapp/public/locales/en/repos.json @@ -161,6 +161,31 @@ } } }, + "compare": { + "title": "Compare Changes", + "linkTitle": "Compare with...", + "selector": { + "title": "Select branch, tag or revision", + "source": "Source", + "target": "Target", + "with": "Compare changes with...", + "filter": "Filter selection...", + "emptyResult": "No results matching the filter were found.", + "tabs": { + "b": "Branches", + "t": "Tags", + "r": "Revision" + }, + "revision": { + "input": "Enter revision", + "submit": "Select" + } + }, + "tabs": { + "diff": "Diff", + "commits": "Commits" + } + }, "tags": { "overview": { "title": "Overview of All Tags", diff --git a/scm-ui/ui-webapp/src/repos/branches/components/BranchDetail.tsx b/scm-ui/ui-webapp/src/repos/branches/components/BranchDetail.tsx index e5defc75ea..b3b43ee9a8 100644 --- a/scm-ui/ui-webapp/src/repos/branches/components/BranchDetail.tsx +++ b/scm-ui/ui-webapp/src/repos/branches/components/BranchDetail.tsx @@ -25,12 +25,13 @@ import React, { FC } from "react"; import { useTranslation } from "react-i18next"; import classNames from "classnames"; import { Branch, Repository } from "@scm-manager/ui-types"; -import { Subtitle, SmallLoadingSpinner } from "@scm-manager/ui-components"; +import { SmallLoadingSpinner, Subtitle } from "@scm-manager/ui-components"; import BranchButtonGroup from "./BranchButtonGroup"; import DefaultBranchTag from "./DefaultBranchTag"; import AheadBehindTag from "./AheadBehindTag"; import { useBranchDetails } from "@scm-manager/ui-api"; import BranchCommitDateCommitter from "./BranchCommitDateCommitter"; +import CompareLink from "../../compare/CompareLink"; type Props = { repository: Repository; @@ -50,6 +51,8 @@ const BranchDetail: FC = ({ repository, branch }) => { aheadBehind = null; } + const encodedBranch = encodeURIComponent(branch.name); + return ( <>
@@ -69,6 +72,7 @@ const BranchDetail: FC = ({ repository, branch }) => {
+
diff --git a/scm-ui/ui-webapp/src/repos/codeSection/components/CodeActionBar.tsx b/scm-ui/ui-webapp/src/repos/codeSection/components/CodeActionBar.tsx index c8a235c79e..aef7396eaf 100644 --- a/scm-ui/ui-webapp/src/repos/codeSection/components/CodeActionBar.tsx +++ b/scm-ui/ui-webapp/src/repos/codeSection/components/CodeActionBar.tsx @@ -21,10 +21,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -import React, { FC } from "react"; +import React, { FC, ReactNode } from "react"; import styled from "styled-components"; import { useLocation } from "react-router-dom"; -import { Level, BranchSelector } from "@scm-manager/ui-components"; +import { BranchSelector, Level } from "@scm-manager/ui-components"; import CodeViewSwitcher, { SwitchViewLink } from "./CodeViewSwitcher"; import { useTranslation } from "react-i18next"; import { Branch } from "@scm-manager/ui-types"; @@ -44,6 +44,9 @@ const FlexShrinkLevel = styled(Level)` flex-shrink: 1; margin-right: 0.75rem; } + .level-item { + justify-content: flex-end; + } `; type Props = { @@ -51,9 +54,10 @@ type Props = { branches?: Branch[]; onSelectBranch: () => void; switchViewLink: SwitchViewLink; + actions?: ReactNode; }; -const CodeActionBar: FC = ({ selectedBranch, branches, onSelectBranch, switchViewLink }) => { +const CodeActionBar: FC = ({ selectedBranch, branches, onSelectBranch, switchViewLink, actions }) => { const { t } = useTranslation("repos"); const location = useLocation(); @@ -71,6 +75,7 @@ const CodeActionBar: FC = ({ selectedBranch, branches, onSelectBranch, sw /> ) } + children={actions} right={} /> diff --git a/scm-ui/ui-webapp/src/repos/compare/CompareLink.tsx b/scm-ui/ui-webapp/src/repos/compare/CompareLink.tsx new file mode 100644 index 0000000000..d6b9f77a33 --- /dev/null +++ b/scm-ui/ui-webapp/src/repos/compare/CompareLink.tsx @@ -0,0 +1,62 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import React, { FC } from "react"; +import { Link } from "react-router-dom"; +import { useTranslation } from "react-i18next"; +import { Repository } from "@scm-manager/ui-types"; +import { Icon } from "@scm-manager/ui-components"; +import { CompareTypes } from "./CompareSelectBar"; + +type Props = { + repository: Repository; + source: string; + sourceType?: CompareTypes; + target?: string; + targetType?: CompareTypes; +}; + +const CompareLink: FC = ({ repository, source, sourceType = "b", target, targetType = "b" }) => { + const [t] = useTranslation("repos"); + + const icon = ; + + if (!target) { + return ( + + {icon} + + ); + } + + return ( + + {icon} + + ); +}; + +export default CompareLink; diff --git a/scm-ui/ui-webapp/src/repos/compare/CompareRoot.tsx b/scm-ui/ui-webapp/src/repos/compare/CompareRoot.tsx new file mode 100644 index 0000000000..0716ba5a60 --- /dev/null +++ b/scm-ui/ui-webapp/src/repos/compare/CompareRoot.tsx @@ -0,0 +1,61 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import React, { FC } from "react"; +import { Redirect, Route, Switch, useRouteMatch } from "react-router-dom"; +import { Repository } from "@scm-manager/ui-types"; +import { useBranches } from "@scm-manager/ui-api"; +import { ErrorNotification, Loading, urls } from "@scm-manager/ui-components"; +import CompareView, { CompareBranchesParams } from "./CompareView"; + +type Props = { + repository: Repository; + baseUrl: string; +}; + +const CompareRoot: FC = ({ repository, baseUrl }) => { + const match = useRouteMatch(); + const { data, isLoading, error } = useBranches(repository); + const url = urls.matchedUrlFromMatch(match); + + if (isLoading || !data) { + return ; + } + if (error) { + return ; + } + + return ( + + + + + {data._embedded && ( + b.defaultBranch)[0].name}`} /> + )} + + ); +}; + +export default CompareRoot; diff --git a/scm-ui/ui-webapp/src/repos/compare/CompareSelectBar.tsx b/scm-ui/ui-webapp/src/repos/compare/CompareSelectBar.tsx new file mode 100644 index 0000000000..b76dc20440 --- /dev/null +++ b/scm-ui/ui-webapp/src/repos/compare/CompareSelectBar.tsx @@ -0,0 +1,117 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import React, { FC, useEffect, useState } from "react"; +import { useHistory, useLocation, useParams } from "react-router-dom"; +import { useTranslation } from "react-i18next"; +import styled from "styled-components"; +import { Repository } from "@scm-manager/ui-types"; +import { devices, Icon } from "@scm-manager/ui-components"; +import CompareSelector from "./CompareSelector"; +import { CompareBranchesParams } from "./CompareView"; + +type Props = { + repository: Repository; + baseUrl: string; +}; + +export type CompareTypes = "b" | "t" | "r"; + +export type CompareFunction = (type: CompareTypes, name: string) => void; +export type CompareProps = { + type: CompareTypes; + name: string; +}; +const ResponsiveIcon = styled(Icon)` + margin: 1rem 0.5rem; + transform: rotate(90deg); + @media screen and (min-width: ${devices.tablet.width}px) { + margin: 1.5rem 1rem 0; + transform: rotate(0); + } +`; + +const ResponsiveBar = styled.div` + @media screen and (min-width: ${devices.tablet.width}px) { + display: flex; + justify-content: space-between; + flex-direction: row; + } +`; + +const CompareSelectBar: FC = ({ repository, baseUrl }) => { + const [t] = useTranslation("repos"); + const params = useParams(); + const location = useLocation(); + const history = useHistory(); + const [source, setSource] = useState({ + type: params?.sourceType, + name: decodeURIComponent(params?.sourceName) + }); + const [target, setTarget] = useState({ + type: params?.targetType, + name: decodeURIComponent(params?.targetName) + }); + + useEffect(() => { + const tabUriComponent = location.pathname.split("/")[9]; + if (source && target && tabUriComponent) { + history.push( + baseUrl + + "/" + + source.type + + "/" + + encodeURIComponent(source.name) + + "/" + + target.type + + "/" + + encodeURIComponent(target.name) + + "/" + + tabUriComponent + + "/" + + location.pathname.split("/")[10] || "" + ); + } + }, [history, baseUrl, source, target, location.pathname]); + + return ( + + setSource({ type, name })} + selected={source} + /> + + setTarget({ type, name })} + selected={target} + /> + + ); +}; + +export default CompareSelectBar; diff --git a/scm-ui/ui-webapp/src/repos/compare/CompareSelector.tsx b/scm-ui/ui-webapp/src/repos/compare/CompareSelector.tsx new file mode 100644 index 0000000000..980c003d0c --- /dev/null +++ b/scm-ui/ui-webapp/src/repos/compare/CompareSelector.tsx @@ -0,0 +1,149 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import React, { FC, useEffect, useRef, useState } from "react"; +import { useTranslation } from "react-i18next"; +import classNames from "classnames"; +import styled from "styled-components"; +import { Repository } from "@scm-manager/ui-types"; +import { devices, Icon } from "@scm-manager/ui-components"; +import CompareSelectorList from "./CompareSelectorList"; +import { CompareFunction, CompareProps, CompareTypes } from "./CompareSelectBar"; + +type Props = { + onSelect: CompareFunction; + selected: CompareProps; + label: string; + repository: Repository; +}; + +const ResponsiveWrapper = styled.div` + width: 100%; + justify-content: flex-start; + @media screen and (min-width: ${devices.tablet.width}px) { + justify-content: space-between; + } +`; + +const BorderedMenu = styled.div` + border: var(--scm-border); +`; + +const MaxWidthDiv = styled.div` + width: 100%; +`; + +const CompareSelector: FC = ({ onSelect, selected, label, repository }) => { + const [t] = useTranslation("repos"); + const [showDropdown, setShowDropdown] = useState(false); + const [filter, setFilter] = useState(""); + const [selection, setSelection] = useState(selected); + const ref = useRef(null); + + const onSelectEntry = (type: CompareTypes, name: string) => { + setSelection({ type, name }); + setShowDropdown(false); + onSelect(type, name); + }; + + const onMousedown = (e: Event) => { + if (ref.current && !ref.current.contains(e.target as HTMLElement)) { + setShowDropdown(false); + } + }; + + const onKeyUp = (e: KeyboardEvent) => { + if (e.which === 27) { + // escape + setShowDropdown(false); + } + }; + + useEffect(() => { + window.addEventListener("mousedown", onMousedown); + window.addEventListener("keyup", onKeyUp); + return () => { + window.removeEventListener("mousedown", onMousedown); + window.removeEventListener("keyup", onKeyUp); + }; + }); + + const getActionTypeName = (type: CompareTypes) => { + switch (type) { + case "b": + return "Branch"; + case "t": + return "Tag"; + case "r": + return "Revision"; + } + }; + + return ( + + + + + + + +
+ +
+

{t("compare.selector.title")}

+
+
+
+ setFilter(e.target.value)} + type="search" + /> + +
+
+
+
+
+
+ ); +}; + +export default CompareSelector; diff --git a/scm-ui/ui-webapp/src/repos/compare/CompareSelectorList.tsx b/scm-ui/ui-webapp/src/repos/compare/CompareSelectorList.tsx new file mode 100644 index 0000000000..88217775ce --- /dev/null +++ b/scm-ui/ui-webapp/src/repos/compare/CompareSelectorList.tsx @@ -0,0 +1,272 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import React, { FC, KeyboardEvent, useState } from "react"; +import { useTranslation } from "react-i18next"; +import classNames from "classnames"; +import styled from "styled-components"; +import { Branch, Repository, Tag } from "@scm-manager/ui-types"; +import { useBranches, useTags } from "@scm-manager/ui-api"; +import { Button, ErrorNotification, Loading, NoStyleButton, Notification } from "@scm-manager/ui-components"; +import DefaultBranchTag from "../branches/components/DefaultBranchTag"; +import CompareSelectorListEntry from "./CompareSelectorListEntry"; +import { CompareFunction, CompareProps, CompareTypes } from "./CompareSelectBar"; + +type Props = { + onSelect: CompareFunction; + selected: CompareProps; + repository: Repository; + filter: string; +}; + +const TabStyleButton = styled(NoStyleButton)` + align-items: center; + border-bottom: var(--scm-border); + color: var(--scm-secondary-text); + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5rem 1rem; + vertical-align: top; + + &:hover { + border-bottom-color: var(--scm-hover-color); + color: var(--scm-hover-color); + } + + &.is-active { + border-bottom-color: var(--scm-info-color); + color: var(--scm-info-color); + } + + &:focus-visible { + background-color: var(--scm-column-selection); + } +`; + +const ScrollableUl = styled.ul` + max-height: 15.65rem; + width: 18.5rem; + overflow-x: hidden; + overflow-y: scroll; +`; + +const SizedDiv = styled.div` + width: 18.5rem; +`; + +const SmallButton = styled(Button)` + height: 1.875rem; +`; + +type BranchTabContentProps = { + elements: Branch[]; + selection: CompareProps; + onSelectEntry: CompareFunction; +}; + +const EmptyResultNotification: FC = () => { + const [t] = useTranslation("repos"); + + return {t("compare.selector.emptyResult")}; +}; + +const BranchTabContent: FC = ({ elements, selection, onSelectEntry }) => { + if (elements.length === 0) { + return ; + } + + return ( + <> + {elements.map(branch => { + return ( + onSelectEntry("b", branch.name)} + key={branch.name} + > + {branch.name} + + + ); + })} + + ); +}; + +type TagTabContentProps = { + elements: Tag[]; + selection: CompareProps; + onSelectEntry: CompareFunction; +}; + +const TagTabContent: FC = ({ elements, selection, onSelectEntry }) => { + if (elements.length === 0) { + return ; + } + + return ( + <> + {elements.map(tag => ( + onSelectEntry("t", tag.name)} + key={tag.name} + > + {tag.name} + + ))} + + ); +}; + +type RevisionTabContentProps = { + selected: CompareProps; + onSelect: CompareFunction; +}; + +const RevisionTabContent: FC = ({ selected, onSelect }) => { + const [t] = useTranslation("repos"); + const defaultValue = selected.type === "r" ? selected.name : ""; + const [revision, setRevision] = useState(defaultValue); + + const handleKeyPress = (event: KeyboardEvent) => { + if (event.key === "Enter") { + event.preventDefault(); + handleSubmit(); + } + }; + + const handleSubmit = () => { + if (revision) { + onSelect("r", revision); + } + }; + + return ( + +
+
+ setRevision(e.target.value.trim())} + onKeyPress={handleKeyPress} + value={revision.trim()} + /> +
+
+ + {t("compare.selector.revision.submit")} + +
+
+
+ ); +}; + +const ScrollableList: FC<{ selectedTab: CompareTypes } & Props> = ({ + selectedTab, + onSelect, + selected, + repository, + filter +}) => { + const { isLoading: branchesIsLoading, error: branchesError, data: branchesData } = useBranches(repository); + const branches: Branch[] = (branchesData?._embedded?.branches as Branch[]) || []; + const { isLoading: tagsIsLoading, error: tagsError, data: tagsData } = useTags(repository); + const tags: Tag[] = (tagsData?._embedded?.tags as Tag[]) || []; + const [selection, setSelection] = useState(selected); + + const onSelectEntry = (type: CompareTypes, name: string) => { + setSelection({ type, name }); + onSelect(type, name); + }; + + if (branchesIsLoading || tagsIsLoading) { + return ; + } + if (branchesError || tagsError) { + return ; + } + + if (selectedTab !== "r") { + return ( + + {selectedTab === "b" && ( + branch.name.includes(filter))} + selection={selection} + onSelectEntry={onSelectEntry} + /> + )} + {selectedTab === "t" && ( + tag.name.includes(filter))} + selection={selection} + onSelectEntry={onSelectEntry} + /> + )} + + ); + } + return null; +}; + +const CompareSelectorList: FC = ({ onSelect, selected, repository, filter }) => { + const [t] = useTranslation("repos"); + const [selectedTab, setSelectedTab] = useState(selected.type); + const tabs: CompareTypes[] = ["b", "t", "r"]; + + return ( + <> +
+
    + {tabs.map(tab => { + return ( +
  • + setSelectedTab(tab)} + > + {t("compare.selector.tabs." + tab)} + +
  • + ); + })} +
+
+ + {selectedTab === "r" && } + + ); +}; + +export default CompareSelectorList; diff --git a/scm-ui/ui-webapp/src/repos/compare/CompareSelectorListEntry.tsx b/scm-ui/ui-webapp/src/repos/compare/CompareSelectorListEntry.tsx new file mode 100644 index 0000000000..85bb047b59 --- /dev/null +++ b/scm-ui/ui-webapp/src/repos/compare/CompareSelectorListEntry.tsx @@ -0,0 +1,57 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import React, { FC, ReactNode } from "react"; +import classNames from "classnames"; +import styled from "styled-components"; +import { NoStyleButton } from "@scm-manager/ui-components"; + +type Props = { + children: ReactNode; + isSelected?: boolean; + onClick?: (event: React.MouseEvent) => void; +}; + +const FocusButton = styled(NoStyleButton)` + border-radius: 0.25rem; + + &:focus:not(.is-active) { + background-color: var(--scm-column-selection) !important; + } +`; + +const CompareSelectorListEntry: FC = ({ children, isSelected = false, onClick }) => ( +
  • + + {children} + +
  • +); + +export default CompareSelectorListEntry; diff --git a/scm-ui/ui-webapp/src/repos/compare/CompareTabs.tsx b/scm-ui/ui-webapp/src/repos/compare/CompareTabs.tsx new file mode 100644 index 0000000000..1765149b32 --- /dev/null +++ b/scm-ui/ui-webapp/src/repos/compare/CompareTabs.tsx @@ -0,0 +1,60 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import React, { FC } from "react"; +import { Link, useLocation, useRouteMatch } from "react-router-dom"; +import { useTranslation } from "react-i18next"; +import { CompareBranchesParams } from "./CompareView"; + +type Props = { + baseUrl: string; +}; + +const CompareTabs: FC = ({ baseUrl }) => { + const [t] = useTranslation("repos"); + const location = useLocation(); + const match = useRouteMatch(); + + const url = `${baseUrl}/${match.params.sourceType}/${match.params.sourceName}/${match.params.targetType}/${match.params.targetName}`; + + const setIsActiveClassName = (path: string) => { + const regex = new RegExp(url + path); + return location.pathname.match(regex) ? "is-active" : ""; + }; + + return ( +
    +
      +
    • + {t("compare.tabs.diff")} +
    • +
    • + {t("compare.tabs.commits")} +
    • +
    +
    + ); +}; + +export default CompareTabs; diff --git a/scm-ui/ui-webapp/src/repos/compare/CompareView.tsx b/scm-ui/ui-webapp/src/repos/compare/CompareView.tsx new file mode 100644 index 0000000000..2c1c2cbce4 --- /dev/null +++ b/scm-ui/ui-webapp/src/repos/compare/CompareView.tsx @@ -0,0 +1,86 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import React, { FC } from "react"; +import { Redirect, Route, Switch, useRouteMatch } from "react-router-dom"; +import { useTranslation } from "react-i18next"; +import { Repository } from "@scm-manager/ui-types"; +import { createDiffUrl } from "@scm-manager/ui-api"; +import { LoadingDiff, Subtitle, urls } from "@scm-manager/ui-components"; +import CompareSelectBar, { CompareTypes } from "./CompareSelectBar"; +import CompareTabs from "./CompareTabs"; +import IncomingChangesets from "./IncomingChangesets"; + +type Props = { + repository: Repository; + baseUrl: string; +}; + +export type CompareBranchesParams = { + sourceType: CompareTypes; + sourceName: string; + targetType: CompareTypes; + targetName: string; +}; + +const CompareRoutes: FC = ({ repository, baseUrl }) => { + const match = useRouteMatch(); + const url = urls.matchedUrlFromMatch(match); + const source = decodeURIComponent(match.params.sourceName); + const target = decodeURIComponent(match.params.targetName); + + return ( + + + + + + + + + + + + + ); +}; + +const CompareView: FC = ({ repository, baseUrl }) => { + const [t] = useTranslation("repos"); + + if (!repository._links.incomingDiff) { + return null; + } + + return ( + <> + + + + + + ); +}; + +export default CompareView; diff --git a/scm-ui/ui-webapp/src/repos/compare/IncomingChangesets.tsx b/scm-ui/ui-webapp/src/repos/compare/IncomingChangesets.tsx new file mode 100644 index 0000000000..4ae6463493 --- /dev/null +++ b/scm-ui/ui-webapp/src/repos/compare/IncomingChangesets.tsx @@ -0,0 +1,43 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import React, { FC } from "react"; +import { Repository } from "@scm-manager/ui-types"; +import { useIncomingChangesets } from "@scm-manager/ui-api"; +import { ChangesetsPanel, usePage } from "../containers/Changesets"; + +type Props = { + repository: Repository; + source: string; + target: string; +}; + +const IncomingChangesets: FC = ({ repository, source, target }) => { + const page = usePage(); + const { data, error, isLoading } = useIncomingChangesets(repository, source, target, { page: page - 1, limit: 25 }); + + return ; +}; + +export default IncomingChangesets; diff --git a/scm-ui/ui-webapp/src/repos/containers/Changesets.tsx b/scm-ui/ui-webapp/src/repos/containers/Changesets.tsx index 8121489afa..9749159803 100644 --- a/scm-ui/ui-webapp/src/repos/containers/Changesets.tsx +++ b/scm-ui/ui-webapp/src/repos/containers/Changesets.tsx @@ -24,14 +24,14 @@ import React, { FC } from "react"; import { useRouteMatch } from "react-router-dom"; import { useTranslation } from "react-i18next"; -import { Branch, Repository } from "@scm-manager/ui-types"; +import { Branch, ChangesetCollection, Repository } from "@scm-manager/ui-types"; import { ChangesetList, ErrorNotification, - urls, LinkPaginator, Loading, - Notification + Notification, + urls } from "@scm-manager/ui-components"; import { useChangesets } from "@scm-manager/ui-api"; @@ -40,16 +40,29 @@ type Props = { branch?: Branch; }; -const usePage = () => { +type ChangesetProps = Props & { + error: Error | null; + isLoading: boolean; + data?: ChangesetCollection; +}; + +export const usePage = () => { const match = useRouteMatch(); return urls.getPageFromMatch(match); }; const Changesets: FC = ({ repository, branch }) => { const page = usePage(); + const { isLoading, error, data } = useChangesets(repository, { branch, page: page - 1 }); + + return ; +}; + +export const ChangesetsPanel: FC = ({ repository, error, isLoading, data }) => { const [t] = useTranslation("repos"); - const changesets = data?._embedded.changesets; + const page = usePage(); + const changesets = data?._embedded?.changesets; if (error) { return ; @@ -59,23 +72,19 @@ const Changesets: FC = ({ repository, branch }) => { return ; } - if (!data || !changesets || changesets.length === 0) { - return ( -
    - {t("changesets.noChangesets")} -
    - ); + if (!changesets || changesets.length === 0) { + return {t("changesets.noChangesets")}; } return ( - <> +
    - +
    ); }; diff --git a/scm-ui/ui-webapp/src/repos/containers/ChangesetsRoot.tsx b/scm-ui/ui-webapp/src/repos/containers/ChangesetsRoot.tsx index 8ebb000b43..e01071ed3a 100644 --- a/scm-ui/ui-webapp/src/repos/containers/ChangesetsRoot.tsx +++ b/scm-ui/ui-webapp/src/repos/containers/ChangesetsRoot.tsx @@ -25,9 +25,9 @@ import React, { FC } from "react"; import { Route, useRouteMatch, useHistory } from "react-router-dom"; import { Repository, Branch } from "@scm-manager/ui-types"; -import Changesets from "./Changesets"; import CodeActionBar from "../codeSection/components/CodeActionBar"; import { urls } from "@scm-manager/ui-components"; +import Changesets from "./Changesets"; type Props = { repository: Repository; @@ -74,11 +74,9 @@ const ChangesetRoot: FC = ({ repository, baseUrl, branches, selectedBranc onSelectBranch={onSelectBranch} switchViewLink={evaluateSwitchViewLink()} /> -
    - - b.name === selectedBranch)[0]} /> - -
    + + b.name === selectedBranch)[0]} /> + ); }; diff --git a/scm-ui/ui-webapp/src/repos/containers/RepositoryRoot.tsx b/scm-ui/ui-webapp/src/repos/containers/RepositoryRoot.tsx index 629cc776cc..e2e08de7dd 100644 --- a/scm-ui/ui-webapp/src/repos/containers/RepositoryRoot.tsx +++ b/scm-ui/ui-webapp/src/repos/containers/RepositoryRoot.tsx @@ -57,6 +57,7 @@ import CodeOverview from "../codeSection/containers/CodeOverview"; import ChangesetView from "./ChangesetView"; import SourceExtensions from "../sources/containers/SourceExtensions"; import TagsOverview from "../tags/container/TagsOverview"; +import CompareRoot from "../compare/CompareRoot"; import TagRoot from "../tags/container/TagRoot"; import { useIndexLinks, useRepository } from "@scm-manager/ui-api"; import styled from "styled-components"; @@ -257,41 +258,36 @@ const RepositoryRoot = () => { - ( - - )} - /> - } - /> - } - /> + + + + + + + + + - } /> - } - /> - } /> - } - /> - } - /> + + + + + + + + + + + + + + + + + + diff --git a/scm-ui/ui-webapp/src/repos/sources/containers/Sources.tsx b/scm-ui/ui-webapp/src/repos/sources/containers/Sources.tsx index c3145a1520..535ccaa499 100644 --- a/scm-ui/ui-webapp/src/repos/sources/containers/Sources.tsx +++ b/scm-ui/ui-webapp/src/repos/sources/containers/Sources.tsx @@ -33,6 +33,7 @@ import CodeActionBar from "../../codeSection/components/CodeActionBar"; import replaceBranchWithRevision from "../ReplaceBranchWithRevision"; import FileSearchButton from "../../codeSection/components/FileSearchButton"; import { isEmptyDirectory, isRootFile } from "../utils/files"; +import CompareLink from "../../compare/CompareLink"; type Props = { repository: Repository; @@ -59,7 +60,7 @@ const Sources: FC = ({ repository, branches, selectedBranch, baseUrl }) = const history = useHistory(); const location = useLocation(); const [t] = useTranslation("repos"); - // redirect to default branch is non branch selected + // redirect to default branch if no branch selected useEffect(() => { if (branches && branches.length > 0 && !selectedBranch) { const defaultBranch = branches?.filter(b => b.defaultBranch === true)[0]; @@ -184,6 +185,11 @@ const Sources: FC = ({ repository, branches, selectedBranch, baseUrl }) = branches={branches} onSelectBranch={onSelectBranch} switchViewLink={evaluateSwitchViewLink()} + actions={ + branches && selectedBranch ? ( + + ) : null + } /> )} {renderPanelContent()} diff --git a/scm-ui/ui-webapp/src/repos/tags/components/TagDetail.tsx b/scm-ui/ui-webapp/src/repos/tags/components/TagDetail.tsx index d2f82678f5..663fea4885 100644 --- a/scm-ui/ui-webapp/src/repos/tags/components/TagDetail.tsx +++ b/scm-ui/ui-webapp/src/repos/tags/components/TagDetail.tsx @@ -27,6 +27,7 @@ import classNames from "classnames"; import { Repository, Tag } from "@scm-manager/ui-types"; import { Subtitle, DateFromNow, SignatureIcon } from "@scm-manager/ui-components"; import TagButtonGroup from "./TagButtonGroup"; +import CompareLink from "../../compare/CompareLink"; type Props = { repository: Repository; @@ -36,6 +37,8 @@ type Props = { const TagDetail: FC = ({ repository, tag }) => { const [t] = useTranslation("repos"); + const encodedTag = encodeURIComponent(tag.name); + return (
    = ({ repository, tag }) => {
    +