Skip to content
Snippets Groups Projects
Commit e6c00848 authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

Bugfix for storing local name

parent bb421119
No related branches found
No related tags found
No related merge requests found
......@@ -199,19 +199,11 @@ public class OrganismController extends HttpServlet {
organism.setHierarchyCategoryId(formValidation.getFormField("hierarchyCategoryId").getValueAsInteger());
organism.setParentOrganismId(formValidation.getFormField("parentOrganismId").getValueAsInteger());
// Adding local name only if it is set
if(!formValidation.getFormField("localName").getWebValue().isEmpty())
{
SessionControllerGetter.getOrganismBean().setOrganismLocalName(organism, formValidation.getFormField("localName").getWebValue(), SessionLocaleUtil.getCurrentLocale(request));
}
// If local name form field is not set, but it already has a local name, delete it
else if(organism.getOrganismLocale(SessionLocaleUtil.getCurrentLocale(request).getLanguage()) != null)
{
SessionControllerGetter.getOrganismBean().removeOrganismLocalName(organism, SessionLocaleUtil.getCurrentLocale(request));
}
organism = SessionControllerGetter.getOrganismBean().storeOrganism(organism);
organism = SessionControllerGetter.getOrganismBean().storeOrganismWithLocalName(
organism,
formValidation.getFormField("localName").getWebValue(),
SessionLocaleUtil.getCurrentLocale(request)
);
//System.out.println(formValidation.getFormFields().toString());
Map<String, FormField> externalResourceIdentifiers = formValidation.getMultipleMapFormFields().get("externalResourceIdentifier");
......
......@@ -36,7 +36,9 @@ import no.bioforsk.vips.logic.entity.Organism;
import no.bioforsk.vips.logic.entity.OrganismExternalResource;
import no.bioforsk.vips.logic.entity.OrganismLocale;
import no.bioforsk.vips.logic.entity.OrganismLocalePK;
import no.bioforsk.vips.logic.i18n.SessionLocaleUtil;
import no.bioforsk.vips.logic.util.HierarchyCategoryLocaleNames;
import no.bioforsk.vips.logic.util.SessionControllerGetter;
/**
* @copyright 2014 <a href="http://www.bioforsk.no/">Bioforsk</a>
......@@ -129,13 +131,26 @@ public class OrganismBean {
}
}
public Organism storeOrganism(Organism organism) {
public Organism storeOrganismWithLocalName(Organism organism, String localName, ULocale currentLocale) {
// Ensure that parentOrganismId = -1 => null
if(organism.getParentOrganismId().equals(-1))
{
organism.setParentOrganismId(null);
}
return em.merge(organism);
organism = em.merge(organism);
// Adding local name only if it is set
if(!localName.isEmpty())
{
//SessionControllerGetter.getOrganismBean().setOrganismLocalName(organism, localName, currentLocale);
this.setOrganismLocalName(organism, localName, currentLocale);
}
// If local name form field is not set, but it already has a local name, delete it
else if(organism.getOrganismLocale(currentLocale.getLanguage()) != null)
{
//SessionControllerGetter.getOrganismBean().removeOrganismLocalName(organism, currentLocale);
this.removeOrganismLocalName(organism, currentLocale);
}
return organism;
}
public void storeOrganismExternalResource(OrganismExternalResource organismExternalResource) {
......@@ -179,7 +194,6 @@ public class OrganismBean {
* @param currentLocale
*/
public void setOrganismLocalName(Organism organism, String localName, ULocale currentLocale) {
if(organism.getOrganismLocale(currentLocale.getLanguage()) == null)
{
OrganismLocalePK pk = new OrganismLocalePK(organism.getOrganismId(), currentLocale.getLanguage());
......
......@@ -19,6 +19,7 @@
package no.bioforsk.vips.logic.entity;
import java.io.Serializable;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.persistence.Basic;
......@@ -143,6 +144,8 @@ public class Organism implements Serializable {
public Set<OrganismLocale> getOrganismLocaleSet() {
if(this.organismLocaleSet == null)
this.organismLocaleSet = new HashSet<>();
return organismLocaleSet;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment