Form for extended properties of publications
parent
6654577ac0
commit
7a887eeb36
|
|
@ -1,7 +1,11 @@
|
|||
package org.scientificcms.publications.ui.contenttypes;
|
||||
|
||||
import org.libreccm.api.Identifier;
|
||||
import org.libreccm.api.IdentifierParser;
|
||||
import org.libreccm.l10n.GlobalizationHelper;
|
||||
import org.libreccm.security.AuthorizationRequired;
|
||||
import org.libreccm.ui.BaseUrl;
|
||||
import org.librecms.contentsection.AssetRepository;
|
||||
import org.librecms.ui.contentsections.ContentSectionNotFoundException;
|
||||
import org.librecms.ui.contentsections.ItemPermissionChecker;
|
||||
import org.librecms.ui.contentsections.documents.AbstractMvcAuthoringStep;
|
||||
|
|
@ -9,18 +13,24 @@ import org.librecms.ui.contentsections.documents.DocumentNotFoundException;
|
|||
import org.librecms.ui.contentsections.documents.DocumentUi;
|
||||
import org.librecms.ui.contentsections.documents.MvcAuthoringSteps;
|
||||
import org.scientificcms.publications.Publication;
|
||||
import org.scientificcms.publications.PublicationManager;
|
||||
import org.scientificcms.publications.PublicationRepository;
|
||||
import org.scientificcms.publications.Series;
|
||||
import org.scientificcms.publications.VolumeInSeries;
|
||||
import org.scientificcms.publications.assets.PublicationAsset;
|
||||
import org.scientificcms.publications.assets.SeriesAsset;
|
||||
import org.scientificcms.publications.contenttypes.PublicationItem;
|
||||
import org.scientificcms.publications.ui.SciPublicationsUiMessageBundle;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.mvc.Models;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.transaction.Transactional;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.POST;
|
||||
|
|
@ -33,21 +43,39 @@ import javax.ws.rs.PathParam;
|
|||
* @param <T> Subtype of {@link PublicationAsset}.
|
||||
* @param <P> Subtype of {@link Publication}
|
||||
*/
|
||||
public abstract class AbstractPublicationExtentedPropertiesStep<T extends PublicationItem<P>, P extends Publication>
|
||||
public abstract class AbstractPublicationExtendedPropertiesStep<T extends PublicationItem<P>, P extends Publication>
|
||||
extends AbstractMvcAuthoringStep {
|
||||
|
||||
@Inject
|
||||
private AssetRepository assetRepo;
|
||||
|
||||
@Inject
|
||||
private BaseUrl baseUrl;
|
||||
|
||||
@Inject
|
||||
private DocumentUi documentUi;
|
||||
|
||||
@Inject
|
||||
private GlobalizationHelper globalizationHelper;
|
||||
|
||||
@Inject
|
||||
private HttpServletRequest request;
|
||||
|
||||
@Inject
|
||||
private IdentifierParser identifierParser;
|
||||
|
||||
@Inject
|
||||
private ItemPermissionChecker itemPermissionChecker;
|
||||
|
||||
@Inject
|
||||
private Models models;
|
||||
|
||||
@Inject
|
||||
private PublicationExtendedPropertiesStepModel propertiesStepModel;
|
||||
|
||||
@Inject
|
||||
private PublicationManager publicationManager;
|
||||
|
||||
@Inject
|
||||
private PublicationRepository publicationRepo;
|
||||
|
||||
|
|
@ -142,6 +170,8 @@ public abstract class AbstractPublicationExtentedPropertiesStep<T extends Public
|
|||
)
|
||||
);
|
||||
propertiesStepModel.setEditStepUrlFragment(getEditStepUrlFragment());
|
||||
|
||||
propertiesStepModel.setBaseUrl(baseUrl.getBaseUrl(request));
|
||||
}
|
||||
|
||||
@AuthorizationRequired
|
||||
|
|
@ -236,6 +266,182 @@ public abstract class AbstractPublicationExtentedPropertiesStep<T extends Public
|
|||
}
|
||||
}
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public String addSeries(
|
||||
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
|
||||
final String sectionIdentifier,
|
||||
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
|
||||
final String documentPath,
|
||||
@FormParam("seriesIdentifier")
|
||||
final String seriesIdentifier,
|
||||
@FormParam("volumeOfSeries")
|
||||
final String volumeOfSeries
|
||||
) {
|
||||
try {
|
||||
init();
|
||||
} catch (ContentSectionNotFoundException ex) {
|
||||
return ex.showErrorMessage();
|
||||
} catch (DocumentNotFoundException ex) {
|
||||
return ex.showErrorMessage();
|
||||
}
|
||||
|
||||
if (itemPermissionChecker.canEditItem(getDocument())) {
|
||||
final Identifier identifier = identifierParser.parseIdentifier(
|
||||
seriesIdentifier
|
||||
);
|
||||
final Optional<SeriesAsset> seriesResult;
|
||||
switch (identifier.getType()) {
|
||||
case ID:
|
||||
seriesResult = assetRepo.findById(
|
||||
Long.parseLong(identifier.getIdentifier()),
|
||||
SeriesAsset.class
|
||||
);
|
||||
break;
|
||||
case UUID:
|
||||
seriesResult = assetRepo.findByUuidAndType(
|
||||
identifier.getIdentifier(),
|
||||
SeriesAsset.class
|
||||
);
|
||||
break;
|
||||
default:
|
||||
seriesResult = Optional.empty();
|
||||
break;
|
||||
}
|
||||
|
||||
if (seriesResult.isEmpty()) {
|
||||
return showSeriesNotFound(
|
||||
sectionIdentifier,
|
||||
documentPath,
|
||||
seriesIdentifier
|
||||
);
|
||||
}
|
||||
|
||||
final Series result = seriesResult.get().getSeries();
|
||||
publicationManager.addSeries(
|
||||
result,
|
||||
getPublication(),
|
||||
volumeOfSeries
|
||||
);
|
||||
|
||||
return buildRedirectPathForStep();
|
||||
} else {
|
||||
return documentUi.showAccessDenied(
|
||||
getContentSection(),
|
||||
getDocument(),
|
||||
getLabel()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public String editVolumeInSeries(
|
||||
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
|
||||
final String sectionIdentifier,
|
||||
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
|
||||
final String documentPath,
|
||||
@PathParam("volumeInSeriesUuid")
|
||||
final String volumeInSeriesUuid,
|
||||
@FormParam("volumeInSeries")
|
||||
final String volumeInSeriesValue
|
||||
) {
|
||||
try {
|
||||
init();
|
||||
} catch (ContentSectionNotFoundException ex) {
|
||||
return ex.showErrorMessage();
|
||||
} catch (DocumentNotFoundException ex) {
|
||||
return ex.showErrorMessage();
|
||||
}
|
||||
|
||||
if (itemPermissionChecker.canEditItem(getDocument())) {
|
||||
final Optional<VolumeInSeries> volumeInSeriesResult
|
||||
= getPublication()
|
||||
.getSeries()
|
||||
.stream()
|
||||
.filter(
|
||||
volume -> Objects.equals(
|
||||
volume.getUuid(),
|
||||
volumeInSeriesUuid
|
||||
)
|
||||
)
|
||||
.findAny();
|
||||
|
||||
if (volumeInSeriesResult.isEmpty()) {
|
||||
return showVolumeInSeriesNotFound(
|
||||
sectionIdentifier,
|
||||
documentPath,
|
||||
volumeInSeriesUuid
|
||||
);
|
||||
}
|
||||
|
||||
final VolumeInSeries volumeInSeries = volumeInSeriesResult.get();
|
||||
volumeInSeries.setVolumeOfSeries(volumeInSeriesValue);
|
||||
|
||||
publicationRepo.save(getPublication());
|
||||
|
||||
return buildRedirectPathForStep();
|
||||
} else {
|
||||
return documentUi.showAccessDenied(
|
||||
getContentSection(),
|
||||
getDocument(),
|
||||
getLabel()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public String removeVolumeInSeries(
|
||||
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
|
||||
final String sectionIdentifier,
|
||||
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
|
||||
final String documentPath,
|
||||
@PathParam("volumeInSeriesUuid")
|
||||
final String volumeInSeriesUuid
|
||||
) {
|
||||
try {
|
||||
init();
|
||||
} catch (ContentSectionNotFoundException ex) {
|
||||
return ex.showErrorMessage();
|
||||
} catch (DocumentNotFoundException ex) {
|
||||
return ex.showErrorMessage();
|
||||
}
|
||||
|
||||
if (itemPermissionChecker.canEditItem(getDocument())) {
|
||||
final Optional<VolumeInSeries> volumeInSeriesResult
|
||||
= getPublication()
|
||||
.getSeries()
|
||||
.stream()
|
||||
.filter(
|
||||
volume -> Objects.equals(
|
||||
volume.getUuid(),
|
||||
volumeInSeriesUuid
|
||||
)
|
||||
)
|
||||
.findAny();
|
||||
|
||||
if (volumeInSeriesResult.isEmpty()) {
|
||||
return showVolumeInSeriesNotFound(
|
||||
sectionIdentifier,
|
||||
documentPath,
|
||||
volumeInSeriesUuid
|
||||
);
|
||||
}
|
||||
|
||||
final VolumeInSeries volumeInSeries = volumeInSeriesResult.get();
|
||||
publicationManager.removeSeries(
|
||||
volumeInSeries.getSeries(),
|
||||
getPublication()
|
||||
);
|
||||
|
||||
return buildRedirectPathForStep();
|
||||
} else {
|
||||
return documentUi.showAccessDenied(
|
||||
getContentSection(),
|
||||
getDocument(),
|
||||
getLabel()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract String getEditStepUrlFragment();
|
||||
|
||||
protected abstract String getStepTemplatePath();
|
||||
|
|
@ -256,4 +462,22 @@ public abstract class AbstractPublicationExtentedPropertiesStep<T extends Public
|
|||
return row;
|
||||
}
|
||||
|
||||
private String showSeriesNotFound(
|
||||
final String sectionIdentifier,
|
||||
final String documentPath,
|
||||
final String seriesIdentifier
|
||||
) {
|
||||
models.put("seriesNotFound", seriesIdentifier);
|
||||
return showStep(sectionIdentifier, documentPath);
|
||||
}
|
||||
|
||||
private String showVolumeInSeriesNotFound(
|
||||
final String sectionIdentifier,
|
||||
final String documentPath,
|
||||
final String volumeInSeriesIdentifier
|
||||
) {
|
||||
models.put("volumeInSeriesNotFound", volumeInSeriesIdentifier);
|
||||
return showStep(sectionIdentifier, documentPath);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -708,7 +708,6 @@ public abstract class AbstractPublicationPropertiesStep<T extends PublicationIte
|
|||
);
|
||||
|
||||
return buildRedirectPathForStep();
|
||||
|
||||
} else {
|
||||
return documentUi.showAccessDenied(
|
||||
getContentSection(),
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@ import java.util.stream.Collectors;
|
|||
import javax.inject.Inject;
|
||||
import javax.transaction.Transactional;
|
||||
import javax.ws.rs.FormParam;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
|
||||
/**
|
||||
|
|
@ -31,7 +29,7 @@ import javax.ws.rs.PathParam;
|
|||
* @param <P> Subtype of {@link PublicationWithPublisher}.
|
||||
*/
|
||||
public abstract class AbstractPublicationWithPublisherExtendedPropertiesStep<T extends PublicationWithPublisherItem<P>, P extends PublicationWithPublisher>
|
||||
extends AbstractPublicationExtentedPropertiesStep<T, P> {
|
||||
extends AbstractPublicationExtendedPropertiesStep<T, P> {
|
||||
|
||||
@Inject
|
||||
private DocumentUi documentUi;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,11 @@ public class MonographExtendedPropertiesStep extends AbstractPublicationWithPubl
|
|||
return Monograph.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getEditStepUrlFragment() {
|
||||
return "monograph-extendedproperties";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getStepTemplatePath() {
|
||||
return "org/scientificcms/contenttypes/ui/monograph/edit-extended-properties.xhtml";
|
||||
|
|
@ -154,4 +159,70 @@ public class MonographExtendedPropertiesStep extends AbstractPublicationWithPubl
|
|||
);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/series")
|
||||
@AuthorizationRequired
|
||||
@Transactional
|
||||
@Override
|
||||
public String addSeries(
|
||||
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
|
||||
final String sectionIdentifier,
|
||||
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
|
||||
final String documentPath,
|
||||
@FormParam("seriesIdentifier")
|
||||
final String seriesIdentifier,
|
||||
@FormParam("volumeOfSeries")
|
||||
final String volumeOfSeries
|
||||
) {
|
||||
return super.addSeries(
|
||||
sectionIdentifier,
|
||||
documentPath,
|
||||
seriesIdentifier,
|
||||
volumeOfSeries
|
||||
);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/series/{volumeInSeriesUuid}")
|
||||
@AuthorizationRequired
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
@Override
|
||||
public String editVolumeInSeries(
|
||||
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
|
||||
final String sectionIdentifier,
|
||||
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
|
||||
final String documentPath,
|
||||
@PathParam("volumeInSeriesUuid")
|
||||
final String volumeInSeriesUuid,
|
||||
@FormParam("volumeInSeries")
|
||||
final String volumeInSeriesValue
|
||||
) {
|
||||
return super.editVolumeInSeries(
|
||||
sectionIdentifier,
|
||||
documentPath,
|
||||
volumeInSeriesUuid,
|
||||
volumeInSeriesValue
|
||||
);
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/series/{seriesUuid}/remove")
|
||||
@AuthorizationRequired
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
@Override
|
||||
public String removeVolumeInSeries(
|
||||
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
|
||||
final String sectionIdentifier,
|
||||
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
|
||||
final String documentPath,
|
||||
@PathParam("volumeInSeriesUuid")
|
||||
final String volumeInSeriesUuid
|
||||
) {
|
||||
return super.removeVolumeInSeries(
|
||||
sectionIdentifier,
|
||||
documentPath,
|
||||
volumeInSeriesUuid
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -230,7 +230,7 @@ public class MonographPropertiesStep extends AbstractPublicationWithPublisherPro
|
|||
@POST
|
||||
@Path("/authors")
|
||||
@AuthorizationRequired
|
||||
@Transactional
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
@Override
|
||||
public String addAuthor(
|
||||
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
|
||||
|
|
@ -253,7 +253,7 @@ public class MonographPropertiesStep extends AbstractPublicationWithPublisherPro
|
|||
@POST
|
||||
@Path("/authors/{authorshipUuid}")
|
||||
@AuthorizationRequired
|
||||
@Transactional
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
@Override
|
||||
public String editAuthorship(
|
||||
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
|
||||
|
|
@ -276,7 +276,7 @@ public class MonographPropertiesStep extends AbstractPublicationWithPublisherPro
|
|||
@POST
|
||||
@Path("/authors/{authorshipUuid}/remove")
|
||||
@AuthorizationRequired
|
||||
@Transactional
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
@Override
|
||||
public String removeAuthorship(
|
||||
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package org.scientificcms.publications.ui.contenttypes;
|
||||
|
||||
import org.scientificcms.publications.assets.SeriesAsset;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -17,6 +19,8 @@ import javax.inject.Named;
|
|||
@Named("SciCmsPublicationExtendedPropertiesStepModel")
|
||||
public class PublicationExtendedPropertiesStepModel {
|
||||
|
||||
private String baseUrl;
|
||||
|
||||
private String editStepUrlFragment;
|
||||
|
||||
private boolean peerReviewed;
|
||||
|
|
@ -31,6 +35,14 @@ public class PublicationExtendedPropertiesStepModel {
|
|||
|
||||
private Map<String, String> languages;
|
||||
|
||||
public String getBaseUrl() {
|
||||
return baseUrl;
|
||||
}
|
||||
|
||||
protected void setBaseUrl(final String baseUrl) {
|
||||
this.baseUrl = baseUrl;
|
||||
}
|
||||
|
||||
public boolean isPeerReviewed() {
|
||||
return peerReviewed;
|
||||
}
|
||||
|
|
@ -89,6 +101,8 @@ public class PublicationExtendedPropertiesStepModel {
|
|||
this.editStepUrlFragment = editStepUrlFragment;
|
||||
}
|
||||
|
||||
|
||||
public String getSeriesType() {
|
||||
return SeriesAsset.class.getName();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,76 +11,80 @@
|
|||
|
||||
<h2>#{authoringStepTitle}</h2>
|
||||
|
||||
<div class="text-right">
|
||||
<button class="btn btn-primary"
|
||||
data-toggle="modal"
|
||||
data-target="#extendedproperties-edit-dialog"
|
||||
type="button">
|
||||
<bootstrap:svgIcon icon="pen" />
|
||||
<span class="sr-only">#{SciPublicationsUiMessageBundle['publication.editstep.extendedproperties.edit']}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div aria-hidden="true"
|
||||
aria-labelledby="properties-edit-dialog-title"
|
||||
class="modal fade"
|
||||
id="extendedproperties-edit-dialog"
|
||||
tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/properties"
|
||||
class="modal-content"
|
||||
method="post">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"
|
||||
id="properties-edit-dialog-title">
|
||||
#{SciPublicationsUiMessageBundle['publication.editstep.extendedproperties.edit.title']}
|
||||
</h4>
|
||||
<button
|
||||
aria-label="#{SciPublicationsUiMessageBundle['publication.editstep.extendedproperties.edit.close']}"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
type="button">
|
||||
<bootstrap:svgIcon icon="x" />
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<bootstrap:formCheck
|
||||
inputId="peer-reviewed"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproperties.peerreviewed.label']}"
|
||||
name="peerReviewed"
|
||||
value="#{SciCmsPublicationExtendedPropertiesStepModel.peerReviewed}"
|
||||
/>
|
||||
|
||||
<bootstrap:formGroupNumber
|
||||
help="#{SciPublicationsUiMessageBundle['extendedproperties.yearfirstpublished.help']}"
|
||||
inputId="year-first-published"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproperties.yearfirstpublished.label']}"
|
||||
name="yearFirstPublished"
|
||||
value="#{SciCmsPublicationExtendedPropertiesStepModel.yearFirstPublished}"
|
||||
/>
|
||||
|
||||
<bootstrap:formGroupSelect
|
||||
help="#{SciPublicationsUiMessageBundle['extendedproperties.languageofpublication.help']}"
|
||||
inputId="language-of-publication"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproperties.languageofpublication.label']}"
|
||||
name="languageOfPublication"
|
||||
options="#{SciCmsPublicationExtendedPropertiesStepModel.languages}"
|
||||
selectedOptions="#{List.of(SciCmsPublicationExtendedPropertiesStepModel.languageOfPublication)}"
|
||||
/>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-warning"
|
||||
<c:if test="#{CmsSelectedDocumentModel.canEdit}">
|
||||
<div class="text-right">
|
||||
<button class="btn btn-primary"
|
||||
data-toggle="modal"
|
||||
data-target="#extendedproperties-edit-dialog"
|
||||
type="button">
|
||||
<bootstrap:svgIcon icon="pen" />
|
||||
<span class="sr-only">#{SciPublicationsUiMessageBundle['publication.editstep.extendedproperties.edit']}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div aria-hidden="true"
|
||||
aria-labelledby="properties-edit-dialog-title"
|
||||
class="modal fade"
|
||||
id="extendedproperties-edit-dialog"
|
||||
tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/properties"
|
||||
class="modal-content"
|
||||
method="post">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"
|
||||
id="properties-edit-dialog-title">
|
||||
#{SciPublicationsUiMessageBundle['publication.editstep.extendedproperties.edit.title']}
|
||||
</h4>
|
||||
<button
|
||||
aria-label="#{SciPublicationsUiMessageBundle['publication.editstep.extendedproperties.edit.close']}"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
type="button">
|
||||
#{SciPublicationsUiMessageBundle['publication.editstep.extededproperties.edit.close']}
|
||||
</button>
|
||||
<button class="btn btn-success"
|
||||
type="submit">
|
||||
#{SciPublicationsUiMessageBundle['publication.editstep.extendedproperties.edit.submit']}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<bootstrap:svgIcon icon="x" />
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<bootstrap:formCheck
|
||||
inputId="peer-reviewed"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproperties.peerreviewed.label']}"
|
||||
name="peerReviewed"
|
||||
value="#{SciCmsPublicationExtendedPropertiesStepModel.peerReviewed}"
|
||||
/>
|
||||
|
||||
<bootstrap:formGroupNumber
|
||||
help="#{SciPublicationsUiMessageBundle['extendedproperties.yearfirstpublished.help']}"
|
||||
inputId="year-first-published"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproperties.yearfirstpublished.label']}"
|
||||
name="yearFirstPublished"
|
||||
value="#{SciCmsPublicationExtendedPropertiesStepModel.yearFirstPublished}"
|
||||
/>
|
||||
|
||||
<bootstrap:formGroupSelect
|
||||
help="#{SciPublicationsUiMessageBundle['extendedproperties.languageofpublication.help']}"
|
||||
inputId="language-of-publication"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproperties.languageofpublication.label']}"
|
||||
name="languageOfPublication"
|
||||
options="#{SciCmsPublicationExtendedPropertiesStepModel.languages}"
|
||||
selectedOptions="#{List.of(SciCmsPublicationExtendedPropertiesStepModel.languageOfPublication)}"
|
||||
/>
|
||||
|
||||
<ui:insert name="publicationExtendedPropertiesFormElements" />
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-warning"
|
||||
data-dismiss="modal"
|
||||
type="button">
|
||||
#{SciPublicationsUiMessageBundle['publication.editstep.extendedproperties.edit.close']}
|
||||
</button>
|
||||
<button class="btn btn-success"
|
||||
type="submit">
|
||||
#{SciPublicationsUiMessageBundle['publication.editstep.extendedproperties.edit.submit']}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
<dl>
|
||||
<div>
|
||||
<dt>#{SciPublicationsUiMessageBundle['extendedproperties.peerreviewed.label']}</dt>
|
||||
|
|
@ -95,10 +99,128 @@
|
|||
<dd>#{SciCmsPublicationExtendedPropertiesStepModel.languageOfPublicationDisplayName}</dd>
|
||||
</div>
|
||||
|
||||
<ui:insert name="publicationExtendedProperties" />
|
||||
<ui:insert name="publicationExtendedPropertiesList" />
|
||||
</dl>
|
||||
|
||||
<!-- series: asset -->
|
||||
<c:if test="#{CmsSelectedDocumentModel.canEdit}">
|
||||
<h3>#{SciPublicationsUiMessageBundle['extendedproeprties.volumeinseries.header']}</h3>
|
||||
<div class="mb-2">
|
||||
<div class="text-right">
|
||||
<librecms:assetPickerButton
|
||||
assetPickerId="series-picker"
|
||||
buttonIcon="plus-circle"
|
||||
buttonText="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.add.label']}"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<librecms:assetPicker
|
||||
actionUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/series"
|
||||
assetType="#{SciCmsPublicationExtendedPropertiesStepModel.seriesType}"
|
||||
assetPickerId="series-picker"
|
||||
baseUrl="#{SciCmsPublicationExtendedPropertiesStepModel.baseUrl}"
|
||||
contentSection="#{ContentSectionModel.sectionName}"
|
||||
dialogTitle="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.add.dialog.title']}"
|
||||
formParamName="seriesIdentifier"
|
||||
>
|
||||
<bootstrap:formGroupText
|
||||
help="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.help']}"
|
||||
inputId="volume-in-series"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.label']}"
|
||||
name="volumeInSeries"
|
||||
/>
|
||||
</librecms:assetPicker>
|
||||
</c:if>
|
||||
<c:choose>
|
||||
<c:when test="#{SciCmsPublicationExtendedPropertiesStepModel.volumeInSeries.isEmpty()}">
|
||||
<p>#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.none']}</p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<table id="series-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.table.title']}</th>
|
||||
<th>#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.table.volumeinseries']}</th>
|
||||
<th colspan="2">#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.table.actions']}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach items="#{SciCmsPublicationExtendedPropertiesStepModel.volumeInSeries}"
|
||||
var="volume">
|
||||
<tr id="#{volume.volumeInSeriesUuid}">
|
||||
<td>#{volume.seriesTitle}</td>
|
||||
<td>#{volume.volumeInSeries}</td>
|
||||
<td>
|
||||
<button class="btn btn-secondary"
|
||||
data-toggle="modal"
|
||||
data-target="#volumeinseries-edit-#{volume.volumeInSeriesUuid}"
|
||||
type="button">
|
||||
<bootstrap:svgIcon icon="pen" />
|
||||
<span class="sr-only">
|
||||
#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.edit.label']}
|
||||
</span>
|
||||
</button>
|
||||
<div aria-hidden="true"
|
||||
aria-labelledby="volumeinseries-edit-#{volume.volumeInSeriesUuid}-title"
|
||||
class="modal fade"
|
||||
id="volumeinseries-edit-#{volume.volumeInSeriesUuid}"
|
||||
tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<form action="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/series/#{volume.volumeInSeriesUuid}"
|
||||
class="modal-content"
|
||||
method="post">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"
|
||||
id="volumeinseries-edit-#{volume.volumeInSeriesUuid}-title">
|
||||
#{SciPublicationsUiMessageBundle.getMessage('extendedproperties.volumeinseries.editdialog.title', [volume.seriesTitle, volume.volumeInSeries])}
|
||||
</h4>
|
||||
<button aria-label="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.editdialog.cancel']}"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
type="button">
|
||||
<bootstrap:svgIcon icon="x" />
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<bootstrap:formGroupText
|
||||
help="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.help']}"
|
||||
inputId="#{volume.volumeInSeriesUuid}-volumeinseries"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.volumeinseries.label']}"
|
||||
name="volumeInSeries"
|
||||
value="#{volume.volumeInSeries}"
|
||||
/>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-warning"
|
||||
data-dismiss="modal"
|
||||
type="button">
|
||||
#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.editdialog.cancel']}
|
||||
</button>
|
||||
<button class="btn btn-success"
|
||||
type="submit">
|
||||
#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.editdialog.submit']}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<libreccm:deleteDialog
|
||||
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/#{volume.volumeInSeriesUuid}/remove"
|
||||
buttonText="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.remove.label']}"
|
||||
cancelLabel="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.remove.cancel']}"
|
||||
confirmLabel="#{SciPublicationsUiMessageBundle['extendedproperties.volumeinseries.remove.confirm']}"
|
||||
dialogId="remove-volumeinseries-#{volume.volumeInSeriesUuid}"
|
||||
dialogTitle="#{SciPublicationsUiMessageBundle.getMessage('extendedproperties.volumeinseries.remove.title', [volume.seriesTitle, volume.volumeInSeries])}"
|
||||
message="#{SciPublicationsUiMessageBundle.getMessage('extendedproperties.volumeinseries.remove.message', [volume.seriesTitle, volume.volumeInSeries])}"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
<ui:insert name="publicationExtendedPropertyWidgets"/>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,22 +7,97 @@
|
|||
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
|
||||
<ui:composition template="/WEB-INF/views/org/scientificcms/contenttypes/ui/edit-publication-extended-properties.xhtml">
|
||||
|
||||
<ui:define name="publicationExtendedProperties">
|
||||
<ui:define name="publicationExtendedPropertiesList">
|
||||
|
||||
<!-- isbn10: String -->
|
||||
<div>
|
||||
<dt>#{SciPublicationsUiMessageBundle['extendedproperties.isbn10.label']}</dt>
|
||||
<dd>#{SciCmsPublicationWithPublisherExtendedPropertiesStep.isbn10}</dd>
|
||||
</div>
|
||||
|
||||
<!-- isbn13: String -->
|
||||
<div>
|
||||
<dt>#{SciPublicationsUiMessageBundle['extendedproperties.isbn13.label']}</dt>
|
||||
<dd>#{SciCmsPublicationWithPublisherExtendedPropertiesStep.isbn13}</dd>
|
||||
</div>
|
||||
|
||||
<!-- volume: int -->
|
||||
<div>
|
||||
<dt>#{SciPublicationsUiMessageBundle['extendedproperties.volume.label']}</dt>
|
||||
<dd>#{SciCmsPublicationWithPublisherExtendedPropertiesStep.volume}</dd>
|
||||
</div>
|
||||
|
||||
<!-- numberOfVolumes: int -->
|
||||
<div>
|
||||
<dt>#{SciPublicationsUiMessageBundle['extendedproperties.numberofvolumes.label']}</dt>
|
||||
<dd>#{SciCmsPublicationWithPublisherExtendedPropertiesStep.numberOfVolumes}</dd>
|
||||
</div>
|
||||
|
||||
<!-- numberOfPages: int -->
|
||||
<div>
|
||||
<dt>#{SciPublicationsUiMessageBundle['extendedproperties.numberofpages.label']}</dt>
|
||||
<dd>#{SciCmsPublicationWithPublisherExtendedPropertiesStep.numberOfPages}</dd>
|
||||
</div>
|
||||
|
||||
<!-- edition: LocalizedString -->
|
||||
<ui:insert name="publicationWithPublisherExtendedPropertiesList"/>
|
||||
|
||||
<ui:insert name="publicationWithPublisherExtendedProperties"/>
|
||||
</ui:define>
|
||||
|
||||
<ui:define name="publicationExtendedPropertiesFormElements">
|
||||
|
||||
<bootstrap:formGroupText
|
||||
help="#{SciPublicationsUiMessageBundle['extendedproperties.isbn10.help']}"
|
||||
inputId="isbn10"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproperties.isbn10.label']}"
|
||||
name="isbn10"
|
||||
value="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.isbn10}"
|
||||
/>
|
||||
|
||||
<bootstrap:formGroupText
|
||||
help="#{SciPublicationsUiMessageBundle['extendedproperties.isbn13.help']}"
|
||||
inputId="isbn13"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproperties.isbn13.label']}"
|
||||
name="isbn13"
|
||||
value="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.isbn13}"
|
||||
/>
|
||||
|
||||
<bootstrap:formGroupNumber
|
||||
help="#{SciPublicationsUiMessageBundle['extendedproeprties.volume.help']}"
|
||||
inputId="volume"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproeprties.volume.label']}"
|
||||
name="volume"
|
||||
value="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.volume}"
|
||||
/>
|
||||
|
||||
<bootstrap:formGroupNumber
|
||||
help="#{SciPublicationsUiMessageBundle['extendedproeprties.numberofvolumes.help']}"
|
||||
inputId="number-of-volumes"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproeprties.numberofvolumes.label']}"
|
||||
name="numberOfVolumes"
|
||||
value="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.numberOfVolumes}"
|
||||
/>
|
||||
|
||||
<bootstrap:formGroupNumber
|
||||
help="#{SciPublicationsUiMessageBundle['extendedproeprties.numberofpages.help']}"
|
||||
inputId="number-of-pages"
|
||||
label="#{SciPublicationsUiMessageBundle['extendedproeprties.numberofpages.label']}"
|
||||
name="numberOfPages"
|
||||
value="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.numberOfPages}"
|
||||
/>
|
||||
|
||||
<ui:insert name="publicationWithPublisherExtendedPropertiesFormElements"/>
|
||||
</ui:define>
|
||||
|
||||
<ui:define name="publicationExtendedPropertyWidgets">
|
||||
|
||||
<libreccm:localizedStringEditor
|
||||
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/edition/@add"
|
||||
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/edition/@edit"
|
||||
editorId="edition-editor"
|
||||
hasUnusedLocales="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.unusedEditionLocales.isEmpty()}"
|
||||
objectIdentifier="#{CmsSelectedDocumentModel.itemPath}"
|
||||
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@#{SciCmsPublicationExtendedPropertiesStepModel.editStepUrlFragment}/edition/@remove"
|
||||
title="#{SciPublicationsUiMessageBundle['extendedproperties.edition.editdialog.title']}"
|
||||
unusedLocales="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.unusedEditionLocales}"
|
||||
values="#{SciCmsPublicationWithPublisherExtendedPropertiesStep.editionValues}"
|
||||
/>
|
||||
|
||||
<ui:insert name="publicationWithPublisherExtendedPropertyWidgets" />
|
||||
</ui:define>
|
||||
|
||||
</ui:composition>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,18 @@
|
|||
<ui:param name="authoringStepTitle"
|
||||
value="#{SciPublicationsUiMessageBundle.getMessage('monograph.extendedproperties.header', [SciCmsPublicationPropertiesStepModel.name])}" />
|
||||
|
||||
<ui:define name="publicationWithPublisherExtendedProperties">
|
||||
<ui:param name="editStepUrlFragement"
|
||||
value="monograph-extendedproperties" />
|
||||
|
||||
<ui:define name="publicationWithPublisherExtendedPropertiesList">
|
||||
|
||||
</ui:define>
|
||||
|
||||
<ui:define name="publicationWithPublisherExtendedPropertiesFormElements">
|
||||
|
||||
</ui:define>
|
||||
|
||||
<ui:define name="publicationWithPublisherExtendedPropertiesWidgets">
|
||||
|
||||
</ui:define>
|
||||
|
||||
|
|
|
|||
|
|
@ -380,3 +380,40 @@ editsteps.misc.header_edit=Edit miscellaneous information
|
|||
basicproperties.authors.none=No authors assigned yet.
|
||||
publicationwithpublisher.publisher.none=No publisher assigned yet.
|
||||
basicproperties.authors.remove.confirm=Remove
|
||||
publication.editstep.extendedproperties.edit=Edit extended properties
|
||||
publication.editstep.extendedproperties.edit.title=Edit extended properties
|
||||
publication.editstep.extendedproperties.edit.close=Cancel
|
||||
extendedproperties.peerreviewed.label=Peer reviewed?
|
||||
extendedproperties.yearfirstpublished.help=The year in which the first edition of the publication was first published.
|
||||
extendedproperties.yearfirstpublished.label=Year first published
|
||||
extendedproperties.languageofpublication.help=The language of the publication.
|
||||
extendedproperties.languageofpublication.label=Language of the publication
|
||||
publication.editstep.extendedproperties.edit.submit=Save
|
||||
extendedproeprties.volumeinseries.header=Published as volume in series
|
||||
extendedproperties.volumeinseries.add.label=Add volume
|
||||
extendedproperties.volumeinseries.add.dialog.title=Add volume
|
||||
extendedproperties.volumeinseries.volumeinseries.help=The label of the volume as which the publication was published as part of the series.
|
||||
extendedproperties.volumeinseries.none=No volumes
|
||||
extendedproperties.volumeinseries.table.title=Title of the series
|
||||
extendedproperties.volumeinseries.table.volumeinseries=Volume
|
||||
extendedproperties.volumeinseries.table.actions=Actions
|
||||
extendedproperties.volumeinseries.edit.label=Edit
|
||||
extendedproperties.volumeinseries.editdialog.title=Edit volume {1} of series {0}
|
||||
extendedproperties.volumeinseries.editdialog.cancel=Cancel
|
||||
extendedproperties.volumeinseries.editdialog.submit=Save
|
||||
extendedproperties.volumeinseries.remove.label=Remove
|
||||
extendedproperties.volumeinseries.remove.cancel=Cancel
|
||||
extendedproperties.volumeinseries.remove.confirm=Remove
|
||||
extendedproperties.volumeinseries.remove.title=Confirm removal of volume {1} of series {0}
|
||||
extendedproperties.volumeinseries.remove.message=Are you sure to remove volume {0} of series {1}?
|
||||
extendedproperties.isbn10.label=ISBN-10
|
||||
extendedproperties.isbn13.label=ISBN-13
|
||||
extendedproperties.volume.label=Volume
|
||||
extendedproperties.numberofvolumes.label=Number of volumes
|
||||
extendedproperties.numberofpages.label=Number of pages
|
||||
extendedproperties.isbn10.help=The ISBN-10 of the publication, if available.
|
||||
extendedproperties.isbn13.help=The ISBN-13 of the publication.
|
||||
extendedproeprties.volume.help=The volume of the publication if the publication is part of a multi-volume publication.
|
||||
extendedproeprties.numberofvolumes.help=Number of volumes of the publication.
|
||||
extendedproeprties.numberofpages.help=Number of pages
|
||||
extendedproperties.edition.editdialog.title=Edition
|
||||
|
|
|
|||
|
|
@ -380,3 +380,40 @@ editsteps.misc.header_edit=Weitere Informationen bearbeiten
|
|||
basicproperties.authors.none=Es wurden noch keine Autoren eingetragen.
|
||||
publicationwithpublisher.publisher.none=Es wurde noch kein Verlag zugewiesen.
|
||||
basicproperties.authors.remove.confirm=Entfernen
|
||||
publication.editstep.extendedproperties.edit=Erweiterte Eigenschaften bearbeiten
|
||||
publication.editstep.extendedproperties.edit.title=Erweiterte Eigenschaften bearbeiten
|
||||
publication.editstep.extendedproperties.edit.close=Abbrechen
|
||||
extendedproperties.peerreviewed.label=Peer reviewed?
|
||||
extendedproperties.yearfirstpublished.help=Das Jahr, in dem die erste Ausgabe der Publikation erschienen ist.
|
||||
extendedproperties.yearfirstpublished.label=Ersterscheinungsjahr
|
||||
extendedproperties.languageofpublication.help=Die Sprache der Publikation.
|
||||
extendedproperties.languageofpublication.label=Sprache der Publikation
|
||||
publication.editstep.extendedproperties.edit.submit=Speichern
|
||||
extendedproeprties.volumeinseries.header=Erschienen als Band der Reihe
|
||||
extendedproperties.volumeinseries.add.label=Band hinzuf\u00fcgen
|
||||
extendedproperties.volumeinseries.add.dialog.title=Band hinzuf\u00fcgen
|
||||
extendedproperties.volumeinseries.volumeinseries.help=Die Bezeichnung des Bandes in dem die Publikation als Teil der Serie ver\u00f6ffentlicht wurde.
|
||||
extendedproperties.volumeinseries.none=Keine B\u00e4nde.
|
||||
extendedproperties.volumeinseries.table.title=Titel der Reihe
|
||||
extendedproperties.volumeinseries.table.volumeinseries=Band
|
||||
extendedproperties.volumeinseries.table.actions=Aktionen
|
||||
extendedproperties.volumeinseries.edit.label=Bearbeiten
|
||||
extendedproperties.volumeinseries.editdialog.title=Band {1} der Reihe {0} bearbeiten
|
||||
extendedproperties.volumeinseries.editdialog.cancel=Abbrechen
|
||||
extendedproperties.volumeinseries.editdialog.submit=Speichern
|
||||
extendedproperties.volumeinseries.remove.label=Entfernen
|
||||
extendedproperties.volumeinseries.remove.cancel=Abbrechen
|
||||
extendedproperties.volumeinseries.remove.confirm=Entfernen
|
||||
extendedproperties.volumeinseries.remove.title=Entfernen des Bandes {1} der Reihe {0} best\u00e4tigen
|
||||
extendedproperties.volumeinseries.remove.message=Sind Sie sicher, dass sie den Band {1} der Reihe {0} entfernen wollen?
|
||||
extendedproperties.isbn10.label=ISBN-10
|
||||
extendedproperties.isbn13.label=ISBN-13
|
||||
extendedproperties.volume.label=Band
|
||||
extendedproperties.numberofvolumes.label=Anzahl der B\u00e4nde
|
||||
extendedproperties.numberofpages.label=Anzahl der Seiten
|
||||
extendedproperties.isbn10.help=Die ISBN-10 der Publikation.
|
||||
extendedproperties.isbn13.help=Die ISBN-13 der Publikation.
|
||||
extendedproeprties.volume.help=Der Band der Publikation, falls die Publikation Teil eines mehrb\u00e4ndiges Werkes ist.
|
||||
extendedproeprties.numberofvolumes.help=Anzahl der B\u00e4nde des Werkes.
|
||||
extendedproeprties.numberofpages.help=Anzahl der Seiten
|
||||
extendedproperties.edition.editdialog.title=Ausgabe
|
||||
|
|
|
|||
Loading…
Reference in New Issue