Bugfixes for authoring steps for article in journal

pull/1/head
Jens Pelzetter 2022-08-23 20:42:48 +02:00
parent c172101781
commit 5f34d60d31
2 changed files with 29 additions and 24 deletions

View File

@ -3,6 +3,7 @@ package org.scientificcms.publications.ui.contenttypes;
import org.libreccm.api.Identifier; import org.libreccm.api.Identifier;
import org.libreccm.api.IdentifierParser; import org.libreccm.api.IdentifierParser;
import org.libreccm.security.AuthorizationRequired; import org.libreccm.security.AuthorizationRequired;
import org.librecms.contentsection.AssetRepository;
import org.librecms.ui.contentsections.ContentSectionNotFoundException; import org.librecms.ui.contentsections.ContentSectionNotFoundException;
import org.librecms.ui.contentsections.ItemPermissionChecker; import org.librecms.ui.contentsections.ItemPermissionChecker;
import org.librecms.ui.contentsections.documents.DocumentNotFoundException; import org.librecms.ui.contentsections.documents.DocumentNotFoundException;
@ -13,6 +14,7 @@ import org.scientificcms.publications.ArticleInJournal;
import org.scientificcms.publications.ArticleInJournalManager; import org.scientificcms.publications.ArticleInJournalManager;
import org.scientificcms.publications.Journal; import org.scientificcms.publications.Journal;
import org.scientificcms.publications.JournalRepository; import org.scientificcms.publications.JournalRepository;
import org.scientificcms.publications.assets.JournalAsset;
import org.scientificcms.publications.contenttypes.ArticleInJournalItem; import org.scientificcms.publications.contenttypes.ArticleInJournalItem;
import org.scientificcms.publications.ui.SciPublicationsUiConstants; import org.scientificcms.publications.ui.SciPublicationsUiConstants;
import org.scientificcms.publications.ui.SciPublicationsUiMessageBundle; import org.scientificcms.publications.ui.SciPublicationsUiMessageBundle;
@ -54,11 +56,14 @@ public class ArticleInJournalPropertiesStep
extends AbstractPublicationPropertiesStep<ArticleInJournalItem, ArticleInJournal> { extends AbstractPublicationPropertiesStep<ArticleInJournalItem, ArticleInJournal> {
public static final String EDIT_STEP_URL_FRAGMENT public static final String EDIT_STEP_URL_FRAGMENT
= "articleinjournal-basicproperties"; = "articleinjournal-basicproperties";
@Inject @Inject
private ArticleInJournalManager articleManager; private ArticleInJournalManager articleManager;
@Inject
private AssetRepository assetRepo;
@Inject @Inject
private DocumentUi documentUi; private DocumentUi documentUi;
@ -68,9 +73,6 @@ public class ArticleInJournalPropertiesStep
@Inject @Inject
private ItemPermissionChecker itemPermissionChecker; private ItemPermissionChecker itemPermissionChecker;
@Inject
private JournalRepository journalRepository;
@Inject @Inject
private Models models; private Models models;
@ -359,18 +361,20 @@ public class ArticleInJournalPropertiesStep
final Identifier identifier = identifierParser.parseIdentifier( final Identifier identifier = identifierParser.parseIdentifier(
journalIdentifer journalIdentifer
); );
final Optional<Journal> journalResult; final Optional<JournalAsset> journalResult;
switch (identifier.getType()) { switch (identifier.getType()) {
case ID: case ID:
journalResult = journalRepository.findById( journalResult = assetRepo.findById(
Long.parseLong( Long.parseLong(
identifier.getIdentifier() identifier.getIdentifier()
) ),
JournalAsset.class
); );
break; break;
case UUID: case UUID:
journalResult = journalRepository.findByUuid( journalResult = assetRepo.findByUuidAndType(
identifier.getIdentifier() identifier.getIdentifier(),
JournalAsset.class
); );
break; break;
default: default:
@ -386,7 +390,7 @@ public class ArticleInJournalPropertiesStep
); );
} }
final Journal journal = journalResult.get(); final Journal journal = journalResult.get().getJournal();
articleManager.setJournal(getPublication(), journal); articleManager.setJournal(getPublication(), journal);
return buildRedirectPathForStep(); return buildRedirectPathForStep();
@ -400,7 +404,7 @@ public class ArticleInJournalPropertiesStep
} }
@POST @POST
@Path("/journal/remove") @Path("/journal/@remove")
@AuthorizationRequired @AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED) @Transactional(Transactional.TxType.REQUIRED)
public String removeCollectedVolume( public String removeCollectedVolume(
@ -487,6 +491,8 @@ public class ArticleInJournalPropertiesStep
); );
} }
getPublication().setPublicationDate(publicationDate);
if (startPageParam.matches("\\d*")) { if (startPageParam.matches("\\d*")) {
getPublication().setStartPage(Integer.parseInt(startPageParam)); getPublication().setStartPage(Integer.parseInt(startPageParam));
} }

View File

@ -14,7 +14,7 @@
<ui:param name="authoringStepTitle" <ui:param name="authoringStepTitle"
value="#{SciPublicationsUiMessageBundle.getMessage('articleinjournal.basicproperties.header', [SciCmsPublicationPropertiesStepModel.name])}" /> value="#{SciPublicationsUiMessageBundle.getMessage('articleinjournal.basicproperties.header', [SciCmsPublicationPropertiesStepModel.name])}" />
<ui:define name="publicatonMessages"> <ui:define name="publicationMessages">
<c:if test="#{journalNotFound != null}"> <c:if test="#{journalNotFound != null}">
<div class="alert alert-warning" role="alert"> <div class="alert alert-warning" role="alert">
#{SciPublicationsUiMessageBundle.getMessage('articleinjournal.basicproperties.errors.journal_not_found', [journalNotFound])} #{SciPublicationsUiMessageBundle.getMessage('articleinjournal.basicproperties.errors.journal_not_found', [journalNotFound])}
@ -133,19 +133,18 @@
#{SciCmsArticleInJournalPropertiesStepModel.journalTitle} #{SciCmsArticleInJournalPropertiesStepModel.journalTitle}
</p> </p>
</c:otherwise> </c:otherwise>
<c:if test="#{CmsSelectedDocumentModel.canEdit and SciCmsArticleInJournalPropertiesStepModel.journalTitle == null}">
<libreccm:deleteDialog
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@articleinjournal-basicproperties/journal/@remove"
buttonText="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.label']}"
cancelLabel="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.cancel']}"
confirmLabel="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.confirm']}"
dialogId="journal-remove"
dialogTitle="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.title']}"
message="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.message']}"
/>
</c:if>
</c:choose> </c:choose>
<c:if test="#{CmsSelectedDocumentModel.canEdit and SciCmsArticleInJournalPropertiesStepModel.journalTitle != null}">
<libreccm:deleteDialog
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@articleinjournal-basicproperties/journal/@remove"
buttonText="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.label']}"
cancelLabel="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.cancel']}"
confirmLabel="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.confirm']}"
dialogId="journal-remove"
dialogTitle="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.title']}"
message="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.message']}"
/>
</c:if>
</ui:define> </ui:define>