mailman.cloud.codelutin.com
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Observe-commits

Thread Start a new thread
Download
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
observe-commits@list.forge.codelutin.com

June 2019

  • 1 participants
  • 64 discussions
[Git][ultreiaio/ird-observe][develop] Choix de nouvelles couleurs pour les symboles de la carte LL - Closes #1293
by Tony CHEMIT 29 Jun '19

29 Jun '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 74dcde81 by tchemit at 2019-06-29T19:13:44Z Choix de nouvelles couleurs pour les symboles de la carte LL - Closes #1293 - - - - - 8 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/util/tripMap/TripMapContentBuilder.java - client-core/src/main/map/style.xml - dto/src/main/i18n/getters/java-enumeration.getter - dto/src/main/java/fr/ird/observe/dto/data/TripMapPointType.java - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties - persistence/src/main/java/fr/ird/observe/entities/data/ps/common/TripSeineTopiaDao.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/util/tripMap/TripMapContentBuilder.java ===================================== @@ -84,9 +84,9 @@ public class TripMapContentBuilder { public static final String TRIP_POINTS_LAYER_NAME = "Trip points"; public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM"); protected static final Set<TripMapPointType> TRIP_MAP_POINT_TYPES_IN_LEGEND = ImmutableSet.of( - TripMapPointType.seineActivityInHarbour, - TripMapPointType.seineActivityWithFreeSchoolType, - TripMapPointType.seineActivityWithObjectSchoolType, + TripMapPointType.seineActivityObsInHarbour, + TripMapPointType.seineActivityObsWithFreeSchoolType, + TripMapPointType.seineActivityObsWithObjectSchoolType, TripMapPointType.longlineActivityObsInHarbour, TripMapPointType.longlineActivityObsWithSettingStart, TripMapPointType.longlineActivityObsWithSettingEnd, ===================================== client-core/src/main/map/style.xml ===================================== @@ -30,7 +30,6 @@ <Name>Trip lines</Name> <UserStyle> <IsDefault>true</IsDefault> - <Title>SLD Cook Book: Simple Line</Title> <FeatureTypeStyle> <Rule> <Name>Trip day</Name> @@ -91,7 +90,6 @@ <Name>Trip longline observation zone</Name> <UserStyle> <IsDefault>true</IsDefault> - <Title>SLD Cook Book: Simple Line</Title> <FeatureTypeStyle> <Rule> <Name>Trip day</Name> @@ -131,7 +129,6 @@ <Name>Trip longline logbook zone</Name> <UserStyle> <IsDefault>true</IsDefault> - <Title>SLD Cook Book: Simple Line</Title> <FeatureTypeStyle> <Rule> <Name>Trip day</Name> @@ -171,7 +168,6 @@ <Name>Trip longline observation line</Name> <UserStyle> <IsDefault>true</IsDefault> - <Title>SLD Cook Book: Simple Line</Title> <FeatureTypeStyle> <Rule> <Name>Trip</Name> @@ -231,7 +227,6 @@ <Name>Trip longline logbook line</Name> <UserStyle> <IsDefault>true</IsDefault> - <Title>SLD Cook Book: Simple Line</Title> <FeatureTypeStyle> <Rule> <Name>Trip</Name> @@ -294,11 +289,11 @@ <IsDefault>true</IsDefault> <FeatureTypeStyle> <Rule> - <Name>Point seine activity in harbour</Name> + <Name>Point seine activity Obs in harbour</Name> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>pointType</ogc:PropertyName> - <ogc:Literal>seineActivityInHarbour</ogc:Literal> + <ogc:Literal>seineActivityObsInHarbour</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <PointSymbolizer> @@ -322,11 +317,11 @@ <FeatureTypeStyle> <Rule> - <Name>Point seine activity with free school type</Name> + <Name>Point seine activity Obs with free school type</Name> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>pointType</ogc:PropertyName> - <ogc:Literal>seineActivityWithFreeSchoolType</ogc:Literal> + <ogc:Literal>seineActivityObsWithFreeSchoolType</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <PointSymbolizer> @@ -334,7 +329,7 @@ <Mark> <WellKnownName>Triangle</WellKnownName> <Fill> - <CssParameter name="fill">#FFC800</CssParameter> + <CssParameter name="fill">#7800f6</CssParameter> </Fill> <Stroke> <CssParameter name="stroke">#000000</CssParameter> @@ -349,11 +344,11 @@ <FeatureTypeStyle> <Rule> - <Name>Point seine activity with object school type</Name> + <Name>Point seine activity Obs with object school type</Name> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>pointType</ogc:PropertyName> - <ogc:Literal>seineActivityWithObjectSchoolType</ogc:Literal> + <ogc:Literal>seineActivityObsWithObjectSchoolType</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <PointSymbolizer> @@ -361,7 +356,7 @@ <Mark> <WellKnownName>X</WellKnownName> <Fill> - <CssParameter name="fill">#00FF00</CssParameter> + <CssParameter name="fill">#7800f6</CssParameter> </Fill> <Stroke> <CssParameter name="stroke">#000000</CssParameter> @@ -414,7 +409,7 @@ <PointSymbolizer> <Graphic> <Mark> - <WellKnownName>X</WellKnownName> + <WellKnownName>Square</WellKnownName> <Fill> <CssParameter name="fill">#00FF00</CssParameter> </Fill> @@ -442,9 +437,9 @@ <PointSymbolizer> <Graphic> <Mark> - <WellKnownName>Triangle</WellKnownName> + <WellKnownName>Circle</WellKnownName> <Fill> - <CssParameter name="fill">#FF0000</CssParameter> + <CssParameter name="fill">#00FF00</CssParameter> </Fill> <Stroke> <CssParameter name="stroke">#000000</CssParameter> @@ -471,7 +466,7 @@ <Mark> <WellKnownName>X</WellKnownName> <Fill> - <CssParameter name="fill">#FF0000</CssParameter> + <CssParameter name="fill">#00FF00</CssParameter> </Fill> <Stroke> <CssParameter name="stroke">#000000</CssParameter> @@ -641,7 +636,7 @@ <Mark> <WellKnownName>Triangle</WellKnownName> <Fill> - <CssParameter name="fill">#00FF00</CssParameter> + <CssParameter name="fill">#FF0000</CssParameter> </Fill> <Stroke> <CssParameter name="stroke">#000000</CssParameter> @@ -667,9 +662,9 @@ <PointSymbolizer> <Graphic> <Mark> - <WellKnownName>X</WellKnownName> + <WellKnownName>Square</WellKnownName> <Fill> - <CssParameter name="fill">#00FF00</CssParameter> + <CssParameter name="fill">#FF0000</CssParameter> </Fill> <Stroke> <CssParameter name="stroke">#000000</CssParameter> @@ -695,7 +690,7 @@ <PointSymbolizer> <Graphic> <Mark> - <WellKnownName>Triangle</WellKnownName> + <WellKnownName>Circle</WellKnownName> <Fill> <CssParameter name="fill">#FF0000</CssParameter> </Fill> ===================================== dto/src/main/i18n/getters/java-enumeration.getter ===================================== @@ -36,10 +36,10 @@ observe.constant.TripMapPointType.longlineActivityObsWithSettingStart observe.constant.TripMapPointType.longlineActivityObsWithStation observe.constant.TripMapPointType.longlineDepartureHarbour observe.constant.TripMapPointType.longlineLandingHarbour -observe.constant.TripMapPointType.seineActivity -observe.constant.TripMapPointType.seineActivityInHarbour -observe.constant.TripMapPointType.seineActivityWithFreeSchoolType -observe.constant.TripMapPointType.seineActivityWithObjectSchoolType +observe.constant.TripMapPointType.seineActivityObs +observe.constant.TripMapPointType.seineActivityObsInHarbour +observe.constant.TripMapPointType.seineActivityObsWithFreeSchoolType +observe.constant.TripMapPointType.seineActivityObsWithObjectSchoolType observe.constant.TripMapPointType.seineDepartureHarbour observe.constant.TripMapPointType.seineLandingHarbour observe.constant.TypeTransmittingBuoyOperation.pasDeBalise ===================================== dto/src/main/java/fr/ird/observe/dto/data/TripMapPointType.java ===================================== @@ -32,10 +32,10 @@ public enum TripMapPointType { seineDepartureHarbour, seineLandingHarbour, - seineActivity, - seineActivityInHarbour, - seineActivityWithFreeSchoolType, - seineActivityWithObjectSchoolType, + seineActivityObs, + seineActivityObsInHarbour, + seineActivityObsWithFreeSchoolType, + seineActivityObsWithObjectSchoolType, longlineDepartureHarbour, longlineLandingHarbour, ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -2865,10 +2865,10 @@ observe.constant.TripMapPointType.longlineActivityWithSettingStart=Setting start observe.constant.TripMapPointType.longlineActivityWithStation=Station observe.constant.TripMapPointType.longlineDepartureHarbour=Harbour departure observe.constant.TripMapPointType.longlineLandingHarbour=Harbour landing -observe.constant.TripMapPointType.seineActivity=Activity -observe.constant.TripMapPointType.seineActivityInHarbour=In harbour -observe.constant.TripMapPointType.seineActivityWithFreeSchoolType=Free School type -observe.constant.TripMapPointType.seineActivityWithObjectSchoolType=Object School type +observe.constant.TripMapPointType.seineActivityObs=Activity +observe.constant.TripMapPointType.seineActivityObsInHarbour=In harbour +observe.constant.TripMapPointType.seineActivityObsWithFreeSchoolType=Free School type +observe.constant.TripMapPointType.seineActivityObsWithObjectSchoolType=Object School type observe.constant.TripMapPointType.seineDepartureHarbour=Harbour departure observe.constant.TripMapPointType.seineLandingHarbour=Harbour landing observe.constant.TypeTransmittingBuoyOperation.pasDeBalise=No Beacon ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -2865,10 +2865,10 @@ observe.constant.TripMapPointType.longlineActivityWithSettingStart=Inicio de cal observe.constant.TripMapPointType.longlineActivityWithStation=Estación Oceanográfica observe.constant.TripMapPointType.longlineDepartureHarbour=Puerto de salida observe.constant.TripMapPointType.longlineLandingHarbour=Puerto de llegada -observe.constant.TripMapPointType.seineActivity=Actividad -observe.constant.TripMapPointType.seineActivityInHarbour=En puerto -observe.constant.TripMapPointType.seineActivityWithFreeSchoolType=Banco libre -observe.constant.TripMapPointType.seineActivityWithObjectSchoolType=Banco a objeto +observe.constant.TripMapPointType.seineActivityObs=Actividad +observe.constant.TripMapPointType.seineActivityObsInHarbour=En puerto +observe.constant.TripMapPointType.seineActivityObsWithFreeSchoolType=Banco libre +observe.constant.TripMapPointType.seineActivityObsWithObjectSchoolType=Banco a objeto observe.constant.TripMapPointType.seineDepartureHarbour=Puerto de salida observe.constant.TripMapPointType.seineLandingHarbour=Puerto de llegada observe.constant.TypeTransmittingBuoyOperation.pasDeBalise=DCP sin baliza ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -2865,10 +2865,10 @@ observe.constant.TripMapPointType.longlineActivityWithSettingStart=Début de fil observe.constant.TripMapPointType.longlineActivityWithStation=Station océanographique observe.constant.TripMapPointType.longlineDepartureHarbour=Port de départ observe.constant.TripMapPointType.longlineLandingHarbour=Port d'arrivée -observe.constant.TripMapPointType.seineActivity=point d'activité -observe.constant.TripMapPointType.seineActivityInHarbour=Au port -observe.constant.TripMapPointType.seineActivityWithFreeSchoolType=Banc libre -observe.constant.TripMapPointType.seineActivityWithObjectSchoolType=Banc objet +observe.constant.TripMapPointType.seineActivityObs=point d'activité +observe.constant.TripMapPointType.seineActivityObsInHarbour=Au port +observe.constant.TripMapPointType.seineActivityObsWithFreeSchoolType=Banc libre +observe.constant.TripMapPointType.seineActivityObsWithObjectSchoolType=Banc objet observe.constant.TripMapPointType.seineDepartureHarbour=Port de départ observe.constant.TripMapPointType.seineLandingHarbour=Port d'arrivée observe.constant.TypeTransmittingBuoyOperation.pasDeBalise=Pas de balise liée au DCP ===================================== persistence/src/main/java/fr/ird/observe/entities/data/ps/common/TripSeineTopiaDao.java ===================================== @@ -141,23 +141,23 @@ public class TripSeineTopiaDao extends AbstractTripSeineTopiaDao<TripSeine> { point.setLatitude(resultSet.getFloat(3)); point.setLongitude(resultSet.getFloat(4)); if (ACTIVITY_HARBOUR_ID.equals(resultSet.getString(5))) { - point.setType(TripMapPointType.seineActivityInHarbour); + point.setType(TripMapPointType.seineActivityObsInHarbour); } else if (resultSet.getString(6) == null) { - point.setType(TripMapPointType.seineActivity); + point.setType(TripMapPointType.seineActivityObs); } else { String schoolType = resultSet.getString(6); switch (schoolType) { case SchoolTypeHelper.SCHOOL_TYPE_FREE_ID: - point.setType(TripMapPointType.seineActivityWithFreeSchoolType); + point.setType(TripMapPointType.seineActivityObsWithFreeSchoolType); break; case SchoolTypeHelper.SCHOOL_TYPE_OBJECT_ID: - point.setType(TripMapPointType.seineActivityWithObjectSchoolType); + point.setType(TripMapPointType.seineActivityObsWithObjectSchoolType); break; case SchoolTypeHelper.SCHOOL_TYPE_UNDEFINED_ID: - point.setType(TripMapPointType.seineActivity); + point.setType(TripMapPointType.seineActivityObs); break; default: - point.setType(TripMapPointType.seineActivity); + point.setType(TripMapPointType.seineActivityObs); } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/74dcde816b4e5563f750190f5bf… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/74dcde816b4e5563f750190f5bf… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-9] 8 commits: Choix de nouvelles couleurs pour les symboles de la carte LL - Closes #1293
by Tony CHEMIT 29 Jun '19

