Observe-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- 7199 discussions
Tony CHEMIT deleted branch release/7.0-RC-21 at ultreiaio / ird-observe
--
You're receiving this email because of your account on gitlab.com.
1
0
Tony CHEMIT pushed new tag v7.0-RC-21 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/tree/v7.0-RC-21
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][release/7.0-RC-21] [jgitflow-maven-plugin]updating poms for branch'release/7.0-RC-21' with…
by Tony CHEMIT 20 Sep '18
by Tony CHEMIT 20 Sep '18
20 Sep '18
Tony CHEMIT pushed to branch release/7.0-RC-21 at ultreiaio / ird-observe
Commits:
97d9e1a9 by Tony CHEMIT at 2018-09-20T22:43:22Z
[jgitflow-maven-plugin]updating poms for branch'release/7.0-RC-21' with non-snapshot versions[skip ci]
- - - - -
13 changed files:
- client-configuration/pom.xml
- client/pom.xml
- dto/pom.xml
- observe/pom.xml
- persistence/pom.xml
- pom.xml
- server-configuration/pom.xml
- server/pom.xml
- services-client/pom.xml
- services-local/pom.xml
- services/pom.xml
- test/pom.xml
- validation/pom.xml
Changes:
=====================================
client-configuration/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>client-configuration</artifactId>
=====================================
client/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>client</artifactId>
=====================================
dto/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>dto</artifactId>
=====================================
observe/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>observe</artifactId>
=====================================
persistence/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>persistence</artifactId>
=====================================
pom.xml
=====================================
@@ -31,7 +31,7 @@
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
<packaging>pom</packaging>
<name>ObServe :: Pom</name>
=====================================
server-configuration/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>server-configuration</artifactId>
=====================================
server/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>server</artifactId>
=====================================
services-client/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>services-client</artifactId>
=====================================
services-local/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>services-local</artifactId>
=====================================
services/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>services</artifactId>
=====================================
test/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>test</artifactId>
=====================================
validation/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-21</version>
</parent>
<artifactId>validation</artifactId>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/97d9e1a92867798068cba0c9c2c…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/97d9e1a92867798068cba0c9c2c…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][master-7.x] 27 commits: [jgitflow-maven-plugin]updating poms for 7.0-RC-21-SNAPSHOT development[skip ci]
by Tony CHEMIT 20 Sep '18
by Tony CHEMIT 20 Sep '18
20 Sep '18
Tony CHEMIT pushed to branch master-7.x at ultreiaio / ird-observe
Commits:
02eeb69d by Tony CHEMIT at 2018-09-18T02:58:51Z
[jgitflow-maven-plugin]updating poms for 7.0-RC-21-SNAPSHOT development[skip ci]
- - - - -
bc7e590c by Tony CHEMIT at 2018-09-18T03:06:40Z
[jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts[skip ci]
- - - - -
0484ac19 by Tony CHEMIT at 2018-09-18T03:06:40Z
[jgitflow-maven-plugin]merging 'master-7.x' into 'develop-7.x'
- - - - -
1fe7c6c4 by Tony CHEMIT at 2018-09-18T03:06:41Z
[jgitflow-maven-plugin]Updating develop poms back to pre merge state[skip ci]
- - - - -
9b294447 by Tony CHEMIT at 2018-09-18T09:10:37Z
En mode serveur, la boîte d'information sur la connexion n'indique pas la BD (alias) à laquelle on est connecté - Closes #1057
- - - - -
e5843b1b by Tony CHEMIT at 2018-09-18T09:10:37Z
use last pom
- - - - -
e298675a by Tony CHEMIT at 2018-09-18T21:40:06Z
use topia-extension project
- - - - -
ad130f51 by Tony CHEMIT at 2018-09-18T21:40:08Z
clean stream api
- - - - -
2b539ff5 by Tony CHEMIT at 2018-09-18T21:40:08Z
La suppression d'une espèce avec remplacement de code échoue - Closes #1060
La suppression d'océan avec remplacement de code pose problème - Closes #1061
La suppression d'un sexe avec remplacement de code échoue - Closes #1062
- - - - -
2f98d82d by Tony CHEMIT at 2018-09-18T22:32:51Z
L'UI de synchro de référentiels ne présente plus les éléments à synchroniser qu'un par un - See #1058
- - - - -
c49a8186 by Tony CHEMIT at 2018-09-18T23:21:13Z
L'UI de synchro de référentiels ne présente plus les éléments à synchroniser qu'un par un - Closes #1058
- - - - -
9e6160fe by Tony CHEMIT at 2018-09-19T04:51:49Z
Only remove program node if it is enabled (otherwise it is not in navigation tree)
- - - - -
295ce509 by Tony CHEMIT at 2018-09-19T04:51:51Z
[SYNCHRO] Problème avec la synchro avancée d'un programme - Closes #1063
- - - - -
8ef8691f by Tony CHEMIT at 2018-09-19T06:59:13Z
[SYNCHRO] La synchro avancée d'une marée nécessitant une référence absente dans la base cible provoque une exception - Closes #1064
- - - - -
bc64ef42 by Tony CHEMIT at 2018-09-19T06:59:15Z
L'UI de remplacement de code de référentiel dépasse parfois les limites de l'écran - Closes #1059
- - - - -
556f5d2a by Tony CHEMIT at 2018-09-19T14:46:06Z
remove EntityMap class
- - - - -
1b0f5e65 by Tony CHEMIT at 2018-09-20T15:33:43Z
Use topia-extension usage support to compute usages (see #1066)
- - - - -
f193d8a5 by Tony CHEMIT at 2018-09-20T15:35:33Z
use new topia metadata model feature to generate clean sql statements (See #1065)
- - - - -
699e9f79 by Tony CHEMIT at 2018-09-20T15:57:42Z
improve logs (validators are now warns a lot too much :()
- - - - -
ee5c5ef0 by Tony CHEMIT at 2018-09-20T16:28:44Z
[LL] Après migration l'UI v7 n'affiche plus qu'une seule des captures de chaque opération de pêche - Closes #1068
- - - - -
1fd32665 by Tony CHEMIT at 2018-09-20T18:28:57Z
Add more accelerator on referential nb synchro config ui
- - - - -
4f6ea307 by Tony CHEMIT at 2018-09-20T18:29:16Z
fix parameter order to generate update sql statement
- - - - -
7e6a822d by Tony CHEMIT at 2018-09-20T20:40:35Z
fix a missing decorator
- - - - -
4ff135c9 by Tony CHEMIT at 2018-09-20T20:41:25Z
Suppression de la configuration d'ajout de référentiels dans les deux actions de synchronisation de données + réusinage du code commun aux deux actions
- - - - -
db9f5e24 by Tony CHEMIT at 2018-09-20T21:19:29Z
use last pom and topia-extension
- - - - -
97d9e1a9 by Tony CHEMIT at 2018-09-20T22:43:22Z
[jgitflow-maven-plugin]updating poms for branch'release/7.0-RC-21' with non-snapshot versions[skip ci]
- - - - -
bdc3be40 by Tony CHEMIT at 2018-09-20T22:49:39Z
[jgitflow-maven-plugin]merging 'release/7.0-RC-21' into 'master-7.x'
- - - - -
30 changed files:
- client-configuration/pom.xml
- client-configuration/src/main/resources/log4j2.xml
- client-configuration/src/main/resources/observe-log4j2.xml
- client/pom.xml
- client/src/main/ftl/dataSourceInformation_en.ftl
- client/src/main/ftl/dataSourceInformation_es.ftl
- client/src/main/ftl/dataSourceInformation_fr.ftl
- client/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java
- client/src/main/java/fr/ird/observe/client/ui/ObserveKeyStrokes.java
- client/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportModel.java
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUI.jaxx
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUI.jcss
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroModel.java
- client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/ReferentialSynchroUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/content/ref/ContentReferenceUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/content/ref/usage/UsageForDeleteUI.jaxx
- client/src/main/java/fr/ird/observe/client/ui/content/ref/usage/UsageForDesactivateUI.jaxx
- client/src/main/java/fr/ird/observe/client/ui/content/ref/usage/UsageForDisplayUI.jaxx
- client/src/main/java/fr/ird/observe/client/ui/util/UIHelper.java
- client/src/main/resources/i18n/client_en_GB.properties
- client/src/main/resources/i18n/client_es_ES.properties
- client/src/main/resources/i18n/client_fr_FR.properties
- dto/pom.xml
- dto/src/main/java/fr/ird/observe/dto/data/seine/RouteDto.java
- dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java
- observe/pom.xml
- persistence/pom.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/612c0b059fe2af70f3efc0256e…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/612c0b059fe2af70f3efc0256e…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] 5 commits: [jgitflow-maven-plugin]updating poms for branch'release/7.0-RC-21' with…
by Tony CHEMIT 20 Sep '18
by Tony CHEMIT 20 Sep '18
20 Sep '18
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
97d9e1a9 by Tony CHEMIT at 2018-09-20T22:43:22Z
[jgitflow-maven-plugin]updating poms for branch'release/7.0-RC-21' with non-snapshot versions[skip ci]
- - - - -
bdc3be40 by Tony CHEMIT at 2018-09-20T22:49:39Z
[jgitflow-maven-plugin]merging 'release/7.0-RC-21' into 'master-7.x'
- - - - -
0f57323c by Tony CHEMIT at 2018-09-20T22:49:43Z
[jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts[skip ci]
- - - - -
bebd9a62 by Tony CHEMIT at 2018-09-20T22:49:44Z
[jgitflow-maven-plugin]merging 'master-7.x' into 'develop-7.x'
- - - - -
d1e7c51b by Tony CHEMIT at 2018-09-20T22:49:44Z
[jgitflow-maven-plugin]Updating develop poms back to pre merge state[skip ci]
- - - - -
0 changed files:
Changes:
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/5997d45ec93200e0dd8d558c79…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/5997d45ec93200e0dd8d558c79…
You're receiving this email because of your account on gitlab.com.
1
0
20 Sep '18
Tony CHEMIT pushed new branch release/7.0-RC-21 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/tree/release/7.0-RC-21
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] [jgitflow-maven-plugin]updating poms for 7.0-RC-22-SNAPSHOT development[skip ci]
by Tony CHEMIT 20 Sep '18
by Tony CHEMIT 20 Sep '18
20 Sep '18
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
5997d45e by Tony CHEMIT at 2018-09-20T22:23:43Z
[jgitflow-maven-plugin]updating poms for 7.0-RC-22-SNAPSHOT development[skip ci]
- - - - -
13 changed files:
- client-configuration/pom.xml
- client/pom.xml
- dto/pom.xml
- observe/pom.xml
- persistence/pom.xml
- pom.xml
- server-configuration/pom.xml
- server/pom.xml
- services-client/pom.xml
- services-local/pom.xml
- services/pom.xml
- test/pom.xml
- validation/pom.xml
Changes:
=====================================
client-configuration/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>client-configuration</artifactId>
=====================================
client/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>client</artifactId>
=====================================
dto/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>dto</artifactId>
=====================================
observe/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>observe</artifactId>
=====================================
persistence/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>persistence</artifactId>
=====================================
pom.xml
=====================================
@@ -31,7 +31,7 @@
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
<packaging>pom</packaging>
<name>ObServe :: Pom</name>
=====================================
server-configuration/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>server-configuration</artifactId>
=====================================
server/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>server</artifactId>
=====================================
services-client/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>services-client</artifactId>
=====================================
services-local/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>services-local</artifactId>
=====================================
services/pom.xml
=====================================
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>services</artifactId>
=====================================
test/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>test</artifactId>
=====================================
validation/pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>fr.ird.observe</groupId>
<artifactId>ird-observe</artifactId>
- <version>7.0-RC-21-SNAPSHOT</version>
+ <version>7.0-RC-22-SNAPSHOT</version>
</parent>
<artifactId>validation</artifactId>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/5997d45ec93200e0dd8d558c798…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/5997d45ec93200e0dd8d558c798…
You're receiving this email because of your account on gitlab.com.
1
0
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
27cee384 by Tony CHEMIT at 2018-09-20T21:39:05Z
use last pom
- - - - -
8a5dc471 by Tony CHEMIT at 2018-09-20T21:39:06Z
clean stream api
- - - - -
afa006b5 by Tony CHEMIT at 2018-09-20T21:39:06Z
La suppression d'une espèce avec remplacement de code échoue - Closes #1060
La suppression d'océan avec remplacement de code pose problème - Closes #1061
La suppression d'un sexe avec remplacement de code échoue - Closes #1062
- - - - -
a6c3f482 by Tony CHEMIT at 2018-09-20T21:39:38Z
L'UI de synchro de référentiels ne présente plus les éléments à synchroniser qu'un par un - See #1058
- - - - -
c4d4d144 by Tony CHEMIT at 2018-09-20T21:39:56Z
L'UI de synchro de référentiels ne présente plus les éléments à synchroniser qu'un par un - Closes #1058
- - - - -
c584d205 by Tony CHEMIT at 2018-09-20T21:42:54Z
Only remove program node if it is enabled (otherwise it is not in navigation tree)
- - - - -
97932c26 by Tony CHEMIT at 2018-09-20T21:43:12Z
[SYNCHRO] Problème avec la synchro avancée d'un programme - Closes #1063
- - - - -
1c6911bf by Tony CHEMIT at 2018-09-20T21:51:47Z
[SYNCHRO] La synchro avancée d'une marée nécessitant une référence absente dans la base cible provoque une exception - Closes #1064
- - - - -
b1bdef9b by Tony CHEMIT at 2018-09-20T21:52:12Z
L'UI de remplacement de code de référentiel dépasse parfois les limites de l'écran - Closes #1059
- - - - -
d9519a0d by Tony CHEMIT at 2018-09-20T21:52:28Z
remove EntityMap class
- - - - -
3b2a79fe by Tony CHEMIT at 2018-09-20T21:55:17Z
Use topia-extension usage support to compute usages (see #1066)
- - - - -
56066f62 by Tony CHEMIT at 2018-09-20T21:56:19Z
use new topia metadata model feature to generate clean sql statements (See #1065)
- - - - -
e51e349e by Tony CHEMIT at 2018-09-20T21:56:32Z
improve logs (validators are now warns a lot too much :()
- - - - -
52266f0e by Tony CHEMIT at 2018-09-20T21:58:16Z
[LL] Après migration l'UI v7 n'affiche plus qu'une seule des captures de chaque opération de pêche - Closes #1068
- - - - -
fa10436f by Tony CHEMIT at 2018-09-20T21:58:33Z
Add more accelerator on referential nb synchro config ui
- - - - -
59bfe7b2 by Tony CHEMIT at 2018-09-20T21:58:44Z
fix parameter order to generate update sql statement
- - - - -
866e60a5 by Tony CHEMIT at 2018-09-20T22:01:42Z
fix a missing decorator
- - - - -
0b8b734a by Tony CHEMIT at 2018-09-20T22:02:00Z
Suppression de la configuration d'ajout de référentiels dans les deux actions de synchronisation de données + réusinage du code commun aux deux actions
- - - - -
30 changed files:
- client-configuration/src/main/resources/log4j2.xml
- client-configuration/src/main/resources/observe-log4j2.xml
- client/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java
- client/src/main/java/fr/ird/observe/client/ui/ObserveKeyStrokes.java
- client/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportModel.java
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUI.jaxx
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUI.jcss
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroModel.java
- client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/referential/ng/ReferentialSynchroUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/content/ref/ContentReferenceUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/content/ref/usage/UsageForDeleteUI.jaxx
- client/src/main/java/fr/ird/observe/client/ui/content/ref/usage/UsageForDesactivateUI.jaxx
- client/src/main/java/fr/ird/observe/client/ui/content/ref/usage/UsageForDisplayUI.jaxx
- client/src/main/java/fr/ird/observe/client/ui/util/UIHelper.java
- client/src/main/resources/i18n/client_en_GB.properties
- client/src/main/resources/i18n/client_es_ES.properties
- client/src/main/resources/i18n/client_fr_FR.properties
- dto/src/main/java/fr/ird/observe/dto/data/seine/RouteDto.java
- dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java
- persistence/pom.xml
- persistence/src/main/java/fr/ird/observe/persistence/ObserveTopiaApplicationContext.java
- persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java
- persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0.java
- pom.xml
- server-configuration/src/main/resources/log4j2.xml
- server-configuration/src/main/resources/observeweb-log4j2.xml
- server/src/main/filtered-resources/mapping
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/68a1691bf5ce55bdc6c9127a20…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/68a1691bf5ce55bdc6c9127a20…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] use last pom and topia-extension
by Tony CHEMIT 20 Sep '18
by Tony CHEMIT 20 Sep '18
20 Sep '18
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
db9f5e24 by Tony CHEMIT at 2018-09-20T21:19:29Z
use last pom and topia-extension
- - - - -
1 changed file:
- pom.xml
Changes:
=====================================
pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2018.57</version>
+ <version>2018.58</version>
</parent>
<groupId>fr.ird.observe</groupId>
@@ -152,7 +152,7 @@
<maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format>
<buildDate>${maven.build.timestamp}</buildDate>
- <observeToolkitVersion>3.7.8-SNAPSHOT</observeToolkitVersion>
+ <observeToolkitVersion>3.7.8</observeToolkitVersion>
<!--<lib.version.java4all.http>1.0.13</lib.version.java4all.http>-->
<lib.version.nuiton.validation>3.1</lib.version.nuiton.validation>
<!--<lib.version.java4all.config>1.0.3</lib.version.java4all.config>-->
@@ -162,7 +162,7 @@
<lib.version.h2>1.4.196</lib.version.h2>
<!--<lib.version.nuiton.topia>3.6-SNAPSHOT</lib.version.nuiton.topia>-->
<!--<lib.version.java4all.eugene>3.0-alpha-21</lib.version.java4all.eugene>-->
- <lib.version.java4all.topia>1.1.8-SNAPSHOT</lib.version.java4all.topia>
+ <!--<lib.version.java4all.topia>1.1.9-SNAPSHOT</lib.version.java4all.topia>-->
<!-- license header configuration -->
<license.licenseName>gpl_v3</license.licenseName>
<license.organizationName>IRD, Code Lutin, Ultreia.io</license.organizationName>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/db9f5e24d58519442e33c8ac410…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/db9f5e24d58519442e33c8ac410…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] 2 commits: fix a missing decorator
by Tony CHEMIT 20 Sep '18
by Tony CHEMIT 20 Sep '18
20 Sep '18
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
7e6a822d by Tony CHEMIT at 2018-09-20T20:40:35Z
fix a missing decorator
- - - - -
4ff135c9 by Tony CHEMIT at 2018-09-20T20:41:25Z
Suppression de la configuration d'ajout de référentiels dans les deux actions de synchronisation de données + réusinage du code commun aux deux actions
- - - - -
13 changed files:
- client/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportModel.java
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUI.jaxx
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUI.jcss
- client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroModel.java
- client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroUI.jaxx
- client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroUI.jcss
- client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroUIHandler.java
- client/src/main/resources/i18n/client_en_GB.properties
- client/src/main/resources/i18n/client_es_ES.properties
- client/src/main/resources/i18n/client_fr_FR.properties
- dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java
Changes:
=====================================
client/src/main/java/fr/ird/observe/client/ui/admin/AdminTabUIHandler.java
=====================================
@@ -25,10 +25,16 @@ import fr.ird.observe.client.ObserveRunner;
import fr.ird.observe.client.ObserveSwingApplicationContext;
import fr.ird.observe.client.db.ObserveSwingDataSource;
import fr.ird.observe.client.ui.admin.resume.ShowResumeUI;
+import fr.ird.observe.client.ui.content.ref.usage.UsageForDisplayUI;
+import fr.ird.observe.client.ui.util.ProgressModel;
+import fr.ird.observe.client.ui.util.UIHelper;
import fr.ird.observe.dto.I18nEnumHelper;
import fr.ird.observe.dto.decoration.DecoratorService;
+import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator;
import fr.ird.observe.dto.reference.DataDtoReference;
+import fr.ird.observe.dto.reference.DtoReference;
+import fr.ird.observe.dto.reference.ReferentialDtoReference;
import fr.ird.observe.dto.referential.ProgramReference;
import fr.ird.observe.services.service.BabModelVersionException;
import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException;
@@ -36,14 +42,23 @@ import fr.ird.observe.services.service.DatabaseNotFoundException;
import fr.ird.observe.services.service.data.DeleteTripResult;
import fr.ird.observe.services.service.data.ExportTripResult;
import fr.ird.observe.services.service.data.ImportTripResult;
+import fr.ird.observe.services.service.referential.MissingReferentialRequest;
+import fr.ird.observe.services.service.referential.MissingReferentialResult;
+import fr.ird.observe.services.service.referential.ReferentialService;
+import fr.ird.observe.spi.map.ImmutableSetDtoMap;
+import fr.ird.observe.spi.map.ImmutableSetStringMap;
import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.nuiton.decorator.Decorator;
import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
import org.nuiton.util.StringUtil;
+import javax.swing.JOptionPane;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.util.Collection;
+import java.util.Set;
import java.util.concurrent.Callable;
import static org.nuiton.i18n.I18n.n;
@@ -65,7 +80,7 @@ public class AdminTabUIHandler<U extends AdminTabUI> {
protected AdminUI parentUI;
/** Service de decoration. */
- private DecoratorService decoratorService;
+ protected DecoratorService decoratorService;
public void beforeInit(U ui) {
this.ui = ui;
@@ -181,12 +196,13 @@ public class AdminTabUIHandler<U extends AdminTabUI> {
}
protected void logExportResult(String i18nKey,
+ String sourceLabel,
ExportTripResult tripResult,
ReferentialReferenceDecorator programDecorator,
ProgramReference program,
DataDtoReference trip) {
- String message = sendLogResultMessage(i18nKey, programDecorator, program, trip, tripResult.getTime());
+ String message = sendLogResultMessage(i18nKey, sourceLabel, programDecorator, program, trip, tripResult.getTime());
if (log.isInfoEnabled()) {
log.info(message);
}
@@ -196,6 +212,7 @@ public class AdminTabUIHandler<U extends AdminTabUI> {
protected void logImportResult(String importI18nKey,
String deleteI18nKey,
+ String sourceLabel,
ImportTripResult tripResult,
ReferentialReferenceDecorator programDecorator,
ProgramReference program,
@@ -203,7 +220,7 @@ public class AdminTabUIHandler<U extends AdminTabUI> {
if (tripResult.isDeleted()) {
- String message = sendLogResultMessage(deleteI18nKey, programDecorator, program, trip, tripResult.getDeleteTime());
+ String message = sendLogResultMessage(deleteI18nKey, sourceLabel, programDecorator, program, trip, tripResult.getDeleteTime());
if (log.isInfoEnabled()) {
log.info(message);
}
@@ -212,7 +229,7 @@ public class AdminTabUIHandler<U extends AdminTabUI> {
if (tripResult.isImported()) {
- String message = sendLogResultMessage(importI18nKey, programDecorator, program, trip, tripResult.getImportTime());
+ String message = sendLogResultMessage(importI18nKey, sourceLabel, programDecorator, program, trip, tripResult.getImportTime());
if (log.isInfoEnabled()) {
log.info(message);
}
@@ -222,12 +239,13 @@ public class AdminTabUIHandler<U extends AdminTabUI> {
}
protected void logDeleteResult(String deleteI18nKey,
+ String sourceLabel,
DeleteTripResult tripResult,
ReferentialReferenceDecorator programDecorator,
ProgramReference program,
DataDtoReference trip) {
- String message = sendLogResultMessage(deleteI18nKey, programDecorator, program, trip, tripResult.getTime());
+ String message = sendLogResultMessage(deleteI18nKey, sourceLabel, programDecorator, program, trip, tripResult.getTime());
if (log.isInfoEnabled()) {
log.info(message);
}
@@ -235,7 +253,7 @@ public class AdminTabUIHandler<U extends AdminTabUI> {
}
protected String sendLogResultMessage(String i18nKey,
- ReferentialReferenceDecorator programDecorator,
+ String sourceLabel, ReferentialReferenceDecorator programDecorator,
ProgramReference program,
DataDtoReference trip,
long time) {
@@ -244,9 +262,60 @@ public class AdminTabUIHandler<U extends AdminTabUI> {
String programStr = programDecorator.toString(program);
String tripStr = decoratorService.getDataReferenceDecorator(trip.getReferenceType()).toString(trip);
String timeStr = StringUtil.convertTime(time);
- String message = StringUtils.leftPad(timeStr, 20) + " - " + t(i18nKey, programStr, tripStr);
+ String message = StringUtils.leftPad(timeStr, 20) + " - " + t(i18nKey, sourceLabel, programStr, tripStr);
sendMessage(message);
return message;
}
+ protected WizardState prepareCopy(ProgressModel progressModel, ObserveSwingDataSource centralSource, String centralSourceLabel, ObserveSwingDataSource targetSource, String targetSourceLabel, Collection<String> idsToCopy) {
+
+ progressModel.incrementsCurrentStep();
+
+ ReferentialService targetReferentialService = targetSource.getReferentialService();
+ ImmutableSetStringMap targetSourceReferential = targetReferentialService.getReferentialIds();
+ MissingReferentialRequest missingReferentialRequest = MissingReferentialRequest.of(targetSourceReferential, idsToCopy.toArray(new String[0]));
+ MissingReferentialResult missingReferentialResult = centralSource.getReferentialService().computeMissingReferential(missingReferentialRequest);
+
+ progressModel.incrementsCurrentStep();
+
+ if (missingReferentialResult == null) {
+ progressModel.incrementsCurrentStep();
+ return WizardState.SUCCESSED;
+ }
+
+ // there is some referential to add to target source
+
+ String message = t("observe.message.show.usage.for.missingReferentials2", centralSourceLabel, targetSourceLabel);
+
+ ImmutableSetDtoMap<ReferentialDtoReference> usages = centralSource.getReferentialMap(missingReferentialResult.getMissingIds());
+ UsageForDisplayUI usagesUI = UsageForDisplayUI.build(message, usages);
+
+ int response = UIHelper.askUser(null,
+ t("observe.title.can.not.export.data2", targetSourceLabel),
+ usagesUI,
+ JOptionPane.WARNING_MESSAGE,
+ new Object[]{
+ t("observe.choice.confirm.insert"),
+ t("observe.choice.cancel")},
+ 0);
+
+ if (response != 0) {
+ return WizardState.CANCELED;
+ }
+
+ log.info(String.format("Base «%s» - Insertion des référentiels manquants.", targetSourceLabel));
+
+ for (Class<? extends ReferentialDtoReference> key : usages.referentialReferenceTypes()) {
+ Set<? extends ReferentialDtoReference> references = usages.get(key);
+ String type = t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(key));
+ sendMessage(t("observe.actions.exportData.message.add.missing.referentials2", targetSourceLabel, references.size(), type));
+ Decorator decorator = decoratorService.getReferenceDecorator(key);
+ for (DtoReference reference : references) {
+ sendMessage(t("observe.actions.exportData.message.add.missing.referential", decorator.toString(reference)));
+ }
+ }
+ progressModel.incrementsCurrentStep();
+ targetReferentialService.insertMissingReferential(missingReferentialResult.getSqlCode());
+ return WizardState.SUCCESSED;
+ }
}
=====================================
client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportModel.java
=====================================
@@ -61,7 +61,6 @@ public class ExportModel extends AdminActionModel {
protected ObserveSwingDataSource centralSource;
- protected boolean insertMissingReferentials;
private final ProgressModel progressModel = new ProgressModel();
public ExportModel() {
@@ -129,15 +128,6 @@ public class ExportModel extends AdminActionModel {
}
- public boolean isInsertMissingReferentials() {
- return insertMissingReferentials;
- }
-
- public void setInsertMissingReferentials(boolean insertMissingReferentials) {
- this.insertMissingReferentials = insertMissingReferentials;
- firePropertyChange("insertMissingReferential", null, insertMissingReferentials);
- }
-
public boolean validate(AdminUIModel uiModel) {
return uiModel.validate(AdminStep.SELECT_DATA) && uiModel.getStepState(step) == WizardState.SUCCESSED;
}
=====================================
client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUI.jaxx
=====================================
@@ -64,9 +64,6 @@ public void updateState(WizardState newState) {
<JPanel id='NEED_FIX_content'>
- <JCheckBox id="insertMissingReferentials" constraints='BorderLayout.NORTH'
- onStateChanged='getStepModel().setInsertMissingReferentials(((JCheckBox)event.getSource()).isSelected())'/>
-
<!-- la liste des trips -->
<JScrollPane id='tripPane' constraints='BorderLayout.CENTER'>
<JTable id='trips'/>
=====================================
client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUI.jcss
=====================================
@@ -46,8 +46,3 @@
columnHeaderView:{trips.getTableHeader()};
verticalScrollBarPolicy:{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED};
}
-
-#insertMissingReferentials {
- text:"observe.action.export.requiredInsertMissingReferentials";
- selected:{stepModel.isInsertMissingReferentials()};
-}
=====================================
client/src/main/java/fr/ird/observe/client/ui/admin/export/ExportUIHandler.java
=====================================
@@ -6,15 +6,15 @@
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
+ * published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
+ *
+ * You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
@@ -27,46 +27,35 @@ import fr.ird.observe.client.ui.ObserveKeyStrokes;
import fr.ird.observe.client.ui.admin.AdminStep;
import fr.ird.observe.client.ui.admin.AdminTabUIHandler;
import fr.ird.observe.client.ui.admin.AdminUIModel;
+import fr.ird.observe.client.ui.admin.config.ConfigModel;
import fr.ird.observe.client.ui.admin.config.ConfigUI;
-import fr.ird.observe.client.ui.content.ref.usage.UsageForDisplayUI;
import fr.ird.observe.client.ui.tree.selection.SelectionTreeModel;
import fr.ird.observe.client.ui.util.ProgressModel;
import fr.ird.observe.client.ui.util.UIHelper;
import fr.ird.observe.dto.data.longline.TripLonglineReference;
import fr.ird.observe.dto.data.seine.TripSeineReference;
import fr.ird.observe.dto.decoration.DecoratorService;
-import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator;
import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator;
-import fr.ird.observe.dto.reference.DtoReference;
-import fr.ird.observe.dto.reference.ReferentialDtoReference;
import fr.ird.observe.dto.referential.ProgramReference;
import fr.ird.observe.services.service.data.ExportTripRequest;
import fr.ird.observe.services.service.data.ExportTripResult;
import fr.ird.observe.services.service.data.ImportTripRequest;
import fr.ird.observe.services.service.data.ImportTripResult;
import fr.ird.observe.services.service.data.TripManagementService;
-import fr.ird.observe.services.service.referential.MissingReferentialRequest;
-import fr.ird.observe.services.service.referential.MissingReferentialResult;
-import fr.ird.observe.services.service.referential.ReferentialService;
-import fr.ird.observe.spi.map.ImmutableSetDtoMap;
-import fr.ird.observe.spi.map.ImmutableSetStringMap;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import org.nuiton.decorator.Decorator;
import org.nuiton.jaxx.runtime.spi.UIHandler;
import org.nuiton.jaxx.runtime.swing.editor.MyDefaultCellEditor;
import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
-import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Date;
import java.util.List;
-import java.util.Set;
import java.util.stream.Collectors;
import static org.nuiton.i18n.I18n.n;
@@ -157,18 +146,14 @@ public class ExportUIHandler extends AdminTabUIHandler<ExportUI> implements UIHa
}
}
- public void doPrepareAction() {
-
+ void doPrepareAction() {
addAdminWorker(ui.getPrepareAction().getToolTipText(), this::doPrepareAction0);
}
public void doStartAction() {
-
int[] rows = ui.getTripsModel().getSelected();
ui.getModel().getExportModel().setExportDataSelectedIndex(rows);
-
addAdminWorker(ui.getStartAction().getToolTipText(), this::doStartAction0);
-
}
private WizardState doPrepareAction0() throws Exception {
@@ -232,8 +217,9 @@ public class ExportUIHandler extends AdminTabUIHandler<ExportUI> implements UIHa
AdminUIModel model = ui.getModel();
ExportModel stepModel = model.getExportModel();
-
- boolean insertMissingReferentials = stepModel.isInsertMissingReferentials();
+ ConfigModel configModel = model.getConfigModel();
+ String sourceSourceLabel = configModel.getLocalSourceModel().getLabelWithUrl().substring(configModel.getLocalSourceModel().getLabel().length());
+ String centralSourceLabel = configModel.getCentralSourceModel().getLabelWithUrl().substring(configModel.getCentralSourceModel().getLabel().length());
// on filtre les marées sélectionnées pour export
List<TripEntry> tripEntries = stepModel.getSelectedTrips();
@@ -243,10 +229,7 @@ public class ExportUIHandler extends AdminTabUIHandler<ExportUI> implements UIHa
DecoratorService decoratorService = getDecoratorService();
ReferentialReferenceDecorator<ProgramReference> programDecorator = decoratorService.getReferentialReferenceDecorator(ProgramReference.class);
- int stepCount = 2 + 2 * tripEntries.size();
- if (insertMissingReferentials) {
- stepCount++;
- }
+ int stepCount = 4 + 2 * tripEntries.size();
ProgressModel progressModel = stepModel.getProgressModel();
progressModel.setStepsCount(stepCount);
@@ -261,71 +244,11 @@ public class ExportUIHandler extends AdminTabUIHandler<ExportUI> implements UIHa
TripManagementService centralTripManagementService = centralDataSource.getTripManagementService();
- ReferentialService centralReferentialService = centralDataSource.getReferentialService();
-
- // chargement du référentiel de la base centrale
- if (log.isInfoEnabled()) {
- log.info("Chargement du réferentiel de la base centrale.");
- }
- ImmutableSetStringMap centralSourceReferential = centralReferentialService.getReferentialIds();
-
List<String> tripIds = tripEntries.stream().map(TripEntry::getTripId).collect(Collectors.toList());
- // génération du code sql pour les référentiels manquants
- if (log.isInfoEnabled()) {
- log.info("Chargement de l'enveloppe de référentiels pour les " + tripIds.size() + " marée(s).");
- }
- MissingReferentialRequest missingReferentialRequest = MissingReferentialRequest.of(centralSourceReferential, tripIds.toArray(new String[0]));
- MissingReferentialResult result =
- localDataSource.getReferentialService().computeMissingReferential(missingReferentialRequest);
-
- if (!insertMissingReferentials && result != null) {
-
- // l'export n'est pas possible
- UIHelper.displayWarning(t("observe.title.can.not.export.data"), t("observe.actions.exportData.error.missingReferentialsId"));
- sendMessage(t("observe.actions.exportData.error.missingReferentialsId"));
- return WizardState.CANCELED;
- }
-
- if (insertMissingReferentials && result != null) {
-
- String message = t("observe.message.show.usage.for.missingReferentials");
-
- ImmutableSetDtoMap<ReferentialDtoReference> usages = localDataSource.getReferentialMap(result.getMissingIds());
- UsageForDisplayUI usagesUI = UsageForDisplayUI.build(message, usages);
-
- int reponse = UIHelper.askUser(null,
- t("observe.title.can.not.export.data"),
- usagesUI,
- JOptionPane.WARNING_MESSAGE,
- new Object[]{
- t("observe.choice.confirm.insert"),
- t("observe.choice.cancel")},
- 0);
-
- if (reponse != 0) {
-
- return WizardState.CANCELED;
- }
-
- // insertion des référentiels manquants dans la base centrale
- if (log.isInfoEnabled()) {
- log.info("Insertion dans la base centrale des référentiels manquants.");
- }
-
- for (Class<? extends ReferentialDtoReference> key : usages.referentialReferenceTypes()) {
- Set<? extends ReferentialDtoReference> references = usages.get(key);
- String type = t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(key));
- sendMessage(t("observe.actions.exportData.message.add.missing.referentials", type, references.size()));
- Decorator decorator = decoratorService.getReferenceDecorator(key);
- for (DtoReference reference : references) {
- sendMessage(t("observe.actions.exportData.message.add.missing.referential", decorator.toString(reference)));
- }
- }
-
- progressModel.incrementsCurrentStep();
- centralReferentialService.insertMissingReferential(result.getSqlCode());
-
+ WizardState result = prepareCopy(progressModel, localDataSource, sourceSourceLabel, centralDataSource, centralSourceLabel, tripIds);
+ if (WizardState.CANCELED.equals(result)) {
+ return result;
}
for (TripEntry tripEntry : tripEntries) {
@@ -333,7 +256,8 @@ public class ExportUIHandler extends AdminTabUIHandler<ExportUI> implements UIHa
progressModel.incrementsCurrentStep();
ExportTripRequest exportTripRequest = new ExportTripRequest(false, tripEntry.getProgramId(), tripEntry.getTripId());
ExportTripResult exportTripResult = localTripManagementService.exportTrip(exportTripRequest);
- logExportResult(n("observe.actions.exportData.message.result.export.trip"),
+ logExportResult(n("observe.actions.synchro.data.result.export.trip"),
+ sourceSourceLabel,
exportTripResult,
programDecorator,
tripEntry.getProgram(),
@@ -342,8 +266,9 @@ public class ExportUIHandler extends AdminTabUIHandler<ExportUI> implements UIHa
progressModel.incrementsCurrentStep();
ImportTripRequest importTripRequest = new ImportTripRequest(exportTripResult);
ImportTripResult importTripResult = centralTripManagementService.importTrip(importTripRequest);
- logImportResult(n("observe.actions.exportData.message.result.import.trip"),
- n("observe.actions.exportData.message.result.delete.trip"),
+ logImportResult(n("observe.actions.synchro.data.result.import.trip"),
+ n("observe.actions.synchro.data.result.delete.trip"),
+ centralSourceLabel,
importTripResult,
programDecorator,
tripEntry.getProgram(),
=====================================
client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroModel.java
=====================================
@@ -64,7 +64,7 @@ public class DataSynchroModel extends AdminActionModel {
/** les données sélectionnées sur le panneau de droite. */
protected SelectionTreeModel rightSelectionDataModel;
- protected boolean insertMissingReferentials;
+
protected final DefaultListModel<DataSynchronizeTaskSupport> tasks;
private final ProgressModel progressModel = new ProgressModel();
@@ -131,14 +131,6 @@ public class DataSynchroModel extends AdminActionModel {
return rightSelectionDataModel;
}
- public boolean isInsertMissingReferentials() {
- return insertMissingReferentials;
- }
-
- public void setInsertMissingReferentials(boolean insertMissingReferentials) {
- this.insertMissingReferentials = insertMissingReferentials;
- }
-
public void populateLeftSelectionModel() {
populateSelectionModel(leftSource, leftSelectionDataModel, LEFT_SELECTION_MODEL_CHANGED_PROPERTY_NAME);
}
=====================================
client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroUI.jaxx
=====================================
@@ -49,9 +49,6 @@
</Table>
</JPanel>
<JPanel id='NEED_FIX_content'>
- <JCheckBox id="insertMissingReferentials" constraints='BorderLayout.NORTH'
- onStateChanged='getStepModel().setInsertMissingReferentials(((JCheckBox)event.getSource()).isSelected())'/>
-
<JSplitPane id="contentSplitPane" constraints='BorderLayout.CENTER'>
<Table id='contentNorth' fill="both" weighty="1">
<row>
=====================================
client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroUI.jcss
=====================================
@@ -45,11 +45,6 @@
mnemonic:Q;
}
-#insertMissingReferentials {
- text:"observe.action.export.requiredInsertMissingReferentials";
- selected:{stepModel.isInsertMissingReferentials()};
-}
-
#leftTree {
minimumSize:{UIHelper.newMinDimension()};
font-size:11;
=====================================
client/src/main/java/fr/ird/observe/client/ui/admin/synchronize/data/DataSynchroUIHandler.java
=====================================
@@ -33,17 +33,12 @@ import fr.ird.observe.client.ui.admin.synchronize.data.task.CopyToRightDataSynch
import fr.ird.observe.client.ui.admin.synchronize.data.task.DataSynchronizeTaskSupport;
import fr.ird.observe.client.ui.admin.synchronize.data.task.DeleteFromLeftDataSynchronizeTask;
import fr.ird.observe.client.ui.admin.synchronize.data.task.DeleteFromRightDataSynchronizeTask;
-import fr.ird.observe.client.ui.content.ref.usage.UsageForDisplayUI;
import fr.ird.observe.client.ui.tree.selection.SelectionTree;
import fr.ird.observe.client.ui.tree.selection.SelectionTreeModel;
import fr.ird.observe.client.ui.util.ProgressModel;
-import fr.ird.observe.client.ui.util.UIHelper;
import fr.ird.observe.dto.decoration.DecoratorService;
-import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator;
import fr.ird.observe.dto.reference.DataDtoReference;
-import fr.ird.observe.dto.reference.DtoReference;
-import fr.ird.observe.dto.reference.ReferentialDtoReference;
import fr.ird.observe.dto.referential.ProgramReference;
import fr.ird.observe.services.service.data.DeleteTripRequest;
import fr.ird.observe.services.service.data.DeleteTripResult;
@@ -52,19 +47,12 @@ import fr.ird.observe.services.service.data.ExportTripResult;
import fr.ird.observe.services.service.data.ImportTripRequest;
import fr.ird.observe.services.service.data.ImportTripResult;
import fr.ird.observe.services.service.data.TripManagementService;
-import fr.ird.observe.services.service.referential.MissingReferentialRequest;
-import fr.ird.observe.services.service.referential.MissingReferentialResult;
-import fr.ird.observe.services.service.referential.ReferentialService;
-import fr.ird.observe.spi.map.ImmutableSetDtoMap;
-import fr.ird.observe.spi.map.ImmutableSetStringMap;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import org.nuiton.decorator.Decorator;
import org.nuiton.jaxx.runtime.spi.UIHandler;
import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
import javax.swing.DefaultListModel;
-import javax.swing.JOptionPane;
import javax.swing.border.TitledBorder;
import java.awt.Color;
import java.util.LinkedHashSet;
@@ -84,6 +72,8 @@ import static org.nuiton.i18n.I18n.t;
public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> implements UIHandler<DataSynchroUI> {
private static final Logger log = LogManager.getLogger(DataSynchroUIHandler.class);
+ private String leftSourceLabel;
+ private String rightSourceLabel;
@Override
public void afterInit(DataSynchroUI ui) {
@@ -143,7 +133,7 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
addAdminWorker(getUi().getStartAction().getToolTipText(), this::doStartAction0);
}
- public void addCopyToLeftTasks() {
+ void addCopyToLeftTasks() {
SelectionTreeModel rightSelectionDataModel = getStepModel().getRightSelectionDataModel();
SelectionTreeModel leftSelectionDataModel = getStepModel().getLeftSelectionDataModel();
Map<ProgramReference, List<DataDtoReference<?, ?>>> selectedDataByProgram = rightSelectionDataModel.getSelectedDataByProgram();
@@ -160,7 +150,7 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
}
}
- public void addCopyToRightTasks() {
+ void addCopyToRightTasks() {
SelectionTreeModel leftSelectionDataModel = getStepModel().getLeftSelectionDataModel();
SelectionTreeModel rightSelectionDataModel = getStepModel().getRightSelectionDataModel();
Map<ProgramReference, List<DataDtoReference<?, ?>>> selectedDataByProgram = leftSelectionDataModel.getSelectedDataByProgram();
@@ -177,7 +167,7 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
}
}
- public void addDeleteFromLeftTasks() {
+ void addDeleteFromLeftTasks() {
SelectionTreeModel selectionDataModel = getStepModel().getLeftSelectionDataModel();
Map<ProgramReference, List<DataDtoReference<?, ?>>> selectedDataByProgram = selectionDataModel.getSelectedDataByProgram();
selectionDataModel.removeAllSelectedData();
@@ -189,7 +179,7 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
}
}
- public void addDeleteFromRightTasks() {
+ void addDeleteFromRightTasks() {
SelectionTreeModel selectionDataModel = getStepModel().getRightSelectionDataModel();
Map<ProgramReference, List<DataDtoReference<?, ?>>> selectedDataByProgram = selectionDataModel.getSelectedDataByProgram();
selectionDataModel.removeAllSelectedData();
@@ -201,7 +191,24 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
}
}
- public void doExecuteAction() {
+ public String getLeftSourceLabel() {
+ if (leftSourceLabel == null) {
+ ConfigModel configModel = getModel().getConfigModel();
+ leftSourceLabel = configModel.getLocalSourceModel().getLabelWithUrl().substring(configModel.getLocalSourceModel().getLabel().length());
+ }
+ return leftSourceLabel;
+ }
+
+ public String getRightSourceLabel() {
+ if (rightSourceLabel == null) {
+ ConfigModel configModel = getModel().getConfigModel();
+ rightSourceLabel = configModel.getCentralSourceModel().getLabelWithUrl().substring(configModel.getCentralSourceModel().getLabel().length());
+ }
+ return rightSourceLabel;
+ }
+
+ void doExecuteAction() {
+ leftSourceLabel = rightSourceLabel = null;
addAdminWorker(getUi().getStartAction().getToolTipText(), this::doExecuteAction0);
}
@@ -211,6 +218,9 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
DataSynchroModel stepModel = getStepModel();
ConfigUI configUI = (ConfigUI) parentUI.getStepUI(AdminStep.CONFIG);
+ String leftSourceLabel = getLeftSourceLabel();
+ String rightSourceLabel = getRightSourceLabel();
+
ConfigModel configModel = getModel().getConfigModel();
ObserveSwingDataSource leftSource = configModel.getSafeLocalSource(true);
@@ -220,10 +230,9 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
stepModel.setRightSource(rightSource);
stepModel.populateLeftSelectionModel();
- String leftLabelWithUrl = configModel.getLocalSourceModel().getLabelWithUrl();
- sendMessage(t("observe.actions.synchro.data.message.data.loaded", leftLabelWithUrl));
+ sendMessage(t("observe.actions.synchro.data.message.data.loaded", leftSourceLabel));
- TitledBorder leftBorder = new TitledBorder(leftLabelWithUrl);
+ TitledBorder leftBorder = new TitledBorder(leftSourceLabel);
boolean leftCanWriteData = configModel.getLocalSourceModel().getDataSourceInformation().canWriteData();
leftBorder.setTitleColor(leftCanWriteData ? Color.GREEN : Color.RED);
tabUI.getLeftTreePane().setBorder(leftBorder);
@@ -234,10 +243,9 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
configUI.getLocalSourceConfig().setBorder(leftBorder);
stepModel.populateRightSelectionModel();
- String rightLabelWithUrl = configModel.getCentralSourceModel().getLabelWithUrl();
- sendMessage(t("observe.actions.synchro.data.message.data.loaded", rightLabelWithUrl));
+ sendMessage(t("observe.actions.synchro.data.message.data.loaded", rightSourceLabel));
- TitledBorder rightBorder = new TitledBorder(rightLabelWithUrl);
+ TitledBorder rightBorder = new TitledBorder(rightSourceLabel);
boolean rightCanWriteData = configModel.getCentralSourceModel().getDataSourceInformation().canWriteData();
rightBorder.setTitleColor(rightCanWriteData ? Color.GREEN : Color.RED);
tabUI.getRightTreePane().setBorder(rightBorder);
@@ -254,9 +262,11 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
private WizardState doExecuteAction0() {
ObserveSwingDataSource leftSource = getStepModel().getLeftSource();
-
ObserveSwingDataSource rightSource = getStepModel().getRightSource();
+ String leftSourceLabel = getLeftSourceLabel();
+ String rightSourceLabel = getRightSourceLabel();
+
DefaultListModel<DataSynchronizeTaskSupport> tasks = getStepModel().getTasks();
int size = tasks.size();
@@ -289,131 +299,19 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
progressModel.setStepsCount(stepsCount);
DecoratorService decoratorService = getDecoratorService();
- boolean insertMissingReferentials = getStepModel().isInsertMissingReferentials();
if (copyToLeft) {
-
// generate add missing referential to left
-
- progressModel.incrementsCurrentStep();
-
- ReferentialService leftReferentialService = leftSource.getReferentialService();
- ImmutableSetStringMap leftSourceReferential = leftReferentialService.getReferentialIds();
- MissingReferentialRequest leftMissingReferentialRequest = MissingReferentialRequest.of(leftSourceReferential, idsToCopyToLeft.toArray(new String[0]));
- MissingReferentialResult leftMissingReferentialResult =
- rightSource.getReferentialService().computeMissingReferential(leftMissingReferentialRequest);
-
- progressModel.incrementsCurrentStep();
-
- if (!insertMissingReferentials && leftMissingReferentialResult != null) {
-
- // l'export n'est pas possible
- UIHelper.displayWarning(t("observe.title.can.not.export.data.left"), t("observe.actions.exportData.error.missingReferentialsId.left"));
- sendMessage(t("observe.actions.exportData.error.missingReferentialsId.left"));
- return WizardState.CANCELED;
- }
-
- if (leftMissingReferentialResult == null) {
- progressModel.incrementsCurrentStep();
- } else {
-
- // there is some referential to add to left source
-
- String message = t("observe.message.show.usage.for.missingReferentials.left");
-
- ImmutableSetDtoMap<ReferentialDtoReference> usages = rightSource.getReferentialMap(leftMissingReferentialResult.getMissingIds());
- UsageForDisplayUI usagesUI = UsageForDisplayUI.build(message, usages);
-
- int reponse = UIHelper.askUser(null,
- t("observe.title.can.not.export.data.left"),
- usagesUI,
- JOptionPane.WARNING_MESSAGE,
- new Object[]{
- t("observe.choice.confirm.insert"),
- t("observe.choice.cancel")},
- 0);
-
- if (reponse != 0) {
-
- return WizardState.CANCELED;
- }
-
- // insertion des référentiels manquants dans la base centrale
- log.info("Insertion dans la base de gauche des référentiels manquants.");
-
- for (Class<? extends ReferentialDtoReference> key : usages.referentialReferenceTypes()) {
- Set<? extends ReferentialDtoReference> references = usages.get(key);
- String type = t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(key));
- sendMessage(t("observe.actions.exportData.message.add.missing.referentials.left", references.size(), type));
- Decorator decorator = decoratorService.getReferenceDecorator(key);
- for (DtoReference reference : references) {
- sendMessage(t("observe.actions.exportData.message.add.missing.referential", decorator.toString(reference)));
- }
- }
- progressModel.incrementsCurrentStep();
- leftReferentialService.insertMissingReferential(leftMissingReferentialResult.getSqlCode());
+ WizardState result = prepareCopy(progressModel, rightSource, rightSourceLabel, leftSource, leftSourceLabel, idsToCopyToLeft);
+ if (WizardState.CANCELED.equals(result)) {
+ return result;
}
}
if (copyToRight) {
-
// generate add missing referential to right
-
- progressModel.incrementsCurrentStep();
-
- ReferentialService rightReferentialService = rightSource.getReferentialService();
- ImmutableSetStringMap rightSourceReferential = rightReferentialService.getReferentialIds();
- MissingReferentialRequest rightMissingReferentialRequest = MissingReferentialRequest.of(rightSourceReferential, idsToCopyToRight.toArray(new String[0]));
- MissingReferentialResult rightMissingReferentialResult =
- leftSource.getReferentialService().computeMissingReferential(rightMissingReferentialRequest);
-
- progressModel.incrementsCurrentStep();
-
- if (!insertMissingReferentials && rightMissingReferentialResult != null) {
-
- // l'export n'est pas possible
- UIHelper.displayWarning(t("observe.title.can.not.export.data.right"), t("observe.actions.exportData.error.missingReferentialsId.right"));
- sendMessage(t("observe.actions.exportData.error.missingReferentialsId.right"));
- return WizardState.CANCELED;
- }
-
- if (rightMissingReferentialResult == null) {
- progressModel.incrementsCurrentStep();
- } else {
-
- // there is some referential to add to left source
-
- String message = t("observe.message.show.usage.for.missingReferentials.right");
-
- ImmutableSetDtoMap<ReferentialDtoReference> usages = leftSource.getReferentialMap(rightMissingReferentialResult.getMissingIds());
- UsageForDisplayUI usagesUI = UsageForDisplayUI.build(message, usages);
-
- int reponse = UIHelper.askUser(null,
- t("observe.title.can.not.export.data.right"),
- usagesUI,
- JOptionPane.WARNING_MESSAGE,
- new Object[]{
- t("observe.choice.confirm.insert"),
- t("observe.choice.cancel")},
- 0);
-
- if (reponse != 0) {
-
- return WizardState.CANCELED;
- }
-
- log.info("Insertion dans la base de droite des référentiels manquants.");
-
- for (Class<? extends ReferentialDtoReference> key : usages.referentialReferenceTypes()) {
- Set<? extends ReferentialDtoReference> references = usages.get(key);
- String type = t(ObserveI18nDecoratorHelper.getTypePluralI18nKey(key));
- sendMessage(t("observe.actions.exportData.message.add.missing.referentials.right", references.size(), type));
- Decorator decorator = decoratorService.getReferenceDecorator(key);
- for (DtoReference reference : references) {
- sendMessage(t("observe.actions.exportData.message.add.missing.referential", decorator.toString(reference)));
- }
- }
- progressModel.incrementsCurrentStep();
- rightReferentialService.insertMissingReferential(rightMissingReferentialResult.getSqlCode());
+ WizardState result = prepareCopy(progressModel, leftSource, leftSourceLabel, rightSource, rightSourceLabel, idsToCopyToRight);
+ if (WizardState.CANCELED.equals(result)) {
+ return result;
}
}
@@ -427,105 +325,34 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
DataSynchronizeTaskSupport task = tasks.getElementAt(i);
ProgramReference program = task.getProgram();
- String programId = program.getId();
- String programStr = programDecorator.toString(program);
DataDtoReference trip = task.getTrip();
- String tripId = trip.getId();
- String tripStr = decoratorService.getDataReferenceDecorator(trip.getReferenceType()).toString(trip);
progressModel.incrementsCurrentStep();
if (task instanceof DeleteFromLeftDataSynchronizeTask) {
-
- sendMessage(t("observe.actions.synchro.data.prepare.deleteFromLeftTask", programStr, tripStr));
-
- DeleteTripRequest deleteTripRequest = new DeleteTripRequest(programId, tripId);
- DeleteTripResult deleteTripResult = leftTripManagementService.deleteTrip(deleteTripRequest);
- logDeleteResult(n("observe.actions.synchro.data.result.delete.left.trip"),
- deleteTripResult,
- programDecorator,
- program,
- trip);
- if (leftSource.isLocal()) {
- leftSource.setModified(true);
- }
+ executeDeleteTask(programDecorator, program, trip,
+ leftSource, leftSourceLabel, leftTripManagementService);
continue;
-
}
if (task instanceof DeleteFromRightDataSynchronizeTask) {
-
- sendMessage(t("observe.actions.synchro.data.prepare.deleteFromRightTask", programStr, tripStr));
-
- DeleteTripRequest deleteTripRequest = new DeleteTripRequest(programId, tripId);
- DeleteTripResult deleteTripResult = rightTripManagementService.deleteTrip(deleteTripRequest);
- logDeleteResult(n("observe.actions.synchro.data.result.delete.right.trip"),
- deleteTripResult,
- programDecorator,
- program,
- trip);
- if (rightSource.isLocal()) {
- rightSource.setModified(true);
- }
+ executeDeleteTask(programDecorator, program, trip,
+ rightSource, rightSourceLabel, rightTripManagementService);
continue;
-
}
if (task instanceof CopyToLeftDataSynchronizeTask) {
-
- sendMessage(t("observe.actions.synchro.data.prepare.copyToLeftTask", programStr, tripStr));
-
- ExportTripRequest exportTripRequest = new ExportTripRequest(!leftSource.isLocal(), programId, tripId);
- ExportTripResult exportTripResult = rightTripManagementService.exportTrip(exportTripRequest);
- logExportResult(n("observe.actions.synchro.data.result.export.right.trip"),
- exportTripResult,
- programDecorator,
- program,
- trip);
-
- progressModel.incrementsCurrentStep();
- ImportTripRequest importTripRequest = new ImportTripRequest(exportTripResult);
- ImportTripResult importTripResult = leftTripManagementService.importTrip(importTripRequest);
- logImportResult(n("observe.actions.synchro.data.result.import.left.trip"),
- n("observe.actions.synchro.data.result.delete.left.trip"),
- importTripResult,
- programDecorator,
- program,
- trip);
-
- if (leftSource.isLocal()) {
- leftSource.setModified(true);
- }
+ executeCopyTask(progressModel, programDecorator, program, trip,
+ rightSource, rightSourceLabel, rightTripManagementService,
+ leftSource, leftSourceLabel, leftTripManagementService);
continue;
-
}
if (task instanceof CopyToRightDataSynchronizeTask) {
-
- sendMessage(t("observe.actions.synchro.data.prepare.copyToRightTask", programStr, tripStr));
-
- ExportTripRequest exportTripRequest = new ExportTripRequest(!rightSource.isLocal(), programId, tripId);
- ExportTripResult exportTripResult = leftTripManagementService.exportTrip(exportTripRequest);
- logExportResult(n("observe.actions.synchro.data.result.export.left.trip"),
- exportTripResult,
- programDecorator,
- program,
- trip);
-
- progressModel.incrementsCurrentStep();
- ImportTripRequest importTripRequest = new ImportTripRequest(exportTripResult);
- ImportTripResult importTripResult = rightTripManagementService.importTrip(importTripRequest);
- logImportResult(n("observe.actions.synchro.data.result.import.right.trip"),
- n("observe.actions.synchro.data.result.delete.right.trip"),
- importTripResult,
- programDecorator,
- program,
- trip);
- if (rightSource.isLocal()) {
- rightSource.setModified(true);
- }
-
+ executeCopyTask(progressModel, programDecorator, program, trip,
+ leftSource, leftSourceLabel, leftTripManagementService,
+ rightSource, rightSourceLabel, rightTripManagementService);
}
}
@@ -534,4 +361,71 @@ public class DataSynchroUIHandler extends AdminTabUIHandler<DataSynchroUI> imple
}
+ private void executeDeleteTask(ReferentialReferenceDecorator<ProgramReference> programDecorator,
+ ProgramReference program, DataDtoReference trip,
+ ObserveSwingDataSource targetSource, String targetSourceLabel, TripManagementService targetTripManagementService) {
+
+ String programId = program.getId();
+ String programStr = programDecorator.toString(program);
+
+ String tripId = trip.getId();
+ @SuppressWarnings("unchecked")
+ String tripStr = decoratorService.getDataReferenceDecorator(trip.getReferenceType()).toString(trip);
+
+
+ sendMessage(t("observe.actions.synchro.data.prepare.deleteTask", targetSourceLabel, programStr, tripStr));
+
+ DeleteTripRequest deleteTripRequest = new DeleteTripRequest(programId, tripId);
+ DeleteTripResult deleteTripResult = targetTripManagementService.deleteTrip(deleteTripRequest);
+ logDeleteResult(n("observe.actions.synchro.data.result.delete.trip"),
+ targetSourceLabel,
+ deleteTripResult,
+ programDecorator,
+ program,
+ trip);
+ if (targetSource.isLocal()) {
+ targetSource.setModified(true);
+ }
+
+ }
+
+ private void executeCopyTask(ProgressModel progressModel,
+ ReferentialReferenceDecorator<ProgramReference> programDecorator,
+ ProgramReference program, DataDtoReference trip,
+ ObserveSwingDataSource centralSource, String centralSourceLabel, TripManagementService centralTripManagementService,
+ ObserveSwingDataSource targetSource, String targetSourceLabel, TripManagementService targetTripManagementService) {
+
+ String programId = program.getId();
+ String programStr = programDecorator.toString(program);
+ String tripId = trip.getId();
+ @SuppressWarnings("unchecked")
+ String tripStr = decoratorService.getDataReferenceDecorator(trip.getReferenceType()).toString(trip);
+
+ sendMessage(t("observe.actions.synchro.data.prepare.copyToTask", targetSourceLabel, programStr, tripStr));
+
+ ExportTripRequest exportTripRequest = new ExportTripRequest(!targetSource.isLocal(), programId, tripId);
+ ExportTripResult exportTripResult = centralTripManagementService.exportTrip(exportTripRequest);
+ logExportResult(n("observe.actions.synchro.data.result.export.trip"),
+ centralSourceLabel,
+ exportTripResult,
+ programDecorator,
+ program,
+ trip);
+
+ progressModel.incrementsCurrentStep();
+ ImportTripRequest importTripRequest = new ImportTripRequest(exportTripResult);
+ ImportTripResult importTripResult = targetTripManagementService.importTrip(importTripRequest);
+ logImportResult(n("observe.actions.synchro.data.result.import.trip"),
+ n("observe.actions.synchro.data.result.delete.trip"),
+ targetSourceLabel,
+ importTripResult,
+ programDecorator,
+ program,
+ trip);
+
+ if (targetSource.isLocal()) {
+ targetSource.setModified(true);
+ }
+ }
+
}
=====================================
client/src/main/resources/i18n/client_en_GB.properties
=====================================
@@ -155,8 +155,7 @@ observe.actions.exportData.error.missingReferentialsId.left=Can't export data, t
observe.actions.exportData.error.missingReferentialsId.right=Can't export data, there is some missing referentials in right source and you did not select insert option.
observe.actions.exportData.message.add.missing.referential=\t%s
observe.actions.exportData.message.add.missing.referentials=Insert %s missing referentials of type «%s»
-observe.actions.exportData.message.add.missing.referentials.left=Insert %s missing referentials of type «%s» in left source
-observe.actions.exportData.message.add.missing.referentials.right=Insert %s missing referentials of type «%s» in right source
+observe.actions.exportData.message.add.missing.referentials2=Database «%s» - Insert %s missing referentials of type «%s»
observe.actions.exportData.message.not.possible=Export is not possible (see above messages)
observe.actions.exportData.message.operation.needFix=Select data to export.
observe.actions.exportData.message.prepare.data=Prepare data to export...
@@ -206,17 +205,12 @@ observe.actions.synchro.data.deleteFromLeft.tip=Delete selected trip(s) from lef
observe.actions.synchro.data.deleteFromRight.tip=Delete selected trip(s) from right database
observe.actions.synchro.data.description=Advanced data management
observe.actions.synchro.data.launch.operation=Get data fro databases
-observe.actions.synchro.data.message.data.loaded=%s - Data loaded
-observe.actions.synchro.data.prepare.copyToLeftTask=Register operation copy to left database\: %s - %s
-observe.actions.synchro.data.prepare.copyToRightTask=Register operation copy to right database\: %s - %s
-observe.actions.synchro.data.prepare.deleteFromLeftTask=Register operation delete from left database\: %s - %s
-observe.actions.synchro.data.prepare.deleteFromRightTask=Register operation delete from right database\: %s - %s
-observe.actions.synchro.data.result.delete.left.trip=Trip %s - %s was removed from left database.
-observe.actions.synchro.data.result.delete.right.trip=Trip %s - %s was removed from right database.
-observe.actions.synchro.data.result.export.left.trip=Trip %s - %s was exported from left database.
-observe.actions.synchro.data.result.export.right.trip=Trip %s - %s was exported from right database.
-observe.actions.synchro.data.result.import.left.trip=Trip %s - %s was imported into left database.
-observe.actions.synchro.data.result.import.right.trip=Trip %s - %s was imported into right database.
+observe.actions.synchro.data.message.data.loaded=Database «%s» - Data loaded
+observe.actions.synchro.data.prepare.copyToTask=Database «%s» - Register operation copy to database\: %s - %s
+observe.actions.synchro.data.prepare.deleteTask=Database «%s» - Register operation delete from database\: %s - %s
+observe.actions.synchro.data.result.delete.trip=Database «%s» - Trip %s - %s was removed from database.
+observe.actions.synchro.data.result.export.trip=Database «%s» - Trip %s - %s was exported from database.
+observe.actions.synchro.data.result.import.trip=Database «%s» - Trip %s - %s was imported into database.
observe.actions.synchro.data.task.copyToLeft=Copy to left database\: <i>%s</i> - «<b>%s</b>»
observe.actions.synchro.data.task.copyToRight=Copy to right database\: <i>%s</i> - «<b>%s</b>»
observe.actions.synchro.data.task.deleteFromLeft=Delete from left database\: <i>%s</i> - «<b>%s</b>»
@@ -1316,8 +1310,7 @@ observe.message.show.usage.for.desactivated=Referential %1$s "%2$s" will be disa
observe.message.show.usage.for.desactivated2=Some data are using this referential, see following reference
observe.message.show.usage.for.desactivated3=Those data need to use another enabled referential to be saved.
observe.message.show.usage.for.missingReferentials=There is some referentials present in local source but not in centrale one.
-observe.message.show.usage.for.missingReferentials.left=There is some referentials present in right source but not in left one.
-observe.message.show.usage.for.missingReferentials.right=There is some referentials present in left source but not in right one.
+observe.message.show.usage.for.missingReferentials2=There is some referentials present in «%s» source but not in the «%s» one.
observe.message.show.usages=List of usage of referential %1$s\: '%2$s'
observe.message.table.editBean.modified=Current entry is modifed and valid.
observe.message.table.editBean.modified.but.invalid=Current entry is modified but not valid.
@@ -1473,8 +1466,7 @@ observe.storage.useServerStorage.description=Please configure connexion to remot
observe.title.about=About
observe.title.can.not.delete.referentiel=Impossible to delete a referentiel data...
observe.title.can.not.export.data=Could not export data
-observe.title.can.not.export.data.left=Could not export data to left source
-observe.title.can.not.export.data.right=Could not export data to right source
+observe.title.can.not.export.data2=Could not export data to «%s» source
observe.title.can.not.export.obstuna=Could not export obstuna data...
observe.title.choose.db.dump=Choose a database backup
observe.title.choose.db.dump.directory=Chhose directory of backup
=====================================
client/src/main/resources/i18n/client_es_ES.properties
=====================================
@@ -155,14 +155,13 @@ observe.actions.exportData.error.missingReferentialsId.left=Il existe des réfé
observe.actions.exportData.error.missingReferentialsId.right=Il existe des référentiels dans la base de droite non présente en base centrale, mais vous n'avez pas activé l'option d'insertion automatique. \#TODO
observe.actions.exportData.message.add.missing.referential=\t%s
observe.actions.exportData.message.add.missing.referentials=Insertion de %s référentiels de type «%s» \#TODO
-observe.actions.exportData.message.add.missing.referentials.left=Insertion de %s référentiels de type «%s» dans la base de gauche\#TODO
-observe.actions.exportData.message.add.missing.referentials.right=Insertion de %s référentiels de type «%s» dans la base de droite\#TODO
+observe.actions.exportData.message.add.missing.referentials2=Base «%s» - Insertion de %s référentiels de type «%s»\#TODO
observe.actions.exportData.message.not.possible=La exportación no es posible (vea el mensaje anterior).
observe.actions.exportData.message.operation.needFix=Seleccione las mareas a exportar.
observe.actions.exportData.message.prepare.data=Preparación de los datos a exportar...
-observe.actions.exportData.message.result.delete.trip=La marea %s - %s fue eliminada de la base central
-observe.actions.exportData.message.result.export.trip=La marea %s - %s fue exportada de la base locale
-observe.actions.exportData.message.result.import.trip=La marea %s - %s fue importada en la base central
+observe.actions.exportData.message.result.delete.trip=Base «%s» - La marea %s - %s fue eliminada.
+observe.actions.exportData.message.result.export.trip=Base «%s» - La marea %s - %s fue exportada.
+observe.actions.exportData.message.result.import.trip=Base «%s» - La marea %s - %s fue importada.
observe.actions.exportData.table.exist.label=E
observe.actions.exportData.table.exist.label.tip=Marea ya está presente en la base de datos remota
observe.actions.exportData.table.program.label=Programa
@@ -206,17 +205,12 @@ observe.actions.synchro.data.deleteFromLeft.tip=Eliminar la ou las mareas selecc
observe.actions.synchro.data.deleteFromRight.tip=Eliminar la ou las mareas seleccionada(s) de la base de la derecha
observe.actions.synchro.data.description=Gestión avanzada de los datos de los usuarios
observe.actions.synchro.data.launch.operation=Recuperar los datos de las fuentes de datos
-observe.actions.synchro.data.message.data.loaded=%s - Datos recuperadas.
-observe.actions.synchro.data.prepare.copyToLeftTask=Preparación de la copia en la base de la izquierda \: %s - %s
-observe.actions.synchro.data.prepare.copyToRightTask=Preparación de la copia en la base de la derecha \: %s - %s
-observe.actions.synchro.data.prepare.deleteFromLeftTask=Preparación de la eliminación de la base de la izquierda \: %s - %s
-observe.actions.synchro.data.prepare.deleteFromRightTask=Preparación de la eliminación de la base de la derecha \: %s - %s
-observe.actions.synchro.data.result.delete.left.trip=Eliminación de la marea %s - %s en la base de la izquierda realizada.
-observe.actions.synchro.data.result.delete.right.trip=Eliminación de la marea %s - %s en la base de la derecha realizada.
-observe.actions.synchro.data.result.export.left.trip=Exportación de la marea %s - %s desde la base de la izquierda realizada.
-observe.actions.synchro.data.result.export.right.trip=Exportación de la marea %s - %s desde la base de la derecha realizada.
-observe.actions.synchro.data.result.import.left.trip=Inserción de la marea %s - %s en la base de la izquierda realizada.
-observe.actions.synchro.data.result.import.right.trip=Inserción de la marea %s - %s en la base de la derecha realizada.
+observe.actions.synchro.data.message.data.loaded=Base «%s» - Datos recuperadas.
+observe.actions.synchro.data.prepare.copyToTask=Base «%s» - Preparación de la copia \: %s - %s
+observe.actions.synchro.data.prepare.deleteTask=Base «%s» - Preparación de la eliminación de la base \: %s - %s
+observe.actions.synchro.data.result.delete.trip=Base «%s» - Eliminación de la marea %s - %s en la base.
+observe.actions.synchro.data.result.export.trip=Base «%s» - Exportación de la marea %s - %s desde la base.
+observe.actions.synchro.data.result.import.trip=Base «%s» - Inserción de la marea %s - %s en la base.
observe.actions.synchro.data.task.copyToLeft=Copiar en la base de la izquierda \: <i>%s</i> - «<b>%s</b>»
observe.actions.synchro.data.task.copyToRight=Copiar en la base de la derecha \: <i>%s</i> - «<b>%s</b>»
observe.actions.synchro.data.task.deleteFromLeft=Eliminar en la base de la izquierda \: <i>%s</i> - «<b>%s</b>»
@@ -1316,8 +1310,7 @@ observe.message.show.usage.for.desactivated=El referencial %1$s "%2$s" se desact
observe.message.show.usage.for.desactivated2=Los objetos están usando actualmente las referencias que se enumeran a continuación..
observe.message.show.usage.for.desactivated3=Estos objetos deben usar otro referencial (no desactivado) para poder actualizarse.
observe.message.show.usage.for.missingReferentials=Il existe des référentiels présents dans la base locale mais non présents dans la base centrale. \#TODO
-observe.message.show.usage.for.missingReferentials.left=Il existe des référentiels présents dans la base de droite mais non présents dans la base de gauche.
-observe.message.show.usage.for.missingReferentials.right=Il existe des référentiels présents dans la base de gauche mais non présents dans la base droite.
+observe.message.show.usage.for.missingReferentials2=There is some referentials present in «%s» source but not in the «%s» one.
observe.message.show.usages=Listas de usos de referenciales %1$s \: '%2$s'
observe.message.table.editBean.modified=El registro actual se ha modificado y es válido.
observe.message.table.editBean.modified.but.invalid=El registro actual se ha modificado pero no es válido.
@@ -1473,8 +1466,7 @@ observe.storage.useServerStorage.description=Configure su conexión al servidor
observe.title.about=A proposito de ObServe...
observe.title.can.not.delete.referentiel=Impossible eliminar un referencial en proceso de utilización...
observe.title.can.not.export.data=Impossible d'exporter les données vers la base centrale... \#TODO
-observe.title.can.not.export.data.left=Impossible d'exporter les données vers la base de gauche... \#TODO
-observe.title.can.not.export.data.right=Impossible d'exporter les données vers la base de droite... \#TODO
+observe.title.can.not.export.data2=Impossible d'exporter les données vers la base «%s»... \#TODO
observe.title.can.not.export.obstuna=Impossible exportar los datos de obstuna...
observe.title.choose.db.dump=Seleccionar una copia de seguridad de base local
observe.title.choose.db.dump.directory=Seleccionar e directorio de destinación de la copia de seguridad
=====================================
client/src/main/resources/i18n/client_fr_FR.properties
=====================================
@@ -155,14 +155,13 @@ observe.actions.exportData.error.missingReferentialsId.left=Il existe des réfé
observe.actions.exportData.error.missingReferentialsId.right=Il existe des référentiels dans la base de droite non présente en base centrale, mais vous n'avez pas activé l'option d'insertion automatique.
observe.actions.exportData.message.add.missing.referential=\t%s
observe.actions.exportData.message.add.missing.referentials=Insertion de %s référentiels de type «%s»
-observe.actions.exportData.message.add.missing.referentials.left=Insertion de %s référentiels de type «%s» dans la base de gauche
-observe.actions.exportData.message.add.missing.referentials.right=Insertion de %s référentiels de type «%s» dans la base de droite
+observe.actions.exportData.message.add.missing.referentials2=Source «%s» - Insertion de %s référentiels de type «%s»
observe.actions.exportData.message.not.possible=L'opération d'export n'est pas possible (voir les messages précédents).
observe.actions.exportData.message.operation.needFix=Veuillez sélectionner les marées à exporter.
observe.actions.exportData.message.prepare.data=Préparation des données à exporter...
-observe.actions.exportData.message.result.delete.trip=La marée %s - %s a été supprimée de la base centrale
-observe.actions.exportData.message.result.export.trip=La marée %s - %s a été exportée depuis la base locale
-observe.actions.exportData.message.result.import.trip=La marée %s - %s a été importée dans la base centrale
+observe.actions.exportData.message.result.delete.trip=Source «%s» - La marée %s - %s a été supprimée de la base centrale
+observe.actions.exportData.message.result.export.trip=Source «%s» - La marée %s - %s a été exportée depuis la base locale
+observe.actions.exportData.message.result.import.trip=Source «%s» - La marée %s - %s a été importée dans la base centrale
observe.actions.exportData.table.exist.label=E
observe.actions.exportData.table.exist.label.tip=Marée déjà présente sur la base distante
observe.actions.exportData.table.program.label=Programme
@@ -206,17 +205,12 @@ observe.actions.synchro.data.deleteFromLeft.tip=Supprimer la ou les marées sél
observe.actions.synchro.data.deleteFromRight.tip=Supprimer la ou les marées sélectionnée(s) de la base de droite
observe.actions.synchro.data.description=Gestion avancée des données utilisateurs
observe.actions.synchro.data.launch.operation=Récupérer les données des sources de données
-observe.actions.synchro.data.message.data.loaded=%s - Données récupérées.
-observe.actions.synchro.data.prepare.copyToLeftTask=Préparation de la recopie vers la base de gauche \: %s - %s
-observe.actions.synchro.data.prepare.copyToRightTask=Préparation de la recopie vers la base de droite \: %s - %s
-observe.actions.synchro.data.prepare.deleteFromLeftTask=Préparation de la suppression de la base de gauche \: %s - %s
-observe.actions.synchro.data.prepare.deleteFromRightTask=Préparation de la suppression de la base de droite \: %s - %s
-observe.actions.synchro.data.result.delete.left.trip=Suppression de la marée %s - %s dans la base de gauche effectuée.
-observe.actions.synchro.data.result.delete.right.trip=Suppression de la marée %s - %s dans la base de droite effectuée.
-observe.actions.synchro.data.result.export.left.trip=Export de la marée %s - %s depuis la base de gauche effectuée.
-observe.actions.synchro.data.result.export.right.trip=Export de la marée %s - %s depuis la base de droite effectuée.
-observe.actions.synchro.data.result.import.left.trip=Insertion de la marée %s - %s dans la base de gauche effectuée.
-observe.actions.synchro.data.result.import.right.trip=Insertion de la marée %s - %s dans la base de droite effectuée.
+observe.actions.synchro.data.message.data.loaded=Source «%s» - Données récupérées.
+observe.actions.synchro.data.prepare.copyToTask=Source «%s» - Préparation de la recopie \: %s - %s
+observe.actions.synchro.data.prepare.deleteTask=Source «%s» - Préparation de la suppression \: %s - %s
+observe.actions.synchro.data.result.delete.trip=Source «%s» - Suppression de la marée %s - %s effectuée.
+observe.actions.synchro.data.result.export.trip=Source «%s» - Export de la marée %s - %s effectuée.
+observe.actions.synchro.data.result.import.trip=Source «%s» - Insertion de la marée %s - %s effectuée.
observe.actions.synchro.data.task.copyToLeft=Copier vers la base de gauche \: <i>%s</i> - «<b>%s</b>»
observe.actions.synchro.data.task.copyToRight=Copier vers la base de droite \: <i>%s</i> - «<b>%s</b>»
observe.actions.synchro.data.task.deleteFromLeft=Supprimer de la base de gauche \: <i>%s</i> - «<b>%s</b>»
@@ -1316,8 +1310,7 @@ observe.message.show.usage.for.desactivated=Le référentiel %1$s "%2$s" va êtr
observe.message.show.usage.for.desactivated2=Des objets utilisent actuellement cet entité dont les références sont citées plus bas.
observe.message.show.usage.for.desactivated3=Ces objets devront utiliser un autre référentiel (non désactivé) pour pouvoir être mis à jour.
observe.message.show.usage.for.missingReferentials=Il existe des référentiels présents dans la base locale mais non présents dans la base centrale.
-observe.message.show.usage.for.missingReferentials.left=Il existe des référentiels présents dans la base de droite mais non présents dans la base de gauche.
-observe.message.show.usage.for.missingReferentials.right=Il existe des référentiels présents dans la base de gauche mais non présents dans la base droite.
+observe.message.show.usage.for.missingReferentials2=Il existe des référentiels présents dans la base «%s» mais non présents dans la base «%s».
observe.message.show.usages=Listes des utilisations du référentiel %1$s \: '%2$s'
observe.message.table.editBean.modified=L'entrée en cours d'édition a été modifiée et est valide.
observe.message.table.editBean.modified.but.invalid=L'entrée en cours d'édition a été modifiée, mais n'est pas valide.
@@ -1473,8 +1466,7 @@ observe.storage.useServerStorage.description=Veuillez configurer votre connexion
observe.title.about=A propos d'ObServe...
observe.title.can.not.delete.referentiel=Impossible de supprimer un référentiel en cours d'utilisation...
observe.title.can.not.export.data=Impossible d'exporter les données vers la base centrale...
-observe.title.can.not.export.data.left=Impossible d'exporter les données vers la base de gauche...
-observe.title.can.not.export.data.right=Impossible d'exporter les données vers la base de droite...
+observe.title.can.not.export.data2=Impossible d'exporter les données vers la base «%s»...
observe.title.can.not.export.obstuna=Impossible d'exporter des données d'obstuna...
observe.title.choose.db.dump=Choisir une sauvegarder de base locale
observe.title.choose.db.dump.directory=Choisir le répertoire de destination de la sauvegarde
=====================================
dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java
=====================================
@@ -57,6 +57,7 @@ import fr.ird.observe.dto.data.longline.SizeMeasureDto;
import fr.ird.observe.dto.data.longline.SizeMeasureReference;
import fr.ird.observe.dto.data.longline.TdrDto;
import fr.ird.observe.dto.data.longline.TdrReference;
+import fr.ird.observe.dto.data.longline.TripLonglineActivityDto;
import fr.ird.observe.dto.data.longline.TripLonglineReference;
import fr.ird.observe.dto.data.longline.WeightMeasureDto;
import fr.ird.observe.dto.data.longline.WeightMeasureReference;
@@ -361,6 +362,8 @@ public class DecoratorService extends DecoratorProvider {
"${timeStamp}$td/%1$tm/%1$tY %1$tH:%1$tM##${vesselActivityLongline/label}$s",
"${timeStamp}$td/%1$tm/%1$tY %1$tH:%1$tM##${vesselActivityLonglineLabel}$s",
" - ");
+
+ registerObserveDecorator(TripLonglineActivityDto.class, "${timeStamp}$td/%1$tm/%1$tY %1$tH:%1$t", " - ");
}
@Override
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/4f6ea307b1f060d966b99ef88f…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/4f6ea307b1f060d966b99ef88f…
You're receiving this email because of your account on gitlab.com.
1
0