2020-03-23 15:35:58 +01:00
/ *
* MIT License
*
* Copyright ( c ) 2020 - present Cloudogu GmbH and Contributors
*
* Permission is hereby granted , free of charge , to any person obtaining a copy
* of this software and associated documentation files ( the "Software" ) , to deal
* in the Software without restriction , including without limitation the rights
* to use , copy , modify , merge , publish , distribute , sublicense , and / or sell
* copies of the Software , and to permit persons to whom the Software is
* furnished to do so , subject to the following conditions :
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software .
*
* THE SOFTWARE IS PROVIDED "AS IS" , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
* IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER
* LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING FROM ,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE .
* /
2019-12-19 09:51:44 +01:00
export default ` diff --git a/src/main/java/com/cloudogu/scm/review/events/EventListener.java b/src/main/java/com/cloudogu/scm/review/events/EventListener.java
index f889f9c . . 95 e3b10 100644
-- - a / src / main / java / com / cloudogu / scm / review / events / EventListener . java
++ + b / src / main / java / com / cloudogu / scm / review / events / EventListener . java
@ @ - 1 , 20 + 1 , 12 @ @
package com . cloudogu . scm . review . events ;
- import com . cloudogu . scm . review . comment . service . BasicComment ;
- import com . cloudogu . scm . review . comment . service . BasicCommentEvent ;
- import com . cloudogu . scm . review . comment . service . CommentEvent ;
- import com . cloudogu . scm . review . comment . service . ReplyEvent ;
import com . cloudogu . scm . review . pullrequest . service . BasicPullRequestEvent ;
import com . cloudogu . scm . review . pullrequest . service . PullRequest ;
- import com . cloudogu . scm . review . pullrequest . service . PullRequestEvent ;
import com . github . legman . Subscribe ;
- import lombok . Data ;
import org . apache . shiro . SecurityUtils ;
import org . apache . shiro . subject . PrincipalCollection ;
import org . apache . shiro . subject . Subject ;
import sonia . scm . EagerSingleton ;
- import sonia . scm . HandlerEventType ;
- import sonia . scm . event . HandlerEvent ;
import sonia . scm . plugin . Extension ;
import sonia . scm . repository . Repository ;
import sonia . scm . security . SessionId ;
diff -- git a / src / main / js / ChangeNotification . tsx b / src / main / js / ChangeNotification . tsx
index f6d61a9 . . 5 f371e4 100644
-- - a / src / main / js / ChangeNotification . tsx
++ + b / src / main / js / ChangeNotification . tsx
@ @ - 2 , 6 + 2 , 7 @ @ import React , { FC , useEffect , useState } from "react" ;
import { Link } from "@scm-manager/ui-types" ;
import { apiClient , Toast , ToastButtons , ToastButton } from "@scm-manager/ui-components" ;
import { PullRequest } from "./types/PullRequest" ;
+ import { useTranslation } from "react-i18next" ;
type HandlerProps = {
url : string ;
@ @ - 15 , 14 + 16 , 19 @ @ const EventNotificationHandler : FC < HandlerProps > = ( { url , reload } ) = > {
pullRequest : setEvent
} ) ;
} , [ url ] ) ;
+ const { t } = useTranslation ( "plugins" ) ;
if ( event ) {
return (
- < Toast type = "warning" title = "New Changes" >
- < p > The underlying Pull - Request has changed . Press reload to see the changes . < / p >
- < p > Warning : Non saved modification will be lost . < / p >
+ < Toast type = "warning" title = { t ( "scm-review-plugin.changeNotification.title" ) } >
+ < p > { t ( "scm-review-plugin.changeNotification.description" ) } < / p >
+ < p > { t ( "scm-review-plugin.changeNotification.modificationWarning" ) } < / p >
< ToastButtons >
- < ToastButton icon = "redo" onClick = { reload } > Reload < / ToastButton >
- < ToastButton icon = "times" onClick = { ( ) = > setEvent ( undefined ) } > Ignore < / ToastButton >
+ < ToastButton icon = "redo" onClick = { reload } >
+ { t ( "scm-review-plugin.changeNotification.buttons.reload" ) }
+ < / ToastButton >
+ < ToastButton icon = "times" onClick = { ( ) = > setEvent ( undefined ) } >
+ { t ( "scm-review-plugin.changeNotification.buttons.ignore" ) }
+ < / ToastButton >
< / ToastButtons >
< / Toast >
) ;
diff -- git a / src / main / resources / locales / de / plugins . json b / src / main / resources / locales / de / plugins . json
index 80 f84a1 . . 2 c63ab3 100644
-- - a / src / main / resources / locales / de / plugins . json
++ + b / src / main / resources / locales / de / plugins . json
@ @ - 181 , 6 + 181 , 15 @ @
"titleClickable" : "Der Kommentar bezieht sich auf eine ältere Version des Source- oder Target-Branches. Klicken Sie hier, um den ursprünglichen Kontext zu sehen."
}
}
+ } ,
+ "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"
+ }
}
} ,
"permissions" : {
diff -- git a / src / main / resources / locales / en / plugins . json b / src / main / resources / locales / en / plugins . json
index d020fcd . . e3c1630 100644
-- - a / src / main / resources / locales / en / plugins . json
++ + b / src / main / resources / locales / en / plugins . json
@ @ - 181 , 6 + 181 , 15 @ @
"titleClickable" : "The comment is related to an older of the source or target branch. Click here to see the original context."
}
}
+ } ,
+ "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"
+ }
}
} ,
"permissions" : {
diff -- git a / src / test / java / com / cloudogu / scm / review / events / ClientTest . java b / src / test / java / com / cloudogu / scm / review / events / ClientTest . java
index 889 cc49 . . d5a4811 100644
-- - a / src / test / java / com / cloudogu / scm / review / events / ClientTest . java
++ + b / src / test / java / com / cloudogu / scm / review / events / ClientTest . java
@ @ - 7 , 19 + 7 , 16 @ @ import org . mockito . Answers ;
import org . mockito . Mock ;
import org . mockito . junit . jupiter . MockitoExtension ;
import sonia . scm . security . SessionId ;
+
import javax . ws . rs . sse . OutboundSseEvent ;
import javax . ws . rs . sse . SseEventSink ;
-
import java . time . Clock ;
import java . time . Instant ;
import java . time . LocalDateTime ;
import java . time . ZoneOffset ;
import java . time . temporal . ChronoField ;
- import java . time . temporal . ChronoUnit ;
- import java . time . temporal . TemporalField ;
import java . util . concurrent . CompletableFuture ;
import java . util . concurrent . CompletionStage ;
- import java . util . concurrent . atomic . AtomicLong ;
import java . util . concurrent . atomic . AtomicReference ;
import static java . time . temporal . ChronoUnit . MINUTES ;
@ @ - 83 , 7 + 80 , 7 @ @ class ClientTest {
@Test
@SuppressWarnings ( "unchecked" )
- void shouldCloseEventSinkOnFailure ( ) throws InterruptedException {
+ void shouldCloseEventSinkOnFailure() {
CompletionStage future = CompletableFuture . supplyAsync ( ( ) - > {
throw new RuntimeException ( "failed to send message" ) ;
} ) ;
@ @ - 91 , 9 + 88 , 7 @ @ class ClientTest {
client . send ( message ) ;
- Thread . sleep ( 50 L ) ;
-
- verify ( eventSink ) . close ( ) ;
+ verify ( eventSink , timeout ( 50 L ) ) . close ( ) ;
}
@Test
2020-01-08 14:01:02 +01:00
diff -- git a / Main . java b / Main . java
index e77e6da . . f183b7c 100644
-- - a / Main . java
++ + b / Main . java
@ @ - 1 , 9 + 1 , 18 @ @
+ import java . io . PrintStream ;
import java . util . Arrays ;
class Main {
+ private static final PrintStream OUT = System . out ;
+
public static void main ( String [ ] args ) {
+ << << << < HEAD
System . out . println ( "Expect nothing more to happen." ) ;
System . out . println ( "The command line parameters are:" ) ;
Arrays . stream ( args ) . map ( arg - > "- " + arg ) . forEach ( System . out : : println ) ;
+= === ===
+ OUT . println ( "Expect nothing more to happen." ) ;
+ OUT . println ( "Parameters:" ) ;
+ Arrays . stream ( args ) . map ( arg - > "- " + arg ) . forEach ( OUT : : println ) ;
+ >>> >>> > feature / use_constant
}
}
2019-12-19 09:51:44 +01:00
` ;