29 Jun '19
Tony CHEMIT pushed to branch develop-9 at ultreiaio / ird-observe Commits: 74dcde81 by tchemit at 2019-06-29T19:13:44Z Choix de nouvelles couleurs pour les symboles de la carte LL - Closes #1293 - - - - - 2977dae3 by tchemit at 2019-06-29T19:13:52Z Réorganisation des données d’observation PS - Réorganisation des captures et échantillons de cible et bycatch observés - See #1254 - - - - - 4915185e by tchemit at 2019-06-29T19:13:52Z Move to new version 9.0-alpha-1 - - - - - 27b1c490 by tchemit at 2019-06-29T19:13:52Z Réorganisation des données d’observation PS - Re localisation dans la hiérarchie - Closes #1252 - - - - - c80573fc by tchemit at 2019-06-29T19:13:52Z Module 2 (first flush) - - - - - 752abdb4 by tchemit at 2019-06-29T19:13:53Z [PS] Contenu des onglets spécifiques observations et logbooks et le formulaire marée - See #1300 - - - - - 3aecb17c by tchemit at 2019-06-29T19:13:53Z Module 2 - second flush - - - - - a107d1d2 by tchemit at 2019-06-29T19:13:53Z Report from v8 for ps logbook model - - - - - 30 changed files: - .mvn/pom.gitflow.develop - .mvn/pom.gitflow.master - client-configuration/.mvn/pom.gitflow.develop - client-configuration/.mvn/pom.gitflow.master - client-configuration/pom.xml - client-configuration/src/main/config/Client.ini - client-configuration/src/main/i18n/getters/config.getter - client-configuration/src/main/i18n/getters/java-enumeration.getter - client-configuration/src/main/i18n/getters/java.getter - client-core/.mvn/pom.gitflow.develop - client-core/.mvn/pom.gitflow.master - client-core/pom.xml - client-core/src/main/dcp-presets/ps/logbook/01-deployment-preset.yml - client-core/src/main/dcp-presets/ps/logbook/02-removal-preset.yml - client-core/src/main/dcp-presets/ps/logbook/03-update-preset.yml - client-core/src/main/dcp-presets/ps/logbook/04-abandonned-preset.yml - client-core/src/main/dcp-presets/ps/observation/01-deployment-preset.yml - client-core/src/main/dcp-presets/ps/observation/02-removal-preset.yml - client-core/src/main/dcp-presets/ps/observation/03-update-preset.yml - client-core/src/main/i18n/getters/java.getter - client-core/src/main/i18n/getters/jaxx.getter - client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java - client-core/src/main/java/fr/ird/observe/client/navigation/RouteCloseCallback.java - client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/add/AddActivitySeineFloatingObjectUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/dcp/AddFloatingObjectPresetUIAction.java - + client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/logbook/add/AddActivitySeineFloatingObjectUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/nodes/data/ps/obs/DiscardedTargetCatchSeineNavigationTreeNode.java → client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/logbook/add/AddActivitySeineSetUIAction.java - + client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/logbook/dcp/AddFloatingObjectPresetUIAction.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/09c729a2d0eb209e92559d5956… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/09c729a2d0eb209e92559d5956… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] L'assistant migration via serveur pourrait refuser de continuer si...
by Tony CHEMIT 29 Jun '19

