Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 97924bcb by tchemit at 2019-06-09T12:09:27Z [LL Composition détaillée] Sur le formulaire Brancheline deux champs non conditionnés - Closes #1316 - - - - - 93c515a0 by tchemit at 2019-06-09T12:10:43Z [LL Composition détaillé] Sur l'écran Brancheline le label Temps depuis déclanchement dupliqué - Closes #1317 - - - - - ddfde1c8 by tchemit at 2019-06-09T12:11:32Z fix BranchelineUIModel javaBean definition - - - - - e490d101 by tchemit at 2019-06-09T12:12:18Z [LL] Patron de génération du schéma détaillé - Closes #1266 - - - - - 5dbc81cd by tchemit at 2019-06-09T13:22:30Z [LL Composition détaillée] Validateur en erreur sur le formulaire Brancheline - Closes #1318 - - - - - 9d4a7867 by tchemit at 2019-06-09T13:25:56Z update gitlab issues [skip ci] - - - - - 24 changed files: - .gitlab/issue_templates/Contrat-SFA-2017-Anomalie.md - .gitlab/issue_templates/Contrat-SFA-2017-Evolution.md - + client-core/.mvn/i18n/parse-validation-messages - client-core/pom.xml - client-core/src/main/i18n/getters/java.getter - + client-core/src/main/i18n/getters/validation-fields.getter - + client-core/src/main/i18n/getters/validation-messages.getter - client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/edit/ContentEditUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/open/ContentOpenableUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/simple/ContentSimpleUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/table/ContentTableUIHandler.java - 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/ll/observation/BranchlineObsUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/BranchlineObsUI.jcss - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/BranchlineObsUIModel.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/LonglineDetailCompositionObsUI.jaxx - client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/LonglineDetailCompositionObsUIHandler.java - + client-core/src/main/resources/fr/ird/observe/client/ui/content/data/ll/observation/LonglineDetailCompositionObsUIModel-update-error-validation.xml - dto/src/main/java/fr/ird/observe/dto/data/ll/observation/SectionTemplate.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 Changes: ===================================== .gitlab/issue_templates/Contrat-SFA-2017-Anomalie.md ===================================== @@ -10,5 +10,5 @@ /label ~"Anomalie" /label ~"IRD-2018-01-V8" -/milestone %"8.0-RC-1" +/milestone %"8.0-RC-2" /assign @tchemit \ No newline at end of file ===================================== .gitlab/issue_templates/Contrat-SFA-2017-Evolution.md ===================================== @@ -1,5 +1,5 @@ /label ~"Evolution" /label ~"IRD-2018-01-V8" -/milestone %"8.0-RC-1" +/milestone %"8.0-RC-2" /assign @tchemit \ No newline at end of file ===================================== client-core/.mvn/i18n/parse-validation-messages ===================================== ===================================== client-core/pom.xml ===================================== @@ -770,6 +770,53 @@ </dependencies> </plugin> + <plugin> + <groupId>fr.ird.observe.toolkit</groupId> + <artifactId>toolbox-maven-plugin</artifactId> + <version>${observeToolkitVersion}</version> + <executions> + <execution> + <id>generate-i18n-validator-fields</id> + <goals> + <goal>generate-i18n-validator-fields</goal> + </goals> + </execution> + <execution> + <id>generate-validators-descriptor</id> + <goals> + <goal>generate-validators-descriptor</goal> + </goals> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>client-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>fr.ird.observe.toolkit</groupId> + <artifactId>common-validation</artifactId> + <version>${observeToolkitVersion}</version> + </dependency> + <dependency> + <groupId>io.ultreia.java4all.jaxx</groupId> + <artifactId>jaxx-widgets-gis</artifactId> + <version>${lib.version.java4all.jaxx}</version> + </dependency> + <dependency> + <groupId>io.ultreia.java4all.jaxx</groupId> + <artifactId>jaxx-widgets-temperature</artifactId> + <version>${lib.version.java4all.jaxx}</version> + </dependency> + <dependency> + <groupId>org.javassist</groupId> + <artifactId>javassist</artifactId> + <version>${lib.version.javassist}</version> + </dependency> + </dependencies> + </plugin> + </plugins> </build> ===================================== client-core/src/main/i18n/getters/java.getter ===================================== @@ -1040,6 +1040,9 @@ observe.ui.tree.referential.ll.landing observe.ui.tree.referential.ll.obs observe.ui.tree.referential.ps.common observe.ui.tree.referential.ps.obs +observe.validation.setLonglineObsDetailComposition.invalid.pattern +observe.validation.setLonglineObsDetailComposition.required.id +observe.validation.setLonglineObsDetailComposition.required.pattern observe.validator.field.tip observe.validator.message.tip observe.validator.scope.tip ===================================== client-core/src/main/i18n/getters/validation-fields.getter ===================================== @@ -0,0 +1 @@ +observe.common.LonglineDetailCompositionObsUIModelDto.generateTabValid ===================================== client-core/src/main/i18n/getters/validation-messages.getter ===================================== @@ -0,0 +1 @@ +observe.validation.setLonglineObsDetailComposition.invalid.templates ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIHandler.java ===================================== @@ -516,7 +516,7 @@ public abstract class ContentUIHandler<U extends ContentUI> implements ObserveSe return icon; } - protected final void prepareValidators(IdDto editBean) { + protected void installValidators(IdDto editBean) { // reset all validators SwingValidatorUtil.setValidatorBean(ui, null); // mark ui as editing @@ -552,9 +552,12 @@ public abstract class ContentUIHandler<U extends ContentUI> implements ObserveSe // ui.removeContextValue(model.getBeanType(), "edit"); // dettach all validators - SwingValidatorUtil.setValidatorBean(ui, null); + uninstallValidators(); } + protected void uninstallValidators() { + SwingValidatorUtil.setValidatorBean(ui, null); + } protected boolean resetEdit; public boolean isResetEdit() { ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/edit/ContentEditUIHandler.java ===================================== @@ -53,7 +53,7 @@ public abstract class ContentEditUIHandler<D extends DataDto, R extends DataDtoR public void startEditUI() { ContentEditUIModel<D, R> model = getModel(); prepareValidationContext(); - prepareValidators(model.getBean()); + installValidators(model.getBean()); // addInfoMessageStartEdit(); model.setModified(model.isCreatingMode()); } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/open/ContentOpenableUIHandler.java ===================================== @@ -76,7 +76,7 @@ public abstract class ContentOpenableUIHandler<D extends DataDto, R extends Data public void startEditUI() { ContentOpenableUIModel<D, R> model = getModel(); prepareValidationContext(); - prepareValidators(model.getBean()); + installValidators(model.getBean()); // addInfoMessageStartEdit(); boolean create = model.isCreatingMode(); model.setModified(create); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/simple/ContentSimpleUIHandler.java ===================================== @@ -57,7 +57,7 @@ public abstract class ContentSimpleUIHandler<D extends DataDto, U extends Conten public void startEditUI() { prepareValidationContext(); ContentSimpleUIModel<D> model = getModel(); - prepareValidators(model.getBean()); + installValidators(model.getBean()); model.setModified(false); if (model.isCreatingMode()) { grabFocusOnForm(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/table/ContentTableUIHandler.java ===================================== @@ -188,7 +188,7 @@ public abstract class ContentTableUIHandler<D extends DataDto, C extends DataDto @Override public void startEditUI() { prepareValidationContext(); - prepareValidators(getModel().getBean()); + installValidators(getModel().getBean()); reselectRow(); getModel().setModified(false); // addUpdatingMessage(); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/api/ref/ContentReferenceUIHandler.java ===================================== @@ -216,7 +216,7 @@ public class ContentReferenceUIHandler<D extends ReferentialDto, R extends Refer removeAllMessages(ui); model.setEditing(true); prepareValidationContext(); - prepareValidators(model.getBean()); + installValidators(model.getBean()); if (model.isCreatingMode()) { // addInfoMessage(t("observe.message.creating.referentiel")); ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/BranchlineObsUI.jaxx ===================================== @@ -116,10 +116,7 @@ public void edit(BranchlineObsDto branchline) { getHandler().edit(branchline); } <cell anchor='east'> <BeanCheckBox id='timer'/> </cell> - <cell> - <JLabel id='timeSinceContactLabel'/> - </cell> - <cell> + <cell columns="2"> <TimeEditor id='timeSinceContact' constructorParams='this' beanScope="model"/> </cell> </row> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/BranchlineObsUI.jcss ===================================== @@ -43,6 +43,14 @@ showTimeEditorSlider:false; } +#snapWeight { + enabled:{BooleanUtils.isTrue(bean.getWeightedSnap())}; +} + +#swivelWeight { + enabled:{BooleanUtils.isTrue(bean.getWeightedSwivel())}; +} + /* ***************************************************************************** */ /* HOOK AND BAIT TAB ********************************************************** */ /* ***************************************************************************** */ ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/BranchlineObsUIModel.java ===================================== @@ -39,7 +39,7 @@ import java.util.Date; @GenerateJavaBeanDefinition public class BranchlineObsUIModel extends ContentSimpleUIModel<BranchlineObsDto> implements JavaBean { - public static final String PROPERTY_SAVED = "saved"; + static final String PROPERTY_SAVED = "saved"; private static final long serialVersionUID = 1L; private BranchlineObsDto branchlineDto; @@ -82,6 +82,6 @@ public class BranchlineObsUIModel extends ContentSimpleUIModel<BranchlineObsDto> @Override public JavaBeanDefinition javaBeanDefinition() { - return null; + return javaBeanDefinition; } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/LonglineDetailCompositionObsUI.jaxx ===================================== @@ -54,6 +54,12 @@ errorTableModel='{getErrorTableModel()}' context='update-longlineDetailComposition'> </BeanValidator> + <BeanValidator id='generateValidator' autoField='true' + beanClass='fr.ird.observe.client.ui.content.data.ll.observation.LonglineDetailCompositionObsUIModel' + errorTableModel='{getErrorTableModel()}' context='update'> + <field name="generateTabValid" component="sectionTemplatesPane"/> + </BeanValidator> + <BeanValidator id='sectionValidator' beanClass='fr.ird.observe.dto.data.ll.observation.SectionObsDto' errorTableModel='{getErrorTableModel()}' context='update-table'> <field name='basket' component='sectionsPane'/> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/observation/LonglineDetailCompositionObsUIHandler.java ===================================== @@ -10,12 +10,12 @@ package fr.ird.observe.client.ui.content.data.ll.observation; * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. @@ -28,6 +28,7 @@ import fr.ird.observe.client.ui.actions.content.api.tab.GoToTabUIActionSupport; import fr.ird.observe.client.ui.content.api.data.simple.ContentSimpleUIHandler; import fr.ird.observe.client.ui.content.api.ui.ObserveLayoutFocusTraversalPolicy; import fr.ird.observe.client.ui.util.UIHelper; +import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.ll.observation.BasketObsDto; import fr.ird.observe.dto.data.ll.observation.BranchlineObsDto; import fr.ird.observe.dto.data.ll.observation.SectionObsDto; @@ -40,8 +41,13 @@ import fr.ird.observe.dto.form.FormDefinition; import fr.ird.observe.services.service.data.ll.observation.SetLonglineObsDetailCompositionService; import fr.ird.observe.spi.DtoModelHelper; import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.jdesktop.swingx.JXTable; +import org.jdesktop.swingx.decorator.ColorHighlighter; +import org.jdesktop.swingx.decorator.ToolTipHighlighter; +import org.jdesktop.swingx.renderer.StringValue; import org.nuiton.decorator.Decorator; import org.nuiton.jaxx.runtime.spi.UIHandler; import org.nuiton.jaxx.runtime.swing.JVetoableTabbedPane; @@ -50,6 +56,7 @@ import javax.swing.JComboBox; import javax.swing.JOptionPane; import javax.swing.event.ChangeListener; import javax.swing.event.TableModelListener; +import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.beans.PropertyChangeListener; @@ -273,6 +280,7 @@ public class LonglineDetailCompositionObsUIHandler extends ContentSimpleUIHandle @Override public void afterInit(LonglineDetailCompositionObsUI ui) { super.afterInit(ui); + ui.getSectionTemplatesTable().setCellSelectionEnabled(false); ui.get$objectMap().put(GoToTabUIActionSupport.SUB_TABBED_PANE, ui.getBranchlineDetailUI().getSubTabbedPane()); this.validationHelper = new LonglineDetailCompositionObsUIValidationHelper(ui, getDecoratorService()); getBranchlineDetailUIModel().addPropertyChangeListener(BranchlineObsUIModel.PROPERTY_SAVED, branchlineDetailChanged); @@ -335,7 +343,7 @@ public class LonglineDetailCompositionObsUIHandler extends ContentSimpleUIHandle BranchlineObsUIModel branchlineUIModel = branchlineObsUI.getModel(); Optional<FormDefinition<BranchlineObsDto>> optionalFormDefinition = DtoModelHelper.getOptionalFormDefinition(BranchlineObsDto.class); - optionalFormDefinition.ifPresent(t->branchlineObsUI.getModel().getReferenceCache().loadReferentialReferenceSetsInModel(t, true)); + optionalFormDefinition.ifPresent(t -> branchlineObsUI.getModel().getReferenceCache().loadReferentialReferenceSetsInModel(t, true)); branchlineUIModel.setForm(branchlineDtoForm); //FIXME Validate this default date @@ -374,6 +382,82 @@ public class LonglineDetailCompositionObsUIHandler extends ContentSimpleUIHandle } } + @Override + protected void installValidators(IdDto editBean) { + super.installValidators(editBean); + ui.getGenerateValidator().setBean(getModel()); + } + + @Override + protected void uninstallValidators() { + super.uninstallValidators(); + ui.getGenerateValidator().setBean(null); + } + + @Override + public void startEditUI() { + super.startEditUI(); + ui.getSectionTemplatesTable().addHighlighter(new ColorHighlighter((renderer, adapter) -> { + JXTable component = (JXTable) adapter.getComponent(); + SectionObsTemplateTableModel model = (SectionObsTemplateTableModel) component.getModel(); + int row = adapter.convertRowIndexToModel(adapter.row); + SectionTemplate node = model.getData(row); + if (node.isEmpty()) { + return false; + } + switch (adapter.convertColumnIndexToModel(adapter.column)) { + case 0: + return !node.isIdValid(); + case 1: + return !node.isFloatlineLengthsValid(); + } + return true; + }, ObserveSwingApplicationContext.get().getConfig().getFloatingObjectMaterialErrorColor(), Color.WHITE,ObserveSwingApplicationContext.get().getConfig().getFloatingObjectMaterialErrorColor(), Color.WHITE)); + ui.getSectionTemplatesTable().addHighlighter(new ToolTipHighlighter((renderer, adapter) -> { + JXTable component = (JXTable) adapter.getComponent(); + SectionObsTemplateTableModel model = (SectionObsTemplateTableModel) component.getModel(); + int row = adapter.convertRowIndexToModel(adapter.row); + SectionTemplate node = model.getData(row); + if (node.isEmpty()) { + return false; + } + switch (adapter.convertColumnIndexToModel(adapter.column)) { + case 0: + return !node.isIdValid(); + case 1: + return !node.isFloatlineLengthsValid(); + } + return true; + }, (StringValue) value -> { + int selectedColumn = ui.getSectionTemplatesTable().getSelectedColumn(); + String str = (String) value; + boolean empty = StringUtils.isEmpty(str); + switch (selectedColumn) { + case 0: + return t("observe.validation.setLonglineObsDetailComposition.required.id"); + case 1: + return empty?t("observe.validation.setLonglineObsDetailComposition.required.pattern"):t("observe.validation.setLonglineObsDetailComposition.invalid.pattern"); + } + return null; + })); +// ui.getSectionTemplatesTable().addHighlighter(new IconHighlighter((renderer, adapter) -> { +// JXTable component = (JXTable) adapter.getComponent(); +// SectionObsTemplateTableModel model = (SectionObsTemplateTableModel) component.getModel(); +// int row = adapter.convertRowIndexToModel(adapter.row); +// SectionTemplate node = model.getData(row); +// if (node.isEmpty()) { +// return false; +// } +// switch (adapter.convertColumnIndexToModel(adapter.column)) { +// case 0: +// return !node.isIdValid(); +// case 1: +// return !node.isFloatlineLengthsValid(); +// } +// return true; +// }, JTabbedPaneValidator.ERROR_ICON)); + } + public void insertBeforeSelectedSectionTemplate() { getSectionTemplatesTableModel().insertBeforeSelectedRow(); } ===================================== client-core/src/main/resources/fr/ird/observe/client/ui/content/data/ll/observation/LonglineDetailCompositionObsUIModel-update-error-validation.xml ===================================== @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + ObServe :: Client core + %% + Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> + + +<!DOCTYPE validators PUBLIC + "-//Apache Struts//XWork Validator 1.0.3//EN" + "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> +<validators> + <field name="generateTabValid"> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ generateTabValid ]]> + </param> + <message>observe.validation.setLonglineObsDetailComposition.invalid.templates</message> + </field-validator> + </field> +</validators> ===================================== dto/src/main/java/fr/ird/observe/dto/data/ll/observation/SectionTemplate.java ===================================== @@ -10,12 +10,12 @@ package fr.ird.observe.dto.data.ll.observation; * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. @@ -23,6 +23,7 @@ package fr.ird.observe.dto.data.ll.observation; */ import com.google.common.base.Preconditions; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import org.jdesktop.beans.AbstractSerializableBean; @@ -84,7 +85,9 @@ public class SectionTemplate extends AbstractSerializableBean { } public boolean isFloatlineLengthsValid() { - + if (floatlineLengths == null) { + return false; + } Matcher matcher = FLOATLINE_LENGTHS_PATTERN.matcher(floatlineLengths); return matcher.matches(); @@ -92,7 +95,7 @@ public class SectionTemplate extends AbstractSerializableBean { public List<Float> getFloatlineLengthsAsList() { - String[] parts = floatlineLengths.split("\\/"); + String[] parts = floatlineLengths.split("/"); List<Float> newLengths = new ArrayList<>(parts.length); for (String part : parts) { Float aFloat = Float.valueOf(part); @@ -179,4 +182,12 @@ public class SectionTemplate extends AbstractSerializableBean { result = 31 * result + (floatlineLengths == null ? 0 : floatlineLengths.hashCode()); return result; } + + public boolean isIdValid() { + return StringUtils.isNotEmpty(id); + } + + public boolean isEmpty() { + return StringUtils.isEmpty(id) && StringUtils.isEmpty(floatlineLengths); + } } ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -1446,6 +1446,7 @@ observe.common.LonglineDetailCompositionObsDto.sectionsTable.template=Template observe.common.LonglineDetailCompositionObsDto.sectionsTable.template.tip=Template used to generate baskets floatline lengths observe.common.LonglineDetailCompositionObsDto.title=Detailed composition observe.common.LonglineDetailCompositionObsDto.title.section.cant.use.firstTemplate=Can't use the first template while generating +observe.common.LonglineDetailCompositionObsUIModelDto.generateTabValid=Templates observe.common.LonglineGlobalCompositionDto.message.updating=Updating global composition observe.common.LonglineGlobalCompositionLogbookDto.message.updating=Updating global composition observe.common.LonglineGlobalCompositionObsDto.message.updating=Updating global composition @@ -3611,6 +3612,10 @@ observe.validation.setLongline.required.settingStartTimeStamp=Timestamp must be observe.validation.setLongline.required.totalSectionsCount=Total sections count must be filled. observe.validation.setLongline.settingEndTimeStamp.before.haulingStartTimeStamp=Setting end time must be before hauling start time. observe.validation.setLongline.settingStartTimeStamp.before.settingEndTimeStamp=Setting start time must be before setting end time. +observe.validation.setLonglineObsDetailComposition.invalid.pattern=Pattern format is 'x/y/z/...' +observe.validation.setLonglineObsDetailComposition.invalid.templates=Templates are not valid, see tooltip on error cells +observe.validation.setLonglineObsDetailComposition.required.id=Id must be filled. +observe.validation.setLonglineObsDetailComposition.required.pattern=Pattern must be filled. observe.validation.shipOwner.desactivated.country=Selected ship owner is disabled. observe.validation.shipOwner.required.code=Code is mandatory. observe.validation.shipOwner.required.label=Label is mandatory. ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -1446,6 +1446,7 @@ observe.common.LonglineDetailCompositionObsDto.sectionsTable.template=Template observe.common.LonglineDetailCompositionObsDto.sectionsTable.template.tip=Template observe.common.LonglineDetailCompositionObsDto.title=Esquema del palangre observe.common.LonglineDetailCompositionObsDto.title.section.cant.use.firstTemplate=Impossible de utilizar el primer modelo durante la generación +observe.common.LonglineDetailCompositionObsUIModelDto.generateTabValid=Templates \#TODO observe.common.LonglineGlobalCompositionDto.message.updating=Composición global del palangre en proceso de modificación observe.common.LonglineGlobalCompositionLogbookDto.message.updating=Composición global del palangre en proceso de modificación observe.common.LonglineGlobalCompositionObsDto.message.updating=Composición global del palangre en proceso de modificación @@ -3611,6 +3612,10 @@ observe.validation.setLongline.required.settingStartTimeStamp=Timestamp de inici observe.validation.setLongline.required.totalSectionsCount=Número de secciones vacío. observe.validation.setLongline.settingEndTimeStamp.before.haulingStartTimeStamp=La hora de inicio de arrastre debe ser superior o igual a la hora de fin de calada. observe.validation.setLongline.settingStartTimeStamp.before.settingEndTimeStamp=L'heure de fin de calada debe ser superior o igual a la hora de inicio de calada. +observe.validation.setLonglineObsDetailComposition.invalid.pattern=Le format du patron doit être de la forme x/y/z/... \#TODO +observe.validation.setLonglineObsDetailComposition.invalid.templates=Templates are not valid, see tooltip on error cells. \#TODO +observe.validation.setLonglineObsDetailComposition.required.id=Identifiant non renseigné \#TODO +observe.validation.setLonglineObsDetailComposition.required.pattern=Patron non renseigné \#TODO observe.validation.shipOwner.desactivated.country=L'armateur sélectionné est désactivé. \#TODO observe.validation.shipOwner.required.code=Le code est obligatoire. \#TODO observe.validation.shipOwner.required.label=Le code est obligatoire. \#TODO ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -1446,6 +1446,7 @@ observe.common.LonglineDetailCompositionObsDto.sectionsTable.template=Patron observe.common.LonglineDetailCompositionObsDto.sectionsTable.template.tip=Patron observe.common.LonglineDetailCompositionObsDto.title=Schéma de palangre observe.common.LonglineDetailCompositionObsDto.title.section.cant.use.firstTemplate=Impossible d'utiliser le premier modèle lors de la génération +observe.common.LonglineDetailCompositionObsUIModelDto.generateTabValid=Templates observe.common.LonglineGlobalCompositionDto.message.updating=Composition globale de la palangre en cours de modification observe.common.LonglineGlobalCompositionLogbookDto.message.updating=Composition globale de la palangre en cours de modification observe.common.LonglineGlobalCompositionObsDto.message.updating=Composition globale de la palangre en cours de modification @@ -3611,6 +3612,10 @@ observe.validation.setLongline.required.settingStartTimeStamp=Horodatage de déb observe.validation.setLongline.required.totalSectionsCount=Nombre de sections non renseigné. observe.validation.setLongline.settingEndTimeStamp.before.haulingStartTimeStamp=L'heure de début de virage doit être supérieure ou égal à l'heure de fin de filage. observe.validation.setLongline.settingStartTimeStamp.before.settingEndTimeStamp=L'heure de fin de filage doit être supérieure ou égal à l'heure de début de filage. +observe.validation.setLonglineObsDetailComposition.invalid.pattern=Le format du patron doit être de la forme x/y/z/... +observe.validation.setLonglineObsDetailComposition.invalid.templates=Les templates ne sont pas valides, passer en revue les cellules en erreur +observe.validation.setLonglineObsDetailComposition.required.id=Identifiant non renseigné +observe.validation.setLonglineObsDetailComposition.required.pattern=Patron non renseigné observe.validation.shipOwner.desactivated.country=L'armateur sélectionné est désactivé. observe.validation.shipOwner.required.code=Le code est obligatoire. observe.validation.shipOwner.required.label=Le libellé est obligatoire. ===================================== pom.xml ===================================== @@ -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.11</observeToolkitVersion> + <observeToolkitVersion>4.12</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> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/3985d9113c344528e0adb0f4603... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/3985d9113c344528e0adb0f4603... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT