Commit a48a5cfd authored by Jerome Chauveau's avatar Jerome Chauveau
Browse files

Merge branch 'pyb/mirador' into 'dev'

Pyb/mirador

See merge request pdn-certic/MaX!65
parents 899a9abb d73c36dc
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
function    openInMirador(link,canvasId,canvasIndex) {
    if (canvasId === "" && canvasIndex === "") {
        canvasIndex = 0;
	canvasId = "";
    } else if (canvasId === "") {
        canvasIndex = canvasIndex-1;
	canvasId = "";
    } else {
	canvasIndex = "";
	canvasId = canvasId;
    }
    
function    openInMirador(link) {
    var mirador = Mirador.viewer({
	"id": "mirador-viewer",
	"language":"fr",
@@ -33,7 +43,8 @@ function openInMirador(link) {
	"windows": [
	    {
		"loadedManifest": link,
		//"canvasIndex": 3,
		"canvasIndex": canvasIndex,
		"canvasId": canvasId,
		"thumbnailNavigationPosition": 'far-right'
	    }
	],
+6 −3
Original line number Diff line number Diff line
@@ -13,14 +13,17 @@ declare
%rest:GET
%output:method("html")
%rest:query-param("link", "{$link}")
%rest:query-param("canvasId", "{$canvasId}")
%rest:query-param("canvasIndex", "{$canvasIndex}")
%rest:path("/{$project}/mirador")
function max.plugin.mirador:loadViewer($project,$link){
function max.plugin.mirador:loadViewer($project,$link,$canvasId,$canvasIndex){
let $publicjs := max.config:getBaseURI() || "plugins/" || $max.plugin.mirador:PLUGIN_ID || '/' || $max.plugin.mirador:PLUGIN_ID || '.js'
let $libJs := max.config:getBaseURI() || 'core/ui/lib/mirador.min.js'

let $htmlPage := <html>
  <head>
</head>
<body onload='openInMirador("{$link}")'>
<body onload='openInMirador("{$link}","{$canvasId}","{$canvasIndex}")'>
  <div id='mirador-viewer'/>
  <script type='text/javascript' src='{$libJs}'></script>
  <script type='text/javascript' src='{$publicjs}'></script>
+47 −9
Original line number Diff line number Diff line
@@ -16,33 +16,71 @@
  <!-- Ugly template for alpha tests-->
  <xsl:template match="ead:extref[contains(@xlink:href,'/manifest')]">
   <xsl:variable name="iiifLink">
      <xsl:value-of select="$baseuri"/>
      <xsl:value-of select="$project"/>
      <xsl:text>/mirador/?link=</xsl:text>
      <xsl:choose>
        <xsl:when test="@entityref='iiif_manifest'">
          <xsl:value-of select="$baseuri"/><xsl:value-of select="$project"/><xsl:text>/mirador/?link=</xsl:text><xsl:value-of select="@xlink:href"/>
        <xsl:when test="contains(@xlink:href,'#')">
          <xsl:value-of select="substring-before(@xlink:href,'#')"/>
          <xsl:choose>
            <xsl:when test="contains(@xlink:href,'#http')">
              <xsl:text>&amp;canvasId=</xsl:text>
              <xsl:value-of select="substring-after(@xlink:href,'#')"/>
              <xsl:text>&amp;canvasIndex=</xsl:text>
            </xsl:when>
            <xsl:otherwise>
              <xsl:text>&amp;canvasId=&amp;canvasIndex=</xsl:text>
              <xsl:value-of select="substring-after(@xlink:href,'#')"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$baseuri"/><xsl:value-of select="$project"/><xsl:text>/mirador/?link=https</xsl:text><xsl:value-of select="substring-after(@xlink:href,'=http')"/>
          <xsl:value-of select="@xlink:href"/>
          <xsl:text>&amp;canvasId=&amp;canvasIndex=</xsl:text>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

    <span onclick="window.open('{$iiifLink}','Mirador Viewer','width=800,height=600,location=no')" class="mirador-link"><xsl:value-of select="."/></span>
  </xsl:template>

  <!-- dao avec imagette -->
    <!-- dao avec imagette -->
  <xsl:template match="ead:dao[@entityref='iiif_manifest']">
    <xsl:variable name="iiifLink">
      <xsl:value-of select="$baseuri"/>
      <xsl:value-of select="$project"/>
      <xsl:text>/mirador/?link=</xsl:text>
      <xsl:choose>
        <xsl:when test="contains(@xlink:href,'#')">
          <xsl:value-of select="substring-before(@xlink:href,'#')"/>
          <xsl:choose>
            <xsl:when test="contains(@xlink:href,'#http')">
              <xsl:text>&amp;canvasId=</xsl:text>
              <xsl:value-of select="substring-after(@xlink:href,'#')"/>
              <xsl:text>&amp;canvasIndex=</xsl:text>
            </xsl:when>
            <xsl:otherwise>
              <xsl:text>&amp;canvasId=&amp;canvasIndex=</xsl:text>
              <xsl:value-of select="substring-after(@xlink:href,'#')"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="@xlink:href"/>
          <xsl:text>&amp;canvasId=&amp;canvasIndex=</xsl:text>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    
    <xsl:variable name="imgId">
      <xsl:text>thumbnail</xsl:text><xsl:value-of select="count(preceding::*:dao[@entityref='iiif_manifest'])+1"/>
      <xsl:text>thumbnail</xsl:text>
      <xsl:value-of select="count(preceding::*:dao[@entityref='iiif_manifest'])+1"/>
    </xsl:variable>
    <span onclick="window.open('{$iiifLink}','Mirador Viewer','width=800,height=600,location=no')" class="mirador-link"><xsl:value-of select="."/></span>
    <span onclick="window.open('{$iiifLink}','Mirador Viewer','width=800,height=600,location=no')" class="mirador-link">
      <xsl:value-of select="."/>
    </span>
    <figure>
      <img id="{$imgId}" src="{@xlink:href}" onclick="window.open('{$iiifLink}','Mirador Viewer','width=800,height=600,location=no')" class="mirador-link">      
      <img id="{$imgId}" src="{@xpointer}" onclick="window.open('{$iiifLink}','Mirador Viewer','width=800,height=600,location=no')" class="mirador-link">
      </img>
    </figure>
  </xsl:template>
+19 −0
Original line number Diff line number Diff line
@@ -26,6 +26,25 @@ et

Par défaut, dans le cas de l'utilisation d'un `ead:dao` une vignette est affichée en plus du lien vers le visualiseur.

Pour pointer vers une vue précise dans un manifest il est possible d'ajouter soit l'index du canvas soit son identifiant comme une ancre dans le lien :

````
	<extref entity='iiif_manifest' xlink:href='linkToIIIFManifest#15'>
		[...]
	</extref>
````

pour ouvrir le visualiseur mirador à la 15e image.

Et 

````
	<extref entity='iiif_manifest' xlink:href='linkToIIIFManifest#identifiantDuCanvasSouhaite'>
		[...]
	</extref>
````

pour ouvrir le visualiseur mirador à l'image identifiée par "identifiantDuCanvasSouhaite".

En TEI :