SeriesAddForm and SeriesAsset

pull/1/head
Jens Pelzetter 2019-10-19 14:24:38 +02:00
parent 0be1ad37c0
commit 96aee1917a
4 changed files with 93 additions and 13 deletions

View File

@ -21,8 +21,12 @@ import com.arsdigita.globalization.GlobalizedMessage;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.libreccm.cdi.utils.CdiUtil;
import org.scientificcms.publications.PublicationManager;
import org.scientificcms.publications.SciPublicationsConfig;
import org.scientificcms.publications.SciPublicationsConstants;
import org.scientificcms.publications.Series;
import org.scientificcms.publications.assets.SeriesAsset;
import org.scientificcms.publications.contenttypes.PublicationItem;
/**
@ -61,7 +65,7 @@ public class PublicationSeriesAddForm
seriesSearchWidget = new AssetSearchWidget(
SERIES_SEARCH,
Series.class
SeriesAsset.class
);
seriesSearchWidget.setLabel(
new GlobalizedMessage(
@ -100,18 +104,20 @@ public class PublicationSeriesAddForm
final PageState state = event.getPageState();
final PublicationItem<?> item
= (PublicationItem<?>) getItemSelectionModel().
getSelectedObject(state);
= (PublicationItem<?>) getItemSelectionModel()
.getSelectedObject(state);
if (!(getSaveCancelSection().getCancelButton().isSelected(state))) {
Series series = (Series) data.get(ITEM_SEARCH);
series = (Series) series.getContentBundle().getInstance(item.
getLanguage());
item.addSeries(series, (String) data.get(
VolumeInSeriesCollection.VOLUME_OF_SERIES));
m_itemSearch.publishCreatedItem(data, series);
Series series = (Series) data.get(SERIES_SEARCH);
final PublicationManager publicationManager = CdiUtil
.createCdiUtil().findBean(PublicationManager.class);
publicationManager.addSeries(
series,
item.getPublication(),
(String) volumeOfSeries.getValue(state)
);
}
init(event);

View File

@ -59,6 +59,8 @@ class SciPublicationsController implements Serializable {
public static final String AUTHORSHIP_IS_EDITOR = "isEditor";
public static final String AUTHORSHIP_ORDER = "order";
public static final String VOLUME_OF_SERIES = "volumeOfSeries";
@Inject
private PersonRepository personRepository;

View File

@ -26,7 +26,7 @@ import static org.scientificcms.publications.SciPublicationsConstants.*;
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@Entity
@Table(name = "PUBLISHERS", schema = DB_SCHEMA)
@Table(name = "PUBLISHER_ASSETS", schema = DB_SCHEMA)
@Audited
public class PublisherAsset extends Asset {

View File

@ -5,13 +5,85 @@
*/
package org.scientificcms.publications.assets;
import org.hibernate.envers.Audited;
import org.librecms.contentsection.Asset;
import org.scientificcms.publications.Series;
import java.util.Objects;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import static org.scientificcms.publications.SciPublicationsConstants.*;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@Entity
public class SeriesAsset {
@Table(name = "SERIES_ASSETS", schema = DB_SCHEMA)
@Audited
public class SeriesAsset extends Asset {
private static final long serialVersionUID = 1L;
@OneToOne(cascade = {CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH
})
@JoinColumn(name = "SERIES_ID")
private Series series;
public Series getSeries() {
return series;
}
public void setSeries(final Series series) {
this.series = series;
}
@Override
public int hashCode() {
int hash = 7;
hash = 53 * hash + Objects.hashCode(series);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!super.equals(obj)) {
return false;
}
if (!(obj instanceof SeriesAsset)) {
return false;
}
final SeriesAsset other = (SeriesAsset) obj;
if (!other.canEqual(this)) {
return false;
}
return Objects.equals(series, other.getSeries());
}
@Override
public boolean canEqual(final Object obj) {
return obj instanceof SeriesAsset;
}
@Override
public String toString(final String data) {
return super.toString(String.format(", series = %s%s",
Objects.toString(series),
data));
}
}