29 Jun '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: dfd0c3f9 by tchemit at 2019-06-29T16:52:58Z L&#39;assistant migration via serveur pourrait refuser de continuer si l&#39;utilisateur n&#39;est pas assez acrédité - Closes #1145 Assistant création de base PG échoue - Closes #1331 - - - - - 15 changed files: - client-core/src/main/i18n/getters/java.getter - client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java - client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestRemoteUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestServerUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java - client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIModel.java - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties - pom.xml - server-core/src/main/filtered-resources/mapping - services-local/src/main/java/fr/ird/observe/services/local/service/DataSourceServiceLocal.java - services/src/main/java/fr/ird/observe/services/service/DataSourceService.java Changes: ===================================== client-core/src/main/i18n/getters/java.getter ===================================== @@ -910,6 +910,7 @@ observe.storage.error.rest.user.required observe.storage.error.rest.user.unknown observe.storage.error.serverVersionMismatch observe.storage.error.serverVersionModelMismatch +observe.storage.error.user.not.owner observe.storage.internalDump.last.modified observe.storage.internalDump.not.exist observe.storage.label.data.import.db ===================================== client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java ===================================== @@ -125,7 +125,9 @@ public class ObserveDataSourcesManager implements Closeable { dataSource = newDataSource(configuration); break; } - + if (model.getDataSourceInformation() != null) { + dataSource.setOwner(model.getDataSourceInformation().isOwner()); + } return dataSource; } @@ -293,8 +295,8 @@ public class ObserveDataSourcesManager implements Closeable { try { - ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); - + ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false); + dataSource.setOwner(dataSourceInformation.isOwner()); dataSource.migrateDataIfPossible(dataSourceInformation, config.getModelVersion()); // la source sera utilisée dans les ui @@ -360,7 +362,8 @@ public class ObserveDataSourcesManager implements Closeable { try { - ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); + ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false); + dataSource.setOwner(dataSourceInformation.isOwner()); dataSource.migrateData(dataSourceInformation, config.getModelVersion()); ===================================== client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java ===================================== @@ -151,6 +151,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements // indique si une modification a été effectuéé sur la base depuis son ouverture private boolean modified; + private boolean owner; public ObserveSwingDataSource(ObserveDataSourceConfiguration configuration) { this.configuration = configuration; @@ -223,7 +224,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements canWriteReferential(), canReadData(), canWriteData(), - getVersion(), + isOwner(), getVersion(), getVersion(), ImmutableList.of()); } @@ -395,6 +396,10 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements } + public boolean isOwner() { + return owner; + } + void migrateDataIfPossible(ObserveDataSourceInformation dataSourceInformation, Version targetVersion) { checkIsNotOpen(); @@ -445,10 +450,10 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements return connection != null; } - public ObserveDataSourceInformation checkCanConnect() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { + public ObserveDataSourceInformation checkCanConnect(boolean canBeEmpty) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { checkIsNotAlreadyOpen(); DataSourceService dataSourceService = servicesProvider.getDataSourceService(); - return dataSourceService.checkCanConnect(configuration); + return canBeEmpty ? dataSourceService.checkCanConnectOrBeEmpty(configuration) : dataSourceService.checkCanConnect(configuration); } public boolean isLocal() { @@ -828,4 +833,12 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements public void setProgressModel(ProgressModel progressModel) { this.progressModel = progressModel; } + + public void setOwner(boolean owner) { + this.owner = owner; + } + + public boolean getOwner() { + return owner; + } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestRemoteUIAction.java ===================================== @@ -67,7 +67,8 @@ public class TestRemoteUIAction extends PresetsUIActionSupport { ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(config); try { - ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); + ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false); + dataSource.setOwner(dataSourceInformation.isOwner()); Version versionDataSource = dataSourceInformation.getVersion(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestServerUIAction.java ===================================== @@ -102,7 +102,7 @@ public class TestServerUIAction extends PresetsUIActionSupport { } if (connexionStatusError == null) { - ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); + ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false); Version versionDataSource = dataSourceInformation.getVersion(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java ===================================== @@ -651,7 +651,7 @@ public class ConfigModel extends AdminActionModel { try { - localSourceInformation = localSource.checkCanConnect(); + localSourceInformation = localSource.checkCanConnect(false); } catch (Exception e) { //FIXME ! il faut faire quelque chose dans ce cas précis, au moins avertir l'utilisateur ===================================== client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java ===================================== @@ -554,8 +554,8 @@ public class StorageUIHandler implements UIHandler<StorageUI> { // si on utilise la base local on lance une migration de la base si necessaire if (DbMode.USE_LOCAL.equals((model.getDbMode()))) { - ObserveDataSourceInformation dataSourceInformation = currentDataSource.checkCanConnect(); - + ObserveDataSourceInformation dataSourceInformation = currentDataSource.checkCanConnect(false); + currentDataSource.setOwner(dataSourceInformation.isOwner()); progressModel.incrementsCurrentStep(); currentDataSource.migrateData(dataSourceInformation, config.getModelVersion()); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIModel.java ===================================== @@ -1665,12 +1665,14 @@ public class StorageUIModel extends WizardModel<StorageStep> { if (!error) { - dataSourceInformation = dataSource.checkCanConnect(); + boolean createAction = ObstunaAdminAction.CREATE.equals(adminAction); + dataSourceInformation = dataSource.checkCanConnect(createAction); + dataSource.setOwner(dataSourceInformation.isOwner()); Version versionDataSource = dataSourceInformation.getVersion(); // en mise a jour de la base on ne test pas la version - if (getModelVersion().equals(versionDataSource) || isCanMigrate() || ObstunaAdminAction.CREATE.equals(adminAction)) { + if (isCanMigrate() || createAction || getModelVersion().equals(versionDataSource)) { setConnexionStatus(ConnexionStatus.SUCCESS); @@ -1738,6 +1740,16 @@ public class StorageUIModel extends WizardModel<StorageStep> { setBusy(false); } + if (result && dataSourceInformation != null && adminAction != null) { + + // must be owner of database to perform a such action + if (!dataSourceInformation.isOwner()) { + connexionStatusError = t("observe.storage.error.user.not.owner"); + log.error(connexionStatusError); + setConnexionStatus(ConnexionStatus.FAILED); + result = false; + } + } return result; } @@ -1949,7 +1961,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { if (h2DataSourceInformation == null && localStorageExist) { ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(h2Config); try { - h2DataSourceInformation = dataSource.checkCanConnect(); + h2DataSourceInformation = dataSource.checkCanConnect(false); } catch (Exception e) { if (log.isDebugEnabled()) { log.debug("error on load data source information for local storage", e); ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=User login is mandatory observe.storage.error.rest.user.unknown=User "%s" is not defined on server observe.storage.error.serverVersionMismatch=Remote server version (%s) is not compliant with the client version (%s) observe.storage.error.serverVersionModelMismatch=Remote server model version (%s) is not compliant with the client model version (%s) +observe.storage.error.user.not.owner=User must be owner of database to perform this action\! observe.storage.import.data.fromBackup=Import data from a backup of a local database (*.sql.gz) observe.storage.import.data.fromRemoteStorage=Import data from a remote database observe.storage.import.data.fromServerStorage=Import data from a remove server ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=El usuario es obligatorio observe.storage.error.rest.user.unknown=El usuario "%s" no es conocido del servidor observe.storage.error.serverVersionMismatch=La versión del servidor remoto (%s) no es compatible con la versión del modelo (%s) observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s) \#TODO +observe.storage.error.user.not.owner=User must be owner of database to perform this action\! \#TODO observe.storage.import.data.fromBackup=Importar los datos de una copia de seguridad de una base local (*.sql.gz) observe.storage.import.data.fromRemoteStorage=Importar los datos de una base remota observe.storage.import.data.fromServerStorage=Importar los datos de un servidor remoto ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=L'utilisateur est obligatoire observe.storage.error.rest.user.unknown=L'utilisateur "%s" est inconnu sur le serveur observe.storage.error.serverVersionMismatch=La version du serveur distant (%s) n'est pas compatible avec la version du client (%s) observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s) +observe.storage.error.user.not.owner=L'utilisateur doit être le propriétaire de la base pour effectuer cette opération \! observe.storage.import.data.fromBackup=Importer les données depuis une sauvegarde de base locale (*.sql.gz) observe.storage.import.data.fromRemoteStorage=Importer les données depuis une base distante observe.storage.import.data.fromServerStorage=Importer les données depuis un serveur distant ===================================== pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2019.8.22</version> + <version>2019.8.23</version> </parent> <groupId>fr.ird.observe</groupId> @@ -156,12 +156,12 @@ <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <observeToolkitVersion>4.13</observeToolkitVersion> + <observeToolkitVersion>4.14-SNAPSHOT</observeToolkitVersion> <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation> <!--can't use 1.4.197 (date has changed + blob also)--> <lib.version.h2>1.4.196</lib.version.h2> - <!--<lib.version.java4all.topia>1.10-SNAPSHOT</lib.version.java4all.topia>--> + <lib.version.java4all.topia>1.11-SNAPSHOT</lib.version.java4all.topia> <!--<lib.version.java4all.eugene>3.0-alpha-22</lib.version.java4all.eugene>--> <!--lib.version.java4all.jaxx>3.0-alpha-52</lib.version.java4all.jaxx--> <!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>--> ===================================== server-core/src/main/filtered-resources/mapping ===================================== @@ -56,6 +56,7 @@ GET /admin/configuration/resetAuthenticationTokens ConfigurationCo GET /api/v1/DataSourceService/applySecurity v1.DataSourceServiceRestApi.applySecurity GET /api/v1/DataSourceService/backup v1.DataSourceServiceRestApi.backup GET /api/v1/DataSourceService/checkCanConnect v1.DataSourceServiceRestApi.checkCanConnect +GET /api/v1/DataSourceService/checkCanConnectOrBeEmpty v1.DataSourceServiceRestApi.checkCanConnectOrBeEmpty GET /api/v1/DataSourceService/close v1.DataSourceServiceRestApi.close GET /api/v1/DataSourceService/create v1.DataSourceServiceRestApi.create GET /api/v1/DataSourceService/destroy v1.DataSourceServiceRestApi.destroy ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/DataSourceServiceLocal.java ===================================== @@ -27,12 +27,12 @@ import com.google.common.collect.ImmutableSet; import fr.ird.observe.dto.ObserveDbRole; import fr.ird.observe.dto.db.ObserveDbUserDto; import fr.ird.observe.dto.reference.ReferentialDtoReference; -import fr.ird.observe.entities.referential.ObserveReferentialEntity; import fr.ird.observe.entities.ObserveEntityEnum; import fr.ird.observe.entities.ObserveTopiaApplicationContext; import fr.ird.observe.entities.ObserveTopiaConfiguration; import fr.ird.observe.entities.ObserveTopiaConfigurationFactory; import fr.ird.observe.entities.migration.ObserveTopiaMigrationServiceAskUserToMigrate; +import fr.ird.observe.entities.referential.ObserveReferentialEntity; import fr.ird.observe.services.configuration.DataSourceCreateConfigurationDto; import fr.ird.observe.services.configuration.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.configuration.IncompatibleDataSourceCreateConfigurationException; @@ -53,8 +53,8 @@ import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.SqlScriptProducerService; import fr.ird.observe.spi.DbModelHelper; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.nuiton.topia.persistence.jdbc.JdbcHelper; import org.nuiton.topia.persistence.jdbc.JdbcPostgresHelper; import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; @@ -98,6 +98,95 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS return privileges != null && !privileges.isEmpty(); } + private static boolean isOwner(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, JdbcPostgresHelper jdbcHelper) { + if (dataSourceConfiguration.isH2Database()) { + return true; + } + return jdbcHelper.isOwner(); + } + + @Override + public ObserveDataSourceInformation checkCanConnectOrBeEmpty(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException { + Preconditions.checkState(dataSourceConfiguration instanceof ObserveDataSourceConfigurationTopiaSupport); + ObserveDataSourceConfigurationTopiaSupport dataSourceConfigurationTopiaSupport = (ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration; + + ObserveDataSourceInformation dataSourceInformation; + + if (dataSourceConfigurationTopiaSupport.isH2Database()) { + + ObserveDataSourceConfigurationTopiaH2 h2DataSourceConfiguration = (ObserveDataSourceConfigurationTopiaH2) dataSourceConfigurationTopiaSupport; + + // On vérifie que le fichier de la base existe + File databaseFile = h2DataSourceConfiguration.getDatabaseFile(); + + if (!databaseFile.exists()) { + + String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.notFound"); + throw new DatabaseNotFoundException(message, dataSourceConfiguration); + + } + + // On vérifier que la base n'est pas déjà en cours d'utilisation + File databaseLockFile = h2DataSourceConfiguration.getLockFile(); + if (databaseLockFile.exists()) { + + String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.locked"); + if (log.isWarnEnabled()) { + log.warn(message); + } + // FIXME even if file is lock we still authorize to connect, + //throw new DatabaseConnexionNotAuthorizedException(message, dataSourceConfiguration); + } + + // On tente une connection à la base + ObserveTopiaConfiguration topiaConfiguration = ObserveTopiaConfigurationFactory.forH2Database(h2DataSourceConfiguration.getDirectory(), + h2DataSourceConfiguration.getDbName(), + h2DataSourceConfiguration.getUsername(), + new String(h2DataSourceConfiguration.getPassword()), + false, + false); + + + try { + new JdbcHelper(topiaConfiguration).runSelectOnString("SELECT 1;"); + } catch (Exception e) { + + // Authentification refusée + String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.badAuthentication"); + throw new DatabaseConnexionNotAuthorizedException(message, e, dataSourceConfiguration); + + } + + dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration, false); + + + } else { + + ObserveDataSourceConfigurationTopiaPG pgDataSourceConfiguration = (ObserveDataSourceConfigurationTopiaPG) dataSourceConfigurationTopiaSupport; + // On tente une connexion au serveur + ObserveTopiaConfiguration topiaConfiguration = ObserveTopiaConfigurationFactory.forPostgresqlDatabase(pgDataSourceConfiguration.getJdbcUrl(), + pgDataSourceConfiguration.getUsername(), + new String(pgDataSourceConfiguration.getPassword()), + false, + false); + + try { + new JdbcHelper(topiaConfiguration).runSelectOnString("SELECT 1;"); + } catch (Exception e) { + + throw new DatabaseConnexionNotAuthorizedException(e.getMessage(), e, dataSourceConfiguration); + + } + + dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration, true); + + } + + return dataSourceInformation; + + } + + @Override public ObserveDataSourceInformation checkCanConnect(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException { @@ -151,7 +240,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS } - dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration); + dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration, false); } else { @@ -172,7 +261,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS } - dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration); + dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration, false); } @@ -359,7 +448,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS } - ObserveDataSourceInformation dataSourceInformation = getDataSourceInformation((ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration, topiaApplicationContext.getConfiguration()); + ObserveDataSourceInformation dataSourceInformation = getDataSourceInformation((ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration, topiaApplicationContext.getConfiguration(), false); return createDataSourceConnection(dataSourceInformation, topiaApplicationContext.getAuthenticationToken()); @@ -529,7 +618,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS dataSourceInformation.getVersion()); } - private ObserveDataSourceInformation getDataSourceInformation(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, ObserveTopiaConfiguration topiaConfiguration) { + private ObserveDataSourceInformation getDataSourceInformation(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, ObserveTopiaConfiguration topiaConfiguration, boolean canBeEmpty) { boolean writeReferential; boolean readData; @@ -538,8 +627,37 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS Version version; JdbcPostgresHelper jdbcHelper = new JdbcPostgresHelper(topiaConfiguration); + boolean owner = isOwner(dataSourceConfiguration, jdbcHelper); - version = TMSVersionHibernateDao.getVersion(jdbcHelper, "tms_version").map(TMSVersion::toVersion).orElse(Version.VZERO); + try { + version = TMSVersionHibernateDao.getVersion(jdbcHelper, "tms_version").map(TMSVersion::toVersion).orElse(Version.VZERO); + } catch (Exception e) { + if (!canBeEmpty) { + throw e; + } + if (dataSourceConfiguration.isH2Database()) { + + // Sur une base H2, on a le droit de tout lire, mais uniquement d'écrire les données + writeReferential = false; + readData = true; + writeData = true; + owner = true; + + } else { + writeReferential = true; + readData = true; + writeData = true; + } + return new ObserveDataSourceInformation( + true, + writeReferential, + readData, + writeData, + owner, + ObserveTopiaMigrationServiceAskUserToMigrate.getMinimumVersion(), + null, + null); + } if (dataSourceConfiguration.isH2Database()) { @@ -591,6 +709,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS writeReferential, readData, writeData, + owner, ObserveTopiaMigrationServiceAskUserToMigrate.getMinimumVersion(), version, observeMigrationConfigurationProvider.getVersionsAfter(version)); ===================================== services/src/main/java/fr/ird/observe/services/service/DataSourceService.java ===================================== @@ -47,6 +47,9 @@ public interface DataSourceService extends ObserveService, Closeable { @Get(addAuthtoken = false) ObserveDataSourceInformation checkCanConnect(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException; + @Get(addAuthtoken = false) + ObserveDataSourceInformation checkCanConnectOrBeEmpty(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException; + @Get(addAuthtoken = false) ObserveDataSourceConnection create(ObserveDataSourceConfiguration dataSourceConfiguration, DataSourceCreateConfigurationDto dataSourceCreateConfiguration) throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/dfd0c3f9e9b15194d887b392ee1… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/dfd0c3f9e9b15194d887b392ee1… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-9] 9 commits: [PS] Suppression de 2 champs - Closes #1337
by Tony CHEMIT 29 Jun '19

29 Jun '19
Tony CHEMIT pushed to branch develop-9 at ultreiaio / ird-observe Commits: aca4d4c4 by tchemit at 2019-06-27T09:11:51Z [PS] Suppression de 2 champs - Closes #1337 - - - - - dfd0c3f9 by tchemit at 2019-06-29T16:52:58Z L&#39;assistant migration via serveur pourrait refuser de continuer si l&#39;utilisateur n&#39;est pas assez acrédité - Closes #1145 Assistant création de base PG échoue - Closes #1331 - - - - - c42d17df by tchemit at 2019-06-29T16:56:44Z Réorganisation des données d’observation PS - Réorganisation des captures et échantillons de cible et bycatch observés - See #1254 - - - - - ff82ad5f by tchemit at 2019-06-29T16:56:44Z Move to new version 9.0-alpha-1 - - - - - 9fb85ec5 by tchemit at 2019-06-29T16:56:44Z Réorganisation des données d’observation PS - Re localisation dans la hiérarchie - Closes #1252 - - - - - a3049c2e by tchemit at 2019-06-29T16:56:45Z Module 2 (first flush) - - - - - 58b6a918 by tchemit at 2019-06-29T16:56:45Z [PS] Contenu des onglets spécifiques observations et logbooks et le formulaire marée - See #1300 - - - - - 158fdfc8 by tchemit at 2019-06-29T16:56:46Z Module 2 - second flush - - - - - 09c729a2 by tchemit at 2019-06-29T16:56:46Z Report from v8 for ps logbook model - - - - - 30 changed files: - .mvn/pom.gitflow.develop - .mvn/pom.gitflow.master - client-configuration/.mvn/pom.gitflow.develop - client-configuration/.mvn/pom.gitflow.master - client-configuration/pom.xml - client-configuration/src/main/config/Client.ini - client-configuration/src/main/i18n/getters/config.getter - client-configuration/src/main/i18n/getters/java-enumeration.getter - client-configuration/src/main/i18n/getters/java.getter - client-core/.mvn/pom.gitflow.develop - client-core/.mvn/pom.gitflow.master - client-core/pom.xml - client-core/src/main/dcp-presets/ps/logbook/01-deployment-preset.yml - client-core/src/main/dcp-presets/ps/logbook/02-removal-preset.yml - client-core/src/main/dcp-presets/ps/logbook/03-update-preset.yml - client-core/src/main/dcp-presets/ps/logbook/04-abandonned-preset.yml - client-core/src/main/dcp-presets/ps/observation/01-deployment-preset.yml - client-core/src/main/dcp-presets/ps/observation/02-removal-preset.yml - client-core/src/main/dcp-presets/ps/observation/03-update-preset.yml - client-core/src/main/i18n/getters/java.getter - client-core/src/main/i18n/getters/jaxx.getter - client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java - client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java - client-core/src/main/java/fr/ird/observe/client/navigation/RouteCloseCallback.java - client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/add/AddActivitySeineFloatingObjectUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/dcp/AddFloatingObjectPresetUIAction.java - + client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/logbook/add/AddActivitySeineFloatingObjectUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/nodes/data/ps/obs/DiscardedTargetCatchSeineNavigationTreeNode.java → client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/logbook/add/AddActivitySeineSetUIAction.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ce84b5b9add3073d5b20d71e68… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ce84b5b9add3073d5b20d71e68… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] L'assistant migration via serveur pourrait refuser de continuer si...
by Tony CHEMIT 28 Jun '19

28 Jun '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 175475b0 by tchemit at 2019-06-28T15:50:09Z L&#39;assistant migration via serveur pourrait refuser de continuer si l&#39;utilisateur n&#39;est pas assez acrédité - Closes #1145 Assistant création de base PG échoue - Closes #1331 - - - - - 15 changed files: - client-core/src/main/i18n/getters/java.getter - client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java - client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestRemoteUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestServerUIAction.java - client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java - client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIModel.java - observe-i18n/src/main/i18n/translations/observe_en_GB.properties - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - observe-i18n/src/main/i18n/translations/observe_fr_FR.properties - pom.xml - server-core/src/main/filtered-resources/mapping - services-local/src/main/java/fr/ird/observe/services/local/service/DataSourceServiceLocal.java - services/src/main/java/fr/ird/observe/services/service/DataSourceService.java Changes: ===================================== client-core/src/main/i18n/getters/java.getter ===================================== @@ -910,6 +910,7 @@ observe.storage.error.rest.user.required observe.storage.error.rest.user.unknown observe.storage.error.serverVersionMismatch observe.storage.error.serverVersionModelMismatch +observe.storage.error.user.not.owner observe.storage.internalDump.last.modified observe.storage.internalDump.not.exist observe.storage.label.data.import.db ===================================== client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java ===================================== @@ -125,7 +125,9 @@ public class ObserveDataSourcesManager implements Closeable { dataSource = newDataSource(configuration); break; } - + if (model.getDataSourceInformation() != null) { + dataSource.setOwner(model.getDataSourceInformation().isOwner()); + } return dataSource; } @@ -293,8 +295,8 @@ public class ObserveDataSourcesManager implements Closeable { try { - ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); - + ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false); + dataSource.setOwner(dataSourceInformation.isOwner()); dataSource.migrateDataIfPossible(dataSourceInformation, config.getModelVersion()); // la source sera utilisée dans les ui @@ -360,7 +362,8 @@ public class ObserveDataSourcesManager implements Closeable { try { - ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); + ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false); + dataSource.setOwner(dataSourceInformation.isOwner()); dataSource.migrateData(dataSourceInformation, config.getModelVersion()); ===================================== client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java ===================================== @@ -151,6 +151,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements // indique si une modification a été effectuéé sur la base depuis son ouverture private boolean modified; + private boolean owner; public ObserveSwingDataSource(ObserveDataSourceConfiguration configuration) { this.configuration = configuration; @@ -223,7 +224,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements canWriteReferential(), canReadData(), canWriteData(), - getVersion(), + isOwner(), getVersion(), getVersion(), ImmutableList.of()); } @@ -395,6 +396,10 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements } + public boolean isOwner() { + return owner; + } + void migrateDataIfPossible(ObserveDataSourceInformation dataSourceInformation, Version targetVersion) { checkIsNotOpen(); @@ -445,10 +450,10 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements return connection != null; } - public ObserveDataSourceInformation checkCanConnect() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { + public ObserveDataSourceInformation checkCanConnect(boolean canBeEmpty) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { checkIsNotAlreadyOpen(); DataSourceService dataSourceService = servicesProvider.getDataSourceService(); - return dataSourceService.checkCanConnect(configuration); + return canBeEmpty ? dataSourceService.checkCanConnectOrBeEmpty(configuration) : dataSourceService.checkCanConnect(configuration); } public boolean isLocal() { @@ -828,4 +833,12 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements public void setProgressModel(ProgressModel progressModel) { this.progressModel = progressModel; } + + public void setOwner(boolean owner) { + this.owner = owner; + } + + public boolean getOwner() { + return owner; + } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestRemoteUIAction.java ===================================== @@ -67,7 +67,8 @@ public class TestRemoteUIAction extends PresetsUIActionSupport { ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(config); try { - ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); + ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false); + dataSource.setOwner(dataSourceInformation.isOwner()); Version versionDataSource = dataSourceInformation.getVersion(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestServerUIAction.java ===================================== @@ -102,7 +102,7 @@ public class TestServerUIAction extends PresetsUIActionSupport { } if (connexionStatusError == null) { - ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); + ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false); Version versionDataSource = dataSourceInformation.getVersion(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java ===================================== @@ -651,7 +651,7 @@ public class ConfigModel extends AdminActionModel { try { - localSourceInformation = localSource.checkCanConnect(); + localSourceInformation = localSource.checkCanConnect(false); } catch (Exception e) { //FIXME ! il faut faire quelque chose dans ce cas précis, au moins avertir l'utilisateur ===================================== client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java ===================================== @@ -554,8 +554,8 @@ public class StorageUIHandler implements UIHandler<StorageUI> { // si on utilise la base local on lance une migration de la base si necessaire if (DbMode.USE_LOCAL.equals((model.getDbMode()))) { - ObserveDataSourceInformation dataSourceInformation = currentDataSource.checkCanConnect(); - + ObserveDataSourceInformation dataSourceInformation = currentDataSource.checkCanConnect(false); + currentDataSource.setOwner(dataSourceInformation.isOwner()); progressModel.incrementsCurrentStep(); currentDataSource.migrateData(dataSourceInformation, config.getModelVersion()); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIModel.java ===================================== @@ -1665,12 +1665,14 @@ public class StorageUIModel extends WizardModel<StorageStep> { if (!error) { - dataSourceInformation = dataSource.checkCanConnect(); + boolean createAction = ObstunaAdminAction.CREATE.equals(adminAction); + dataSourceInformation = dataSource.checkCanConnect(createAction); + dataSource.setOwner(dataSourceInformation.isOwner()); Version versionDataSource = dataSourceInformation.getVersion(); // en mise a jour de la base on ne test pas la version - if (getModelVersion().equals(versionDataSource) || isCanMigrate() || ObstunaAdminAction.CREATE.equals(adminAction)) { + if (isCanMigrate() || createAction || getModelVersion().equals(versionDataSource)) { setConnexionStatus(ConnexionStatus.SUCCESS); @@ -1738,6 +1740,16 @@ public class StorageUIModel extends WizardModel<StorageStep> { setBusy(false); } + if (result && dataSourceInformation != null && adminAction != null) { + + // must be owner of database to perform a such action + if (!dataSourceInformation.isOwner()) { + connexionStatusError = t("observe.storage.error.user.not.owner"); + log.error(connexionStatusError); + setConnexionStatus(ConnexionStatus.FAILED); + result = false; + } + } return result; } @@ -1949,7 +1961,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { if (h2DataSourceInformation == null && localStorageExist) { ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(h2Config); try { - h2DataSourceInformation = dataSource.checkCanConnect(); + h2DataSourceInformation = dataSource.checkCanConnect(false); } catch (Exception e) { if (log.isDebugEnabled()) { log.debug("error on load data source information for local storage", e); ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=User login is mandatory observe.storage.error.rest.user.unknown=User "%s" is not defined on server observe.storage.error.serverVersionMismatch=Remote server version (%s) is not compliant with the client version (%s) observe.storage.error.serverVersionModelMismatch=Remote server model version (%s) is not compliant with the client model version (%s) +observe.storage.error.user.not.owner=User must be owner of database to perform this action\! observe.storage.import.data.fromBackup=Import data from a backup of a local database (*.sql.gz) observe.storage.import.data.fromRemoteStorage=Import data from a remote database observe.storage.import.data.fromServerStorage=Import data from a remove server ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=El usuario es obligatorio observe.storage.error.rest.user.unknown=El usuario "%s" no es conocido del servidor observe.storage.error.serverVersionMismatch=La versión del servidor remoto (%s) no es compatible con la versión del modelo (%s) observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s) \#TODO +observe.storage.error.user.not.owner=User must be owner of database to perform this action\! \#TODO observe.storage.import.data.fromBackup=Importar los datos de una copia de seguridad de una base local (*.sql.gz) observe.storage.import.data.fromRemoteStorage=Importar los datos de una base remota observe.storage.import.data.fromServerStorage=Importar los datos de un servidor remoto ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=L'utilisateur est obligatoire observe.storage.error.rest.user.unknown=L'utilisateur "%s" est inconnu sur le serveur observe.storage.error.serverVersionMismatch=La version du serveur distant (%s) n'est pas compatible avec la version du client (%s) observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s) +observe.storage.error.user.not.owner=L'utilisateur doit être le propriétaire de la base pour effectuer cette opération \! observe.storage.import.data.fromBackup=Importer les données depuis une sauvegarde de base locale (*.sql.gz) observe.storage.import.data.fromRemoteStorage=Importer les données depuis une base distante observe.storage.import.data.fromServerStorage=Importer les données depuis un serveur distant ===================================== pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2019.8.22</version> + <version>2019.8.23</version> </parent> <groupId>fr.ird.observe</groupId> @@ -156,7 +156,7 @@ <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <observeToolkitVersion>4.13</observeToolkitVersion> + <observeToolkitVersion>4.14-SNAPSHOT</observeToolkitVersion> <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation> <!--can't use 1.4.197 (date has changed + blob also)--> <lib.version.h2>1.4.196</lib.version.h2> ===================================== server-core/src/main/filtered-resources/mapping ===================================== @@ -56,6 +56,7 @@ GET /admin/configuration/resetAuthenticationTokens ConfigurationCo GET /api/v1/DataSourceService/applySecurity v1.DataSourceServiceRestApi.applySecurity GET /api/v1/DataSourceService/backup v1.DataSourceServiceRestApi.backup GET /api/v1/DataSourceService/checkCanConnect v1.DataSourceServiceRestApi.checkCanConnect +GET /api/v1/DataSourceService/checkCanConnectOrBeEmpty v1.DataSourceServiceRestApi.checkCanConnectOrBeEmpty GET /api/v1/DataSourceService/close v1.DataSourceServiceRestApi.close GET /api/v1/DataSourceService/create v1.DataSourceServiceRestApi.create GET /api/v1/DataSourceService/destroy v1.DataSourceServiceRestApi.destroy ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/DataSourceServiceLocal.java ===================================== @@ -27,12 +27,12 @@ import com.google.common.collect.ImmutableSet; import fr.ird.observe.dto.ObserveDbRole; import fr.ird.observe.dto.db.ObserveDbUserDto; import fr.ird.observe.dto.reference.ReferentialDtoReference; -import fr.ird.observe.entities.referential.ObserveReferentialEntity; import fr.ird.observe.entities.ObserveEntityEnum; import fr.ird.observe.entities.ObserveTopiaApplicationContext; import fr.ird.observe.entities.ObserveTopiaConfiguration; import fr.ird.observe.entities.ObserveTopiaConfigurationFactory; import fr.ird.observe.entities.migration.ObserveTopiaMigrationServiceAskUserToMigrate; +import fr.ird.observe.entities.referential.ObserveReferentialEntity; import fr.ird.observe.services.configuration.DataSourceCreateConfigurationDto; import fr.ird.observe.services.configuration.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.configuration.IncompatibleDataSourceCreateConfigurationException; @@ -53,8 +53,8 @@ import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.sql.SqlScriptProducerService; import fr.ird.observe.spi.DbModelHelper; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.nuiton.topia.persistence.jdbc.JdbcHelper; import org.nuiton.topia.persistence.jdbc.JdbcPostgresHelper; import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity; @@ -71,6 +71,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.LinkedHashSet; +import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.UUID; @@ -98,6 +99,96 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS return privileges != null && !privileges.isEmpty(); } + private static boolean isOwner(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, JdbcPostgresHelper jdbcHelper) { + if (dataSourceConfiguration.isH2Database()) { + return true; + } + String ownerName = jdbcHelper.runSelectOnString("SELECT pg_catalog.pg_get_userbyid(d.datdba) FROM pg_catalog.pg_database d WHERE d.datname = (SELECT current_database())\n"); + return Objects.equals(dataSourceConfiguration.getUsername(), ownerName); + } + + @Override + public ObserveDataSourceInformation checkCanConnectOrBeEmpty(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException { + Preconditions.checkState(dataSourceConfiguration instanceof ObserveDataSourceConfigurationTopiaSupport); + ObserveDataSourceConfigurationTopiaSupport dataSourceConfigurationTopiaSupport = (ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration; + + ObserveDataSourceInformation dataSourceInformation; + + if (dataSourceConfigurationTopiaSupport.isH2Database()) { + + ObserveDataSourceConfigurationTopiaH2 h2DataSourceConfiguration = (ObserveDataSourceConfigurationTopiaH2) dataSourceConfigurationTopiaSupport; + + // On vérifie que le fichier de la base existe + File databaseFile = h2DataSourceConfiguration.getDatabaseFile(); + + if (!databaseFile.exists()) { + + String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.notFound"); + throw new DatabaseNotFoundException(message, dataSourceConfiguration); + + } + + // On vérifier que la base n'est pas déjà en cours d'utilisation + File databaseLockFile = h2DataSourceConfiguration.getLockFile(); + if (databaseLockFile.exists()) { + + String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.locked"); + if (log.isWarnEnabled()) { + log.warn(message); + } + // FIXME even if file is lock we still authorize to connect, + //throw new DatabaseConnexionNotAuthorizedException(message, dataSourceConfiguration); + } + + // On tente une connection à la base + ObserveTopiaConfiguration topiaConfiguration = ObserveTopiaConfigurationFactory.forH2Database(h2DataSourceConfiguration.getDirectory(), + h2DataSourceConfiguration.getDbName(), + h2DataSourceConfiguration.getUsername(), + new String(h2DataSourceConfiguration.getPassword()), + false, + false); + + + try { + new JdbcHelper(topiaConfiguration).runSelectOnString("SELECT 1;"); + } catch (Exception e) { + + // Authentification refusée + String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.badAuthentication"); + throw new DatabaseConnexionNotAuthorizedException(message, e, dataSourceConfiguration); + + } + + dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration, false); + + + } else { + + ObserveDataSourceConfigurationTopiaPG pgDataSourceConfiguration = (ObserveDataSourceConfigurationTopiaPG) dataSourceConfigurationTopiaSupport; + // On tente une connexion au serveur + ObserveTopiaConfiguration topiaConfiguration = ObserveTopiaConfigurationFactory.forPostgresqlDatabase(pgDataSourceConfiguration.getJdbcUrl(), + pgDataSourceConfiguration.getUsername(), + new String(pgDataSourceConfiguration.getPassword()), + false, + false); + + try { + new JdbcHelper(topiaConfiguration).runSelectOnString("SELECT 1;"); + } catch (Exception e) { + + throw new DatabaseConnexionNotAuthorizedException(e.getMessage(), e, dataSourceConfiguration); + + } + + dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration, true); + + } + + return dataSourceInformation; + + } + + @Override public ObserveDataSourceInformation checkCanConnect(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException { @@ -151,7 +242,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS } - dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration); + dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration, false); } else { @@ -172,7 +263,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS } - dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration); + dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration, false); } @@ -359,7 +450,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS } - ObserveDataSourceInformation dataSourceInformation = getDataSourceInformation((ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration, topiaApplicationContext.getConfiguration()); + ObserveDataSourceInformation dataSourceInformation = getDataSourceInformation((ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration, topiaApplicationContext.getConfiguration(), false); return createDataSourceConnection(dataSourceInformation, topiaApplicationContext.getAuthenticationToken()); @@ -529,7 +620,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS dataSourceInformation.getVersion()); } - private ObserveDataSourceInformation getDataSourceInformation(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, ObserveTopiaConfiguration topiaConfiguration) { + private ObserveDataSourceInformation getDataSourceInformation(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, ObserveTopiaConfiguration topiaConfiguration, boolean canBeEmpty) { boolean writeReferential; boolean readData; @@ -538,8 +629,37 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS Version version; JdbcPostgresHelper jdbcHelper = new JdbcPostgresHelper(topiaConfiguration); + boolean owner = isOwner(dataSourceConfiguration, jdbcHelper); - version = TMSVersionHibernateDao.getVersion(jdbcHelper, "tms_version").map(TMSVersion::toVersion).orElse(Version.VZERO); + try { + version = TMSVersionHibernateDao.getVersion(jdbcHelper, "tms_version").map(TMSVersion::toVersion).orElse(Version.VZERO); + } catch (Exception e) { + if (!canBeEmpty) { + throw e; + } + if (dataSourceConfiguration.isH2Database()) { + + // Sur une base H2, on a le droit de tout lire, mais uniquement d'écrire les données + writeReferential = false; + readData = true; + writeData = true; + owner = true; + + } else { + writeReferential = true; + readData = true; + writeData = true; + } + return new ObserveDataSourceInformation( + true, + writeReferential, + readData, + writeData, + owner, + ObserveTopiaMigrationServiceAskUserToMigrate.getMinimumVersion(), + null, + null); + } if (dataSourceConfiguration.isH2Database()) { @@ -591,6 +711,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS writeReferential, readData, writeData, + owner, ObserveTopiaMigrationServiceAskUserToMigrate.getMinimumVersion(), version, observeMigrationConfigurationProvider.getVersionsAfter(version)); ===================================== services/src/main/java/fr/ird/observe/services/service/DataSourceService.java ===================================== @@ -47,6 +47,9 @@ public interface DataSourceService extends ObserveService, Closeable { @Get(addAuthtoken = false) ObserveDataSourceInformation checkCanConnect(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException; + @Get(addAuthtoken = false) + ObserveDataSourceInformation checkCanConnectOrBeEmpty(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException; + @Get(addAuthtoken = false) ObserveDataSourceConnection create(ObserveDataSourceConfiguration dataSourceConfiguration, DataSourceCreateConfigurationDto dataSourceCreateConfiguration) throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/175475b05d24bab72165a29e2e1… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/175475b05d24bab72165a29e2e1… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] [PS] Suppression de 2 champs - Closes #1337
by Tony CHEMIT 27 Jun '19

27 Jun '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: aca4d4c4 by tchemit at 2019-06-27T09:11:51Z [PS] Suppression de 2 champs - Closes #1337 - - - - - 13 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/SetSeineUI.jaxx - dto/src/main/models/Observe-20-data-ps-observation.model - persistence/src/main/java/fr/ird/observe/binder/data/ps/observation/SetSeineEntityDtoBinder.java - persistence/src/main/models/Observe-20-data-ps-observation.model - persistence/src/main/resources/db/migration/7.3/02_ps_modify_data_tables-H2.sql - persistence/src/main/resources/db/migration/7.3/02_ps_modify_data_tables-PG.sql - services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/NonTargetCatchServiceLocal.java - services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/TargetCatchServiceLocal.java - test/src/main/resources/db/7.3/dataForTestLongline.sql.gz - test/src/main/resources/db/7.3/dataForTestSeine.sql.gz - test/src/main/resources/db/7.3/empty_h2.sql.gz - test/src/main/resources/db/7.3/empty_pg.sql.gz - test/src/main/resources/db/7.3/referentiel.sql.gz Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/SetSeineUI.jaxx ===================================== @@ -33,8 +33,6 @@ fr.ird.observe.client.ui.actions.content.data.ps.delete.DeleteSetSeineUIAction fr.ird.observe.client.ui.actions.content.data.ps.save.SaveSetSeineUIAction - fr.ird.observe.client.ui.util.BooleanEditor - org.nuiton.jaxx.widgets.number.NumberEditor org.nuiton.jaxx.widgets.select.BeanFilterableComboBox org.nuiton.jaxx.widgets.datetime.DateTimeEditor @@ -94,22 +92,6 @@ <NormalTextEditor id='supportVesselName'/> </cell> </row> - <row> - <cell anchor="west"> - <JLabel id='targetDiscardedLabel'/> - </cell> - <cell anchor='east' fill="both"> - <BooleanEditor id='targetDiscarded'/> - </cell> - </row> - <row> - <cell anchor="west"> - <JLabel id='nonTargetDiscardedLabel'/> - </cell> - <cell anchor='east' fill="both"> - <BooleanEditor id='nonTargetDiscarded'/> - </cell> - </row> <row> <cell anchor='west'> <JLabel id='schoolTypeLabel' styleClass="information"/> ===================================== dto/src/main/models/Observe-20-data-ps-observation.model ===================================== @@ -144,8 +144,6 @@ schoolTopDepth + {*:1} Integer schoolMeanDepth + {*:1} Integer schoolThickness + {*:1} Integer supportVesselName + {*:1} String -targetDiscarded + {*:1} Boolean -nonTargetDiscarded + {*:1} Boolean currentMeasureDepth + {*:1} Integer schoolType + {*:1} fr.ird.observe.dto.referential.ps.common.SchoolTypeReference targetCatchCompositionEstimatedByObserver + {*:1} boolean ===================================== persistence/src/main/java/fr/ird/observe/binder/data/ps/observation/SetSeineEntityDtoBinder.java ===================================== @@ -52,8 +52,6 @@ public class SetSeineEntityDtoBinder extends DataEntityDtoBinderSupport<SetSeine entity.setSchoolMeanDepth(dto.getSchoolMeanDepth()); entity.setSchoolThickness(dto.getSchoolThickness()); entity.setSupportVesselName(dto.getSupportVesselName()); - entity.setTargetDiscarded(dto.getTargetDiscarded()); - entity.setNonTargetDiscarded(dto.getNonTargetDiscarded()); entity.setCurrentMeasureDepth(dto.getCurrentMeasureDepth()); entity.setLastUpdateDate(dto.getLastUpdateDate()); entity.setTargetCatchCompositionEstimatedByObserver(dto.isTargetCatchCompositionEstimatedByObserver()); @@ -76,8 +74,6 @@ public class SetSeineEntityDtoBinder extends DataEntityDtoBinderSupport<SetSeine dto.setSchoolMeanDepth(entity.getSchoolMeanDepth()); dto.setSchoolThickness(entity.getSchoolThickness()); dto.setSupportVesselName(entity.getSupportVesselName()); - dto.setTargetDiscarded(entity.getTargetDiscarded()); - dto.setNonTargetDiscarded(entity.getNonTargetDiscarded()); dto.setCurrentMeasureDepth(entity.getCurrentMeasureDepth()); dto.setTargetCatchCompositionEstimatedByObserver(entity.isTargetCatchCompositionEstimatedByObserver()); dto.setTargetDiscardCatchCompositionEstimatedByObserver(entity.isTargetDiscardCatchCompositionEstimatedByObserver()); ===================================== persistence/src/main/models/Observe-20-data-ps-observation.model ===================================== @@ -151,8 +151,6 @@ schoolTopDepth + {*:1} Integer schoolMeanDepth + {*:1} Integer schoolThickness + {*:1} Integer supportVesselName + {*:1} String -targetDiscarded + {*:1} Boolean -nonTargetDiscarded + {*:1} Boolean currentMeasureDepth + {*:1} Integer schoolType + {*:1} referential.ps.common.SchoolType targetCatchCompositionEstimatedByObserver + {*:1} boolean ===================================== persistence/src/main/resources/db/migration/7.3/02_ps_modify_data_tables-H2.sql ===================================== @@ -40,3 +40,6 @@ ALTER TABLE ps_observation.TransmittingBuoy ADD CONSTRAINT fk_ps_observation_Tra CREATE INDEX idx_ps_observation_ObservedSystem_schoolType ON ps_observation.ObservedSystem(schoolType); CREATE INDEX idx_ps_observation_Set_schoolType ON ps_observation.Set(schoolType); CREATE INDEX idx_ps_observation_TransmittingBuoy_TransmittingBuoyOwnership ON ps_observation.TransmittingBuoy(TransmittingBuoyOwnership); + +ALTER TABLE ps_observation.Set DROP COLUMN targetDiscarded; +ALTER TABLE ps_observation.Set DROP COLUMN nonTargetDiscarded; \ No newline at end of file ===================================== persistence/src/main/resources/db/migration/7.3/02_ps_modify_data_tables-PG.sql ===================================== @@ -40,3 +40,6 @@ ALTER TABLE ps_observation.TransmittingBuoy ADD CONSTRAINT fk_ps_observation_Tra CREATE INDEX idx_ps_observation_ObservedSystem_schoolType ON ps_observation.ObservedSystem(schoolType); CREATE INDEX idx_ps_observation_Set_schoolType ON ps_observation.Set(schoolType); CREATE INDEX idx_ps_observation_TransmittingBuoy_TransmittingBuoyOwnership ON ps_observation.TransmittingBuoy(TransmittingBuoyOwnership); + +ALTER TABLE ps_observation.Set DROP COLUMN targetDiscarded; +ALTER TABLE ps_observation.Set DROP COLUMN nonTargetDiscarded; ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/NonTargetCatchServiceLocal.java ===================================== @@ -90,18 +90,6 @@ public class NonTargetCatchServiceLocal extends ObserveServiceLocal implements N checkLastUpdateDate(entity, dto); SET_SEINE_NON_TARGET_SPI.copyDtoToEntity(dto, entity, getReferentialLocale()); - // mise a jour de la propriete nonTargetDiscarded sur la calée - - boolean nonTargetDiscarded = entity.getNonTargetCatch().stream() - .anyMatch(nonTargetCatch -> nonTargetCatch.getReasonForDiscard() != null); -// for (NonTargetCatch nonTargetCatch : entity.getNonTargetCatch()) { -// if (nonTargetCatch.getReasonForDiscard() != null) { -// // on a trouve un rejet de faune -// nonTargetDiscarded = true; -// break; -// } -// } - entity.setNonTargetDiscarded(nonTargetDiscarded); // on supprime les échantillons dont les espèces ne sont plus dans les captures if (entity.isNonTargetSampleNotEmpty()) { NonTargetSample nonTargetSample = entity.getNonTargetSample().iterator().next(); ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/TargetCatchServiceLocal.java ===================================== @@ -109,17 +109,6 @@ public class TargetCatchServiceLocal extends ObserveServiceLocal implements Targ for (TargetCatch targetCatch : entity.getTargetCatch()) { targetCatch.setSetSeine(entity); } - // Calcul du champs SetSeine.targetDiscarded - boolean targetDiscarded; - if (discarded) { - // on est sur des captures il suffit que les données entrantes contiennent une capture - targetDiscarded = dto.sizeTargetCatch() > 0; - } else { - // on est sur des rejets il suffit que les autres données contiennent une capture - targetDiscarded = otherTargetCatches.size() > 0; - } - log.info("SetSeine " + entity.getTopiaId() + ", targetDiscarded: " + targetDiscarded); - entity.setTargetDiscarded(targetDiscarded); return saveEntity(entity); } ===================================== test/src/main/resources/db/7.3/dataForTestLongline.sql.gz ===================================== Binary files a/test/src/main/resources/db/7.3/dataForTestLongline.sql.gz and b/test/src/main/resources/db/7.3/dataForTestLongline.sql.gz differ ===================================== test/src/main/resources/db/7.3/dataForTestSeine.sql.gz ===================================== Binary files a/test/src/main/resources/db/7.3/dataForTestSeine.sql.gz and b/test/src/main/resources/db/7.3/dataForTestSeine.sql.gz differ ===================================== test/src/main/resources/db/7.3/empty_h2.sql.gz ===================================== Binary files a/test/src/main/resources/db/7.3/empty_h2.sql.gz and b/test/src/main/resources/db/7.3/empty_h2.sql.gz differ ===================================== test/src/main/resources/db/7.3/empty_pg.sql.gz ===================================== Binary files a/test/src/main/resources/db/7.3/empty_pg.sql.gz and b/test/src/main/resources/db/7.3/empty_pg.sql.gz differ ===================================== test/src/main/resources/db/7.3/referentiel.sql.gz ===================================== Binary files a/test/src/main/resources/db/7.3/referentiel.sql.gz and b/test/src/main/resources/db/7.3/referentiel.sql.gz differ View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/aca4d4c456c1429a92352aebd9d… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/aca4d4c456c1429a92352aebd9d… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-9] 14 commits: update pom
by Tony CHEMIT 27 Jun '19

27 Jun '19
Tony CHEMIT pushed to branch develop-9 at ultreiaio / ird-observe Commits: 19e30588 by tchemit at 2019-06-27T05:28:05Z update pom - - - - - f64a33aa by tchemit at 2019-06-27T05:30:37Z Clés de référentiel non traduite ou nom des clés invalide - Close #1336 - - - - - 5f644483 by tchemit at 2019-06-27T05:33:03Z [REFERENTIEL] Impossible de modifier le parent d&#39;un matériau - Closes #1338 - - - - - 230a5851 by tchemit at 2019-06-27T05:34:46Z [REFERENTIEL] La validation sur les Objets flottant matériaux ne fonctionnent plus :( - Closes #1339 - - - - - 7cd87441 by tchemit at 2019-06-27T05:37:57Z [PS][FAD] Comportement des entrées &#39;FAD&#39; et &#39;LOG&#39; - Closes #1324 - - - - - 3bd3958b by tchemit at 2019-06-27T05:39:11Z Fix referential back to list action - - - - - e65a7d2f by tchemit at 2019-06-27T06:56:50Z update changelog [skip ci] - - - - - 8c8e6502 by tchemit at 2019-06-27T07:02:32Z Réorganisation des données d’observation PS - Réorganisation des captures et échantillons de cible et bycatch observés - See #1254 - - - - - cf0ef2da by tchemit at 2019-06-27T07:02:32Z Move to new version 9.0-alpha-1 - - - - - 9b0e8181 by tchemit at 2019-06-27T07:02:32Z Réorganisation des données d’observation PS - Re localisation dans la hiérarchie - Closes #1252 - - - - - 13ec4fe8 by tchemit at 2019-06-27T07:02:33Z Module 2 (first flush) - - - - - 883d5108 by tchemit at 2019-06-27T07:03:25Z [PS] Contenu des onglets spécifiques observations et logbooks et le formulaire marée - See #1300 - - - - - 86a285bf by tchemit at 2019-06-27T07:03:54Z Module 2 - second flush - - - - - ce84b5b9 by tchemit at 2019-06-27T08:02:10Z Report from v8 for ps logbook model - - - - - 30 changed files: - .mvn/gitlab-cache/milestones/898778-issues.json - + .mvn/gitlab-cache/milestones/915205-artifacts.json - + .mvn/gitlab-cache/milestones/915205-issues.json - + .mvn/gitlab-cache/milestones/915205.json - + .mvn/gitlab-cache/milestones/916804-artifacts.json - + .mvn/gitlab-cache/milestones/916804-issues.json - + .mvn/gitlab-cache/milestones/916804.json - .mvn/pom.gitflow.develop - .mvn/pom.gitflow.master - CHANGELOG.md - client-configuration/.mvn/pom.gitflow.develop - client-configuration/.mvn/pom.gitflow.master - client-configuration/pom.xml - client-configuration/src/main/config/Client.ini - client-configuration/src/main/i18n/getters/config.getter - client-configuration/src/main/i18n/getters/java-enumeration.getter - client-configuration/src/main/i18n/getters/java.getter - client-core/.mvn/pom.gitflow.develop - client-core/.mvn/pom.gitflow.master - client-core/pom.xml - client-core/src/main/dcp-presets/ps/logbook/01-deployment-preset.yml - client-core/src/main/dcp-presets/ps/logbook/02-removal-preset.yml - client-core/src/main/dcp-presets/ps/logbook/03-update-preset.yml - client-core/src/main/dcp-presets/ps/logbook/04-abandonned-preset.yml - client-core/src/main/i18n/getters/java.getter - client-core/src/main/i18n/getters/jaxx.getter - client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java - client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java - client-core/src/main/java/fr/ird/observe/client/navigation/RouteCloseCallback.java - client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jaxx The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/8e6c0c308de8532a98b1bcfdf7… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/8e6c0c308de8532a98b1bcfdf7… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] update changelog [skip ci]
by Tony CHEMIT 27 Jun '19

27 Jun '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: e65a7d2f by tchemit at 2019-06-27T06:56:50Z update changelog [skip ci] - - - - - 9 changed files: - .mvn/gitlab-cache/milestones/898778-issues.json - + .mvn/gitlab-cache/milestones/915205-artifacts.json - + .mvn/gitlab-cache/milestones/915205-issues.json - + .mvn/gitlab-cache/milestones/915205.json - + .mvn/gitlab-cache/milestones/916804-artifacts.json - + .mvn/gitlab-cache/milestones/916804-issues.json - + .mvn/gitlab-cache/milestones/916804.json - CHANGELOG.md - client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java Changes: ===================================== .mvn/gitlab-cache/milestones/898778-issues.json ===================================== @@ -45,7 +45,7 @@ "_external": false, "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" }, - "userNotesCount": 1, + "userNotesCount": 2, "upVotes": 0, "downVotes": 0, "confidential": false, @@ -54,10 +54,70 @@ "totalTimeSpent": 0 }, "state": "opened", - "updatedAt": "Jun 9, 2019 4:55:22 PM", - "createdAt": "May 22, 2019 10:52:43 AM", + "updatedAt": "Jun 25, 2019 6:27:13 PM", + "createdAt": "May 22, 2019 11:52:43 AM", "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1293" }, + { + "id": 21832893, + "iid": 1330, + "projectId": 2722779, + "title": "N° de versions mentionnés par l\u0027assistant migration", + "description": "L\u0027assistant migration de la 8 RC2 mentionne des mises à jour jusqu\u0027en 7.2, non pas 8. Est-ce normal?\n\n![image](/uploads/4a1f46b93d6bbda3878922bf0b6fff91/image.png)", + "labels": [ + "Anomalie", + "Bas", + "Tâche" + ], + "milestone": { + "id": 898778, + "iid": 143, + "projectId": 2722779, + "groupId": 0, + "title": "8.0-RC-3", + "description": "", + "state": "active" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" + }, + "userNotesCount": 3, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 12, 2019 1:00:39 PM", + "createdAt": "Jun 12, 2019 12:54:12 PM", + "closedAt": "Jun 12, 2019 12:59:20 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1330" + }, { "id": 18519309, "iid": 1237, @@ -113,10 +173,363 @@ "totalTimeSpent": 0 }, "state": "opened", - "updatedAt": "Jun 8, 2019 5:38:47 PM", + "updatedAt": "Jun 8, 2019 6:38:47 PM", "createdAt": "Feb 22, 2019 4:32:32 PM", "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1237" }, + { + "id": 21873545, + "iid": 1333, + "projectId": 2722779, + "title": "[PS FOB] Intégration du nœud Balise en tant qu\u0027onglet du formulaire FOB", + "description": "Cette évolution permettra une meilleure intégration avec le nouveau système de pré-configurations sur FOB (Voir #1321) (sinon celui-ci agirait sur deux formulaires de deux nœud différents, ce qui n\u0027est pas une bonne chose en terme d\u0027ergonomie).\n\nÇa donne ça :\n\n![image](/uploads/11189f70e84e3f66a0e6f109d6012c6a/image.png)", + "labels": [ + "Evolution", + "IRD-2018-01-V8" + ], + "milestone": { + "id": 898778, + "iid": 143, + "projectId": 2722779, + "groupId": 0, + "title": "8.0-RC-3", + "description": "", + "state": "active" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 13, 2019 2:35:01 PM", + "createdAt": "Jun 13, 2019 1:36:28 PM", + "closedAt": "Jun 13, 2019 2:35:01 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1333" + }, + { + "id": 21839813, + "iid": 1332, + "projectId": 2722779, + "title": "[V8] Schémas", + "description": "Après migration d\u0027une base V7, j\u0027obtiens les schémas suivants :\n\n![image](/uploads/0830acc831b73688c0b44d464ad982ef/image.png)\n\nPlusieurs schémas viennent de la base d\u0027origine, par contre le schéma ll_landing a bien été créé par la migration. Or a priori ce schéma n\u0027a pas lieu d\u0027être. On devrait avoir :\n* common\n* ll_common\n* ll_observation\n* ll_logbook\n* ps_common\n* ps_observation\n* ps_logbook (ne sera créé qu\u0027en V)\n\nEt les LL landings devraient se retrouver dans ll_logbook (tout comme les échantillons).\n\nSinon, logiquement en V9 il faudrait alors créer des schémas pour les plans de cuves, les débarquements, le faux poisson, ce qui fait beaucoup.", + "labels": [ + "IRD-2018-01-V8" + ], + "milestone": { + "id": 898778, + "iid": 143, + "projectId": 2722779, + "groupId": 0, + "title": "8.0-RC-3", + "description": "", + "state": "active" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" + }, + "userNotesCount": 3, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "opened", + "updatedAt": "Jun 13, 2019 3:32:44 PM", + "createdAt": "Jun 12, 2019 3:44:04 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1332" + }, + { + "id": 21833130, + "iid": 1331, + "projectId": 2722779, + "title": "Assistant création de base PG échoue", + "description": "J\u0027essaie de créer une base PG v8 vide.\nPour cela je créer sous PG une base vide.\nJe lance ensuite postgresql/create.bat et je le connecte à la base.\n\nCelui-ci y recherche une version de base, et stoppe pour cette raison. Pourtant, s\u0027agissant de l\u0027assistant de création, il devrait démarrer correctement sur une base totalement vide.\n\n![image](/uploads/1d3c3fb3772e3d8494a75794de3b5931/image.png)", + "labels": [ + "Anomalie", + "IRD-2018-01-V8" + ], + "milestone": { + "id": 898778, + "iid": 143, + "projectId": 2722779, + "groupId": 0, + "title": "8.0-RC-3", + "description": "", + "state": "active" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "opened", + "updatedAt": "Jun 12, 2019 1:06:09 PM", + "createdAt": "Jun 12, 2019 1:06:09 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1331" + }, + { + "id": 21803313, + "iid": 1326, + "projectId": 2722779, + "title": "[PS FOB Buoys] Revoir cet écran", + "description": "Plusieurs choses ne vont pas ici :\n\nIl y a des problèmes de libellés et aussi de validation.\nLa modification des commentaires n\u0027est pas prise en compte.", + "labels": [ + "Anomalie", + "IRD-2018-01-V8" + ], + "milestone": { + "id": 898778, + "iid": 143, + "projectId": 2722779, + "groupId": 0, + "title": "8.0-RC-3", + "description": "", + "state": "active" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 11, 2019 6:08:40 PM", + "createdAt": "Jun 11, 2019 6:02:39 PM", + "closedAt": "Jun 11, 2019 6:08:40 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1326" + }, + { + "id": 21785455, + "iid": 1322, + "projectId": 2722779, + "title": "[PS] Transformation de deux énumérations en référentiels", + "description": "Il s\u0027agit des référentiels suivants :\n\n* **ps_common.SchoolType**\n* **ps_common.TransmittingBuoyOwnership**\n\nLa migration est assurée dans les données existantes.", + "labels": [ + "Evolution", + "IRD-2018-02-V9", + "Module 1" + ], + "milestone": { + "id": 898778, + "iid": 143, + "projectId": 2722779, + "groupId": 0, + "title": "8.0-RC-3", + "description": "", + "state": "active" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 11, 2019 6:08:40 PM", + "createdAt": "Jun 11, 2019 11:15:09 AM", + "closedAt": "Jun 11, 2019 6:08:39 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1322" + }, + { + "id": 21760531, + "iid": 1321, + "projectId": 2722779, + "title": "[PS FOB] Mise en place des nouvelles templates de FOB", + "description": "Voir CTTP 4.1.5.3.1.", + "labels": [ + "Evolution", + "IRD-2018-02-V9", + "Module 1" + ], + "milestone": { + "id": 898778, + "iid": 143, + "projectId": 2722779, + "groupId": 0, + "title": "8.0-RC-3", + "description": "", + "state": "active" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 21, 2019 6:29:25 PM", + "createdAt": "Jun 10, 2019 4:07:34 PM", + "closedAt": "Jun 21, 2019 6:29:25 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1321" + }, { "id": 21224725, "iid": 1299, @@ -151,8 +564,8 @@ "totalTimeSpent": 0 }, "state": "opened", - "updatedAt": "Jun 9, 2019 4:55:22 PM", - "createdAt": "May 23, 2019 3:23:51 PM", + "updatedAt": "Jun 9, 2019 5:55:22 PM", + "createdAt": "May 23, 2019 4:23:51 PM", "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1299" } ] \ No newline at end of file ===================================== .mvn/gitlab-cache/milestones/915205-artifacts.json ===================================== @@ -0,0 +1,12 @@ +[ + { + "name": "Application", + "filename": "observe-9.0-alpha-1.zip", + "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/9.0-alpha-1/observe-9.…" + }, + { + "name": "Serveur", + "filename": "observe-9.0-alpha-1.war", + "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/9.0-alpha-1/observe-9.…" + } +] \ No newline at end of file ===================================== .mvn/gitlab-cache/milestones/915205-issues.json ===================================== @@ -0,0 +1,239 @@ +[ + { + "id": 22239676, + "iid": 1337, + "projectId": 2722779, + "title": "[PS] Suppression de 2 champs", + "description": "Dans les données d\u0027observation PS, on souhaite purement et simplement supprimer ces 2 champs :\n\n![image](/uploads/d0b341e678318b2c2a7644064ebc36fa/image.png)\n\nSur l\u0027UI comme dans dans la base, avec perte des données associées.\n\nIl sont inutiles.", + "labels": [ + "Evolution", + "IRD-2018-02-V9", + "Normal" + ], + "milestone": { + "id": 915205, + "iid": 144, + "projectId": 2722779, + "groupId": 0, + "title": "9.0-alpha-1", + "startDate": "Jun 25, 2019 2:00:00 AM", + "state": "active" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "opened", + "updatedAt": "Jun 25, 2019 6:38:42 PM", + "createdAt": "Jun 25, 2019 6:35:13 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1337" + }, + { + "id": 21225875, + "iid": 1300, + "projectId": 2722779, + "title": "[PS] Contenu des onglets spécifiques observations et logbooks et le formulaire marée", + "description": "En LL, depuis que nous avons la gestion des logbooks, un système d\u0027onglets est apparu sur le formulaire marée pour :\n* les métadonnées communes\n* les métadonnées spécifiques observations\n* les métadonnées spécifiques logbooks\n\nLe même principe doit être adopté pour la PS.\n\nLes champs suivants doivent être déplacés de l\u0027onglet principal vers l\u0027onglet \"caractéristiques d\u0027observation\" :\n* observateur\n* saisisseur\n* qualité de données (qui dans la base devrait être renommé \"qualité des données d\u0027observation\")\n* url des formulaires\n* url des rapports\n\nLes champs suivants doivent être créés sur l\u0027onglet \"caractéristiques livre de bord\" :\n* saisisseur (FK vers liste personne avec filtre le flag saisisseur)\n* heures de mer : entier positif, NULL possible\n* heures de pêche : entier positif, NULL possible\n* Total débarqué (en t) : décimal, au millième, NULL possible\n* Total marché local (en t) : décimal, au millième, NULL possible\n* Loch (miles nautiques) : entier positif, NULL possible\n* Présence des activités (ex flag Enquête ?) : bouléen 2 états, NULL non possible\n* État des cuves au départ : liste déroulante, FK vers table ps_logbook.WellsState, NULL autorisé\n* État des cuves après débarquement : liste déroulante, FK vers table ps_logbook.WellsState, NULL interdit\n* Commentaires logbook :varchar 1024 ?, NULL possible\n\nContenu du référentiel WellsState :\n* 1 - Cuves vides / Wells empty\n* 2 - Cuves non vides / Wells not empty\n\nL\u0027idée étant de reproduire (avec quelques améliorations) le formulaire marée logbook AVDTH :\n\n![image](/uploads/73cc21bf029f258f7f4a50c751624244/image.png)", + "labels": [ + "IRD-2018-02-V9", + "Module 1" + ], + "milestone": { + "id": 915205, + "iid": 144, + "projectId": 2722779, + "groupId": 0, + "title": "9.0-alpha-1", + "startDate": "Jun 25, 2019 2:00:00 AM", + "state": "active" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "opened", + "updatedAt": "Jun 26, 2019 6:35:37 PM", + "createdAt": "May 23, 2019 4:59:19 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1300" + }, + { + "id": 19964211, + "iid": 1254, + "projectId": 2722779, + "title": "Réorganisation des données d’observation PS - Réorganisation des captures et échantillons de cible et bycatch observés", + "description": "Voir CCTP 3.7.2 et 3.7.3", + "labels": [ + "Evolution", + "IRD-2018-02-V9", + "Module 1", + "Senne" + ], + "milestone": { + "id": 915205, + "iid": 144, + "projectId": 2722779, + "groupId": 0, + "title": "9.0-alpha-1", + "startDate": "Jun 25, 2019 2:00:00 AM", + "state": "active" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "opened", + "updatedAt": "Jun 25, 2019 6:26:41 PM", + "createdAt": "Apr 11, 2019 1:59:43 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1254" + }, + { + "id": 19964177, + "iid": 1252, + "projectId": 2722779, + "title": "Réorganisation des données d’observation PS - Re localisation dans la hiérarchie", + "description": "Voir CCTP 3.7.1", + "labels": [ + "Evolution", + "IRD-2018-02-V9", + "Module 1", + "Senne" + ], + "milestone": { + "id": 915205, + "iid": 144, + "projectId": 2722779, + "groupId": 0, + "title": "9.0-alpha-1", + "startDate": "Jun 25, 2019 2:00:00 AM", + "state": "active" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "opened", + "updatedAt": "Jun 25, 2019 6:26:41 PM", + "createdAt": "Apr 11, 2019 1:58:36 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1252" + } +] \ No newline at end of file ===================================== .mvn/gitlab-cache/milestones/915205.json ===================================== @@ -0,0 +1,9 @@ +{ + "id": 915205, + "iid": 144, + "projectId": 2722779, + "groupId": 0, + "title": "9.0-alpha-1", + "startDate": "Jun 25, 2019 2:00:00 AM", + "state": "active" +} \ No newline at end of file ===================================== .mvn/gitlab-cache/milestones/916804-artifacts.json ===================================== @@ -0,0 +1,12 @@ +[ + { + "name": "Application", + "filename": "observe-7.0.8.zip", + "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/7.0.8/observe-7.0.8.zip" + }, + { + "name": "Serveur", + "filename": "observe-7.0.8.war", + "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/7.0.8/observe-7.0.8.war" + } +] \ No newline at end of file ===================================== .mvn/gitlab-cache/milestones/916804-issues.json ===================================== @@ -0,0 +1,480 @@ +[ + { + "id": 22275757, + "iid": 1338, + "projectId": 2722779, + "title": "[REFERENTIEL] Impossible de modifier le parent d\u0027un matériau", + "description": "Sur cet écran :\n![image](/uploads/edeeed273cb42deb988f7b365b41ced7/image.png)\n\nOn ne peut pas modifier le parent de cet élément : le contenu de la liste \u0027parent\u0027 est limité au parent actuel (ALOG).\n\nLa liste entière des éléments (même les désactivés idéalement) devrait apparaître.\n\nCela représente un handicap important.", + "labels": [ + "Anomalie", + "Haut" + ], + "milestone": { + "id": 916804, + "iid": 145, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.8", + "dueDate": "Jun 27, 2019 2:00:00 AM", + "startDate": "Jun 26, 2019 2:00:00 AM", + "state": "closed" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" + }, + "userNotesCount": 2, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 27, 2019 8:51:47 AM", + "createdAt": "Jun 26, 2019 4:35:06 PM", + "closedAt": "Jun 27, 2019 8:51:47 AM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1338" + }, + { + "id": 21793484, + "iid": 1324, + "projectId": 2722779, + "title": "[PS][FAD] Comportement des entrées \u0027FAD\u0027 et \u0027LOG\u0027", + "description": "Actuellement les éléments \u0027FAD\u0027 et \u0027LOG\u0027 sont cliquables. Cependant leur enregistrement n\u0027est pas effectué : ces coches disparaissent lorsque l\u0027on clique sur \u0027Enregistrer\u0027.\n\nQuestion liée : Ces éléments ne devraient-ils pas être non cliquables ?\n\nCe comportement déroute actuellement les utilisateurs.", + "labels": [ + "Haut" + ], + "milestone": { + "id": 916804, + "iid": 145, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.8", + "dueDate": "Jun 27, 2019 2:00:00 AM", + "startDate": "Jun 26, 2019 2:00:00 AM", + "state": "closed" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 27, 2019 8:51:47 AM", + "createdAt": "Jun 11, 2019 2:41:51 PM", + "closedAt": "Jun 27, 2019 8:51:47 AM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1324" + }, + { + "id": 21584798, + "iid": 1310, + "projectId": 2722779, + "title": "On ne peut pas supprimer certains référentiels", + "description": "Voir #1307 et #1309", + "labels": [ + "Anomalie", + "Haut" + ], + "milestone": { + "id": 916804, + "iid": 145, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.8", + "dueDate": "Jun 27, 2019 2:00:00 AM", + "startDate": "Jun 26, 2019 2:00:00 AM", + "state": "closed" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 27, 2019 6:20:57 AM", + "createdAt": "Jun 5, 2019 4:22:14 AM", + "closedAt": "Jun 5, 2019 4:36:55 AM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1310" + }, + { + "id": 22024840, + "iid": 1336, + "projectId": 2722779, + "title": "Clés de référentiel non traduite ou nom des clés invalide", + "description": "Sur cet écran, des clés de référentiel ne sont pas traduites. Probablement un souci dans le nom des clés.\n\n![image](/uploads/a479a899984ded6d49435c8b5dfeab46/image.png)", + "labels": [ + "Anomalie", + "Bas", + "Contrat AZTI-2017" + ], + "milestone": { + "id": 916804, + "iid": 145, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.8", + "dueDate": "Jun 27, 2019 2:00:00 AM", + "startDate": "Jun 26, 2019 2:00:00 AM", + "state": "closed" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 27, 2019 8:51:47 AM", + "createdAt": "Jun 18, 2019 3:42:47 PM", + "closedAt": "Jun 27, 2019 8:51:47 AM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1336" + }, + { + "id": 22024034, + "iid": 1335, + "projectId": 2722779, + "title": "[UI REFERENTIEL] Liste des relations taille-poids et taill-taille", + "description": "Dans la liste des relations taill-poids, il serait très pratique d\u0027ajouter dans le libellé des relations le code FAO (et de pouvoir classer selon lui).\n\n![image](/uploads/a7eebf5e18201322ae7e28027de2f6ce/image.png)\n\nMême chose pour les relations taille-taille.", + "labels": [ + "Bas", + "Evolution", + "IRD-2018-01-V8", + "À facturer" + ], + "milestone": { + "id": 916804, + "iid": 145, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.8", + "dueDate": "Jun 27, 2019 2:00:00 AM", + "startDate": "Jun 26, 2019 2:00:00 AM", + "state": "closed" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" + }, + "userNotesCount": 3, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 27, 2019 6:19:18 AM", + "createdAt": "Jun 18, 2019 3:19:08 PM", + "closedAt": "Jun 21, 2019 6:29:25 PM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1335" + }, + { + "id": 22301949, + "iid": 1339, + "projectId": 2722779, + "title": "[REFERENTIEL] La validation sur les Objets flottant matériaux ne fonctionnent plus :(", + "description": "La champs **validation** n\u0027est jamais validé suite à une coquille dans le code...", + "labels": [ + "Anomalie", + "IRD-2018-01-V8" + ], + "milestone": { + "id": 916804, + "iid": 145, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.8", + "dueDate": "Jun 27, 2019 2:00:00 AM", + "startDate": "Jun 26, 2019 2:00:00 AM", + "state": "closed" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 27, 2019 8:51:47 AM", + "createdAt": "Jun 27, 2019 6:42:02 AM", + "closedAt": "Jun 27, 2019 8:51:47 AM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1339" + }, + { + "id": 21799934, + "iid": 1325, + "projectId": 2722779, + "title": "Une modification sur le référentiel n\u0027active pas le bouton \u0027Enregistrer\u0027", + "description": "Ici :\n\n![image](/uploads/c0dfdca2632fb0eca98110407b526eaf/image.png)\n\nOn a passé la propriété de \u0027oui\u0027 à \u0027indéterminé\u0027, mais on ne peut pas enregistrer la modification.", + "labels": [ + "Anomalie" + ], + "milestone": { + "id": 916804, + "iid": 145, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.8", + "dueDate": "Jun 27, 2019 2:00:00 AM", + "startDate": "Jun 26, 2019 2:00:00 AM", + "state": "closed" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" + }, + "userNotesCount": 0, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 27, 2019 7:36:38 AM", + "createdAt": "Jun 11, 2019 4:33:27 PM", + "closedAt": "Jun 27, 2019 7:36:38 AM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1325" + }, + { + "id": 20078138, + "iid": 1269, + "projectId": 2722779, + "title": "[TREE] Parfois un affichage tronqué sans raison", + "description": "Vu avec la v7.0.5 et v7.0.6 :\n\n![image](/uploads/0340bff3be051a10bfbbd47cbc312230/image.png)\n\n![image](/uploads/4c6f4de473bae2e152345b780d43fac6/image.png)", + "labels": [], + "milestone": { + "id": 916804, + "iid": 145, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.8", + "dueDate": "Jun 27, 2019 2:00:00 AM", + "startDate": "Jun 26, 2019 2:00:00 AM", + "state": "closed" + }, + "assignees": [ + { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + } + ], + "assignee": { + "_id": 166231, + "_username": "tchemit", + "_name": "Tony CHEMIT", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…" + }, + "author": { + "_id": 1111318, + "_username": "pcauquil", + "_name": "Pascal Cauquil", + "_state": "active", + "_external": false, + "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…" + }, + "userNotesCount": 2, + "upVotes": 0, + "downVotes": 0, + "confidential": false, + "timeStats": { + "timeEstimate": 0, + "totalTimeSpent": 0 + }, + "state": "closed", + "updatedAt": "Jun 27, 2019 7:09:31 AM", + "createdAt": "Apr 15, 2019 6:27:13 PM", + "closedAt": "Jun 27, 2019 7:09:31 AM", + "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1269" + } +] \ No newline at end of file ===================================== .mvn/gitlab-cache/milestones/916804.json ===================================== @@ -0,0 +1,10 @@ +{ + "id": 916804, + "iid": 145, + "projectId": 2722779, + "groupId": 0, + "title": "7.0.8", + "dueDate": "Jun 27, 2019 2:00:00 AM", + "startDate": "Jun 26, 2019 2:00:00 AM", + "state": "closed" +} \ No newline at end of file ===================================== CHANGELOG.md ===================================== @@ -1,7 +1,7 @@ # ObServe changelog * Author [Tony Chemit](mailto:dev@tchemit.fr) - * Last generated at 2019-06-09 16:58. + * Last generated at 2019-06-27 08:55. ## Version [8.0-RC-2](https://gitlab.com/ultreiaio/ird-observe/milestones/142) @@ -179,6 +179,22 @@ Premier lot du contrat IRD-2018-01-V8 * [[Evolution 922]](https://gitlab.com/ultreiaio/ird-observe/issues/922) **Ajoute le référentiel observe_common.DataQuality sur les données existantes** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT) * [[Evolution 950]](https://gitlab.com/ultreiaio/ird-observe/issues/950) **Renommage de la classe seine.WeightCategory en seine.WeightCategorySeine** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT) +## Version [7.0.8](https://gitlab.com/ultreiaio/ird-observe/milestones/145) + +**Closed at 2019-06-27.** + +### Download +* [Application (observe-7.0.8.zip)](http://repo1.maven.org/maven2/fr/ird/observe/observe/7.…) +* [Serveur (observe-7.0.8.war)](http://repo1.maven.org/maven2/fr/ird/observe/observe/7.…) + +### Issues + * [[Anomalie 1310]](https://gitlab.com/ultreiaio/ird-observe/issues/1310) **On ne peut pas supprimer certains référentiels** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT) + * [[Anomalie 1325]](https://gitlab.com/ultreiaio/ird-observe/issues/1325) **Une modification sur le référentiel n&#39;active pas le bouton &#39;Enregistrer&#39;** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil) + * [[Anomalie 1336]](https://gitlab.com/ultreiaio/ird-observe/issues/1336) **Clés de référentiel non traduite ou nom des clés invalide** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil) + * [[Anomalie 1338]](https://gitlab.com/ultreiaio/ird-observe/issues/1338) **[REFERENTIEL] Impossible de modifier le parent d&#39;un matériau** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil) + * [[Anomalie 1339]](https://gitlab.com/ultreiaio/ird-observe/issues/1339) **[REFERENTIEL] La validation sur les Objets flottant matériaux ne fonctionnent plus :(** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT) + * [[Evolution 1335]](https://gitlab.com/ultreiaio/ird-observe/issues/1335) **[UI REFERENTIEL] Liste des relations taille-poids et taill-taille** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil) + ## Version [7.0.7](https://gitlab.com/ultreiaio/ird-observe/milestones/140) **Closed at 2019-05-13.** ===================================== client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java ===================================== @@ -549,8 +549,18 @@ public class ObserveDataSourcesManager implements Closeable { mainUI.getInitializer().cleanNavigationUI(progressModel); - ObserveEditModel navigationEditModel = config.getNavigationEditModel(); - ObserveSelectModel navigationSelectModel = config.getNavigationSelectModel(); + ObserveEditModel navigationEditModel = null; + try { + navigationEditModel = config.getNavigationEditModel(); + } catch (Exception e) { + log.error("Can't load navigation edit model",e); + } + ObserveSelectModel navigationSelectModel = null; + try { + navigationSelectModel = config.getNavigationSelectModel(); + } catch (Exception e) { + log.error("Can't load navigation select model",e); + } boolean withSelectModel = navigationSelectModel != null; boolean withEditModel = navigationEditModel != null; View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/e65a7d2f28a3b4ef193d76df6f8… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/e65a7d2f28a3b4ef193d76df6f8… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 6 commits: update pom
by Tony CHEMIT 27 Jun '19

27 Jun '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 19e30588 by tchemit at 2019-06-27T05:28:05Z update pom - - - - - f64a33aa by tchemit at 2019-06-27T05:30:37Z Clés de référentiel non traduite ou nom des clés invalide - Close #1336 - - - - - 5f644483 by tchemit at 2019-06-27T05:33:03Z [REFERENTIEL] Impossible de modifier le parent d&#39;un matériau - Closes #1338 - - - - - 230a5851 by tchemit at 2019-06-27T05:34:46Z [REFERENTIEL] La validation sur les Objets flottant matériaux ne fonctionnent plus :( - Closes #1339 - - - - - 7cd87441 by tchemit at 2019-06-27T05:37:57Z [PS][FAD] Comportement des entrées &#39;FAD&#39; et &#39;LOG&#39; - Closes #1324 - - - - - 3bd3958b by tchemit at 2019-06-27T05:39:11Z Fix referential back to list action - - - - - 6 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/content/api/ref/ContentReferenceUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/FloatingObjectUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/ref/ps/observation/ObjectMaterialUIHandler.java - dto/src/main/java/fr/ird/observe/dto/decoration/ObserveI18nLabelsBuilder.java - dto/src/main/java/fr/ird/observe/dto/referential/ps/observation/ObjectMaterialDto.java - pom.xml Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/api/ref/ContentReferenceUIHandler.java ===================================== @@ -352,11 +352,13 @@ public class ContentReferenceUIHandler<D extends ReferentialDto, R extends Refer private void updateView(boolean editing) { log.debug("Editing has changed : " + editing); - JButton deleteAction = ui.getDelete(); - if (editing) { - ui.getDetailRealActions().add(deleteAction); - } else { - ui.getListActions().add(deleteAction); + if (!getModel().isReadingMode()) { + JButton deleteAction = ui.getDelete(); + if (editing) { + ui.getDetailRealActions().add(deleteAction); + } else { + ui.getListActions().add(deleteAction); + } } ui.getViewLayout().setSelected(editing ? ContentReferenceUI.DETAIL_VIEW : ContentReferenceUI.LIST_VIEW); } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/FloatingObjectUIHandler.java ===================================== @@ -40,7 +40,6 @@ import fr.ird.observe.dto.referential.ps.common.TransmittingBuoyOwnershipDto; import fr.ird.observe.dto.referential.ps.common.TransmittingBuoyOwnershipHelper; import fr.ird.observe.dto.referential.ps.common.TransmittingBuoyOwnershipReference; import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialDto; -import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialTypeReference; import fr.ird.observe.dto.referential.ps.observation.ObjectOperationReference; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -84,14 +83,6 @@ public class FloatingObjectUIHandler extends ContentEditUIHandler<FloatingObject ObjectMaterialHierarchyDto detailedForm = getFloatingObjectService().getObjectMaterialHierarchy(); - //FIXME-PROTECTED-ID - ObjectMaterialTypeReference booleanType = getReferentialReferences(ObjectMaterialTypeReference.class).stream().filter(e -> e.getTopiaId().equals("fr.ird.referential.ps.observation.ObjectMaterialType#0#0")).findFirst().orElseThrow(IllegalStateException::new); - - for (ObjectMaterialHierarchyDto objectMaterialHierarchyDto : detailedForm.getChildren()) { - if (objectMaterialHierarchyDto.isEnabled()) { - objectMaterialHierarchyDto.setObjectMaterialType(booleanType); - } - } Map<String, ObjectMaterialDto> allMap = new TreeMap<>(); detailedForm.getAllDtos().forEach(s -> allMap.putIfAbsent(s.getId(), s)); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/ref/ps/observation/ObjectMaterialUIHandler.java ===================================== @@ -28,7 +28,6 @@ import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialDto; import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialReference; import org.nuiton.jaxx.runtime.spi.UIHandler; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -46,23 +45,23 @@ class ObjectMaterialUIHandler extends ContentReferenceUIHandler<ObjectMaterialDt @Override public void createUI() { super.createUI(); - Optional<Set<ObjectMaterialReference>> optionalReferenceSetDto = getModel().getReferenceCache().tryToGetReferentialReferenceSet(ObjectMaterialDto.PROPERTY_PARENT); - - if (optionalReferenceSetDto.isPresent()) { - ObjectMaterialReference parent = getModel().getBean().getParent(); - List<ObjectMaterialReference> references = optionalReferenceSetDto.get().stream().filter(r -> !Objects.equals(r.getId(), Optional.ofNullable(parent).map(ReferentialDtoReference::getId).orElse(null))).collect(Collectors.toList()); - ui.getParentCode().setData(references); - } + setParentList(); } @Override public void modifyUI() { super.modifyUI(); - ObjectMaterialReference parent = getModel().getBean().getParent(); - if (parent == null) { - ui.getParentCode().setData(Collections.emptyList()); - } else { - ui.getParentCode().setData(Collections.singletonList(parent)); + setParentList(); + } + + private void setParentList() { + Optional<Set<ObjectMaterialReference>> optionalReferenceSetDto = getModel().getReferenceCache().tryToGetReferentialReferenceSet(ObjectMaterialDto.PROPERTY_PARENT); + + if (optionalReferenceSetDto.isPresent()) { + + ObjectMaterialReference parent = getModel().getBean().getParent(); + List<ObjectMaterialReference> references = optionalReferenceSetDto.get().stream().filter(r -> !Objects.equals(r.getId(), Optional.ofNullable(parent).map(ReferentialDtoReference::getId).orElse(null))).collect(Collectors.toList()); + getUi().getParentCode().setData(references); } } ===================================== dto/src/main/java/fr/ird/observe/dto/decoration/ObserveI18nLabelsBuilder.java ===================================== @@ -112,6 +112,8 @@ public class ObserveI18nLabelsBuilder extends BeanPropertyI18nKeyProducerSupport protected Map<String, String> createPropertyKeyMapping() { return ImmutableMap.<String, String>builder() .put("sizeMeasureTypeCode", "sizeMeasureType") + .put("inputSizeMeasureTypeCode", "inputSizeMeasureType") + .put("outputSizeMeasureTypeCode", "outputSizeMeasureType") .build(); } ===================================== dto/src/main/java/fr/ird/observe/dto/referential/ps/observation/ObjectMaterialDto.java ===================================== @@ -22,6 +22,7 @@ package fr.ird.observe.dto.referential.ps.observation; * #L% */ +import fr.ird.observe.dto.referential.FormulaHelper; import org.apache.commons.lang3.StringUtils; public class ObjectMaterialDto extends GeneratedObjectMaterialDto { @@ -44,6 +45,13 @@ public class ObjectMaterialDto extends GeneratedObjectMaterialDto { return objectMaterialType != null && "fr.ird.referential.ps.observation.ObjectMaterialType#0#1".equals(objectMaterialType.getId()); } + @Override + public void setValidation(String validation) { + super.setValidation(validation); + boolean result = FormulaHelper.validateObjectMaterialValidation(validation, 10); + setValidationValid(result); + } + public boolean withValidation() { return StringUtils.isNoneEmpty(validation); } ===================================== pom.xml ===================================== @@ -26,7 +26,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2019.8.21</version> + <version>2019.8.22</version> </parent> <groupId>fr.ird.observe</groupId> @@ -161,7 +161,7 @@ <!--can't use 1.4.197 (date has changed + blob also)--> <lib.version.h2>1.4.196</lib.version.h2> - <lib.version.java4all.topia>1.10-SNAPSHOT</lib.version.java4all.topia> + <!--<lib.version.java4all.topia>1.10-SNAPSHOT</lib.version.java4all.topia>--> <!--<lib.version.java4all.eugene>3.0-alpha-22</lib.version.java4all.eugene>--> <!--lib.version.java4all.jaxx>3.0-alpha-52</lib.version.java4all.jaxx--> <!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>--> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ddd980c3a8327020b38c59b9e8… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ddd980c3a8327020b38c59b9e8… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop-7.x] [TREE] Parfois un affichage tronqué sans raison - Closes #1269
by Tony CHEMIT 27 Jun '19

27 Jun '19
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: e7cdd45e by tchemit at 2019-06-27T05:08:28Z [TREE] Parfois un affichage tronqué sans raison - Closes #1269 - - - - - 1 changed file: - client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTreeCellRenderer.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTreeCellRenderer.java ===================================== @@ -23,15 +23,15 @@ package fr.ird.observe.client.ui.tree.navigation; */ import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.jdesktop.swingx.renderer.StringValue; import org.jdesktop.swingx.tree.DefaultXTreeCellRenderer; import javax.swing.Icon; import javax.swing.JLabel; import javax.swing.JTree; -import javax.swing.tree.DefaultTreeCellRenderer; +import javax.swing.SwingUtilities; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; @@ -97,6 +97,13 @@ public class NavigationTreeCellRenderer extends DefaultXTreeCellRenderer impleme Dimension newSize = new Dimension((int) size.getWidth(), iconHeight + 2); comp.setSize(newSize); comp.setPreferredSize(newSize); + } else { + int stringWidth = SwingUtilities.computeStringWidth(comp.getFontMetrics(comp.getFont()), text); + if (size.getWidth() < stringWidth) { + log.error(String.format("Size is too low: %s for node: %s", size, text)); + Dimension newSize = new Dimension(stringWidth + 5, (int) height); + comp.setPreferredSize(newSize); + } } } return comp; View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/e7cdd45e47c72f98550065e0db6… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/e7cdd45e47c72f98550065e0db6… You're receiving this email because of your account on gitlab.com.
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.