Skip to content

Commit

Permalink
Revert "MIR-1304 Revert "MIR-1198 Support validation of PDF/A documen…
Browse files Browse the repository at this point in the history
…ts (#900…"

This reverts commit a41e008.
  • Loading branch information
yagee-de authored Apr 24, 2024
1 parent 3baf9a5 commit 00913fe
Show file tree
Hide file tree
Showing 4 changed files with 200 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -912,3 +912,11 @@ subselect.category.title = Kategorie ausw\u00E4hlen

user.profile.id.orcid = Ihre ORCID iD
selfRegistration.error.mailExists = Die E-Mail-Adresse wird bereits verwendet.
pdf.errorbox.warning.message=Achtung! Bei einigen Ihrer PDF/A Dokumente sind Fehler aufgetreten. Bitte stellen Sie sicher, dass ihre PDF/A Dokumente mit aktuellen und geeigneten Programmen erstellt wurden und lesen Sie die Fehlerdokumentation. Anbei finden Sie eine Liste der aufgetretenen Fehler!
pdf.errorbox.warning.heading=Warnung!
pdf.errorbox.success.heading=Erfolg!
pdf.errorbox.success.message=Ihre PDF Dokumente wurden \u00FCberpr\u00FCft und es wurden keine Fehler gefunden.
pdf.errorbox.button.info=Mehr Informationen
pdf.errorbox.button.download=Herunterladen
pdf.errorbox.conformity.level=Konformit\u00E4tstufe
pdf.errorbox.unknown.error=Keine weiteren Informationen!
Original file line number Diff line number Diff line change
Expand Up @@ -864,3 +864,11 @@ subselect.category.cancel = Cancel
subselect.category.title = Choose category
user.profile.id.orcid = Your ORCID iD
pdf.errorbox.warning.message=Attention! Errors have occurred with some of your PDF/A documents. Please make sure that your PDF/A documents were created with up-to-date and suitable programs and read the error documentation. You will find a list of the occurred errors below!
pdf.errorbox.warning.heading=Warning!
pdf.errorbox.success.heading=Success!
pdf.errorbox.success.message=Your PDF documents were verified and no errors were found.
pdf.errorbox.button.info=Learn More
pdf.errorbox.button.download=Download
pdf.errorbox.conformity.level=Conformity level
pdf.errorbox.unknown.error=No further information!
182 changes: 182 additions & 0 deletions mir-module/src/main/resources/xsl/metadata/mir-pdf-errorbox.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:i18n="xalan://org.mycore.services.i18n.MCRTranslation"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:mcrxsl="xalan://org.mycore.common.xml.MCRXMLFunctions"
xmlns:xalan="http://xml.apache.org/xalan"
version="1.0" exclude-result-prefixes="i18n mcrxsl">


<xsl:param name="WebApplicationBaseURL"/>
<xsl:param name="ServletsBaseURL" />
<xsl:param name="HttpSession"/>
<xsl:template match="mycoreobject" mode="displayPdfError">


<xsl:variable name="errorMessages">
<xsl:apply-templates
select="structure/derobjects/derobject"/>
</xsl:variable>




<xsl:choose>
<xsl:when test="contains($errorMessages,'Clause')">
<div class="container pdf-validation mb-3 px-0" id="accordion">
<div class="card-header bg-danger text-white">
<div class="list-group list-group-root well p-3">
<p class="h5">
<xsl:value-of select="i18n:translate('pdf.errorbox.warning.heading')"/>
</p>
<p>
<xsl:value-of select="i18n:translate('pdf.errorbox.warning.message')"/>
</p>
</div>
</div>
<div class="card-body border-left border-right border-bottom">
<xsl:copy-of select="$errorMessages"/>
</div>
</div>
</xsl:when>
<xsl:when test="string-length(normalize-space($errorMessages)) > 0 and not(contains($errorMessages,'Clause'))">
<div class="card-header bg-success text-white mb-3">
<div class="list-group list-group-root well p-3">
<p class="h5">
<xsl:value-of select="i18n:translate('pdf.errorbox.success.heading')"/>
</p>
<p>
<xsl:value-of select="i18n:translate('pdf.errorbox.success.message')"/>
</p>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>


<xsl:template match="structure/derobjects/derobject">
<xsl:variable name="derivateID" select="@xlink:href"/>
<xsl:variable name="result" select="document(concat('pdfAValidator:', $derivateID))"/>
<xsl:if test="not(normalize-space($result))">
<xsl:apply-templates select="$result/derivate/file"/>
</xsl:if>
<xsl:variable name="derivbase" select="concat($ServletsBaseURL,'MCRFileNodeServlet/',$result/derivate/@id,'/')" />
<xsl:variable name="derivdir" select="concat($derivbase,$HttpSession)" />
</xsl:template>


<xsl:template match="file">
<xsl:variable name="derivate" select="../@id"/>


<xsl:variable name="name">
<xsl:call-template name="getFilename">
<xsl:with-param name="filePath" select="@name"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="badgecolor">
<xsl:choose>
<xsl:when test="failed">danger</xsl:when>
<xsl:otherwise>success</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="uniqueFileId" select="generate-id(.)"/>
<div id="{$derivate}{$uniqueFileId}" class="font-weight-bold d-flex list-group list-group-root">
<a onclick="$('#{$derivate}{$uniqueFileId}cbButton').toggleClass('fa-chevron-right fa-chevron-down');"
data-toggle="collapse" href="#collapse{$derivate}{$uniqueFileId}"
class="text-left d-flex flex-md-row flex-grow-1 list-group-item align-items-center">
<i id="{$derivate}{$uniqueFileId}cbButton" class="fa fa-chevron-right ml-auto mr-1"/>
<span class="flex-grow-1 font-weight-bold text-break">
<xsl:value-of select="$name"/>
</span>
<span class="badge badge-{$badgecolor} badge-pill align-self-center">
<xsl:value-of select="count(failed)"/>
</span>
</a>
</div>
<ul class="list-group collapse" id="collapse{$derivate}{$uniqueFileId}">
<li class="list-group-item d-flex flex-column flex-xl-row flex-grow-2 text-break">
<p class="flex-grow-1 col-lg-8 align-items-center">
<span class="text-muted pdf-term">
<xsl:value-of select="concat(i18n:translate('pdf.errorbox.conformity.level'),': ')"/>
</span>
<span class="pdf-value">
<xsl:value-of select="concat('PDF/A-',@flavour)"/>
</span>
</p>
<xsl:variable name="downloadLink">
<xsl:value-of select="concat($ServletsBaseURL,'MCRFileNodeServlet/',$derivate,'/',mcrxsl:encodeURIPath(@name))"/>
</xsl:variable>


<a class="btn btn-primary col" href="{$downloadLink}" target="_blank">
<xsl:value-of select="concat(i18n:translate('pdf.errorbox.button.download'),' ')"/>
<i class="fas fa-download"/>
</a>
</li>
<xsl:apply-templates select="failed"/>
</ul>
</xsl:template>


<xsl:template match="failed">
<li class="list-group-item d-flex flex-column flex-xl-row flex-grow-1 text-break">
<p class="flex-grow col-lg-8 col-md-9 align-self-center">
<span class="text-muted pdf-term">
Specification:
</span>
<span class="pdf-value">
<xsl:value-of select="concat(' ', @specification, ' ')"/>
</span>
<span class="text-muted pdf-term">
Clause:
</span>
<span class="pdf-value">
<xsl:value-of select="concat(' ', @clause, ' ')"/>
</span>
<span class="text-muted pdf-term">
Test:
</span>
<span class="pdf-value">
<xsl:value-of select="concat(' ', @testNumber, ' ')"/>
</span>
</p>
<xsl:choose>
<xsl:when test="not(@link)">
<a class="btn btn-info col" role="button" href="{@Link}" target="_blank">
<xsl:value-of select="concat(i18n:translate('pdf.errorbox.button.info'),' ')"/>
<i class="fas fa-external-link-alt"/>
</a>
</xsl:when>
<xsl:otherwise>
<div class="text-center alert alert-danger col" role="alert">
<xsl:value-of select="i18n:translate('pdf.errorbox.unknown.error')"/>
</div>
</xsl:otherwise>
</xsl:choose>
</li>
</xsl:template>


<xsl:template name="getFilename">
<xsl:param name="filePath" />
<xsl:variable name="rest-of" select="substring-after($filePath, '/')" />
<xsl:choose>
<xsl:when test="contains($rest-of, '/')">
<xsl:call-template name="getFilename">
<xsl:with-param name="filePath" select="$rest-of" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:if test="normalize-space($rest-of)">
<xsl:value-of select="$rest-of" />
</xsl:if>
<xsl:if test="not(normalize-space($rest-of))">
<xsl:value-of select="$filePath" />
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

</xsl:stylesheet>
3 changes: 2 additions & 1 deletion mir-module/src/main/resources/xsl/metadata/mir-workflow.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

<xsl:import href="xslImport:modsmeta:metadata/mir-workflow.xsl"/>
<xsl:import href="xslImport:mirworkflow:metadata/mir-workflow.xsl"/>

<xsl:import href="mir-pdf-errorbox.xsl"/>
<xsl:param name="layout" select="'$'"/>
<xsl:param name="MIR.Workflow.Box" select="'false'"/>
<xsl:param name="MIR.Workflow.ReviewDerivateRequired" select="'true'"/>
Expand Down Expand Up @@ -127,6 +127,7 @@
Dokument submitted
</xsl:message>
</xsl:if>
<xsl:apply-templates select="." mode="displayPdfError"/>
</xsl:template>

<xsl:template match="mycoreobject" mode="creatorReview" priority="10">
Expand Down

0 comments on commit 00913fe

Please sign in to comment.