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

View File

@ -14,7 +14,7 @@
<ui:param name="authoringStepTitle"
value="#{SciPublicationsUiMessageBundle.getMessage('articleinjournal.basicproperties.header', [SciCmsPublicationPropertiesStepModel.name])}" />
<ui:define name="publicatonMessages">
<ui:define name="publicationMessages">
<c:if test="#{journalNotFound != null}">
<div class="alert alert-warning" role="alert">
#{SciPublicationsUiMessageBundle.getMessage('articleinjournal.basicproperties.errors.journal_not_found', [journalNotFound])}
@ -133,7 +133,8 @@
#{SciCmsArticleInJournalPropertiesStepModel.journalTitle}
</p>
</c:otherwise>
<c:if test="#{CmsSelectedDocumentModel.canEdit and SciCmsArticleInJournalPropertiesStepModel.journalTitle == null}">
</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']}"
@ -143,9 +144,7 @@
dialogTitle="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.title']}"
message="#{SciPublicationsUiMessageBundle['articleinjournal.edit.journal.remove.message']}"
/>
</c:if>
</c:choose>
</ui:define>