From cc26ffcaa8f27a1bb0a5fdf7dd06ee6a621fefe7 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 6 Jan 2020 15:59:16 +0100 Subject: [PATCH] upgrade react-diff-view to v2.4.1 --- scm-ui/ui-components/package.json | 5 +- .../src/__snapshots__/storyshots.test.ts.snap | 12114 +++++++++++----- scm-ui/ui-components/src/repos/DiffFile.tsx | 26 +- scm-ui/ui-components/src/repos/DiffTypes.ts | 4 + .../ui-components/src/repos/LoadingDiff.tsx | 11 +- scm-ui/ui-styles/package.json | 2 +- scm-ui/ui-styles/src/scm.scss | 2 +- yarn.lock | 136 +- 8 files changed, 8368 insertions(+), 3932 deletions(-) diff --git a/scm-ui/ui-components/package.json b/scm-ui/ui-components/package.json index 9bf3c8381f..1e3648dbab 100644 --- a/scm-ui/ui-components/package.json +++ b/scm-ui/ui-components/package.json @@ -50,13 +50,14 @@ "event-source-polyfill": "^1.0.9", "query-string": "5", "react": "^16.8.6", - "react-diff-view": "^1.8.1", + "react-diff-view": "^2.4.1", "react-dom": "^16.8.6", "react-i18next": "^10.13.1", "react-markdown": "^4.0.6", "react-router-dom": "^5.1.2", "react-select": "^2.1.2", - "react-syntax-highlighter": "^11.0.2" + "react-syntax-highlighter": "^11.0.2", + "gitdiff-parser": "^0.1.2" }, "babel": { "presets": [ diff --git a/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap b/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap index 009fe0cd21..2c065b4394 100644 --- a/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap +++ b/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap @@ -704,7 +704,7 @@ Array [ className="panel-block is-paddingless" > @@ -724,14 +724,22 @@ Array [ > @@ -741,16 +749,24 @@ Array [ > @@ -774,13 +797,20 @@ Array [ > @@ -790,13 +820,20 @@ Array [ > @@ -806,13 +843,20 @@ Array [ > @@ -822,14 +866,22 @@ Array [ > @@ -839,14 +891,22 @@ Array [ > @@ -856,13 +916,20 @@ Array [ > @@ -872,14 +939,22 @@ Array [ > @@ -889,13 +964,20 @@ Array [ > @@ -905,14 +987,22 @@ Array [ > @@ -922,14 +1012,22 @@ Array [ > @@ -939,14 +1037,22 @@ Array [ > @@ -956,14 +1062,22 @@ Array [ > @@ -973,13 +1087,20 @@ Array [ > @@ -989,13 +1110,20 @@ Array [ > @@ -1005,14 +1133,22 @@ Array [ > @@ -1022,14 +1158,22 @@ Array [ > @@ -1039,14 +1183,22 @@ Array [ > @@ -1118,7 +1270,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + package com.cloudogu.scm.review.events; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import com.cloudogu.scm.review.comment.service.BasicComment; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import com.cloudogu.scm.review.comment.service.BasicCommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import com.cloudogu.scm.review.comment.service.CommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + import com.cloudogu.scm.review.comment.service.ReplyEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import com.cloudogu.scm.review.pullrequest.service.BasicPullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import com.cloudogu.scm.review.pullrequest.service.PullRequest; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import com.cloudogu.scm.review.pullrequest.service.PullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import com.github.legman.Subscribe; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import lombok.Data; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + import org.apache.shiro.SecurityUtils; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + import org.apache.shiro.subject.PrincipalCollection; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + import org.apache.shiro.subject.Subject; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import sonia.scm.EagerSingleton; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + import sonia.scm.HandlerEventType; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + import sonia.scm.event.HandlerEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + import sonia.scm.plugin.Extension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import sonia.scm.repository.Repository; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + import sonia.scm.security.SessionId;
@@ -1138,14 +1290,22 @@ Array [ > @@ -1155,14 +1315,22 @@ Array [ > @@ -1172,14 +1340,22 @@ Array [ > @@ -1189,13 +1365,20 @@ Array [ > @@ -1205,16 +1388,24 @@ Array [ > @@ -1239,14 +1438,22 @@ Array [ > @@ -1255,31 +1462,27 @@ Array [ - - - @@ -1289,14 +1492,22 @@ Array [ > @@ -1306,14 +1517,22 @@ Array [ > @@ -1323,13 +1542,20 @@ Array [ > @@ -1339,14 +1565,22 @@ Array [ > @@ -1356,14 +1590,22 @@ Array [ > @@ -1373,13 +1615,20 @@ Array [ > @@ -1389,13 +1638,20 @@ Array [ > @@ -1405,13 +1661,20 @@ Array [ > @@ -1421,13 +1684,20 @@ Array [ > @@ -1437,13 +1707,20 @@ Array [ > @@ -1453,13 +1730,20 @@ Array [ > @@ -1469,14 +1753,22 @@ Array [ > @@ -1486,13 +1778,20 @@ Array [ > @@ -1502,13 +1801,20 @@ Array [ > @@ -1518,13 +1824,20 @@ Array [ > @@ -1534,13 +1847,20 @@ Array [ > @@ -1550,13 +1870,20 @@ Array [ > @@ -1566,13 +1893,20 @@ Array [ > @@ -1582,13 +1916,20 @@ Array [ > @@ -1598,13 +1939,20 @@ Array [ > @@ -1614,14 +1962,22 @@ Array [ > @@ -1631,14 +1987,22 @@ Array [ > @@ -1648,14 +2012,22 @@ Array [ > @@ -1727,7 +2099,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + import { Link } from "@scm-manager/ui-types"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import { apiClient, Toast, ToastButtons, ToastButton } from "@scm-manager/ui-components"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import { PullRequest } from "./types/PullRequest"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import { useTranslation } from "react-i18next"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + type HandlerProps = { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + url: string;
-
-
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + pullRequest: setEvent + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + }); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + }, [url]); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + const { t } = useTranslation("plugins"); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + if (event) { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + return ( + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + <Toast type="warning" title="New Changes"> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + <p>The underlying Pull-Request has changed. Press reload to see the changes.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + <p>Warning: Non saved modification will be lost.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + <Toast type="warning" title={t("scm-review-plugin.changeNotification.title")}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + <p>{t("scm-review-plugin.changeNotification.description")}</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + <p>{t("scm-review-plugin.changeNotification.modificationWarning")}</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + <ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + <ToastButton icon="redo" onClick={reload}>Reload</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + <ToastButton icon="times" onClick={() => setEvent(undefined)}>Ignore</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + <ToastButton icon="redo" onClick={reload}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + {t("scm-review-plugin.changeNotification.buttons.reload")} + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + </ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 29 + <ToastButton icon="times" onClick={() => setEvent(undefined)}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 30 + {t("scm-review-plugin.changeNotification.buttons.ignore")} + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 31 + </ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 32 + </ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 33 + </Toast> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 34 + );
@@ -1747,14 +2119,22 @@ Array [ > @@ -1764,14 +2144,22 @@ Array [ > @@ -1781,14 +2169,22 @@ Array [ > @@ -1798,13 +2194,20 @@ Array [ > @@ -1814,13 +2217,20 @@ Array [ > @@ -1830,13 +2240,20 @@ Array [ > @@ -1846,13 +2263,20 @@ Array [ > @@ -1862,13 +2286,20 @@ Array [ > @@ -1878,13 +2309,20 @@ Array [ > @@ -1894,13 +2332,20 @@ Array [ > @@ -1910,13 +2355,20 @@ Array [ > @@ -1926,13 +2378,20 @@ Array [ > @@ -1942,14 +2401,22 @@ Array [ > @@ -1959,14 +2426,22 @@ Array [ > @@ -1976,14 +2451,22 @@ Array [ > @@ -2055,7 +2538,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + "titleClickable": "Der Kommentar bezieht sich auf eine ältere Version des Source- oder Target-Branches. Klicken Sie hier, um den ursprünglichen Kontext zu sehen." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + "changeNotification": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + "title": "Neue Änderungen", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 187 + "description": "An diesem Pull Request wurden Änderungen vorgenommen. Laden Sie die Seite neu um diese anzuzeigen.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 188 + "modificationWarning": "Warnung: Nicht gespeicherte Eingaben gehen verloren.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 189 + "buttons": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 190 + "reload": "Neu laden", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 191 + "ignore": "Ignorieren" + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 192 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 195 + "permissions": {
@@ -2075,14 +2558,22 @@ Array [ > @@ -2092,14 +2583,22 @@ Array [ > @@ -2109,14 +2608,22 @@ Array [ > @@ -2126,13 +2633,20 @@ Array [ > @@ -2142,13 +2656,20 @@ Array [ > @@ -2158,13 +2679,20 @@ Array [ > @@ -2174,13 +2702,20 @@ Array [ > @@ -2190,13 +2725,20 @@ Array [ > @@ -2206,13 +2748,20 @@ Array [ > @@ -2222,13 +2771,20 @@ Array [ > @@ -2238,13 +2794,20 @@ Array [ > @@ -2254,13 +2817,20 @@ Array [ > @@ -2270,14 +2840,22 @@ Array [ > @@ -2287,14 +2865,22 @@ Array [ > @@ -2304,14 +2890,22 @@ Array [ > @@ -2383,7 +2977,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + "titleClickable": "The comment is related to an older of the source or target branch. Click here to see the original context." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + "changeNotification": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + "title": "New Changes", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 187 + "description": "The underlying Pull-Request has changed. Press reload to see the changes.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 188 + "modificationWarning": "Warning: Non saved modification will be lost.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 189 + "buttons": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 190 + "reload": "Reload", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 191 + "ignore": "Ignore" + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 192 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 195 + "permissions": {
@@ -2403,14 +2997,22 @@ Array [ > @@ -2420,14 +3022,22 @@ Array [ > @@ -2437,14 +3047,22 @@ Array [ > @@ -2454,15 +3072,22 @@ Array [ > @@ -2487,14 +3120,22 @@ Array [ > @@ -2504,15 +3145,22 @@ Array [ > @@ -2537,14 +3193,22 @@ Array [ > @@ -2554,14 +3218,22 @@ Array [ > @@ -2571,14 +3243,22 @@ Array [ > @@ -2588,14 +3268,22 @@ Array [ > @@ -2605,13 +3293,20 @@ Array [ > @@ -2621,13 +3316,20 @@ Array [ > @@ -2637,14 +3339,22 @@ Array [ > @@ -2654,14 +3364,22 @@ Array [ > @@ -2671,13 +3389,20 @@ Array [ > @@ -2687,14 +3412,22 @@ Array [ > @@ -2704,16 +3437,24 @@ Array [ > @@ -2738,15 +3487,28 @@ Array [ className="diff-hunk" > + + - - @@ -2788,14 +3541,22 @@ Array [ > @@ -2805,13 +3566,20 @@ Array [ > @@ -2821,13 +3589,20 @@ Array [ > @@ -2837,14 +3612,22 @@ Array [ > @@ -2854,14 +3637,22 @@ Array [ > @@ -2871,14 +3662,22 @@ Array [ > @@ -2888,15 +3687,28 @@ Array [ className="diff-hunk" > + + - - @@ -2938,16 +3741,24 @@ Array [ > @@ -2971,15 +3789,22 @@ Array [ > @@ -3003,13 +3835,20 @@ Array [ > @@ -3019,14 +3858,22 @@ Array [ > @@ -3036,16 +3883,24 @@ Array [ > @@ -3141,7 +4004,7 @@ Array [ src/main/java/com/cloudogu/scm/review/events/EventListener.java

+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + import org.mockito.Mock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + import org.mockito.junit.jupiter.MockitoExtension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import sonia.scm.security.SessionId; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import javax.ws.rs.sse.OutboundSseEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + import javax.ws.rs.sse.SseEventSink; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + import java.time.Clock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + import java.time.Instant; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + import java.time.LocalDateTime; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + import java.time.ZoneOffset; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + import java.time.temporal.ChronoField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + import java.time.temporal.ChronoUnit; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + import java.time.temporal.TemporalField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + import java.util.concurrent.CompletableFuture; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + import java.util.concurrent.CompletionStage; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + import java.util.concurrent.atomic.AtomicLong; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + import java.util.concurrent.atomic.AtomicReference; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + import static java.time.temporal.ChronoUnit.MINUTES;
-
+ 83 +
+ 80 + +
- - - + 84
- + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 81 + @Test + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 82 + @SuppressWarnings("unchecked") + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + void shouldCloseEventSinkOnFailure() throws InterruptedException { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 83 + void shouldCloseEventSinkOnFailure() { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 87 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 84 + CompletionStage future = CompletableFuture.supplyAsync(() -> { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 88 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + throw new RuntimeException("failed to send message"); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + });
-
+ 91 +
+ 88 + +
- - - + 92
- + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + client.send(message); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 90 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + Thread.sleep(50L); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 95 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 96 + verify(eventSink).close(); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 91 + verify(eventSink, timeout(50L)).close(); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 97 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 92 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 98 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 99 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + @Test
@@ -3161,14 +4024,22 @@ Array [ > @@ -3178,16 +4049,24 @@ Array [ > @@ -3211,13 +4097,20 @@ Array [ > @@ -3227,13 +4120,20 @@ Array [ > @@ -3243,13 +4143,20 @@ Array [ > @@ -3259,14 +4166,22 @@ Array [ > @@ -3276,14 +4191,22 @@ Array [ > @@ -3293,13 +4216,20 @@ Array [ > @@ -3309,14 +4239,22 @@ Array [ > @@ -3326,13 +4264,20 @@ Array [ > @@ -3342,14 +4287,22 @@ Array [ > @@ -3359,14 +4312,22 @@ Array [ > @@ -3376,14 +4337,22 @@ Array [ > @@ -3393,14 +4362,22 @@ Array [ > @@ -3410,13 +4387,20 @@ Array [ > @@ -3426,13 +4410,20 @@ Array [ > @@ -3442,14 +4433,22 @@ Array [ > @@ -3459,14 +4458,22 @@ Array [ > @@ -3476,14 +4483,22 @@ Array [ > @@ -3559,7 +4574,7 @@ Array [ src/main/js/ChangeNotification.tsx

+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + package com.cloudogu.scm.review.events; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import com.cloudogu.scm.review.comment.service.BasicComment; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import com.cloudogu.scm.review.comment.service.BasicCommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import com.cloudogu.scm.review.comment.service.CommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + import com.cloudogu.scm.review.comment.service.ReplyEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import com.cloudogu.scm.review.pullrequest.service.BasicPullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import com.cloudogu.scm.review.pullrequest.service.PullRequest; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import com.cloudogu.scm.review.pullrequest.service.PullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import com.github.legman.Subscribe; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import lombok.Data; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + import org.apache.shiro.SecurityUtils; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + import org.apache.shiro.subject.PrincipalCollection; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + import org.apache.shiro.subject.Subject; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import sonia.scm.EagerSingleton; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + import sonia.scm.HandlerEventType; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + import sonia.scm.event.HandlerEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + import sonia.scm.plugin.Extension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import sonia.scm.repository.Repository; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + import sonia.scm.security.SessionId;
@@ -3579,14 +4594,22 @@ Array [ > @@ -3596,14 +4619,22 @@ Array [ > @@ -3613,14 +4644,22 @@ Array [ > @@ -3630,13 +4669,20 @@ Array [ > @@ -3646,16 +4692,24 @@ Array [ > @@ -3680,14 +4742,22 @@ Array [ > @@ -3696,31 +4766,27 @@ Array [ - - - @@ -3730,14 +4796,22 @@ Array [ > @@ -3747,14 +4821,22 @@ Array [ > @@ -3764,13 +4846,20 @@ Array [ > @@ -3780,14 +4869,22 @@ Array [ > @@ -3797,14 +4894,22 @@ Array [ > @@ -3814,13 +4919,20 @@ Array [ > @@ -3830,13 +4942,20 @@ Array [ > @@ -3846,13 +4965,20 @@ Array [ > @@ -3862,13 +4988,20 @@ Array [ > @@ -3878,13 +5011,20 @@ Array [ > @@ -3894,13 +5034,20 @@ Array [ > @@ -3910,14 +5057,22 @@ Array [ > @@ -3927,13 +5082,20 @@ Array [ > @@ -3943,13 +5105,20 @@ Array [ > @@ -3959,13 +5128,20 @@ Array [ > @@ -3975,13 +5151,20 @@ Array [ > @@ -3991,13 +5174,20 @@ Array [ > @@ -4007,13 +5197,20 @@ Array [ > @@ -4023,13 +5220,20 @@ Array [ > @@ -4039,13 +5243,20 @@ Array [ > @@ -4055,14 +5266,22 @@ Array [ > @@ -4072,14 +5291,22 @@ Array [ > @@ -4089,14 +5316,22 @@ Array [ > @@ -4172,7 +5407,7 @@ Array [ src/main/resources/locales/de/plugins.json

+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + import { Link } from "@scm-manager/ui-types"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import { apiClient, Toast, ToastButtons, ToastButton } from "@scm-manager/ui-components"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import { PullRequest } from "./types/PullRequest"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import { useTranslation } from "react-i18next"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + type HandlerProps = { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + url: string;
-
-
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + pullRequest: setEvent + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + }); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + }, [url]); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + const { t } = useTranslation("plugins"); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + if (event) { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + return ( + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + <Toast type="warning" title="New Changes"> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + <p>The underlying Pull-Request has changed. Press reload to see the changes.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + <p>Warning: Non saved modification will be lost.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + <Toast type="warning" title={t("scm-review-plugin.changeNotification.title")}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + <p>{t("scm-review-plugin.changeNotification.description")}</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + <p>{t("scm-review-plugin.changeNotification.modificationWarning")}</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + <ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + <ToastButton icon="redo" onClick={reload}>Reload</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + <ToastButton icon="times" onClick={() => setEvent(undefined)}>Ignore</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + <ToastButton icon="redo" onClick={reload}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + {t("scm-review-plugin.changeNotification.buttons.reload")} + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + </ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 29 + <ToastButton icon="times" onClick={() => setEvent(undefined)}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 30 + {t("scm-review-plugin.changeNotification.buttons.ignore")} + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 31 + </ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 32 + </ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 33 + </Toast> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 34 + );
@@ -4192,14 +5427,22 @@ Array [ > @@ -4209,14 +5452,22 @@ Array [ > @@ -4226,14 +5477,22 @@ Array [ > @@ -4243,13 +5502,20 @@ Array [ > @@ -4259,13 +5525,20 @@ Array [ > @@ -4275,13 +5548,20 @@ Array [ > @@ -4291,13 +5571,20 @@ Array [ > @@ -4307,13 +5594,20 @@ Array [ > @@ -4323,13 +5617,20 @@ Array [ > @@ -4339,13 +5640,20 @@ Array [ > @@ -4355,13 +5663,20 @@ Array [ > @@ -4371,13 +5686,20 @@ Array [ > @@ -4387,14 +5709,22 @@ Array [ > @@ -4404,14 +5734,22 @@ Array [ > @@ -4421,14 +5759,22 @@ Array [ > @@ -4504,7 +5850,7 @@ Array [ src/main/resources/locales/en/plugins.json

+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + "titleClickable": "Der Kommentar bezieht sich auf eine ältere Version des Source- oder Target-Branches. Klicken Sie hier, um den ursprünglichen Kontext zu sehen." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + "changeNotification": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + "title": "Neue Änderungen", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 187 + "description": "An diesem Pull Request wurden Änderungen vorgenommen. Laden Sie die Seite neu um diese anzuzeigen.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 188 + "modificationWarning": "Warnung: Nicht gespeicherte Eingaben gehen verloren.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 189 + "buttons": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 190 + "reload": "Neu laden", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 191 + "ignore": "Ignorieren" + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 192 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 195 + "permissions": {
@@ -4524,14 +5870,22 @@ Array [ > @@ -4541,14 +5895,22 @@ Array [ > @@ -4558,14 +5920,22 @@ Array [ > @@ -4575,13 +5945,20 @@ Array [ > @@ -4591,13 +5968,20 @@ Array [ > @@ -4607,13 +5991,20 @@ Array [ > @@ -4623,13 +6014,20 @@ Array [ > @@ -4639,13 +6037,20 @@ Array [ > @@ -4655,13 +6060,20 @@ Array [ > @@ -4671,13 +6083,20 @@ Array [ > @@ -4687,13 +6106,20 @@ Array [ > @@ -4703,13 +6129,20 @@ Array [ > @@ -4719,14 +6152,22 @@ Array [ > @@ -4736,14 +6177,22 @@ Array [ > @@ -4753,14 +6202,22 @@ Array [ > @@ -4836,7 +6293,7 @@ Array [ src/test/java/com/cloudogu/scm/review/events/ClientTest.java

+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + "titleClickable": "The comment is related to an older of the source or target branch. Click here to see the original context." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + "changeNotification": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + "title": "New Changes", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 187 + "description": "The underlying Pull-Request has changed. Press reload to see the changes.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 188 + "modificationWarning": "Warning: Non saved modification will be lost.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 189 + "buttons": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 190 + "reload": "Reload", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 191 + "ignore": "Ignore" + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 192 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 195 + "permissions": {
@@ -4856,14 +6313,22 @@ Array [ > @@ -4873,14 +6338,22 @@ Array [ > @@ -4890,14 +6363,22 @@ Array [ > @@ -4907,15 +6388,22 @@ Array [ > @@ -4940,14 +6436,22 @@ Array [ > @@ -4957,15 +6461,22 @@ Array [ > @@ -4990,14 +6509,22 @@ Array [ > @@ -5007,14 +6534,22 @@ Array [ > @@ -5024,14 +6559,22 @@ Array [ > @@ -5041,14 +6584,22 @@ Array [ > @@ -5058,13 +6609,20 @@ Array [ > @@ -5074,13 +6632,20 @@ Array [ > @@ -5090,14 +6655,22 @@ Array [ > @@ -5107,14 +6680,22 @@ Array [ > @@ -5124,13 +6705,20 @@ Array [ > @@ -5140,14 +6728,22 @@ Array [ > @@ -5157,16 +6753,24 @@ Array [ > @@ -5191,15 +6803,28 @@ Array [ className="diff-hunk" > + + - - @@ -5241,14 +6857,22 @@ Array [ > @@ -5258,13 +6882,20 @@ Array [ > @@ -5274,13 +6905,20 @@ Array [ > @@ -5290,14 +6928,22 @@ Array [ > @@ -5307,14 +6953,22 @@ Array [ > @@ -5324,14 +6978,22 @@ Array [ > @@ -5341,15 +7003,28 @@ Array [ className="diff-hunk" > + + - - @@ -5391,16 +7057,24 @@ Array [ > @@ -5424,15 +7105,22 @@ Array [ > @@ -5456,13 +7151,20 @@ Array [ > @@ -5472,14 +7174,22 @@ Array [ > @@ -5489,16 +7199,24 @@ Array [ > @@ -5602,7 +7328,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + import org.mockito.Mock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + import org.mockito.junit.jupiter.MockitoExtension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import sonia.scm.security.SessionId; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import javax.ws.rs.sse.OutboundSseEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + import javax.ws.rs.sse.SseEventSink; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + import java.time.Clock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + import java.time.Instant; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + import java.time.LocalDateTime; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + import java.time.ZoneOffset; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + import java.time.temporal.ChronoField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + import java.time.temporal.ChronoUnit; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + import java.time.temporal.TemporalField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + import java.util.concurrent.CompletableFuture; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + import java.util.concurrent.CompletionStage; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + import java.util.concurrent.atomic.AtomicLong; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + import java.util.concurrent.atomic.AtomicReference; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + import static java.time.temporal.ChronoUnit.MINUTES;
-
+ 83 +
+ 80 + +
- - - + 84
- + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 81 + @Test + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 82 + @SuppressWarnings("unchecked") + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + void shouldCloseEventSinkOnFailure() throws InterruptedException { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 83 + void shouldCloseEventSinkOnFailure() { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 87 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 84 + CompletionStage future = CompletableFuture.supplyAsync(() -> { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 88 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + throw new RuntimeException("failed to send message"); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + });
-
+ 91 +
+ 88 + +
- - - + 92
- + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + client.send(message); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 90 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + Thread.sleep(50L); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 95 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 96 + verify(eventSink).close(); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 91 + verify(eventSink, timeout(50L)).close(); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 97 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 92 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 98 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 99 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + @Test
@@ -5622,14 +7348,22 @@ Array [ > @@ -5639,16 +7373,24 @@ Array [ > @@ -5672,13 +7421,20 @@ Array [ > @@ -5688,13 +7444,20 @@ Array [ > @@ -5704,13 +7467,20 @@ Array [ > @@ -5720,14 +7490,22 @@ Array [ > @@ -5737,14 +7515,22 @@ Array [ > @@ -5754,13 +7540,20 @@ Array [ > @@ -5770,14 +7563,22 @@ Array [ > @@ -5787,13 +7588,20 @@ Array [ > @@ -5803,14 +7611,22 @@ Array [ > @@ -5820,14 +7636,22 @@ Array [ > @@ -5837,14 +7661,22 @@ Array [ > @@ -5854,14 +7686,22 @@ Array [ > @@ -5871,13 +7711,20 @@ Array [ > @@ -5887,13 +7734,20 @@ Array [ > @@ -5903,14 +7757,22 @@ Array [ > @@ -5920,14 +7782,22 @@ Array [ > @@ -5937,14 +7807,22 @@ Array [ > @@ -6028,7 +7906,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + package com.cloudogu.scm.review.events; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import com.cloudogu.scm.review.comment.service.BasicComment; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import com.cloudogu.scm.review.comment.service.BasicCommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import com.cloudogu.scm.review.comment.service.CommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + import com.cloudogu.scm.review.comment.service.ReplyEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import com.cloudogu.scm.review.pullrequest.service.BasicPullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import com.cloudogu.scm.review.pullrequest.service.PullRequest; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import com.cloudogu.scm.review.pullrequest.service.PullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import com.github.legman.Subscribe; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import lombok.Data; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + import org.apache.shiro.SecurityUtils; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + import org.apache.shiro.subject.PrincipalCollection; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + import org.apache.shiro.subject.Subject; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import sonia.scm.EagerSingleton; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + import sonia.scm.HandlerEventType; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + import sonia.scm.event.HandlerEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + import sonia.scm.plugin.Extension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import sonia.scm.repository.Repository; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + import sonia.scm.security.SessionId;
@@ -6048,14 +7926,22 @@ Array [ > @@ -6065,14 +7951,22 @@ Array [ > @@ -6082,14 +7976,22 @@ Array [ > @@ -6099,13 +8001,20 @@ Array [ > @@ -6115,16 +8024,24 @@ Array [ > @@ -6149,14 +8074,22 @@ Array [ > @@ -6165,31 +8098,27 @@ Array [ - - - @@ -6199,14 +8128,22 @@ Array [ > @@ -6216,14 +8153,22 @@ Array [ > @@ -6233,13 +8178,20 @@ Array [ > @@ -6249,14 +8201,22 @@ Array [ > @@ -6266,14 +8226,22 @@ Array [ > @@ -6283,13 +8251,20 @@ Array [ > @@ -6299,13 +8274,20 @@ Array [ > @@ -6315,13 +8297,20 @@ Array [ > @@ -6331,13 +8320,20 @@ Array [ > @@ -6347,13 +8343,20 @@ Array [ > @@ -6363,13 +8366,20 @@ Array [ > @@ -6379,14 +8389,22 @@ Array [ > @@ -6396,13 +8414,20 @@ Array [ > @@ -6412,13 +8437,20 @@ Array [ > @@ -6428,13 +8460,20 @@ Array [ > @@ -6444,13 +8483,20 @@ Array [ > @@ -6460,13 +8506,20 @@ Array [ > @@ -6476,13 +8529,20 @@ Array [ > @@ -6492,13 +8552,20 @@ Array [ > @@ -6508,13 +8575,20 @@ Array [ > @@ -6524,14 +8598,22 @@ Array [ > @@ -6541,14 +8623,22 @@ Array [ > @@ -6558,14 +8648,22 @@ Array [ > @@ -6649,7 +8747,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + import { Link } from "@scm-manager/ui-types"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import { apiClient, Toast, ToastButtons, ToastButton } from "@scm-manager/ui-components"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import { PullRequest } from "./types/PullRequest"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import { useTranslation } from "react-i18next"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + type HandlerProps = { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + url: string;
-
-
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + pullRequest: setEvent + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + }); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + }, [url]); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + const { t } = useTranslation("plugins"); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + if (event) { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + return ( + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + <Toast type="warning" title="New Changes"> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + <p>The underlying Pull-Request has changed. Press reload to see the changes.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + <p>Warning: Non saved modification will be lost.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + <Toast type="warning" title={t("scm-review-plugin.changeNotification.title")}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + <p>{t("scm-review-plugin.changeNotification.description")}</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + <p>{t("scm-review-plugin.changeNotification.modificationWarning")}</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + <ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + <ToastButton icon="redo" onClick={reload}>Reload</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + <ToastButton icon="times" onClick={() => setEvent(undefined)}>Ignore</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + <ToastButton icon="redo" onClick={reload}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + {t("scm-review-plugin.changeNotification.buttons.reload")} + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + </ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 29 + <ToastButton icon="times" onClick={() => setEvent(undefined)}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 30 + {t("scm-review-plugin.changeNotification.buttons.ignore")} + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 31 + </ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 32 + </ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 33 + </Toast> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 34 + );
@@ -6669,14 +8767,22 @@ Array [ > @@ -6686,14 +8792,22 @@ Array [ > @@ -6703,14 +8817,22 @@ Array [ > @@ -6720,13 +8842,20 @@ Array [ > @@ -6736,13 +8865,20 @@ Array [ > @@ -6752,13 +8888,20 @@ Array [ > @@ -6768,13 +8911,20 @@ Array [ > @@ -6784,13 +8934,20 @@ Array [ > @@ -6800,13 +8957,20 @@ Array [ > @@ -6816,13 +8980,20 @@ Array [ > @@ -6832,13 +9003,20 @@ Array [ > @@ -6848,13 +9026,20 @@ Array [ > @@ -6864,14 +9049,22 @@ Array [ > @@ -6881,14 +9074,22 @@ Array [ > @@ -6898,14 +9099,22 @@ Array [ > @@ -6989,7 +9198,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + "titleClickable": "Der Kommentar bezieht sich auf eine ältere Version des Source- oder Target-Branches. Klicken Sie hier, um den ursprünglichen Kontext zu sehen." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + "changeNotification": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + "title": "Neue Änderungen", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 187 + "description": "An diesem Pull Request wurden Änderungen vorgenommen. Laden Sie die Seite neu um diese anzuzeigen.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 188 + "modificationWarning": "Warnung: Nicht gespeicherte Eingaben gehen verloren.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 189 + "buttons": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 190 + "reload": "Neu laden", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 191 + "ignore": "Ignorieren" + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 192 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 195 + "permissions": {
@@ -7009,14 +9218,22 @@ Array [ > @@ -7026,14 +9243,22 @@ Array [ > @@ -7043,14 +9268,22 @@ Array [ > @@ -7060,13 +9293,20 @@ Array [ > @@ -7076,13 +9316,20 @@ Array [ > @@ -7092,13 +9339,20 @@ Array [ > @@ -7108,13 +9362,20 @@ Array [ > @@ -7124,13 +9385,20 @@ Array [ > @@ -7140,13 +9408,20 @@ Array [ > @@ -7156,13 +9431,20 @@ Array [ > @@ -7172,13 +9454,20 @@ Array [ > @@ -7188,13 +9477,20 @@ Array [ > @@ -7204,14 +9500,22 @@ Array [ > @@ -7221,14 +9525,22 @@ Array [ > @@ -7238,14 +9550,22 @@ Array [ > @@ -7329,7 +9649,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + "titleClickable": "The comment is related to an older of the source or target branch. Click here to see the original context." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + "changeNotification": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + "title": "New Changes", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 187 + "description": "The underlying Pull-Request has changed. Press reload to see the changes.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 188 + "modificationWarning": "Warning: Non saved modification will be lost.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 189 + "buttons": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 190 + "reload": "Reload", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 191 + "ignore": "Ignore" + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 192 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 195 + "permissions": {
@@ -7349,14 +9669,22 @@ Array [ > @@ -7366,14 +9694,22 @@ Array [ > @@ -7383,14 +9719,22 @@ Array [ > @@ -7400,15 +9744,22 @@ Array [ > @@ -7433,14 +9792,22 @@ Array [ > @@ -7450,15 +9817,22 @@ Array [ > @@ -7483,14 +9865,22 @@ Array [ > @@ -7500,14 +9890,22 @@ Array [ > @@ -7517,14 +9915,22 @@ Array [ > @@ -7534,14 +9940,22 @@ Array [ > @@ -7551,13 +9965,20 @@ Array [ > @@ -7567,13 +9988,20 @@ Array [ > @@ -7583,14 +10011,22 @@ Array [ > @@ -7600,14 +10036,22 @@ Array [ > @@ -7617,13 +10061,20 @@ Array [ > @@ -7633,14 +10084,22 @@ Array [ > @@ -7650,16 +10109,24 @@ Array [ > @@ -7684,15 +10159,28 @@ Array [ className="diff-hunk" > + + - - @@ -7734,14 +10213,22 @@ Array [ > @@ -7751,13 +10238,20 @@ Array [ > @@ -7767,13 +10261,20 @@ Array [ > @@ -7783,14 +10284,22 @@ Array [ > @@ -7800,14 +10309,22 @@ Array [ > @@ -7817,14 +10334,22 @@ Array [ > @@ -7834,15 +10359,28 @@ Array [ className="diff-hunk" > + + - - @@ -7884,16 +10413,24 @@ Array [ > @@ -7917,15 +10461,22 @@ Array [ > @@ -7949,13 +10507,20 @@ Array [ > @@ -7965,14 +10530,22 @@ Array [ > @@ -7982,16 +10555,24 @@ Array [ > @@ -8083,7 +10672,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + import org.mockito.Mock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + import org.mockito.junit.jupiter.MockitoExtension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import sonia.scm.security.SessionId; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import javax.ws.rs.sse.OutboundSseEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + import javax.ws.rs.sse.SseEventSink; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + import java.time.Clock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + import java.time.Instant; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + import java.time.LocalDateTime; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + import java.time.ZoneOffset; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + import java.time.temporal.ChronoField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + import java.time.temporal.ChronoUnit; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + import java.time.temporal.TemporalField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + import java.util.concurrent.CompletableFuture; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + import java.util.concurrent.CompletionStage; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + import java.util.concurrent.atomic.AtomicLong; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + import java.util.concurrent.atomic.AtomicReference; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + import static java.time.temporal.ChronoUnit.MINUTES;
-
+ 83 +
+ 80 + +
- - - + 84
- + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 81 + @Test + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 82 + @SuppressWarnings("unchecked") + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + void shouldCloseEventSinkOnFailure() throws InterruptedException { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 83 + void shouldCloseEventSinkOnFailure() { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 87 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 84 + CompletionStage future = CompletableFuture.supplyAsync(() -> { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 88 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + throw new RuntimeException("failed to send message"); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + });
-
+ 91 +
+ 88 + +
- - - + 92
- + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + client.send(message); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 90 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + Thread.sleep(50L); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 95 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 96 + verify(eventSink).close(); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 91 + verify(eventSink, timeout(50L)).close(); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 97 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 92 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 98 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 99 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + @Test
@@ -8103,14 +10692,22 @@ Array [ > @@ -8120,16 +10717,24 @@ Array [ > @@ -8165,13 +10777,20 @@ Array [ > @@ -8181,13 +10800,20 @@ Array [ > @@ -8197,13 +10823,20 @@ Array [ > @@ -8213,14 +10846,22 @@ Array [ > @@ -8230,14 +10871,22 @@ Array [ > @@ -8247,13 +10896,20 @@ Array [ > @@ -8263,14 +10919,22 @@ Array [ > @@ -8280,13 +10944,20 @@ Array [ > @@ -8296,14 +10967,22 @@ Array [ > @@ -8313,14 +10992,22 @@ Array [ > @@ -8330,14 +11017,22 @@ Array [ > @@ -8347,14 +11042,22 @@ Array [ > @@ -8364,13 +11067,20 @@ Array [ > @@ -8380,13 +11090,20 @@ Array [ > @@ -8396,14 +11113,22 @@ Array [ > @@ -8413,14 +11138,22 @@ Array [ > @@ -8430,14 +11163,22 @@ Array [ > @@ -8509,7 +11250,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + package com.cloudogu.scm.review.events; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import com.cloudogu.scm.review.comment.service.BasicComment; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import com.cloudogu.scm.review.comment.service.BasicCommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import com.cloudogu.scm.review.comment.service.CommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + import com.cloudogu.scm.review.comment.service.ReplyEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import com.cloudogu.scm.review.pullrequest.service.BasicPullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import com.cloudogu.scm.review.pullrequest.service.PullRequest; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import com.cloudogu.scm.review.pullrequest.service.PullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import com.github.legman.Subscribe; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import lombok.Data; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + import org.apache.shiro.SecurityUtils; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + import org.apache.shiro.subject.PrincipalCollection; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + import org.apache.shiro.subject.Subject; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import sonia.scm.EagerSingleton; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + import sonia.scm.HandlerEventType; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + import sonia.scm.event.HandlerEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + import sonia.scm.plugin.Extension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import sonia.scm.repository.Repository; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + import sonia.scm.security.SessionId;
@@ -8529,14 +11270,22 @@ Array [ > @@ -8558,14 +11307,22 @@ Array [ > @@ -8575,14 +11332,22 @@ Array [ > @@ -8592,13 +11357,20 @@ Array [ > @@ -8608,16 +11380,24 @@ Array [ > @@ -8642,14 +11430,22 @@ Array [ > @@ -8658,31 +11454,27 @@ Array [ - - - @@ -8692,14 +11484,22 @@ Array [ > @@ -8709,14 +11509,22 @@ Array [ > @@ -8726,13 +11534,20 @@ Array [ > @@ -8742,14 +11557,22 @@ Array [ > @@ -8759,14 +11582,22 @@ Array [ > @@ -8776,13 +11607,20 @@ Array [ > @@ -8792,13 +11630,20 @@ Array [ > @@ -8808,13 +11653,20 @@ Array [ > @@ -8824,13 +11676,20 @@ Array [ > @@ -8840,13 +11699,20 @@ Array [ > @@ -8856,13 +11722,20 @@ Array [ > @@ -8872,14 +11745,22 @@ Array [ > @@ -8889,13 +11770,20 @@ Array [ > @@ -8905,13 +11793,20 @@ Array [ > @@ -8921,13 +11816,20 @@ Array [ > @@ -8937,13 +11839,20 @@ Array [ > @@ -8953,13 +11862,20 @@ Array [ > @@ -8969,13 +11885,20 @@ Array [ > @@ -8985,13 +11908,20 @@ Array [ > @@ -9001,13 +11931,20 @@ Array [ > @@ -9017,14 +11954,22 @@ Array [ > @@ -9034,14 +11979,22 @@ Array [ > @@ -9051,14 +12004,22 @@ Array [ > @@ -9130,7 +12091,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + import { Link } from "@scm-manager/ui-types"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import { apiClient, Toast, ToastButtons, ToastButton } from "@scm-manager/ui-components"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import { PullRequest } from "./types/PullRequest"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import { useTranslation } from "react-i18next"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + type HandlerProps = { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + url: string;
-
-
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + pullRequest: setEvent + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + }); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + }, [url]); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + const { t } = useTranslation("plugins"); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + if (event) { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + return ( + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + <Toast type="warning" title="New Changes"> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + <p>The underlying Pull-Request has changed. Press reload to see the changes.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + <p>Warning: Non saved modification will be lost.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + <Toast type="warning" title={t("scm-review-plugin.changeNotification.title")}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + <p>{t("scm-review-plugin.changeNotification.description")}</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + <p>{t("scm-review-plugin.changeNotification.modificationWarning")}</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + <ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + <ToastButton icon="redo" onClick={reload}>Reload</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + <ToastButton icon="times" onClick={() => setEvent(undefined)}>Ignore</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + <ToastButton icon="redo" onClick={reload}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + {t("scm-review-plugin.changeNotification.buttons.reload")} + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + </ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 29 + <ToastButton icon="times" onClick={() => setEvent(undefined)}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 30 + {t("scm-review-plugin.changeNotification.buttons.ignore")} + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 31 + </ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 32 + </ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 33 + </Toast> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 34 + );
@@ -9150,14 +12111,22 @@ Array [ > @@ -9167,14 +12136,22 @@ Array [ > @@ -9184,14 +12161,22 @@ Array [ > @@ -9201,13 +12186,20 @@ Array [ > @@ -9217,13 +12209,20 @@ Array [ > @@ -9233,13 +12232,20 @@ Array [ > @@ -9249,13 +12255,20 @@ Array [ > @@ -9265,13 +12278,20 @@ Array [ > @@ -9281,13 +12301,20 @@ Array [ > @@ -9297,13 +12324,20 @@ Array [ > @@ -9313,13 +12347,20 @@ Array [ > @@ -9329,13 +12370,20 @@ Array [ > @@ -9345,14 +12393,22 @@ Array [ > @@ -9362,14 +12418,22 @@ Array [ > @@ -9379,14 +12443,22 @@ Array [ > @@ -9458,7 +12530,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + "titleClickable": "Der Kommentar bezieht sich auf eine ältere Version des Source- oder Target-Branches. Klicken Sie hier, um den ursprünglichen Kontext zu sehen." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + "changeNotification": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + "title": "Neue Änderungen", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 187 + "description": "An diesem Pull Request wurden Änderungen vorgenommen. Laden Sie die Seite neu um diese anzuzeigen.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 188 + "modificationWarning": "Warnung: Nicht gespeicherte Eingaben gehen verloren.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 189 + "buttons": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 190 + "reload": "Neu laden", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 191 + "ignore": "Ignorieren" + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 192 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 195 + "permissions": {
@@ -9478,14 +12550,22 @@ Array [ > @@ -9495,14 +12575,22 @@ Array [ > @@ -9512,14 +12600,22 @@ Array [ > @@ -9529,13 +12625,20 @@ Array [ > @@ -9545,13 +12648,20 @@ Array [ > @@ -9561,13 +12671,20 @@ Array [ > @@ -9577,13 +12694,20 @@ Array [ > @@ -9593,13 +12717,20 @@ Array [ > @@ -9609,13 +12740,20 @@ Array [ > @@ -9625,13 +12763,20 @@ Array [ > @@ -9641,13 +12786,20 @@ Array [ > @@ -9657,13 +12809,20 @@ Array [ > @@ -9673,14 +12832,22 @@ Array [ > @@ -9690,14 +12857,22 @@ Array [ > @@ -9707,14 +12882,22 @@ Array [ > @@ -9786,7 +12969,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + "titleClickable": "The comment is related to an older of the source or target branch. Click here to see the original context." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + "changeNotification": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + "title": "New Changes", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 187 + "description": "The underlying Pull-Request has changed. Press reload to see the changes.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 188 + "modificationWarning": "Warning: Non saved modification will be lost.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 189 + "buttons": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 190 + "reload": "Reload", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 191 + "ignore": "Ignore" + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 192 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 195 + "permissions": {
@@ -9806,14 +12989,22 @@ Array [ > @@ -9823,14 +13014,22 @@ Array [ > @@ -9840,14 +13039,22 @@ Array [ > @@ -9857,15 +13064,22 @@ Array [ > @@ -9890,14 +13112,22 @@ Array [ > @@ -9907,15 +13137,22 @@ Array [ > @@ -9940,14 +13185,22 @@ Array [ > @@ -9957,14 +13210,22 @@ Array [ > @@ -9974,14 +13235,22 @@ Array [ > @@ -9991,14 +13260,22 @@ Array [ > @@ -10008,13 +13285,20 @@ Array [ > @@ -10024,13 +13308,20 @@ Array [ > @@ -10040,14 +13331,22 @@ Array [ > @@ -10057,14 +13356,22 @@ Array [ > @@ -10074,13 +13381,20 @@ Array [ > @@ -10090,14 +13404,22 @@ Array [ > @@ -10107,16 +13429,24 @@ Array [ > @@ -10141,15 +13479,28 @@ Array [ className="diff-hunk" > + + - - @@ -10191,14 +13533,22 @@ Array [ > @@ -10208,13 +13558,20 @@ Array [ > @@ -10224,13 +13581,20 @@ Array [ > @@ -10240,14 +13604,22 @@ Array [ > @@ -10257,14 +13629,22 @@ Array [ > @@ -10274,14 +13654,22 @@ Array [ > @@ -10291,15 +13679,28 @@ Array [ className="diff-hunk" > + + - - @@ -10341,16 +13733,24 @@ Array [ > @@ -10374,15 +13781,22 @@ Array [ > @@ -10406,13 +13827,20 @@ Array [ > @@ -10422,14 +13850,22 @@ Array [ > @@ -10439,16 +13875,24 @@ Array [ > @@ -10540,7 +13992,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + import org.mockito.Mock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + import org.mockito.junit.jupiter.MockitoExtension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import sonia.scm.security.SessionId; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import javax.ws.rs.sse.OutboundSseEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + import javax.ws.rs.sse.SseEventSink; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + import java.time.Clock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + import java.time.Instant; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + import java.time.LocalDateTime; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + import java.time.ZoneOffset; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + import java.time.temporal.ChronoField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + import java.time.temporal.ChronoUnit; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + import java.time.temporal.TemporalField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + import java.util.concurrent.CompletableFuture; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + import java.util.concurrent.CompletionStage; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + import java.util.concurrent.atomic.AtomicLong; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + import java.util.concurrent.atomic.AtomicReference; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + import static java.time.temporal.ChronoUnit.MINUTES;
-
+ 83 +
+ 80 + +
- - - + 84
- + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 81 + @Test + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 82 + @SuppressWarnings("unchecked") + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + void shouldCloseEventSinkOnFailure() throws InterruptedException { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 83 + void shouldCloseEventSinkOnFailure() { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 87 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 84 + CompletionStage future = CompletableFuture.supplyAsync(() -> { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 88 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + throw new RuntimeException("failed to send message"); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + });
-
+ 91 +
+ 88 + +
- - - + 92
- + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + client.send(message); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 90 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + Thread.sleep(50L); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 95 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 96 + verify(eventSink).close(); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 91 + verify(eventSink, timeout(50L)).close(); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 97 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 92 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 98 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 99 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + @Test
@@ -10560,16 +14012,24 @@ Array [ > @@ -10579,18 +14039,26 @@ Array [ > @@ -10616,15 +14091,22 @@ Array [ > @@ -10634,15 +14116,22 @@ Array [ > @@ -10652,15 +14141,22 @@ Array [ > @@ -10670,16 +14166,24 @@ Array [ > @@ -10689,16 +14193,24 @@ Array [ > @@ -10708,15 +14220,22 @@ Array [ > @@ -10726,16 +14245,24 @@ Array [ > @@ -10745,15 +14272,22 @@ Array [ > @@ -10763,16 +14297,24 @@ Array [ > @@ -10782,16 +14324,24 @@ Array [ > @@ -10801,16 +14351,24 @@ Array [ > @@ -10820,16 +14378,24 @@ Array [ > @@ -10839,15 +14405,22 @@ Array [ > @@ -10857,15 +14430,22 @@ Array [ > @@ -10875,16 +14455,24 @@ Array [ > @@ -10894,16 +14482,24 @@ Array [ > @@ -10913,16 +14509,24 @@ Array [ > @@ -10994,7 +14598,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + package com.cloudogu.scm.review.events; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import com.cloudogu.scm.review.comment.service.BasicComment; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import com.cloudogu.scm.review.comment.service.BasicCommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import com.cloudogu.scm.review.comment.service.CommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + import com.cloudogu.scm.review.comment.service.ReplyEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import com.cloudogu.scm.review.pullrequest.service.BasicPullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import com.cloudogu.scm.review.pullrequest.service.PullRequest; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import com.cloudogu.scm.review.pullrequest.service.PullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import com.github.legman.Subscribe; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import lombok.Data; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + import org.apache.shiro.SecurityUtils; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + import org.apache.shiro.subject.PrincipalCollection; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + import org.apache.shiro.subject.Subject; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import sonia.scm.EagerSingleton; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + import sonia.scm.HandlerEventType; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + import sonia.scm.event.HandlerEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + import sonia.scm.plugin.Extension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import sonia.scm.repository.Repository; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + import sonia.scm.security.SessionId;
@@ -11014,16 +14618,24 @@ Array [ > @@ -11033,16 +14645,24 @@ Array [ > @@ -11052,16 +14672,24 @@ Array [ > @@ -11072,14 +14700,21 @@ Array [ @@ -11089,18 +14724,26 @@ Array [ > @@ -11127,16 +14778,24 @@ Array [ > @@ -11145,33 +14804,29 @@ Array [ - - - @@ -11181,16 +14836,24 @@ Array [ > @@ -11200,16 +14863,24 @@ Array [ > @@ -11220,14 +14891,21 @@ Array [ @@ -11237,16 +14915,24 @@ Array [ > @@ -11256,16 +14942,24 @@ Array [ > @@ -11275,15 +14969,22 @@ Array [ > @@ -11293,15 +14994,22 @@ Array [ > @@ -11311,15 +15019,22 @@ Array [ > @@ -11330,14 +15045,21 @@ Array [ @@ -11348,14 +15070,21 @@ Array [ @@ -11366,14 +15095,21 @@ Array [ @@ -11383,16 +15119,24 @@ Array [ > @@ -11402,15 +15146,22 @@ Array [ > @@ -11420,15 +15171,22 @@ Array [ > @@ -11439,14 +15197,21 @@ Array [ @@ -11457,14 +15222,21 @@ Array [ @@ -11475,14 +15247,21 @@ Array [ @@ -11493,14 +15272,21 @@ Array [ @@ -11511,14 +15297,21 @@ Array [ @@ -11529,14 +15322,21 @@ Array [ @@ -11546,16 +15346,24 @@ Array [ > @@ -11565,16 +15373,24 @@ Array [ > @@ -11584,16 +15400,24 @@ Array [ > @@ -11665,7 +15489,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + import { Link } from "@scm-manager/ui-types"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + import { apiClient, Toast, ToastButtons, ToastButton } from "@scm-manager/ui-components"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + import { PullRequest } from "./types/PullRequest"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + import { useTranslation } from "react-i18next"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + type HandlerProps = { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + url: string;
-
-
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + pullRequest: setEvent + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + }); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + }, [url]); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + const { t } = useTranslation("plugins"); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + if (event) { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + return ( + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + <Toast type="warning" title="New Changes"> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + <p>The underlying Pull-Request has changed. Press reload to see the changes.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + <p>Warning: Non saved modification will be lost.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + <Toast type="warning" title={t("scm-review-plugin.changeNotification.title")}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + <p>{t("scm-review-plugin.changeNotification.description")}</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + <p>{t("scm-review-plugin.changeNotification.modificationWarning")}</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + <ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + <ToastButton icon="redo" onClick={reload}>Reload</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + <ToastButton icon="times" onClick={() => setEvent(undefined)}>Ignore</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + <ToastButton icon="redo" onClick={reload}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + {t("scm-review-plugin.changeNotification.buttons.reload")} + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + </ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 29 + <ToastButton icon="times" onClick={() => setEvent(undefined)}> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 30 + {t("scm-review-plugin.changeNotification.buttons.ignore")} + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 31 + </ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 32 + </ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 33 + </Toast> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 34 + );
@@ -11685,16 +15509,24 @@ Array [ > @@ -11704,16 +15536,24 @@ Array [ > @@ -11723,16 +15563,24 @@ Array [ > @@ -11743,14 +15591,21 @@ Array [ @@ -11761,14 +15616,21 @@ Array [ @@ -11779,14 +15641,21 @@ Array [ @@ -11797,14 +15666,21 @@ Array [ @@ -11815,14 +15691,21 @@ Array [ @@ -11833,14 +15716,21 @@ Array [ @@ -11851,14 +15741,21 @@ Array [ @@ -11869,14 +15766,21 @@ Array [ @@ -11887,14 +15791,21 @@ Array [ @@ -11904,16 +15815,24 @@ Array [ > @@ -11923,16 +15842,24 @@ Array [ > @@ -11942,16 +15869,24 @@ Array [ > @@ -12023,7 +15958,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + "titleClickable": "Der Kommentar bezieht sich auf eine ältere Version des Source- oder Target-Branches. Klicken Sie hier, um den ursprünglichen Kontext zu sehen." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + "changeNotification": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + "title": "Neue Änderungen", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 187 + "description": "An diesem Pull Request wurden Änderungen vorgenommen. Laden Sie die Seite neu um diese anzuzeigen.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 188 + "modificationWarning": "Warnung: Nicht gespeicherte Eingaben gehen verloren.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 189 + "buttons": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 190 + "reload": "Neu laden", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 191 + "ignore": "Ignorieren" + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 192 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 195 + "permissions": {
@@ -12043,16 +15978,24 @@ Array [ > @@ -12062,16 +16005,24 @@ Array [ > @@ -12081,16 +16032,24 @@ Array [ > @@ -12101,14 +16060,21 @@ Array [ @@ -12119,14 +16085,21 @@ Array [ @@ -12137,14 +16110,21 @@ Array [ @@ -12155,14 +16135,21 @@ Array [ @@ -12173,14 +16160,21 @@ Array [ @@ -12191,14 +16185,21 @@ Array [ @@ -12209,14 +16210,21 @@ Array [ @@ -12227,14 +16235,21 @@ Array [ @@ -12245,14 +16260,21 @@ Array [ @@ -12262,16 +16284,24 @@ Array [ > @@ -12281,16 +16311,24 @@ Array [ > @@ -12300,16 +16338,24 @@ Array [ > @@ -12381,7 +16427,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + "titleClickable": "The comment is related to an older of the source or target branch. Click here to see the original context." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + "changeNotification": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + "title": "New Changes", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 187 + "description": "The underlying Pull-Request has changed. Press reload to see the changes.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 188 + "modificationWarning": "Warning: Non saved modification will be lost.", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 189 + "buttons": { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 190 + "reload": "Reload", + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 191 + "ignore": "Ignore" + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 192 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 186 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 195 + "permissions": {
@@ -12401,16 +16447,24 @@ Array [ > @@ -12420,16 +16474,24 @@ Array [ > @@ -12439,16 +16501,24 @@ Array [ > @@ -12459,16 +16529,23 @@ Array [ @@ -12495,16 +16580,24 @@ Array [ > @@ -12514,17 +16607,24 @@ Array [ > @@ -12551,16 +16659,24 @@ Array [ > @@ -12570,16 +16686,24 @@ Array [ > @@ -12589,16 +16713,24 @@ Array [ > @@ -12608,16 +16740,24 @@ Array [ > @@ -12627,15 +16767,22 @@ Array [ > @@ -12645,15 +16792,22 @@ Array [ > @@ -12663,16 +16817,24 @@ Array [ > @@ -12682,16 +16844,24 @@ Array [ > @@ -12701,15 +16871,22 @@ Array [ > @@ -12719,16 +16896,24 @@ Array [ > @@ -12738,18 +16923,26 @@ Array [ > @@ -12776,15 +16977,30 @@ Array [ className="diff-hunk" > + + - - @@ -12830,16 +17035,24 @@ Array [ > @@ -12849,15 +17062,22 @@ Array [ > @@ -12868,14 +17088,21 @@ Array [ @@ -12885,16 +17112,24 @@ Array [ > @@ -12904,16 +17139,24 @@ Array [ > @@ -12923,16 +17166,24 @@ Array [ > @@ -12942,15 +17193,30 @@ Array [ className="diff-hunk" > + + - - @@ -12996,18 +17251,26 @@ Array [ > @@ -13033,17 +17303,24 @@ Array [ > @@ -13070,14 +17354,21 @@ Array [ @@ -13087,16 +17378,24 @@ Array [ > @@ -13106,18 +17405,26 @@ Array [ > @@ -13211,7 +17526,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + import org.mockito.Mock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + import org.mockito.junit.jupiter.MockitoExtension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + import sonia.scm.security.SessionId; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + import javax.ws.rs.sse.OutboundSseEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + import javax.ws.rs.sse.SseEventSink; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + import java.time.Clock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + import java.time.Instant; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + import java.time.LocalDateTime; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + import java.time.ZoneOffset; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + import java.time.temporal.ChronoField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + import java.time.temporal.ChronoUnit; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + import java.time.temporal.TemporalField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + import java.util.concurrent.CompletableFuture; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + import java.util.concurrent.CompletionStage; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + import java.util.concurrent.atomic.AtomicLong; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + import java.util.concurrent.atomic.AtomicReference; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + import static java.time.temporal.ChronoUnit.MINUTES;
-
+ 83 +
+ 80 + +
- - - + 84
- + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 81 + @Test + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 82 + @SuppressWarnings("unchecked") + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + void shouldCloseEventSinkOnFailure() throws InterruptedException { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 83 + void shouldCloseEventSinkOnFailure() { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 87 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 84 + CompletionStage future = CompletableFuture.supplyAsync(() -> { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 88 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + throw new RuntimeException("failed to send message"); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + });
-
+ 91 +
+ 88 + +
- - - + 92
- + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + client.send(message); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 90 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + Thread.sleep(50L); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 95 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 96 + verify(eventSink).close(); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 91 + verify(eventSink, timeout(50L)).close(); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 97 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 92 + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 98 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 99 + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + @Test
@@ -13232,29 +17547,31 @@ Array [ > @@ -13838,7 +18185,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + - - package com.cloudogu.scm.review.events; - + package com.cloudogu.scm.review.events; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 1 + - - package com.cloudogu.scm.review.events; - + package com.cloudogu.scm.review.events;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + - - - + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + - - - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + - - import com.cloudogu.scm.review.comment.service.BasicComment; - + import com.cloudogu.scm.review.comment.service.BasicComment; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + - - import com.cloudogu.scm.review.comment.service.BasicCommentEvent; - + import com.cloudogu.scm.review.comment.service.BasicCommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + - - import com.cloudogu.scm.review.comment.service.CommentEvent; - + import com.cloudogu.scm.review.comment.service.CommentEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + - - import com.cloudogu.scm.review.comment.service.ReplyEvent; - + import com.cloudogu.scm.review.comment.service.ReplyEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + - - import com.cloudogu.scm.review.pullrequest.service.BasicPullRequestEvent; - + import com.cloudogu.scm.review.pullrequest.service.BasicPullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + - - import com.cloudogu.scm.review.pullrequest.service.BasicPullRequestEvent; - + import com.cloudogu.scm.review.pullrequest.service.BasicPullRequestEvent;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + - - import com.cloudogu.scm.review.pullrequest.service.PullRequest; - + import com.cloudogu.scm.review.pullrequest.service.PullRequest; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + - - import com.cloudogu.scm.review.pullrequest.service.PullRequest; - + import com.cloudogu.scm.review.pullrequest.service.PullRequest;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + - - import com.cloudogu.scm.review.pullrequest.service.PullRequestEvent; - + import com.cloudogu.scm.review.pullrequest.service.PullRequestEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + - - import com.github.legman.Subscribe; - + import com.github.legman.Subscribe; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + - - import com.github.legman.Subscribe; - + import com.github.legman.Subscribe;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + - - import lombok.Data; - + import lombok.Data; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + - - import org.apache.shiro.SecurityUtils; - + import org.apache.shiro.SecurityUtils; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + - - import org.apache.shiro.SecurityUtils; - + import org.apache.shiro.SecurityUtils;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + - - import org.apache.shiro.subject.PrincipalCollection; - + import org.apache.shiro.subject.PrincipalCollection; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + - - import org.apache.shiro.subject.PrincipalCollection; - + import org.apache.shiro.subject.PrincipalCollection;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + - - import org.apache.shiro.subject.Subject; - + import org.apache.shiro.subject.Subject; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + - - import org.apache.shiro.subject.Subject; - + import org.apache.shiro.subject.Subject;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + - - import sonia.scm.EagerSingleton; - + import sonia.scm.EagerSingleton; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + - - import sonia.scm.EagerSingleton; - + import sonia.scm.EagerSingleton;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + - - import sonia.scm.HandlerEventType; - + import sonia.scm.HandlerEventType; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + - - import sonia.scm.event.HandlerEvent; - + import sonia.scm.event.HandlerEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + - - import sonia.scm.plugin.Extension; - + import sonia.scm.plugin.Extension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + - - import sonia.scm.plugin.Extension; - + import sonia.scm.plugin.Extension;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + - - import sonia.scm.repository.Repository; - + import sonia.scm.repository.Repository; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + - - import sonia.scm.repository.Repository; - + import sonia.scm.repository.Repository;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + - - import sonia.scm.security.SessionId; - + import sonia.scm.security.SessionId; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + - - import sonia.scm.security.SessionId; - + import sonia.scm.security.SessionId;
@@ -13859,29 +18206,31 @@ Array [ > @@ -14062,15 +18422,35 @@ Array [ className="diff-hunk" > + + + - - - - @@ -14723,7 +19104,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + - - import { Link } from "@scm-manager/ui-types"; - + import { Link } from "@scm-manager/ui-types"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 2 + - - import { Link } from "@scm-manager/ui-types"; - + import { Link } from "@scm-manager/ui-types";
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + - - import { apiClient, Toast, ToastButtons, ToastButton } from "@scm-manager/ui-components"; - + import { apiClient, Toast, ToastButtons, ToastButton } from "@scm-manager/ui-components"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 3 + - - import { apiClient, Toast, ToastButtons, ToastButton } from "@scm-manager/ui-components"; - + import { apiClient, Toast, ToastButtons, ToastButton } from "@scm-manager/ui-components";
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + - - import { PullRequest } from "./types/PullRequest"; - + import { PullRequest } from "./types/PullRequest"; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 4 + - - import { PullRequest } from "./types/PullRequest"; - + import { PullRequest } from "./types/PullRequest";
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + - - import { useTranslation } from "react-i18next"; - + import { useTranslation } from "react-i18next";
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 5 + - - - + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + - - - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 6 + - - type HandlerProps = { - + type HandlerProps = { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + - - type HandlerProps = { - + type HandlerProps = {
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + - - url: string; - + url: string; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + - - url: string; - + url: string;
-
+ 15 +
+ pullRequest: setEvent + + 16 + + pullRequest: setEvent
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + - - pullRequest: setEvent - + }); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + - - pullRequest: setEvent - + });
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + - - }); - + }, [url]); - - - }); - -
- - - }, [url]); - + 18 - - }, [url]); - + }, [url]);
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + - - const { t } = useTranslation("plugins"); - + const { t } = useTranslation("plugins");
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + - - if (event) { - + if (event) { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + - - if (event) { - + if (event) {
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + - - return ( - + return ( + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + - - return ( - + return (
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + - - <Toast type="warning" title="New Changes"> - + <Toast type="warning" title="New Changes"> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + - - <p>The underlying Pull-Request has changed. Press reload to see the changes.</p> - + <p>The underlying Pull-Request has changed. Press reload to see the changes.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + - - <p>Warning: Non saved modification will be lost.</p> - + <p>Warning: Non saved modification will be lost.</p> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + - - <Toast type="warning" title={t("scm-review-plugin.changeNotification.title")}> - + <Toast type="warning" title={t("scm-review-plugin.changeNotification.title")}>
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + - - <p>{t("scm-review-plugin.changeNotification.description")}</p> - + <p>{t("scm-review-plugin.changeNotification.description")}</p>
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + - - <p>{t("scm-review-plugin.changeNotification.modificationWarning")}</p> - + <p>{t("scm-review-plugin.changeNotification.modificationWarning")}</p>
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + - - <ToastButtons> - + <ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + - - <ToastButtons> - + <ToastButtons>
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + - - <ToastButton icon="redo" onClick={reload}>Reload</ToastButton> - + <ToastButton icon="redo" onClick={reload}>Reload</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + - - <ToastButton icon="times" onClick={() => setEvent(undefined)}>Ignore</ToastButton> - + <ToastButton icon="times" onClick={() => setEvent(undefined)}>Ignore</ToastButton> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + - - <ToastButton icon="redo" onClick={reload}> - + <ToastButton icon="redo" onClick={reload}>
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + - - {t("scm-review-plugin.changeNotification.buttons.reload")} - + {t("scm-review-plugin.changeNotification.buttons.reload")}
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + - - </ToastButton> - + </ToastButton>
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 29 + - - <ToastButton icon="times" onClick={() => setEvent(undefined)}> - + <ToastButton icon="times" onClick={() => setEvent(undefined)}>
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 30 + - - {t("scm-review-plugin.changeNotification.buttons.ignore")} - + {t("scm-review-plugin.changeNotification.buttons.ignore")}
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 31 + - - </ToastButton> - + </ToastButton>
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 26 + - - </ToastButtons> - + </ToastButtons> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 32 + - - </ToastButtons> - + </ToastButtons>
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 27 + - - </Toast> - + </Toast> + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 33 + - - </Toast> - + </Toast>
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 28 + - - ); - + ); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 34 + - - ); - + );
@@ -14744,29 +19125,31 @@ Array [ > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15193,7 +19595,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + - - "titleClickable": "Der Kommentar bezieht sich auf eine ältere Version des Source- oder Target-Branches. Klicken Sie hier, um den ursprünglichen Kontext zu sehen." - + "titleClickable": "Der Kommentar bezieht sich auf eine ältere Version des Source- oder Target-Branches. Klicken Sie hier, um den ursprünglichen Kontext zu sehen." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + - - "titleClickable": "Der Kommentar bezieht sich auf eine ältere Version des Source- oder Target-Branches. Klicken Sie hier, um den ursprünglichen Kontext zu sehen." - + "titleClickable": "Der Kommentar bezieht sich auf eine ältere Version des Source- oder Target-Branches. Klicken Sie hier, um den ursprünglichen Kontext zu sehen."
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + - - } - + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + - - } - + }
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + - - } - - - - - } - -
- - - - - }, - -
- - - - - "changeNotification": { - -
- - - - - "title": "Neue Änderungen", - -
- - - - - "description": "An diesem Pull Request wurden Änderungen vorgenommen. Laden Sie die Seite neu um diese anzuzeigen.", - -
- - - - - "modificationWarning": "Warnung: Nicht gespeicherte Eingaben gehen verloren.", - -
- - - - - "buttons": { - -
- - - - - "reload": "Neu laden", - -
- - - - - "ignore": "Ignorieren" - -
- - - - - } - -
- - } - + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + } +
+ + + 184 + + }, +
+ + + 185 + + "changeNotification": { +
+ + + 186 + + "title": "Neue Änderungen", +
+ + + 187 + + "description": "An diesem Pull Request wurden Änderungen vorgenommen. Laden Sie die Seite neu um diese anzuzeigen.", +
+ + + 188 + + "modificationWarning": "Warnung: Nicht gespeicherte Eingaben gehen verloren.", +
+ + + 189 + + "buttons": { +
+ + + 190 + + "reload": "Neu laden", +
+ + + 191 + + "ignore": "Ignorieren" +
+ + + 192 + - } -
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + - - }, - + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + - - }, - + }
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + - - "permissions": { - + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + - - "permissions": { - + }, +
+ 186 + + "permissions": { + + 195 + + "permissions": {
@@ -15214,29 +19616,31 @@ Array [ > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15663,7 +20086,7 @@ Array [ className="panel-block is-paddingless" >
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + - - "titleClickable": "The comment is related to an older of the source or target branch. Click here to see the original context." - + "titleClickable": "The comment is related to an older of the source or target branch. Click here to see the original context." + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 181 + - - "titleClickable": "The comment is related to an older of the source or target branch. Click here to see the original context." - + "titleClickable": "The comment is related to an older of the source or target branch. Click here to see the original context."
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + - - } - + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 182 + - - } - + }
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + - - } - - - - - } - -
- - - - - }, - -
- - - - - "changeNotification": { - -
- - - - - "title": "New Changes", - -
- - - - - "description": "The underlying Pull-Request has changed. Press reload to see the changes.", - -
- - - - - "modificationWarning": "Warning: Non saved modification will be lost.", - -
- - - - - "buttons": { - -
- - - - - "reload": "Reload", - -
- - - - - "ignore": "Ignore" - -
- - - - - } - -
- - } - + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 183 + + } +
+ + + 184 + + }, +
+ + + 185 + + "changeNotification": { +
+ + + 186 + + "title": "New Changes", +
+ + + 187 + + "description": "The underlying Pull-Request has changed. Press reload to see the changes.", +
+ + + 188 + + "modificationWarning": "Warning: Non saved modification will be lost.", +
+ + + 189 + + "buttons": { +
+ + + 190 + + "reload": "Reload", +
+ + + 191 + + "ignore": "Ignore" +
+ + + 192 + - } -
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 184 + - - }, - + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 193 + - - }, - + }
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 185 + - - "permissions": { - + }, + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 194 + - - "permissions": { - + }, +
+ 186 + + "permissions": { + + 195 + + "permissions": {
@@ -15684,29 +20107,31 @@ Array [ > @@ -16249,15 +20707,35 @@ Array [ className="diff-hunk" > + + + - - - - @@ -16475,15 +20935,35 @@ Array [ className="diff-hunk" > + + + - - - - diff --git a/scm-ui/ui-components/src/repos/DiffFile.tsx b/scm-ui/ui-components/src/repos/DiffFile.tsx index 4e2e7e08b4..8f584fcfe2 100644 --- a/scm-ui/ui-components/src/repos/DiffFile.tsx +++ b/scm-ui/ui-components/src/repos/DiffFile.tsx @@ -3,11 +3,13 @@ import { withTranslation, WithTranslation } from "react-i18next"; import classNames from "classnames"; import styled from "styled-components"; // @ts-ignore -import { Change, Diff as DiffComponent, getChangeKey, Hunk } from "react-diff-view"; +import { Diff as DiffComponent, getChangeKey, Hunk } from "react-diff-view"; import { Button, ButtonGroup } from "../buttons"; import Tag from "../Tag"; import Icon from "../Icon"; -import { File, Hunk as HunkType, DiffObjectProps } from "./DiffTypes"; +import { ChangeEvent, Change, File, Hunk as HunkType, DiffObjectProps } from "./DiffTypes"; + +const EMPTY_ANNOTATION_FACTORY = {}; type Props = DiffObjectProps & WithTranslation & { @@ -56,6 +58,10 @@ const ChangeTypeTag = styled(Tag)` `; const ModifiedDiffComponent = styled(DiffComponent)` + /* align line numbers */ + & .diff-gutter { + text-align: right; + } /* column sizing */ > colgroup .diff-gutter-col { width: 3.25rem; @@ -136,6 +142,8 @@ class DiffFile extends React.Component { hunk, file }); + } else { + return EMPTY_ANNOTATION_FACTORY; } }; @@ -152,14 +160,12 @@ class DiffFile extends React.Component { } }; - createCustomEvents = (hunk: HunkType) => { + createGutterEvents = (hunk: HunkType) => { const { onClick } = this.props; if (onClick) { return { - gutter: { - onClick: (change: Change) => { - this.handleClickEvent(change, hunk); - } + onClick: (event: ChangeEvent) => { + this.handleClickEvent(event.change, hunk); } }; } @@ -172,7 +178,7 @@ class DiffFile extends React.Component { hunk={hunk} header={this.createHunkHeader(hunk, i)} widgets={this.collectHunkAnnotations(hunk)} - customEvents={this.createCustomEvents(hunk)} + gutterEvents={this.createGutterEvents(hunk)} /> ); }; @@ -228,8 +234,8 @@ class DiffFile extends React.Component { body = (
{fileAnnotations} - - {file.hunks.map(this.renderHunk)} + + {(hunks: HunkType[]) => hunks.map(this.renderHunk)}
); diff --git a/scm-ui/ui-components/src/repos/DiffTypes.ts b/scm-ui/ui-components/src/repos/DiffTypes.ts index ba89d40aaa..635d5e93d8 100644 --- a/scm-ui/ui-components/src/repos/DiffTypes.ts +++ b/scm-ui/ui-components/src/repos/DiffTypes.ts @@ -40,6 +40,10 @@ export type Change = { type: ChangeType; }; +export type ChangeEvent = { + change: Change; +}; + export type BaseContext = { hunk: Hunk; file: File; diff --git a/scm-ui/ui-components/src/repos/LoadingDiff.tsx b/scm-ui/ui-components/src/repos/LoadingDiff.tsx index ec782bc968..a0a64a2903 100644 --- a/scm-ui/ui-components/src/repos/LoadingDiff.tsx +++ b/scm-ui/ui-components/src/repos/LoadingDiff.tsx @@ -9,12 +9,13 @@ import Diff from "./Diff"; import { DiffObjectProps, File } from "./DiffTypes"; import { NotFoundError } from "../errors"; import { Notification } from "../index"; -import {withTranslation, WithTranslation} from "react-i18next"; +import { withTranslation, WithTranslation } from "react-i18next"; -type Props = WithTranslation & DiffObjectProps & { - url: string; - defaultCollapse?: boolean; -}; +type Props = WithTranslation & + DiffObjectProps & { + url: string; + defaultCollapse?: boolean; + }; type State = { diff?: File[]; diff --git a/scm-ui/ui-styles/package.json b/scm-ui/ui-styles/package.json index 16fdb5b307..f5f984be08 100644 --- a/scm-ui/ui-styles/package.json +++ b/scm-ui/ui-styles/package.json @@ -13,7 +13,7 @@ "bulma": "^0.7.5", "bulma-popover": "^1.0.0", "bulma-tooltip": "^3.0.0", - "react-diff-view": "^1.8.1" + "react-diff-view": "^2.4.1" }, "devDependencies": { "css-loader": "^3.2.0", diff --git a/scm-ui/ui-styles/src/scm.scss b/scm-ui/ui-styles/src/scm.scss index dada35eb6b..9f6a086541 100644 --- a/scm-ui/ui-styles/src/scm.scss +++ b/scm-ui/ui-styles/src/scm.scss @@ -423,7 +423,7 @@ $danger-25: scale-color($danger, $lightness: 75%); $fa-font-path: "~@fortawesome/fontawesome-free/webfonts"; @import "~@fortawesome/fontawesome-free/scss/solid"; -@import "~react-diff-view/index"; +@import "~react-diff-view/style/index"; // NEW STYLES diff --git a/yarn.lock b/yarn.lock index 8a11f9fc5f..b69a934a48 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4608,6 +4608,11 @@ chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +change-emitter@^0.1.2: + version "0.1.6" + resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" + integrity sha1-6LL+PX8at9aaMhma/5HqaTFAlRU= + character-entities-legacy@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz#3c729991d9293da0ede6dddcaf1f2ce1009ee8b4" @@ -5574,7 +5579,7 @@ debug@3.1.0: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -5633,11 +5638,6 @@ deep-equal@^1.0.1, deep-equal@^1.1.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -5753,11 +5753,6 @@ detect-indent@^5.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -5792,6 +5787,11 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" +diff-match-patch@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.4.tgz#6ac4b55237463761c4daf0dc603eb869124744b1" + integrity sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg== + diff-sequences@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" @@ -6827,7 +6827,7 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fbjs@^0.8.0: +fbjs@^0.8.0, fbjs@^0.8.1: version "0.8.17" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= @@ -7674,6 +7674,11 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoist-non-react-statics@^2.3.1: + version "2.5.5" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" + integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== + hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: version "3.3.1" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#101685d3aff3b23ea213163f6e8e12f4f111e19f" @@ -7930,7 +7935,7 @@ i18next@^17.3.0: dependencies: "@babel/runtime" "^7.3.1" -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -8069,7 +8074,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.2, ini@^1.3.4, ini@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -9346,11 +9351,6 @@ lerna@^3.17.0: import-local "^2.0.0" npmlog "^4.1.2" -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -9478,11 +9478,6 @@ lodash.escape@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= -lodash.findlastindex@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.findlastindex/-/lodash.findlastindex-4.6.0.tgz#b8375ac0f02e9b926375cdf8dc3ea814abf9c6ac" - integrity sha1-uDdawPAum5Jjdc343D6oFKv5xqw= - lodash.flattendeep@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" @@ -9508,11 +9503,6 @@ lodash.isplainobject@^4.0.6: resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= -lodash.mapvalues@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" - integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw= - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -10195,15 +10185,6 @@ nearley@^2.7.10: randexp "0.4.6" semver "^5.4.1" -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -10345,22 +10326,6 @@ node-notifier@^5.4.2: shellwords "^0.1.1" which "^1.3.0" -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-releases@^1.1.29, node-releases@^1.1.44: version "1.1.44" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.44.tgz#cd66438a6eb875e3eb012b6a12e48d9f4326ffd7" @@ -10491,7 +10456,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.6, npm-packlist@^1.4.4: +npm-packlist@^1.4.4: version "1.4.7" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ== @@ -10515,7 +10480,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -11965,16 +11930,6 @@ raw-loader@~0.5.1: resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" integrity sha1-DD0L6u2KAclm2Xh793goElKpeao= -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - react-clientside-effect@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz#6212fb0e07b204e714581dd51992603d1accc837" @@ -12013,18 +11968,16 @@ react-dev-utils@^9.0.0: strip-ansi "5.2.0" text-table "0.2.0" -react-diff-view@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/react-diff-view/-/react-diff-view-1.8.1.tgz#0b9b4adcb92de6730d28177d68654dfcc2097f73" - integrity sha512-+soJL85Xnsak/VOdxSgiDKhhaFiOkckiswwrXdiWVCxV3LP9POyJR4AqGVFGdkntJ3YT63mtwTYuunFeId+XSA== +react-diff-view@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/react-diff-view/-/react-diff-view-2.4.1.tgz#bbeca5746bc8b60b3abab13b3f2f55d37f1430b8" + integrity sha512-PJL5jWvVAlNfihK4QadSJDC2noo04ppJNKgb+m59lAqYoRTFIRvH6+zSiQFN2l+H84MLYIQgBx/xyLDj7pca8w== dependencies: classnames "^2.2.6" - gitdiff-parser "^0.1.2" - leven "^2.1.0" - lodash.escape "^4.0.1" - lodash.findlastindex "^4.6.0" - lodash.mapvalues "^4.6.0" - warning "^4.0.1" + diff-match-patch "^1.0.4" + recompose "^0.30.0" + shallow-equal "^1.2.0" + warning "^4.0.2" react-docgen@^4.1.1: version "4.1.1" @@ -12124,7 +12077,7 @@ react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-i resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== -react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: +react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== @@ -12476,6 +12429,18 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" +recompose@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.30.0.tgz#82773641b3927e8c7d24a0d87d65aeeba18aabd0" + integrity sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w== + dependencies: + "@babel/runtime" "^7.0.0" + change-emitter "^0.1.2" + fbjs "^0.8.1" + hoist-non-react-statics "^2.3.1" + react-lifecycles-compat "^3.0.2" + symbol-observable "^1.0.4" + recursive-readdir@2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" @@ -12868,7 +12833,7 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -13049,7 +13014,7 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -13182,7 +13147,7 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -shallow-equal@^1.1.0: +shallow-equal@^1.1.0, shallow-equal@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== @@ -13797,11 +13762,6 @@ strip-json-comments@^3.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - strong-log-transformer@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" @@ -13908,7 +13868,7 @@ svgo@^1.0.0, svgo@^1.2.2: unquote "~1.1.1" util.promisify "~1.0.0" -symbol-observable@^1.0.3, symbol-observable@^1.2.0: +symbol-observable@^1.0.3, symbol-observable@^1.0.4, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -13955,7 +13915,7 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^4.4.10, tar@^4.4.12, tar@^4.4.2, tar@^4.4.8: +tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -14722,7 +14682,7 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -warning@^4.0.1, warning@^4.0.2, warning@^4.0.3: +warning@^4.0.2, warning@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + - - import org.mockito.Mock; - + import org.mockito.Mock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 7 + - - import org.mockito.Mock; - + import org.mockito.Mock;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + - - import org.mockito.junit.jupiter.MockitoExtension; - + import org.mockito.junit.jupiter.MockitoExtension; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 8 + - - import org.mockito.junit.jupiter.MockitoExtension; - + import org.mockito.junit.jupiter.MockitoExtension;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + - - import sonia.scm.security.SessionId; - + import sonia.scm.security.SessionId; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 9 + - - import sonia.scm.security.SessionId; - + import sonia.scm.security.SessionId;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + - - - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 10 + - - import javax.ws.rs.sse.OutboundSseEvent; - + import javax.ws.rs.sse.OutboundSseEvent; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + - - import javax.ws.rs.sse.OutboundSseEvent; - + import javax.ws.rs.sse.OutboundSseEvent;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 11 + - - import javax.ws.rs.sse.SseEventSink; - + import javax.ws.rs.sse.SseEventSink; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + - - import javax.ws.rs.sse.SseEventSink; - + import javax.ws.rs.sse.SseEventSink;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 12 + - - - + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + - - import java.time.Clock; - + import java.time.Clock; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 13 + - - import java.time.Clock; - + import java.time.Clock;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + - - import java.time.Instant; - + import java.time.Instant; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 14 + - - import java.time.Instant; - + import java.time.Instant;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + - - import java.time.LocalDateTime; - + import java.time.LocalDateTime; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 15 + - - import java.time.LocalDateTime; - + import java.time.LocalDateTime;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + - - import java.time.ZoneOffset; - + import java.time.ZoneOffset; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 16 + - - import java.time.ZoneOffset; - + import java.time.ZoneOffset;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + - - import java.time.temporal.ChronoField; - + import java.time.temporal.ChronoField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 17 + - - import java.time.temporal.ChronoField; - + import java.time.temporal.ChronoField;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + - - import java.time.temporal.ChronoUnit; - + import java.time.temporal.ChronoUnit; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + - - import java.time.temporal.TemporalField; - + import java.time.temporal.TemporalField; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + - - import java.util.concurrent.CompletableFuture; - + import java.util.concurrent.CompletableFuture; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 18 + - - import java.util.concurrent.CompletableFuture; - + import java.util.concurrent.CompletableFuture;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + - - import java.util.concurrent.CompletionStage; - + import java.util.concurrent.CompletionStage; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 19 + - - import java.util.concurrent.CompletionStage; - + import java.util.concurrent.CompletionStage;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + - - import java.util.concurrent.atomic.AtomicLong; - + import java.util.concurrent.atomic.AtomicLong; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 23 + - - import java.util.concurrent.atomic.AtomicReference; - + import java.util.concurrent.atomic.AtomicReference; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 20 + - - import java.util.concurrent.atomic.AtomicReference; - + import java.util.concurrent.atomic.AtomicReference;
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 24 + - - - + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 21 + - - - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 25 + - - import static java.time.temporal.ChronoUnit.MINUTES; - + import static java.time.temporal.ChronoUnit.MINUTES; + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 22 + - - import static java.time.temporal.ChronoUnit.MINUTES; - + import static java.time.temporal.ChronoUnit.MINUTES;
-
+ 83 +
+ + + 80 + +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 84 + - - - + @Test + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 81 + - - - + @Test
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + - - @Test - + @SuppressWarnings("unchecked") - - - @Test - -
- - - @SuppressWarnings("unchecked") - + 82 - - @SuppressWarnings("unchecked") - + @SuppressWarnings("unchecked")
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + - - void shouldCloseEventSinkOnFailure() throws InterruptedException { - + void shouldCloseEventSinkOnFailure() throws InterruptedException { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 83 + - - void shouldCloseEventSinkOnFailure() { - + void shouldCloseEventSinkOnFailure() {
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 87 + - - CompletionStage future = CompletableFuture.supplyAsync(() -> { - + CompletionStage future = CompletableFuture.supplyAsync(() -> { + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 84 + - - CompletionStage future = CompletableFuture.supplyAsync(() -> { - + CompletionStage future = CompletableFuture.supplyAsync(() -> {
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 88 + - - throw new RuntimeException("failed to send message"); - + throw new RuntimeException("failed to send message"); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 85 + - - throw new RuntimeException("failed to send message"); - + throw new RuntimeException("failed to send message");
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + - - }); - + }); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 86 + - - }); - + });
-
+ 91 +
+ + + 88 + +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 92 + - - - + client.send(message); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 89 + - - - + client.send(message);
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + - - client.send(message); - + - - - client.send(message); - -
- - - - + 90 - - - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + - - Thread.sleep(50L); - + Thread.sleep(50L); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 95 + - - - + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 96 + - - verify(eventSink).close(); - + verify(eventSink).close(); + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 91 + - - verify(eventSink, timeout(50L)).close(); - + verify(eventSink, timeout(50L)).close();
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 97 + - - } - + } + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 92 + - - } - + }
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 98 + - - - + + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 93 + - - - +
+ onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 99 + - - @Test - + @Test + onMouseEnter={[Function]} + onMouseLeave={[Function]} + > + 94 + - - @Test - + @Test