Author: acheype Date: 2013-03-26 07:11:25 +0100 (Tue, 26 Mar 2013) New Revision: 178 Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/178 Log: add the configuration part for TypeDocument Added: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ManageTypeDocumentPage.html trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ManageTypeDocumentPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListTypeDocumentPanel.html trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListTypeDocumentPanel.java trunk/cantharella.web/src/main/webapp/META-INF/ Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/TypeDocument.java trunk/cantharella.data/src/main/sql/dev_update.sql trunk/cantharella.web/pom.xml trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ListConfigurationPage.html trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ListConfigurationPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListErreurTestBioPanel.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java trunk/cantharella.web/src/main/resources/web_en.properties trunk/cantharella.web/src/main/resources/web_fr.properties Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/TypeDocument.java =================================================================== --- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/TypeDocument.java 2013-03-20 09:55:55 UTC (rev 177) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/TypeDocument.java 2013-03-26 06:11:25 UTC (rev 178) @@ -58,6 +58,7 @@ /** Document type domain */ @Length(max = LENGTH_MEDIUM_TEXT) + @NotEmpty private String domaine; /** Document type description */ Modified: trunk/cantharella.data/src/main/sql/dev_update.sql =================================================================== --- trunk/cantharella.data/src/main/sql/dev_update.sql 2013-03-20 09:55:55 UTC (rev 177) +++ trunk/cantharella.data/src/main/sql/dev_update.sql 2013-03-26 06:11:25 UTC (rev 178) @@ -25,12 +25,11 @@ BEGIN; --- Documents (16/11/2012) +-- Documents (16/11/2012) - update (25/03/2013) create table TypeDocument ( idTypeDocument int4 not null, description text not null, - domaine varchar(60), - estImage boolean not null, + domaine varchar(60) not null, nom varchar(60) not null unique, primary key (idTypeDocument), unique (nom) @@ -172,5 +171,4 @@ foreign key (molecule) references Molecule; - alter table typedocument drop column estimage; COMMIT; \ No newline at end of file Modified: trunk/cantharella.web/pom.xml =================================================================== --- trunk/cantharella.web/pom.xml 2013-03-20 09:55:55 UTC (rev 177) +++ trunk/cantharella.web/pom.xml 2013-03-26 06:11:25 UTC (rev 178) @@ -38,11 +38,10 @@ <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> - <artifactId>maven-jetty-plugin</artifactId> - <version>6.1.26</version> + <artifactId>jetty-maven-plugin</artifactId> <configuration> <scanIntervalSeconds>2</scanIntervalSeconds> - <stopPort>9966</stopPort> + <stopPort>9966</stopPort> <stopKey>jetty-stop</stopKey> </configuration> </plugin> @@ -173,4 +172,7 @@ <artifactId>wicket-spring</artifactId> </dependency> </dependencies> + <properties> + <netbeans.hint.deploy.server>Tomcat</netbeans.hint.deploy.server> + </properties> </project> \ No newline at end of file Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ListConfigurationPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ListConfigurationPage.html 2013-03-20 09:55:55 UTC (rev 177) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ListConfigurationPage.html 2013-03-26 06:11:25 UTC (rev 178) @@ -34,8 +34,10 @@ <div wicket:id="ListConfigurationPage.ListMethodeTestBioPanel"/> <div wicket:id="ListConfigurationPage.ListErreurTestBioPanel"/> + + <div wicket:id="ListConfigurationPage.ListTypeDocumentPanel"/> - <div wicket:id="ListConfigurationPage.RebuildLuceneIndexPanel"/> + <div wicket:id="ListConfigurationPage.RebuildLuceneIndexPanel"/> </wicket:extend> </body> Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ListConfigurationPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ListConfigurationPage.java 2013-03-20 09:55:55 UTC (rev 177) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ListConfigurationPage.java 2013-03-26 06:11:25 UTC (rev 178) @@ -28,6 +28,7 @@ import nc.ird.cantharella.web.pages.domain.config.panels.ListMethodePurificationPanel; import nc.ird.cantharella.web.pages.domain.config.panels.ListMethodeTestBioPanel; import nc.ird.cantharella.web.pages.domain.config.panels.ListPartiePanel; +import nc.ird.cantharella.web.pages.domain.config.panels.ListTypeDocumentPanel; import nc.ird.cantharella.web.pages.domain.config.panels.RebuildLuceneIndexPanel; import nc.ird.cantharella.web.utils.panels.CollapsiblePanel; import nc.ird.cantharella.web.utils.security.AuthRole; @@ -60,6 +61,7 @@ boolean methPuriOpened = checkIfPanelOpened(params, "methodePurification"); boolean methTestOpened = checkIfPanelOpened(params, "methodeTestBio"); boolean errTestOpened = checkIfPanelOpened(params, "erreurTestBio"); + boolean typeDocOpened = checkIfPanelOpened(params, "typeDocument"); boolean rebIndexOpened = checkIfPanelOpened(params, "rebuildLuceneIndex"); if (params.get("openedTab").equals("partie")) { @@ -119,6 +121,16 @@ } }); + // initialize the TypeDocument panel + add(new CollapsiblePanel(getResource() + ".ListTypeDocumentPanel", new Model<String>( + getString("ListConfigurationPage.TypesDocument")), typeDocOpened) { + + @Override + protected Panel getInnerPanel(String markupId) { + return new ListTypeDocumentPanel(markupId); + } + }); + // initialize the RebuidLuceneIndex panel add(new CollapsiblePanel(getResource() + ".RebuildLuceneIndexPanel", new Model<String>( getString("ListConfigurationPage.RebuildLuceneIndex")), rebIndexOpened) { Copied: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ManageTypeDocumentPage.html (from rev 177, trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ManageErreurTestBioPage.html) =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ManageTypeDocumentPage.html (rev 0) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ManageTypeDocumentPage.html 2013-03-26 06:11:25 UTC (rev 178) @@ -0,0 +1,56 @@ +<!-- + #%L + Cantharella :: Web + $Id: + $HeadURL: + %% + Copyright (C) 2009 - 2012 IRD (Institut de Recherche pour le Developpement) and by respective authors (see below) + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --> +<!DOCTYPE html> +<html xmlns:wicket="http://wicket.apache.org"> +<body> +<wicket:extend> + + <form wicket:id="Form"> + + <div class="property required"> + <label for="TypeDocument.nom"><wicket:message key="TypeDocument.nom" /></label> + <input type="text" id="TypeDocument.nom" wicket:id="TypeDocument.nom" /> + </div> + + <div class="property required"> + <label for="TypeDocument.domaine"><wicket:message key="TypeDocument.domaine" /></label> + <input type="text" id="TypeDocument.domaine" wicket:id="TypeDocument.domaine" /> + </div> + + <div class="property required"> + <label for="TypeDocument.description"><wicket:message key="TypeDocument.description" /></label> + <textarea id="TypeDocument.description" wicket:id="TypeDocument.description" cols="120" rows="3"></textarea> + </div> + + <div class="actions"> + <input type="submit" wicket:message="value:Submit" wicket:id="Create" /> + <input type="submit" wicket:message="value:Submit" wicket:id="Update" /> + <input type="submit" wicket:message="value:Delete" wicket:id="Delete" class="warning" /> + <a wicket:id="Cancel"><wicket:message key="Cancel" /></a> + </div> + + </form> + +</wicket:extend> +</body> +</html> \ No newline at end of file Copied: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ManageTypeDocumentPage.java (from rev 177, trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ManageErreurTestBioPage.java) =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ManageTypeDocumentPage.java (rev 0) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/ManageTypeDocumentPage.java 2013-03-26 06:11:25 UTC (rev 178) @@ -0,0 +1,228 @@ +/* + * #%L + * Cantharella :: Web + * $Id: + * $HeadURL: + * %% + * Copyright (C) 2009 - 2012 IRD (Institut de Recherche pour le Developpement) and by respective authors (see below) + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package nc.ird.cantharella.web.pages.domain.config; + +import nc.ird.cantharella.data.exceptions.DataConstraintException; +import nc.ird.cantharella.data.exceptions.DataNotFoundException; +import nc.ird.cantharella.data.exceptions.UnexpectedException; +import nc.ird.cantharella.data.model.TypeDocument; +import nc.ird.cantharella.data.validation.utils.ModelValidator; +import nc.ird.cantharella.service.services.DocumentService; +import nc.ird.cantharella.service.services.TestBioService; +import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.utils.behaviors.JSConfirmationBehavior; +import nc.ird.cantharella.web.utils.forms.SubmittableButton; +import nc.ird.cantharella.web.utils.forms.SubmittableButtonEvents; +import nc.ird.cantharella.web.utils.security.AuthRole; +import nc.ird.cantharella.web.utils.security.AuthRoles; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.wicket.markup.html.form.Button; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.form.TextArea; +import org.apache.wicket.markup.html.form.TextField; +import org.apache.wicket.markup.html.link.Link; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; +import org.apache.wicket.model.PropertyModel; +import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.wicket.spring.injection.annot.SpringBean; + +/** + * Page for adding/update/delete a new "TypeDocument" + * + * @author Adrien Cheype + */ +@AuthRoles( { AuthRole.ADMIN }) +public final class ManageTypeDocumentPage extends TemplatePage { + + /** + * Action : create + */ + private static final String ACTION_CREATE = "Create"; + + /** + * Action : update + */ + private static final String ACTION_UPDATE = "Update"; + + /** + * Action : delete + */ + public static final String ACTION_DELETE = "Delete"; + + /** + * The return page parameter (key and value) + */ + final private String[] RETURN_PARAM = { "typeDocument", "opened" }; + + /** + * Logger + */ + private static final Logger LOG = LoggerFactory.getLogger(ManageTypeDocumentPage.class); + + /** + * document type Model + */ + private final IModel<TypeDocument> typeDocumentModel; + + /** + * Service : document (for erreurs) + */ + @SpringBean + private DocumentService documentService; + + /** + * Model validator + */ + @SpringBean(name = "webModelValidator") + private ModelValidator validator; + + /** + * Constructor + */ + public ManageTypeDocumentPage() { + this(null); + } + + /** + * Constructor. If idTypeDocument is null, creating a new document type, else editing the corresponding document + * type + * + * @param idTypeDocument The ID of the document type + */ + public ManageTypeDocumentPage(Integer idTypeDocument) { + super(ManageTypeDocumentPage.class); + + boolean createMode; + + // model initialization + if (idTypeDocument == null) { + // creation mode + typeDocumentModel = new Model<TypeDocument>(new TypeDocument()); + createMode = true; + } else { + try { + typeDocumentModel = new Model<TypeDocument>(documentService.loadTypeDocument(idTypeDocument)); + } catch (DataNotFoundException e) { + LOG.error(e.getMessage(), e); + throw new UnexpectedException(e); + } + createMode = false; + } + + // bind with markup + final Form<Void> formView = new Form<Void>("Form"); + + formView.add(new TextField<String>("TypeDocument.nom", new PropertyModel<String>(typeDocumentModel, "nom"))); + formView.add(new TextField<String>("TypeDocument.domaine", new PropertyModel<String>(typeDocumentModel, + "domaine"))); + formView.add(new TextArea<String>("TypeDocument.description", new PropertyModel<String>(typeDocumentModel, + "description"))); + + // Action : create the erreurTest + Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() { + @Override + public void onProcess() throws DataConstraintException { + documentService.createTypeDocument(typeDocumentModel.getObject()); + } + + @Override + public void onSuccess() { + successNextPage(ACTION_CREATE); + PageParameters params = new PageParameters(); + params.add(RETURN_PARAM[0], RETURN_PARAM[1]); + setResponsePage(ListConfigurationPage.class, params); + } + + @Override + public void onValidate() { + validateModel(); + } + }); + createButton.setVisibilityAllowed(createMode); + formView.add(createButton); + + // Action : update the erreurTest + Button updateButton = new SubmittableButton(ACTION_UPDATE, new SubmittableButtonEvents() { + @Override + public void onProcess() throws DataConstraintException { + documentService.updateTypeDocument(typeDocumentModel.getObject()); + } + + @Override + public void onSuccess() { + successNextPage(ACTION_UPDATE); + PageParameters params = new PageParameters(); + params.add(RETURN_PARAM[0], RETURN_PARAM[1]); + setResponsePage(ListConfigurationPage.class, params); + } + + @Override + public void onValidate() { + validateModel(); + } + }); + updateButton.setVisibilityAllowed(!createMode); + formView.add(updateButton); + + // Action : suppression + Button deleteButton = new SubmittableButton(ACTION_DELETE, new SubmittableButtonEvents() { + @Override + public void onProcess() throws DataConstraintException { + documentService.deleteTypeDocument(typeDocumentModel.getObject()); + } + + @Override + public void onSuccess() { + successNextPage(ACTION_DELETE); + PageParameters params = new PageParameters(); + params.add(RETURN_PARAM[0], RETURN_PARAM[1]); + setResponsePage(ListConfigurationPage.class, params); + } + }); + deleteButton.setVisibilityAllowed(!createMode); + deleteButton.setDefaultFormProcessing(false); + deleteButton.add(new JSConfirmationBehavior(getString("Confirm"))); + formView.add(deleteButton); + + formView.add(new Link<Void>("Cancel") { + @Override + public void onClick() { + PageParameters params = new PageParameters(); + params.add(RETURN_PARAM[0], RETURN_PARAM[1]); + setResponsePage(ListConfigurationPage.class, params); + } + }); + + add(formView); + } + + /** + * Validate model + */ + private void validateModel() { + addValidationErrors(validator.validate(typeDocumentModel.getObject(), getSession().getLocale())); + } +} Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListErreurTestBioPanel.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListErreurTestBioPanel.java 2013-03-20 09:55:55 UTC (rev 177) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListErreurTestBioPanel.java 2013-03-26 06:11:25 UTC (rev 178) @@ -44,7 +44,6 @@ /** * Panel qui liste les erreurs de tests biologiques - * @author Mickael Tricot * @author Adrien Cheype */ public class ListErreurTestBioPanel extends Panel { @@ -70,9 +69,9 @@ add(erreursTestRefresh); // Liste des erreursTest - final List<ErreurTestBio> erreurTest = testService.listErreursTestBio(); + final List<ErreurTestBio> erreursTest = testService.listErreursTestBio(); LoadableDetachableSortableListDataProvider<ErreurTestBio> erreursDataProvider = new LoadableDetachableSortableListDataProvider<ErreurTestBio>( - erreurTest, getSession().getLocale()); + erreursTest, getSession().getLocale()); erreursTestRefresh .add(new DataView<ErreurTestBio>("ListErreurTestBioPanel.ErreursTestBio", erreursDataProvider) { Copied: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListTypeDocumentPanel.html (from rev 177, trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListErreurTestBioPanel.html) =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListTypeDocumentPanel.html (rev 0) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListTypeDocumentPanel.html 2013-03-26 06:11:25 UTC (rev 178) @@ -0,0 +1,53 @@ +<!-- + #%L + Cantharella :: Web + $Id: + $HeadURL: + %% + Copyright (C) 2009 - 2012 IRD (Institut de Recherche pour le Developpement) and by respective authors (see below) + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero 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 Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --> +<!DOCTYPE html> +<html xmlns:wicket="http://wicket.apache.org"> + + <wicket:panel> + <p> + <a wicket:id="ListTypeDocumentPanel.NewTypeDocument" class="add"><wicket:message key="ListTypeDocumentPanel.NewTypeDocument" /></a> + </p> + <table cellspacing="0"> + <thead> + <tr> + <th><wicket:message key="TypeDocument.nom" /></th> + <th><wicket:message key="TypeDocument.domaine" /></th> + <th><wicket:message key="TypeDocument.description" /></th> + </tr> + </thead> + <tbody wicket:id="ListTypeDocumentPanel.TypesDocument.Refresh"> + <tr wicket:id="ListTypeDocumentPanel.TypesDocument"> + <td><span wicket:id="ListTypeDocumentPanel.TypesDocument.nom" /></td> + <td><span wicket:id="ListTypeDocumentPanel.TypesDocument.domaine" /></td> + <td><span wicket:id="ListTypeDocumentPanel.TypesDocument.description" /></td> + <td> + <a wicket:id="ListTypeDocumentPanel.TypesDocument.Update" wicket:message="title:Update"> + <img src="images/edit.png" wicket:message="alt:Update" /> + </a> + </td> + </tr> + </tbody> + </table> + </wicket:panel> +</html> + \ No newline at end of file Copied: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListTypeDocumentPanel.java (from rev 177, trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListErreurTestBioPanel.java) =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListTypeDocumentPanel.java (rev 0) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/ListTypeDocumentPanel.java 2013-03-26 06:11:25 UTC (rev 178) @@ -0,0 +1,109 @@ +/* + * #%L + * Cantharella :: Web + * $Id: + * $HeadURL: + * %% + * Copyright (C) 2009 - 2012 IRD (Institut de Recherche pour le Developpement) and by respective authors (see below) + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package nc.ird.cantharella.web.pages.domain.config.panels; + +import java.util.List; + +import nc.ird.cantharella.data.model.TypeDocument; +import nc.ird.cantharella.service.services.DocumentService; +import nc.ird.cantharella.web.pages.domain.config.ManageTypeDocumentPage; +import nc.ird.cantharella.web.utils.models.LoadableDetachableSortableListDataProvider; + +import org.apache.wicket.AttributeModifier; +import org.apache.wicket.MarkupContainer; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.link.BookmarkablePageLink; +import org.apache.wicket.markup.html.link.Link; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.markup.repeater.Item; +import org.apache.wicket.markup.repeater.data.DataView; +import org.apache.wicket.model.Model; +import org.apache.wicket.model.PropertyModel; +import org.apache.wicket.spring.injection.annot.SpringBean; + +/** + * Panel wich list the document types + * + * @author Adrien Cheype + */ +public class ListTypeDocumentPanel extends Panel { + + /** + * Service : document + */ + @SpringBean + private DocumentService documentService; + + /** + * Constructor + * + * @param id The panel ID + */ + public ListTypeDocumentPanel(String id) { + super(id); + + add(new BookmarkablePageLink<Void>("ListTypeDocumentPanel.NewTypeDocument", ManageTypeDocumentPage.class)); + + // On englobe le "DataView" dans un composant neutre que l'on pourra + // rafraichir quand la liste évoluera + final MarkupContainer documentTypesRefresh = new WebMarkupContainer( + "ListTypeDocumentPanel.TypesDocument.Refresh"); + documentTypesRefresh.setOutputMarkupId(true); + add(documentTypesRefresh); + + // Liste des erreursTest + final List<TypeDocument> typesDocument = documentService.listTypeDocuments(); + LoadableDetachableSortableListDataProvider<TypeDocument> erreursDataProvider = new LoadableDetachableSortableListDataProvider<TypeDocument>( + typesDocument, getSession().getLocale()); + + documentTypesRefresh + .add(new DataView<TypeDocument>("ListTypeDocumentPanel.TypesDocument", erreursDataProvider) { + @Override + protected void populateItem(Item<TypeDocument> item) { + if (item.getIndex() % 2 == 1) { + item.add(new AttributeModifier("class", item.getIndex() % 2 == 0 ? "even" : "odd")); + } + + TypeDocument documentType = item.getModelObject(); + // Colonnes + item.add(new Label("ListTypeDocumentPanel.TypesDocument.nom", new PropertyModel<String>( + documentType, "nom"))); + item.add(new Label("ListTypeDocumentPanel.TypesDocument.domaine", new PropertyModel<String>( + documentType, "domaine"))); + item.add(new Label("ListTypeDocumentPanel.TypesDocument.description", + new PropertyModel<String>(documentType, "description"))); + + // Action : mise à jour (redirection vers le formulaire) + Link<TypeDocument> updateLink = new Link<TypeDocument>( + "ListTypeDocumentPanel.TypesDocument.Update", new Model<TypeDocument>(documentType)) { + @Override + public void onClick() { + setResponsePage(new ManageTypeDocumentPage(getModelObject().getIdTypeDocument())); + } + }; + item.add(updateLink); + } + }); + } +} Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java 2013-03-20 09:55:55 UTC (rev 177) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java 2013-03-26 06:11:25 UTC (rev 178) @@ -54,7 +54,7 @@ final Form<Void> formView = new Form<Void>("Form"); - final IModel<String> messageModel = Model.of("Idle"); + final IModel<String> messageModel = Model.of(""); final Label rebuildResultLabel = new Label("rebuildResult", messageModel); rebuildResultLabel.setOutputMarkupId(true); Modified: trunk/cantharella.web/src/main/resources/web_en.properties =================================================================== --- trunk/cantharella.web/src/main/resources/web_en.properties 2013-03-20 09:55:55 UTC (rev 177) +++ trunk/cantharella.web/src/main/resources/web_en.properties 2013-03-26 06:11:25 UTC (rev 178) @@ -20,7 +20,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # #L% ### -#Header & footer +\u00ef\u00bb\u00bf#Header & footer TemplatePage.Subtitle=Pharmacochemical database of natural substances TemplatePage.Copyright=All rights reserved TemplatePage.MainNav=Main Navigation @@ -239,6 +239,8 @@ ListMethodeTestBioPanel.NewMethodeTestBio=New method ListConfigurationPage.ErreursTestBio= Bioassay errors list ListErreurTestBioPanel.NewErreurTestBio=New error +ListConfigurationPage.TypesDocument=Document types list +ListTypeDocumentPanel.NewTypeDocument=New document type ListConfigurationPage.RebuildLuceneIndex=Rebuild lucene index ManagePartiePage=Managing a part @@ -281,6 +283,14 @@ ManageMethodePurificationPage.Delete.OK=Method deleted ManageMethodePurificationPage.Delete.DataConstraintException=There are data linked to this method +ManageTypeDocumentPage=Managing a document type +ManageTypeDocumentPage.Create.OK=Document type created +ManageTypeDocumentPage.Create.DataConstraintException=The name already exists +ManageTypeDocumentPage.Update.OK=Document type updated +ManageTypeDocumentPage.Update.DataConstraintException=The name already exists +ManageTypeDocumentPage.Delete.OK=Document type deleted +ManageTypeDocumentPage.Delete.DataConstraintException=There are data linked to this document type + ReadCampagnePage=Viewing a campaign ReadLotPage=Viewing a sample ReadPersonnePage=Viewing a person @@ -349,8 +359,8 @@ Campagne.dateFin.IConverter.Date=The end date is incorrectly formatted (DD/MM/YY) Campagne.mentionLegale.info=Specify in order: the data-producing organizations - the fund providers - the period concerned by the program Campagne.mentionLegale.info2= the data-producing organizations - the fund providers - the period concerned by the program -Campagne.complement.info= Don’t forget to mention the policies about confidentiality and data publication -Campagne.stationsNotAccessibles= Some locations are not displayed because you don’t have the rights over the entire campaign. +Campagne.complement.info= Don\u00e2\u0080\u0099t forget to mention the policies about confidentiality and data publication +Campagne.stationsNotAccessibles= Some locations are not displayed because you don\u00e2\u0080\u0099t have the rights over the entire campaign. Station.coordonnees=Coordinates Station.coordonnees.KO=To save coordinates, all fields must be completed @@ -366,10 +376,10 @@ Extraction.date.IConverter.Date=The date is incorrectly formatted (DD/MM/YY) Extraction.extraits.masseObtenue.IConverter.BigDecimal=Resultant mass - must be a decimal number Extraction.extraits.masseObtenue=Resultant mass -Extraction.notUnique=No. extraction – already exists +Extraction.notUnique=No. extraction \u00e2\u0080\u0093 already exists Extrait.notUnique=Ref. extract - already exists Extrait.isReferenced=There are data linked to this extract -TypeExtrait.isReferenced=The type of initials '${0}' can’t be deleted because there are data which refer it +TypeExtrait.isReferenced=The type of initials '${0}' can\u00e2\u0080\u0099t be deleted because there are data which refer it MethodePurification.parametres.index.IConverter.Integer=The index must be an integer Purification.masseDepart.IConverter.BigDecimal=Mass to be purify - must be a decimal number @@ -379,12 +389,12 @@ Purification.notUnique=No. purification - already exists Fraction.notUnique=Ref. fraction - already exists Fraction.isReferenced=There are data linked to this fraction -ParamMethoPuri.isReferenced=The parameter '${0}' can’t be deleted because there are data which refer it +ParamMethoPuri.isReferenced=The parameter '${0}' can\u00e2\u0080\u0099t be deleted because there are data which refer it MethodePurification.parametres.index.IConverter.Integer=The index must be an integer MethodePurification.parametres.index=Index Molecule.provenanceNotAccessibles=Some related products are not displayed because you don't have the required rights -Molecule.masseMolaire.Required=Molar mass - can’t be null +Molecule.masseMolaire.Required=Molar mass - can\u00e2\u0080\u0099t be null Molecule.masseMolaire.IConverter.BigDecimal=Molar mass - must be a decimal number Molecule.downloadMolFile=Download .mol file Molecule.formuleBrute.info=Specify in order : Carbon, Hydrogen and then alphabetically @@ -393,23 +403,23 @@ TestBio.date.IConverter.Date=The date is incorrectly formatted (DD/MM/YY) TestBio.concMasseDefaut.IConverter.BigDecimal=Default Conc./Mass - must be a decimal number TestBio.resultats.valeur.IConverter.BigDecimal=Value - must be a decimal number -TestBio.resultats.repere.Required=Mark – can’t be null +TestBio.resultats.repere.Required=Mark \u00e2\u0080\u0093 can\u00e2\u0080\u0099t be null TestBio.resultats.repere=Mark -TestBio.resultats.typeResultat.Required=Type – can’t be null +TestBio.resultats.typeResultat.Required=Type \u00e2\u0080\u0093 can\u00e2\u0080\u0099t be null TestBio.resultats.typeResultat=Type -TestBio.resultats.produit.Required=Ref product – can’t be null +TestBio.resultats.produit.Required=Ref product \u00e2\u0080\u0093 can\u00e2\u0080\u0099t be null TestBio.resultats.produit=Ref. product -TestBio.resultats.produitTemoin.Required=Control prod. – can’t be null +TestBio.resultats.produitTemoin.Required=Control prod. \u00e2\u0080\u0093 can\u00e2\u0080\u0099t be null TestBio.resultats.produitTemoin=Control prod. TestBio.resultats.concMasse.IConverter.BigDecimal=Conc./Mass - must be a decimal number TestBio.resultats.concMasse=Conc./Mass TestBio.resultats.uniteConcMasse=Conc./Mass TestBio.resultats.concMasse.KO=To save Conc./Mass, the two fields must be completed -TestBio.resultats.stade.Required=Stage - can’t be null +TestBio.resultats.stade.Required=Stage - can\u00e2\u0080\u0099t be null TestBio.resultats.stade=Stage -TestBio.resultats.valeur.Required=Value - can’t be null +TestBio.resultats.valeur.Required=Value - can\u00e2\u0080\u0099t be null TestBio.resultats.valeur=Value -TestBio.notUnique=No. test – already exists +TestBio.notUnique=No. test \u00e2\u0080\u0093 already exists TestBio.resultats.noProduit=The bioassay must contain at least a result of type "product" TestBio.resultsNotAccessibles=Some results are not displayed because you don't have the required rights over their products. Modified: trunk/cantharella.web/src/main/resources/web_fr.properties =================================================================== --- trunk/cantharella.web/src/main/resources/web_fr.properties 2013-03-20 09:55:55 UTC (rev 177) +++ trunk/cantharella.web/src/main/resources/web_fr.properties 2013-03-26 06:11:25 UTC (rev 178) @@ -21,15 +21,15 @@ # #L% ### #Header & footer -TemplatePage.Subtitle=Base de données pharmacochimique des substances naturelles -TemplatePage.Copyright=Tous droits réservés +TemplatePage.Subtitle=Base de donn\u00c3\u00a9es pharmacochimique des substances naturelles +TemplatePage.Copyright=Tous droits r\u00c3\u00a9serv\u00c3\u00a9s TemplatePage.MainNav=Navigation principale TemplatePage.ContentNav=Aller au contenu TemplatePage.Welcome=Bienvenue -TemplatePage.Logout=Déconnexion -TemplatePage.Logout.OK=Vous avez été déconnecté +TemplatePage.Logout=D\u00c3\u00a9connexion +TemplatePage.Logout.OK=Vous avez \u00c3\u00a9t\u00c3\u00a9 d\u00c3\u00a9connect\u00c3\u00a9 TemplatePage.Administration=Administration -TemplatePage.Sampling=Échantillonage +TemplatePage.Sampling=\u00c3\u0089chantillonage TemplatePage.Processing=Traitement TemplatePage.Chemistry=Chimie TemplatePage.Biology=Biologie @@ -43,67 +43,67 @@ #PAGES & ACTIONS# HomePage=Accueil -HomePage.InvalidUtilisateurs=Demandes de créations de comptes +HomePage.InvalidUtilisateurs=Demandes de cr\u00c3\u00a9ations de comptes HomePage.Login=Connexion -HomePage.Login.OK=Connexion réussie +HomePage.Login.OK=Connexion r\u00c3\u00a9ussie HomePage.Login.KO=Identifiants incorrects -HomePage.Login.NotYetValid=Votre demande de création de compte n'a pas encore été validée +HomePage.Login.NotYetValid=Votre demande de cr\u00c3\u00a9ation de compte n'a pas encore \u00c3\u00a9t\u00c3\u00a9 valid\u00c3\u00a9e HomePage.Statistics=Statistiques HomePage.Rights=Vos droits -HomePage.Rights.Admin=Vous êtes connectés en tant qu'administrateur et avez accès à toutes les informations. -HomePage.Rights.User=Vous avez des droits sur l''ensemble des lots de {0} campagne(s) et spécifiquement sur {1} lot(s). -HomePage.Rights.User.Details=+ de détails -HomePage.Rights.User2=Vous êtes également créateur de {0} campagnes(s) et avez des droits sur l''ensemble de ses lots. -HomePage.Warning=Les données capitalisées dans ce système d’information ont été acquises au cours de différents programmes, par divers organismes. Pour l’utilisation des données, merci de prendre contact avec le coordinateur du programme indiqué au niveau de la fiche campagne correspondante. -HomePage.Warning2=L’IRD n’assure aucune garantie par rapport aux données et informations présentées, leur véracité relève de leurs auteurs. +HomePage.Rights.Admin=Vous \u00c3\u00aates connect\u00c3\u00a9s en tant qu'administrateur et avez acc\u00c3\u00a8s \u00c3\u00a0 toutes les informations. +HomePage.Rights.User=Vous avez des droits sur l''ensemble des lots de {0} campagne(s) et sp\u00c3\u00a9cifiquement sur {1} lot(s). +HomePage.Rights.User.Details=+ de d\u00c3\u00a9tails +HomePage.Rights.User2=Vous \u00c3\u00aates \u00c3\u00a9galement cr\u00c3\u00a9ateur de {0} campagnes(s) et avez des droits sur l''ensemble de ses lots. +HomePage.Warning=Les donn\u00c3\u00a9es capitalis\u00c3\u00a9es dans ce syst\u00c3\u00a8me d\u00e2\u0080\u0099information ont \u00c3\u00a9t\u00c3\u00a9 acquises au cours de diff\u00c3\u00a9rents programmes, par divers organismes. Pour l\u00e2\u0080\u0099utilisation des donn\u00c3\u00a9es, merci de prendre contact avec le coordinateur du programme indiqu\u00c3\u00a9 au niveau de la fiche campagne correspondante. +HomePage.Warning2=L\u00e2\u0080\u0099IRD n\u00e2\u0080\u0099assure aucune garantie par rapport aux donn\u00c3\u00a9es et informations pr\u00c3\u00a9sent\u00c3\u00a9es, leur v\u00c3\u00a9racit\u00c3\u00a9 rel\u00c3\u00a8ve de leurs auteurs. #for statistics Personnes.stat=Personnes Campagnes.stat=Campagnes Stations.stat=Stations -Specimens.stat=Spécimens +Specimens.stat=Sp\u00c3\u00a9cimens Lots.stat=Lots Extractions.stat=Extractions Purifications.stat=Purifications -ResultatsTestsBio.stat=Résultats de tests biologiques +ResultatsTestsBio.stat=R\u00c3\u00a9sultats de tests biologiques ErrorPage=Erreur -ErrorPage.AccessDeniedPage=Vous n'êtes pas autorisé à accéder à cette page +ErrorPage.AccessDeniedPage=Vous n'\u00c3\u00aates pas autoris\u00c3\u00a9 \u00c3\u00a0 acc\u00c3\u00a9der \u00c3\u00a0 cette page ErrorPage.InternalErrorPage=Erreur interne -ErrorPage.PageExpiredErrorPage=La page a expiré +ErrorPage.PageExpiredErrorPage=La page a expir\u00c3\u00a9 ContactPage=Contact ContactPage.Info=Envoyez un message aux gestionnaires de la base en remplissant le formulaire ci-dessous. -ContactPage.Send.OK=Message envoyé -ContactPage.Send.EmailException=Problème lors de l'envoi du message +ContactPage.Send.OK=Message envoy\u00c3\u00a9 +ContactPage.Send.EmailException=Probl\u00c3\u00a8me lors de l'envoi du message -ResetPasswordPage=Mot de passe oublié -ResetPasswordPage.Reset.OK=Nouveau mot de passe envoyé par mail -ResetPasswordPage.Reset.DataNotFoundException=Le courriel ne correspond à aucun utilisateur -ResetPasswordPage.Reset.EmailException=Problème lors de l'envoi du nouveau mot de passe +ResetPasswordPage=Mot de passe oubli\u00c3\u00a9 +ResetPasswordPage.Reset.OK=Nouveau mot de passe envoy\u00c3\u00a9 par mail +ResetPasswordPage.Reset.DataNotFoundException=Le courriel ne correspond \u00c3\u00a0 aucun utilisateur +ResetPasswordPage.Reset.EmailException=Probl\u00c3\u00a8me lors de l'envoi du nouveau mot de passe -RegisterPage=Demande de création de compte -RegisterPage.Register.OK=Demande de création de compte effectuée -RegisterPage.Register.DataConstraintException=Le courriel ou le prénom + nom existe déjà +RegisterPage=Demande de cr\u00c3\u00a9ation de compte +RegisterPage.Register.OK=Demande de cr\u00c3\u00a9ation de compte effectu\u00c3\u00a9e +RegisterPage.Register.DataConstraintException=Le courriel ou le pr\u00c3\u00a9nom + nom existe d\u00c3\u00a9j\u00c3\u00a0 ManageUtilisateurPage=Gestion du compte utilisateur ManageUtilisateurPage.Profile=Profil ManageUtilisateurPage.Authorizations=Droits -ManageUtilisateurPage.Update.OK=Compte mis à jour -ManageUtilisateurPage.Update.DataConstraintException=Le courriel ou le prénom + nom existe déjà -ManageUtilisateurPage.Valid.OK=Compte validé et mis à jour -ManageUtilisateurPage.Valid.DataConstraintException=Le courriel ou le prénom + nom existe déjà -ManageUtilisateurPage.Delete.OK=Utilisateur supprimé -ManageUtilisateurPage.Delete.DataConstraintException=Il existe des données crées par cet utilisateur -ManageUtilisateurPage.Delete.EmailException=Problème lors de la confirmation de suppression de compte utilisateur -ManageUtilisateurPage.Delete.Info=La suppression efface le compte utilisateur, mais conserve la personne s'il y a des données liées. -ManageUtilisateurPage.Reject.OK=Demande de création de compte rejetée +ManageUtilisateurPage.Update.OK=Compte mis \u00c3\u00a0 jour +ManageUtilisateurPage.Update.DataConstraintException=Le courriel ou le pr\u00c3\u00a9nom + nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageUtilisateurPage.Valid.OK=Compte valid\u00c3\u00a9 et mis \u00c3\u00a0 jour +ManageUtilisateurPage.Valid.DataConstraintException=Le courriel ou le pr\u00c3\u00a9nom + nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageUtilisateurPage.Delete.OK=Utilisateur supprim\u00c3\u00a9 +ManageUtilisateurPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es cr\u00c3\u00a9es par cet utilisateur +ManageUtilisateurPage.Delete.EmailException=Probl\u00c3\u00a8me lors de la confirmation de suppression de compte utilisateur +ManageUtilisateurPage.Delete.Info=La suppression efface le compte utilisateur, mais conserve la personne s'il y a des donn\u00c3\u00a9es li\u00c3\u00a9es. +ManageUtilisateurPage.Reject.OK=Demande de cr\u00c3\u00a9ation de compte rejet\u00c3\u00a9e Authorizations.Campagnes.Lot.null=Tous ListPersonnesPage=Personnes ListPersonnesPage.NewPersonne=Nouvelle personne -ListPersonnesPage.IsNotValid=(non validé) +ListPersonnesPage.IsNotValid=(non valid\u00c3\u00a9) ListCampagnesPage=Campagnes ListCampagnesPage.NewCampagne=Nouvelle campagne @@ -114,8 +114,8 @@ ListStationsPage=Stations ListStationsPage.NewStation=Nouvelle station -ListSpecimensPage=Spécimens -ListSpecimensPage.NewSpecimen=Nouveau spécimen +ListSpecimensPage=Sp\u00c3\u00a9cimens +ListSpecimensPage.NewSpecimen=Nouveau sp\u00c3\u00a9cimen ListExtractionsPage=Extractions ListExtractionsPage.NewExtraction=Nouvelle extraction @@ -123,178 +123,188 @@ ListPurificationsPage=Purifications ListPurificationsPage.NewPurification=Nouvelle purification -ListMoleculesPage=Molécules -ListMoleculesPage.NewMolecule=Nouvelle molécule +ListMoleculesPage=Mol\u00c3\u00a9cules +ListMoleculesPage.NewMolecule=Nouvelle mol\u00c3\u00a9cule -ListTestsBioPage=Résultats des tests biologiques +ListTestsBioPage=R\u00c3\u00a9sultats des tests biologiques ListTestsBioPage2=Tests biologiques ListTestsBioPage.NewTestBio=Nouveau test biologique ListDocumentsPage.NewDocument=Joindre un nouveau document -ListDocumentsPage.AttachedDocuments=Document(s) attaché(s) +ListDocumentsPage.AttachedDocuments=Document(s) attach\u00c3\u00a9(s) ManageCampagnePage=Gestion d'une campagne -ManageCampagnePage.Create.OK=Campagne ajoutée -ManageCampagnePage.Create.DataConstraintException=Le nom existe déjà -ManageCampagnePage.Update.OK=Campagne mise à jour -ManageCampagnePage.Update.DataConstraintException=Le nom existe déjà -ManageCampagnePage.Delete.OK=Campagne supprimée -ManageCampagnePage.Delete.DataConstraintException=Il existe des données liées à cette campagne +ManageCampagnePage.Create.OK=Campagne ajout\u00c3\u00a9e +ManageCampagnePage.Create.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageCampagnePage.Update.OK=Campagne mise \u00c3\u00a0 jour +ManageCampagnePage.Update.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageCampagnePage.Delete.OK=Campagne supprim\u00c3\u00a9e +ManageCampagnePage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cette campagne ManageLotPage=Gestion d'un lot -ManageLotPage.Create.OK=Lot créé -ManageLotPage.Create.DataConstraintException=La référence existe déjà -ManageLotPage.Update.OK=Lot mis à jour -ManageLotPage.Update.DataConstraintException=La référence existe déjà -ManageLotPage.Delete.OK=Lot supprimé -ManageLotPage.Delete.DataConstraintException=Il existe des données liées à ce lot +ManageLotPage.Create.OK=Lot cr\u00c3\u00a9\u00c3\u00a9 +ManageLotPage.Create.DataConstraintException=La r\u00c3\u00a9f\u00c3\u00a9rence existe d\u00c3\u00a9j\u00c3\u00a0 +ManageLotPage.Update.OK=Lot mis \u00c3\u00a0 jour +ManageLotPage.Update.DataConstraintException=La r\u00c3\u00a9f\u00c3\u00a9rence existe d\u00c3\u00a9j\u00c3\u00a0 +ManageLotPage.Delete.OK=Lot supprim\u00c3\u00a9 +ManageLotPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 ce lot ManagePersonnePage=Gestion d'une personne -ManagePersonnePage.Create.OK=Personne créée -ManagePersonnePage.Create.DataConstraintException=Le courriel ou le prénom + nom existe déjà -ManagePersonnePage.Update.OK=Personne mise à jour -ManagePersonnePage.Update.DataConstraintException=Le courriel ou le prénom + nom existe déjà -ManagePersonnePage.Delete.OK=Personne supprimée -ManagePersonnePage.Delete.DataConstraintException=Il existe des données liées à cette personne -ManagePersonnePage.CreateUtilisateur=Créer un compte utilisateur -ManagePersonnePage.CreateUtilisateur.OK=Compte utilisateur créé -ManagePersonnePage.CreateUtilisateur.DataConstraintException=Le courriel ou le prénom + nom existe déjà -ManagePersonnePage.CreateUtilisateur.EmailException=Problème lors de l'envoi du mot de passe +ManagePersonnePage.Create.OK=Personne cr\u00c3\u00a9\u00c3\u00a9e +ManagePersonnePage.Create.DataConstraintException=Le courriel ou le pr\u00c3\u00a9nom + nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManagePersonnePage.Update.OK=Personne mise \u00c3\u00a0 jour +ManagePersonnePage.Update.DataConstraintException=Le courriel ou le pr\u00c3\u00a9nom + nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManagePersonnePage.Delete.OK=Personne supprim\u00c3\u00a9e +ManagePersonnePage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cette personne +ManagePersonnePage.CreateUtilisateur=Cr\u00c3\u00a9er un compte utilisateur +ManagePersonnePage.CreateUtilisateur.OK=Compte utilisateur cr\u00c3\u00a9\u00c3\u00a9 +ManagePersonnePage.CreateUtilisateur.DataConstraintException=Le courriel ou le pr\u00c3\u00a9nom + nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManagePersonnePage.CreateUtilisateur.EmailException=Probl\u00c3\u00a8me lors de l'envoi du mot de passe ManageStationPage=Gestion d'une station -ManageStationPage.Create.OK=Station ajoutée -ManageStationPage.Create.DataConstraintException=Le nom existe déjà -ManageStationPage.Update.OK=Station mise à jour -ManageStationPage.Update.DataConstraintException=Le nom existe déjà -ManageStationPage.Delete.OK=Station supprimée -ManageStationPage.Delete.DataConstraintException=Il existe des données liées à cette station +ManageStationPage.Create.OK=Station ajout\u00c3\u00a9e +ManageStationPage.Create.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageStationPage.Update.OK=Station mise \u00c3\u00a0 jour +ManageStationPage.Update.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageStationPage.Delete.OK=Station supprim\u00c3\u00a9e +ManageStationPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cette station -ManageSpecimenPage=Gestion d'un spécimen -ManageSpecimenPage.Create.OK=Spécimen ajouté -ManageSpecimenPage.Create.DataConstraintException=La référence existe déjà -ManageSpecimenPage.Update.OK=Spécimen mis à jour -ManageSpecimenPage.Update.DataConstraintException=La référence existe déjà -ManageSpecimenPage.Delete.OK=Spécimen supprimée -ManageSpecimenPage.Delete.DataConstraintException=Il existe des données liées à ce spécimen +ManageSpecimenPage=Gestion d'un sp\u00c3\u00a9cimen +ManageSpecimenPage.Create.OK=Sp\u00c3\u00a9cimen ajout\u00c3\u00a9 +ManageSpecimenPage.Create.DataConstraintException=La r\u00c3\u00a9f\u00c3\u00a9rence existe d\u00c3\u00a9j\u00c3\u00a0 +ManageSpecimenPage.Update.OK=Sp\u00c3\u00a9cimen mis \u00c3\u00a0 jour +ManageSpecimenPage.Update.DataConstraintException=La r\u00c3\u00a9f\u00c3\u00a9rence existe d\u00c3\u00a9j\u00c3\u00a0 +ManageSpecimenPage.Delete.OK=Sp\u00c3\u00a9cimen supprim\u00c3\u00a9e +ManageSpecimenPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 ce sp\u00c3\u00a9cimen ManageExtractionPage=Gestion d'une extraction -ManageExtractionPage.Create.OK=Extraction ajoutée -ManageExtractionPage.Create.DataConstraintException=Erreur non identifiée lors de la création -ManageExtractionPage.Update.OK=Extraction mise à jour -ManageExtractionPage.Update.DataConstraintException=Erreur non identifiée lors de la mise à jour -ManageExtractionPage.Delete.OK=Extraction supprimée -ManageExtractionPage.Delete.DataConstraintException=Il existe des données liées à cette extraction +ManageExtractionPage.Create.OK=Extraction ajout\u00c3\u00a9e +ManageExtractionPage.Create.DataConstraintException=Erreur non identifi\u00c3\u00a9e lors de la cr\u00c3\u00a9ation +ManageExtractionPage.Update.OK=Extraction mise \u00c3\u00a0 jour +ManageExtractionPage.Update.DataConstraintException=Erreur non identifi\u00c3\u00a9e lors de la mise \u00c3\u00a0 jour +ManageExtractionPage.Delete.OK=Extraction supprim\u00c3\u00a9e +ManageExtractionPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cette extraction ManagePurificationPage=Gestion d'une purification -ManagePurificationPage.Create.OK=Purification ajoutée -ManagePurificationPage.Create.DataConstraintException=Erreur non identifiée lors de la création -ManagePurificationPage.Update.OK=Purification mise à jour -ManagePurificationPage.Update.DataConstraintException=Erreur non identifiée lors de la mise à jour -ManagePurificationPage.Delete.OK=Purification supprimée -ManagePurificationPage.Delete.DataConstraintException=Il existe des données liées à cette purification +ManagePurificationPage.Create.OK=Purification ajout\u00c3\u00a9e +ManagePurificationPage.Create.DataConstraintException=Erreur non identifi\u00c3\u00a9e lors de la cr\u00c3\u00a9ation +ManagePurificationPage.Update.OK=Purification mise \u00c3\u00a0 jour +ManagePurificationPage.Update.DataConstraintException=Erreur non identifi\u00c3\u00a9e lors de la mise \u00c3\u00a0 jour +ManagePurificationPage.Delete.OK=Purification supprim\u00c3\u00a9e +ManagePurificationPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cette purification -ManageMoleculePage=Gestion d'une molécule -ManageMoleculePage.Create.DataConstraintException=Impossible de sauver la molécule -ManageMoleculePage.Create.OK=Molecule ajoutée -ManageMoleculePage.Update.DataConstraintException=Impossible de modifier la molécule -ManageMoleculePage.Update.OK=Molecule mise à jour -ManageMoleculePage.Delete.DataConstraintException=Impossible de supprimer la molécule -ManageMoleculePage.Delete.OK=Molecule supprimée +ManageMoleculePage=Gestion d'une mol\u00c3\u00a9cule +ManageMoleculePage.Create.DataConstraintException=Impossible de sauver la mol\u00c3\u00a9cule +ManageMoleculePage.Create.OK=Molecule ajout\u00c3\u00a9e +ManageMoleculePage.Update.DataConstraintException=Impossible de modifier la mol\u00c3\u00a9cule +ManageMoleculePage.Update.OK=Molecule mise \u00c3\u00a0 jour +ManageMoleculePage.Delete.DataConstraintException=Impossible de supprimer la mol\u00c3\u00a9cule +ManageMoleculePage.Delete.OK=Molecule supprim\u00c3\u00a9e ManageTestBioPage=Gestion d'un test biologique -ManageTestBioPage.Create.OK=Test biologique ajouté -ManageTestBioPage.Create.DataConstraintException=Erreur non identifiée lors de la création -ManageTestBioPage.Update.OK=Test biologique mis à jour -ManageTestBioPage.Update.DataConstraintException=Erreur non identifiée lors de la mise à jour -ManageTestBioPage.Delete.OK=Test biologique supprimé -ManageTestBioPage.Delete.DataConstraintException=Il existe des données liées à ce test biologique +ManageTestBioPage.Create.OK=Test biologique ajout\u00c3\u00a9 +ManageTestBioPage.Create.DataConstraintException=Erreur non identifi\u00c3\u00a9e lors de la cr\u00c3\u00a9ation +ManageTestBioPage.Update.OK=Test biologique mis \u00c3\u00a0 jour +ManageTestBioPage.Update.DataConstraintException=Erreur non identifi\u00c3\u00a9e lors de la mise \u00c3\u00a0 jour +ManageTestBioPage.Delete.OK=Test biologique supprim\u00c3\u00a9 +ManageTestBioPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 ce test biologique ManageDocumentPage=Gestion d'un document -ManageDocumentPage.Create.OK=L'enregistrement du document s'effectuera à la validation du formulaire -ManageDocumentPage.Update.OK=La modification du document s'effectuera à la validation du formulaire -ManageDocumentPage.Delete.OK=La suppression du document s'effectuera à la validation du formulaire -ManageDocumentPage.Error.notAllowedExtension=Extension de fichier non autorisée +ManageDocumentPage.Create.OK=L'enregistrement du document s'effectuera \u00c3\u00a0 la validation du formulaire +ManageDocumentPage.Update.OK=La modification du document s'effectuera \u00c3\u00a0 la validation du formulaire +ManageDocumentPage.Delete.OK=La suppression du document s'effectuera \u00c3\u00a0 la validation du formulaire +ManageDocumentPage.Error.notAllowedExtension=Extension de fichier non autoris\u00c3\u00a9e ManageDocumentPage.Error.emptyFile=Le fichier est requis -ManageDocumentPage.Form.uploadTooLarge=La taille du document ne peut pas dépasser ${maxSize} +ManageDocumentPage.Form.uploadTooLarge=La taille du document ne peut pas d\u00c3\u00a9passer ${maxSize} UpdateUtilisateurPage=Gestion du compte UpdateUtilisateurPage.Password=Mot de passe UpdateUtilisateurPage.Profile=Profil -UpdateUtilisateurPage.UpdateProfile.OK=Profil mis à jour -UpdateUtilisateurPage.UpdateProfile.DataConstraintException=Le courriel ou le prénom + nom existe déjà -UpdateUtilisateurPage.UpdatePassword.OK=Mot de passe mis à jour -UpdateUtilisateurPage.Delete.OK=Compte supprimé +UpdateUtilisateurPage.UpdateProfile.OK=Profil mis \u00c3\u00a0 jour +UpdateUtilisateurPage.UpdateProfile.DataConstraintException=Le courriel ou le pr\u00c3\u00a9nom + nom existe d\u00c3\u00a9j\u00c3\u00a0 +UpdateUtilisateurPage.UpdatePassword.OK=Mot de passe mis \u00c3\u00a0 jour +UpdateUtilisateurPage.Delete.OK=Compte supprim\u00c3\u00a9 UpdateUtilisateurPage.Delete.DataConstraintException=Suppression impossible, il doit rester au moins un administrateur -UpdateUtilisateurPage.Delete.EmailException=Problème lors de la confirmation de suppression de compte utilisateur +UpdateUtilisateurPage.Delete.EmailException=Probl\u00c3\u00a8me lors de la confirmation de suppression de compte utilisateur ListConfigurationPage=Configuration ListConfigurationPage.Parties=Liste des parties d'un lot ListPartiePanel.NewPartie=Nouvelle partie -ListConfigurationPage.MethodesExtraction=Liste des méthodes d'extraction -ListMethodeExtractionPanel.NewMethodeExtraction=Nouvelle méthode -ListConfigurationPage.MethodesPurification=Liste des méthodes de purification -ListMethodePurificationPanel.NewMethodePurification=Nouvelle méthode -ListConfigurationPage.MethodesTestBio=Liste des méthodes de test biologique -ListMethodeTestBioPanel.NewMethodeTestBio=Nouvelle méthode +ListConfigurationPage.MethodesExtraction=Liste des m\u00c3\u00a9thodes d'extraction +ListMethodeExtractionPanel.NewMethodeExtraction=Nouvelle m\u00c3\u00a9thode +ListConfigurationPage.MethodesPurification=Liste des m\u00c3\u00a9thodes de purification +ListMethodePurificationPanel.NewMethodePurification=Nouvelle m\u00c3\u00a9thode +ListConfigurationPage.MethodesTestBio=Liste des m\u00c3\u00a9thodes de test biologique +ListMethodeTestBioPanel.NewMethodeTestBio=Nouvelle m\u00c3\u00a9thode ListConfigurationPage.ErreursTestBio=Liste des erreurs pour un test biologique ListErreurTestBioPanel.NewErreurTestBio=Nouvelle erreur +ListConfigurationPage.TypesDocument=Liste des types de documents +ListTypeDocumentPanel.NewTypeDocument=Nouveau type de document ListConfigurationPage.RebuildLuceneIndex=Reconstruire l'index lucene ManagePartiePage=Gestion d'une partie -ManagePartiePage.Create.OK=Partie créée -ManagePartiePage.Create.DataConstraintException=La partie existe déjà -ManagePartiePage.Update.OK=Partie mise à jour -ManagePartiePage.Update.DataConstraintException=La partie existe déjà -ManagePartiePage.Delete.OK=Partie supprimée -ManagePartiePage.Delete.DataConstraintException=Il existe des données liées à cette partie +ManagePartiePage.Create.OK=Partie cr\u00c3\u00a9\u00c3\u00a9e +ManagePartiePage.Create.DataConstraintException=La partie existe d\u00c3\u00a9j\u00c3\u00a0 +ManagePartiePage.Update.OK=Partie mise \u00c3\u00a0 jour +ManagePartiePage.Update.DataConstraintException=La partie existe d\u00c3\u00a9j\u00c3\u00a0 +ManagePartiePage.Delete.OK=Partie supprim\u00c3\u00a9e +ManagePartiePage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cette partie ManageErreurTestBioPage=Gestion d'une erreur -ManageErreurTestBioPage.Create.OK=Erreur créée -ManageErreurTestBioPage.Create.DataConstraintException=Le nom existe déjà -ManageErreurTestBioPage.Update.OK=Erreur mise à jour -ManageErreurTestBioPage.Update.DataConstraintException=Le nom existe déjà -ManageErreurTestBioPage.Delete.OK=Erreur supprimée -ManageErreurTestBioPage.Delete.DataConstraintException=Il existe des données liées à cette erreur +ManageErreurTestBioPage.Create.OK=Erreur cr\u00c3\u00a9\u00c3\u00a9e +ManageErreurTestBioPage.Create.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageErreurTestBioPage.Update.OK=Erreur mise \u00c3\u00a0 jour +ManageErreurTestBioPage.Update.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageErreurTestBioPage.Delete.OK=Erreur supprim\u00c3\u00a9e +ManageErreurTestBioPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cette erreur -ManageMethodeTestBioPage=Gestion d'une méthode de test -ManageMethodeTestBioPage.Create.OK=Méthode créée -ManageMethodeTestBioPage.Create.DataConstraintException=Le nom ou la cible existe déjà -ManageMethodeTestBioPage.Update.OK=Méthode mise à jour -ManageMethodeTestBioPage.Update.DataConstraintException=Le nom ou la cible existe déjà -ManageMethodeTestBioPage.Delete.OK=Méthode supprimée -ManageMethodeTestBioPage.Delete.DataConstraintException=Il existe des données liées à cette méthode +ManageMethodeTestBioPage=Gestion d'une m\u00c3\u00a9thode de test +ManageMethodeTestBioPage.Create.OK=M\u00c3\u00a9thode cr\u00c3\u00a9\u00c3\u00a9e +ManageMethodeTestBioPage.Create.DataConstraintException=Le nom ou la cible existe d\u00c3\u00a9j\u00c3\u00a0 +ManageMethodeTestBioPage.Update.OK=M\u00c3\u00a9thode mise \u00c3\u00a0 jour +ManageMethodeTestBioPage.Update.DataConstraintException=Le nom ou la cible existe d\u00c3\u00a9j\u00c3\u00a0 +ManageMethodeTestBioPage.Delete.OK=M\u00c3\u00a9thode supprim\u00c3\u00a9e +ManageMethodeTestBioPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cette m\u00c3\u00a9thode -ManageMethodeExtractionPage=Gestion d'une méthode d'extraction -ManageMethodeExtractionPage.Create.OK=Méthode créée -ManageMethodeExtractionPage.Create.DataConstraintException=Le nom existe déjà -ManageMethodeExtractionPage.Update.OK=Méthode mise à jour -ManageMethodeExtractionPage.Update.DataConstraintException=Le nom existe déjà -ManageMethodeExtractionPage.Delete.OK=Méthode supprimée -ManageMethodeExtractionPage.Delete.DataConstraintException=Il existe des données liées à cette méthode +ManageMethodeExtractionPage=Gestion d'une m\u00c3\u00a9thode d'extraction +ManageMethodeExtractionPage.Create.OK=M\u00c3\u00a9thode cr\u00c3\u00a9\u00c3\u00a9e +ManageMethodeExtractionPage.Create.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageMethodeExtractionPage.Update.OK=M\u00c3\u00a9thode mise \u00c3\u00a0 jour +ManageMethodeExtractionPage.Update.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageMethodeExtractionPage.Delete.OK=M\u00c3\u00a9thode supprim\u00c3\u00a9e +ManageMethodeExtractionPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cette m\u00c3\u00a9thode -ManageMethodePurificationPage=Gestion d'une méthode de purification -ManageMethodePurificationPage.Create.OK=Méthode créée -ManageMethodePurificationPage.Create.DataConstraintException=Le nom existe déjà -ManageMethodePurificationPage.Update.OK=Méthode mise à jour -ManageMethodePurificationPage.Update.DataConstraintException=Le nom existe déjà -ManageMethodePurificationPage.Delete.OK=Méthode supprimée -ManageMethodePurificationPage.Delete.DataConstraintException=Il existe des données liées à cette méthode +ManageMethodePurificationPage=Gestion d'une m\u00c3\u00a9thode de purification +ManageMethodePurificationPage.Create.OK=M\u00c3\u00a9thode cr\u00c3\u00a9\u00c3\u00a9e +ManageMethodePurificationPage.Create.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageMethodePurificationPage.Update.OK=M\u00c3\u00a9thode mise \u00c3\u00a0 jour +ManageMethodePurificationPage.Update.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageMethodePurificationPage.Delete.OK=M\u00c3\u00a9thode supprim\u00c3\u00a9e +ManageMethodePurificationPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cette m\u00c3\u00a9thode +ManageTypeDocumentPage=Gestion d'un type de document +ManageTypeDocumentPage.Create.OK=Type de document cr\u00c3\u00a9\u00c3\u00a9 +ManageTypeDocumentPage.Create.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageTypeDocumentPage.Update.OK=Type de document mise \u00c3\u00a0 jour +ManageTypeDocumentPage.Update.DataConstraintException=Le nom existe d\u00c3\u00a9j\u00c3\u00a0 +ManageTypeDocumentPage.Delete.OK=Type de document supprim\u00c3\u00a9e +ManageTypeDocumentPage.Delete.DataConstraintException=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 ce type de document + ReadCampagnePage=Consultation d'une campagne ReadLotPage=Consultation d'un lot ReadPersonnePage=Consultation d'une personne -ReadSpecimenPage=Consultation d'un spécimen +ReadSpecimenPage=Consultation d'un sp\u00c3\u00a9cimen ReadUtilisateurPage=Consultation d'un utilisateur ReadStationPage=Consultation d'une station ReadExtractionPage=Consultation d'une extraction ReadPurificationPage=Consultation d'une purification -ReadMoleculePage=Consultation d'une molécule +ReadMoleculePage=Consultation d'une mol\u00c3\u00a9cule ReadTestBioPage=Consultation d'un test biologique ReadDocumentPage=Consultation d'un document SearchPage=Recherche SearchPage.Search=Rechercher -SearchPage.Query=Requête +SearchPage.Query=Requ\u00c3\u00aate SearchPage.Country=Pays SearchPage.Specimens=Specimens SearchPage.Lots=Lots @@ -302,32 +312,32 @@ SearchPage.Purifications=Purifications SearchPage.ResultatTestBios=Tests biologiques SearchPage.Stations=Stations -SearchPage.Molecules=Molécules -SearchPage.QuerySyntax=Rechercher des termes (ou des parties de termes avec *). Pour une utilisation plus avancée de la recherche, consulter la ${advancedLink}. -SearchPage.QuerySyntaxAdvanced=synthaxe complète +SearchPage.Molecules=Mol\u00c3\u00a9cules +SearchPage.QuerySyntax=Rechercher des termes (ou des parties de termes avec *). Pour une utilisation plus avanc\u00c3\u00a9e de la recherche, consulter la ${advancedLink}. +SearchPage.QuerySyntaxAdvanced=synthaxe compl\u00c3\u00a8te #MODELS# CaptchaModel.captcha=Captcha CaptchaModel.captchaText=Recopier le nombre -CaptchaModel.captchaText.KO=Recopier le nombre correspondant à l'image +CaptchaModel.captchaText.KO=Recopier le nombre correspondant \u00c3\u00a0 l'image RegisterModel.password=Mot de passe RegisterModel.passwordConfirmation=Confirmation -RegisterModel.passwordConfirmation.KO=Les mots de passe doivent être identiques +RegisterModel.passwordConfirmation.KO=Les mots de passe doivent \u00c3\u00aatre identiques LoginModel.password=Mot de passe LoginModel.rememberMe=Se souvenir de moi -ManageStationModel.latitudeDegrees=Latitude degrés -ManageStationModel.latitudeDegrees.IConverter.Integer=Latitude degrés - doit être un nombre entier +ManageStationModel.latitudeDegrees=Latitude degr\u00c3\u00a9s +ManageStationModel.latitudeDegrees.IConverter.Integer=Latitude degr\u00c3\u00a9s - doit \u00c3\u00aatre un nombre entier ManageStationModel.latitudeMinutes=Latitude minutes -ManageStationModel.latitudeMinutes.IConverter.Double=Latitude minutes - doit être un nombre décimal +ManageStationModel.latitudeMinutes.IConverter.Double=Latitude minutes - doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal ManageStationModel.latitudeOrientation=Latitude orientation -ManageStationModel.longitudeDegrees=Longitude degrés -ManageStationModel.longitudeDegrees.IConverter.Integer=Longitude degrés - doit être un nombre entier +ManageStationModel.longitudeDegrees=Longitude degr\u00c3\u00a9s +ManageStationModel.longitudeDegrees.IConverter.Integer=Longitude degr\u00c3\u00a9s - doit \u00c3\u00aatre un nombre entier ManageStationModel.longitudeMinutes=Longitude minutes -ManageStationModel.longitudeMinutes.IConverter.Double=Longitude minutes - doit être un nombre décimal +ManageStationModel.longitudeMinutes.IConverter.Double=Longitude minutes - doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal ManageStationModel.longitudeOrientation=Longitude orientation UpdateUtilisateurModel.password=Mot de passe 2 @@ -336,7 +346,7 @@ UpdateUtilisateurModel.currentPassword.KO=Mot de passe invalide UpdateUtilisateurModel.newPassword=Nouveau mot de passe UpdateUtilisateurModel.newPasswordConfirmation=Confirmation -UpdateUtilisateurModel.newPasswordConfirmation.KO=Les nouveaux mots de passe doivent être identiques +UpdateUtilisateurModel.newPasswordConfirmation.KO=Les nouveaux mots de passe doivent \u00c3\u00aatre identiques ContactModel.mail=Votre courriel ContactModel.subject=Votre sujet @@ -344,78 +354,78 @@ Campagne.dates.KO=Les dates ne sont pas correctement saisies -Campagne.dateDeb.IConverter.Date=La date de début est mal formatée (JJ/MM/AA) -Campagne.dateFin.IConverter.Date=La date de fin est mal formatée (JJ/MM/AA) -Campagne.mentionLegale.info=Indiquez dans l'ordre : les organismes producteurs des données – les bailleurs de fond – la/les année(s) concernée(s) par le programme -Campagne.mentionLegale.info2=organismes producteurs des données – bailleurs de fond – année(s) concernée(s) par le programme -Campagne.complement.info=N'oubliez pas d'indiquer les politiques de confidentialité et de publication des données -Campagne.stationsNotAccessibles=Certaines stations ne sont pas affichées car vous n'avez pas les droits sur l'ensemble de la campagne. +Campagne.dateDeb.IConverter.Date=La date de d\u00c3\u00a9but est mal format\u00c3\u00a9e (JJ/MM/AA) +Campagne.dateFin.IConverter.Date=La date de fin est mal format\u00c3\u00a9e (JJ/MM/AA) +Campagne.mentionLegale.info=Indiquez dans l'ordre : les organismes producteurs des donn\u00c3\u00a9es \u00e2\u0080\u0093 les bailleurs de fond \u00e2\u0080\u0093 la/les ann\u00c3\u00a9e(s) concern\u00c3\u00a9e(s) par le programme +Campagne.mentionLegale.info2=organismes producteurs des donn\u00c3\u00a9es \u00e2\u0080\u0093 bailleurs de fond \u00e2\u0080\u0093 ann\u00c3\u00a9e(s) concern\u00c3\u00a9e(s) par le programme +Campagne.complement.info=N'oubliez pas d'indiquer les politiques de confidentialit\u00c3\u00a9 et de publication des donn\u00c3\u00a9es +Campagne.stationsNotAccessibles=Certaines stations ne sont pas affich\u00c3\u00a9es car vous n'avez pas les droits sur l'ensemble de la campagne. -Station.coordonnees=Coordonnées -Station.coordonnees.KO=Pour enregistrer des coordonnées, tous les champs doivent être renseignés +Station.coordonnees=Coordonn\u00c3\u00a9es +Station.coordonnees.KO=Pour enregistrer des coordonn\u00c3\u00a9es, tous les champs doivent \u00c3\u00aatre renseign\u00c3\u00a9s -Specimen.dateDepot.IConverter.Date=La date de dépot est mal formatée (JJ/MM/AA) +Specimen.dateDepot.IConverter.Date=La date de d\u00c3\u00a9pot est mal format\u00c3\u00a9e (JJ/MM/AA) -Lot.station.info=Si la station voulue n'apparait pas, contactez le créateur de la campagne pour qu'il l'ajoute à la liste des stations prospectées -Lot.dateRecolte.IConverter.Date=La date de récolte est mal formatée (JJ/MM/AA) -Lot.masseFraiche.IConverter.BigDecimal=La masse fraîche doit être un nombre décimal -Lot.masseSeche.IConverter.BigDecimal=La masse sèche doit être un nombre décimal +Lot.station.info=Si la station voulue n'apparait pas, contactez le cr\u00c3\u00a9ateur de la campagne pour qu'il l'ajoute \u00c3\u00a0 la liste des stations prospect\u00c3\u00a9es +Lot.dateRecolte.IConverter.Date=La date de r\u00c3\u00a9colte est mal format\u00c3\u00a9e (JJ/MM/AA) +Lot.masseFraiche.IConverter.BigDecimal=La masse fra\u00c3\u00aeche doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal +Lot.masseSeche.IConverter.BigDecimal=La masse s\u00c3\u00a8che doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal -Extraction.masseDepart.IConverter.BigDecimal=Masse à extraire - doit être un nombre décimal -Extraction.date.IConverter.Date=La date est mal formatée (JJ/MM/AA) -Extraction.extraits.masseObtenue.IConverter.BigDecimal=Masse obtenue - doit être un nombre décimal +Extraction.masseDepart.IConverter.BigDecimal=Masse \u00c3\u00a0 extraire - doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal +Extraction.date.IConverter.Date=La date est mal format\u00c3\u00a9e (JJ/MM/AA) +Extraction.extraits.masseObtenue.IConverter.BigDecimal=Masse obtenue - doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal Extraction.extraits.masseObtenue=Masse obtenue -Extraction.notUnique=Réf. extraction - existe déjà -Extrait.notUnique=Réf. extrait - existe déjà -Extrait.isReferenced=Il existe des données liées à cet extrait -TypeExtrait.isReferenced=Le type d'initial '${0}' ne peut être supprimé car il existe des données qui le réfèrent +Extraction.notUnique=R\u00c3\u00a9f. extraction - existe d\u00c3\u00a9j\u00c3\u00a0 +Extrait.notUnique=R\u00c3\u00a9f. extrait - existe d\u00c3\u00a9j\u00c3\u00a0 +Extrait.isReferenced=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cet extrait +TypeExtrait.isReferenced=Le type d'initial '${0}' ne peut \u00c3\u00aatre supprim\u00c3\u00a9 car il existe des donn\u00c3\u00a9es qui le r\u00c3\u00a9f\u00c3\u00a8rent -Purification.masseDepart.IConverter.BigDecimal=Masse à purifier - doit être un nombre décimal -Purification.fractions.masseObtenue.IConverter.BigDecimal=Masse obtenue - doit être un nombre décimal +Purification.masseDepart.IConverter.BigDecimal=Masse \u00c3\u00a0 purifier - doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal +Purification.fractions.masseObtenue.IConverter.BigDecimal=Masse obtenue - doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal Purification.fractions.masseObtenue=Masse obtenue -Purification.date.IConverter.Date=La date est mal formatée (JJ/MM/AA) -Purification.notUnique=Réf. purification - existe déjà -Fraction.notUnique=Réf. fraction - existe déjà -Fraction.isReferenced=Il existe des données liées à cette fraction -ParamMethoPuri.isReferenced=Le paramètre '${0}' ne peut être supprimé car il existe des données qui le réfèrent -MethodePurification.parametres.index.IConverter.Integer=L'index doit être un entier +Purification.date.IConverter.Date=La date est mal format\u00c3\u00a9e (JJ/MM/AA) +Purification.notUnique=R\u00c3\u00a9f. purification - existe d\u00c3\u00a9j\u00c3\u00a0 +Fraction.notUnique=R\u00c3\u00a9f. fraction - existe d\u00c3\u00a9j\u00c3\u00a0 +Fraction.isReferenced=Il existe des donn\u00c3\u00a9es li\u00c3\u00a9es \u00c3\u00a0 cette fraction +ParamMethoPuri.isReferenced=Le param\u00c3\u00a8tre '${0}' ne peut \u00c3\u00aatre supprim\u00c3\u00a9 car il existe des donn\u00c3\u00a9es qui le r\u00c3\u00a9f\u00c3\u00a8rent +MethodePurification.parametres.index.IConverter.Integer=L'index doit \u00c3\u00aatre un entier MethodePurification.parametres.index=Index -Molecule.provenanceNotAccessibles=Certains produits associés ne sont pas affichés car vous n'avez pas les droits nécéssaires -Molecule.masseMolaire.Required=Masse molaire - ne peut être nul -Molecule.masseMolaire.IConverter.BigDecimal=Masse molaire - doit être un nombre décimal -Molecule.downloadMolFile=Télécharger au format mol -Molecule.formuleBrute.info=Indiquez dans l'ordre : Carbone, Hydrogène puis ordre alphabetique -Molecule.nouvMolecul.info=Les molécules sont visibles par tous les utilsateurs. Attention à ce que la molécule soit bien publiée. +Molecule.provenanceNotAccessibles=Certains produits associ\u00c3\u00a9s ne sont pas affich\u00c3\u00a9s car vous n'avez pas les droits n\u00c3\u00a9c\u00c3\u00a9ssaires +Molecule.masseMolaire.Required=Masse molaire - ne peut \u00c3\u00aatre nul +Molecule.masseMolaire.IConverter.BigDecimal=Masse molaire - doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal +Molecule.downloadMolFile=T\u00c3\u00a9l\u00c3\u00a9charger au format mol +Molecule.formuleBrute.info=Indiquez dans l'ordre : Carbone, Hydrog\u00c3\u00a8ne puis ordre alphabetique +Molecule.nouvMolecul.info=Les mol\u00c3\u00a9cules sont visibles par tous les utilsateurs. Attention \u00c3\u00a0 ce que la mol\u00c3\u00a9cule soit bien publi\u00c3\u00a9e. -TestBio.date.IConverter.Date=La date est mal formatée (JJ/MM/AA) -TestBio.concMasseDefaut.IConverter.BigDecimal=Conc./Masse par défaut - doit être un nombre décimal -TestBio.resultats.valeur.IConverter.BigDecimal=Valeur - doit être un nombre décimal -TestBio.resultats.repere.Required=Repère - ne peut être nul -TestBio.resultats.repere=Repère -TestBio.resultats.typeResultat.Required=Type - ne peut être nul +TestBio.date.IConverter.Date=La date est mal format\u00c3\u00a9e (JJ/MM/AA) +TestBio.concMasseDefaut.IConverter.BigDecimal=Conc./Masse par d\u00c3\u00a9faut - doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal +TestBio.resultats.valeur.IConverter.BigDecimal=Valeur - doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal +TestBio.resultats.repere.Required=Rep\u00c3\u00a8re - ne peut \u00c3\u00aatre nul +TestBio.resultats.repere=Rep\u00c3\u00a8re +TestBio.resultats.typeResultat.Required=Type - ne peut \u00c3\u00aatre nul TestBio.resultats.typeResultat=Type -TestBio.resultats.produit.Required=Réf produit - ne peut être nul -TestBio.resultats.produit=Réf. produit -TestBio.resultats.produitTemoin.Required=Prod. Témoin - ne peut être nul -TestBio.resultats.produitTemoin=Prod. Témoin -TestBio.resultats.concMasse.IConverter.BigDecimal=Conc./Masse - doit être un nombre décimal +TestBio.resultats.produit.Required=R\u00c3\u00a9f produit - ne peut \u00c3\u00aatre nul +TestBio.resultats.produit=R\u00c3\u00a9f. produit +TestBio.resultats.produitTemoin.Required=Prod. T\u00c3\u00a9moin - ne peut \u00c3\u00aatre nul +TestBio.resultats.produitTemoin=Prod. T\u00c3\u00a9moin +TestBio.resultats.concMasse.IConverter.BigDecimal=Conc./Masse - doit \u00c3\u00aatre un nombre d\u00c3\u00a9cimal TestBio.resultats.concMasse=Conc./Masse TestBio.resultats.uniteConcMasse=Conc./Masse -TestBio.resultats.concMasse.KO=Pour enregistrer Conc./Masse, les deux champs doivent être renseignés -TestBio.resultats.stade.Required=Stade - ne peut être nul +TestBio.resultats.concMasse.KO=Pour enregistrer Conc./Masse, les deux champs doivent \u00c3\u00aatre renseign\u00c3\u00a9s +TestBio.resultats.stade.Required=Stade - ne peut \u00c3\u00aatre nul TestBio.resultats.stade=Stade -TestBio.resultats.valeur.Required=Valeur - ne peut être nulle +TestBio.resultats.valeur.Required=Valeur - ne peut \u00c3\u00aatre nulle TestBio.resultats.valeur=Valeur -TestBio.notUnique=Réf. test - existe déjà -TestBio.resultats.noProduit=Le test biologique doit comporter au moins un résultat de type "produit" -TestBio.resultsNotAccessibles=Certains résultats ne sont pas affichés car vous n'avez pas les droits nécessaires sur leur produit. +TestBio.notUnique=R\u00c3\u00a9f. test - existe d\u00c3\u00a9j\u00c3\u00a0 +TestBio.resultats.noProduit=Le test biologique doit comporter au moins un r\u00c3\u00a9sultat de type "produit" +TestBio.resultsNotAccessibles=Certains r\u00c3\u00a9sultats ne sont pas affich\u00c3\u00a9s car vous n'avez pas les droits n\u00c3\u00a9cessaires sur leur produit. -Document.dateCreation.IConverter.Date=La date est mal formatée (JJ/MM/AA) +Document.dateCreation.IConverter.Date=La date est mal format\u00c3\u00a9e (JJ/MM/AA) Document.link=Lien Document.type=Type Document.file=Fichier -Document.file.info=La taille du fichier doit faire moins de ${0}Mo\nL'extension du fichier doit être une des suivantes : ${1} +Document.file.info=La taille du fichier doit faire moins de ${0}Mo\nL'extension du fichier doit \u00c3\u00aatre une des suivantes : ${1} #BASIC# Actions=Actions @@ -433,11 +443,11 @@ ReadExtraction=Consulter l'extraction ReadPurification=Consulter la purification TODO=ToDo -Confirm=Êtes-vous sûr ? +Confirm=\u00c3\u008ates-vous s\u00c3\u00bbr ? ExportTo=Exporter en List.none=La liste est vide. Boolean.true=oui Boolean.false=non -NavigatorLabel=Lignes ${from} à ${to} (${of} résultats) -datatable.no-records-found=Aucun résultat. \ No newline at end of file +NavigatorLabel=Lignes ${from} \u00c3\u00a0 ${to} (${of} r\u00c3\u00a9sultats) +datatable.no-records-found=Aucun r\u00c3\u00a9sultat. \ No newline at end of file