Web Script: org/alfresco/components/content-viewer/content-viewer.get
Generated from /share/service/script/org/alfresco/components/content-viewer/content-viewer.get on Jun 14, 2026 2:45:21 PM

Script Properties
Id:org/alfresco/components/content-viewer/content-viewer.get
Short Name:A view component for content in the repository
Description:Displays a nodeRef
Authentication:none
Transaction:none
Method:GET
URL Template:/components/content-viewer
Format Style:any
Default Format:html
Negotiated Formats:[undefined]
Implementation:class org.alfresco.web.scripts.DeclarativeWebScript
Extensions:[undefined]

Store: classpath:alfresco/site-webscripts

File: org/alfresco/components/content-viewer/content-viewer.get.config.xml
<contentviewer>

   <content mimetype="text/plain" viewer="viewers/text.ftl" preload="true"/>
   <content mimetype="text/css" viewer="viewers/text.ftl" preload="true"/>

   <content mimetype="text/html" viewer="viewers/html.ftl" preload="true"/>

   <content mimetype="text/xml" viewer="viewers/xml.ftl" preload="true"/>

   <content mimetype="application/x-shockwave-flash" viewer="viewers/flash.ftl" width="200" height="200"/>

   <content mimetype="video/mpeg" viewer="viewers/video.ftl" />

   <content mimetype="audio/x-wav" viewer="viewers/audio.ftl" />
   <content mimetype="audio/mid" viewer="viewers/audio.ftl" />
   <content mimetype="audio/mpeg" viewer="viewers/audio.ftl" />


   <!-- audio/mpeg -->

   <!-- video/quicktime -->

   <content mimetype="application/rss+xml" viewer="viewers/rss.ftl" preload="true"/>

   <content mimetype="image/gif" viewer="viewers/image.ftl"/>
   <content mimetype="image/jpeg" viewer="viewers/image.ftl"/>
   <content mimetype="image/png" viewer="viewers/image.ftl"/>

</contentviewer>
File: org/alfresco/components/content-viewer/content-viewer.get.desc.xml
<webscript>
  <shortname>A view component for content in the repository</shortname>
  <description>Displays a nodeRef</description>
  <url>/components/content-viewer</url>
</webscript>
File: org/alfresco/components/content-viewer/content-viewer.get.head.ftl
<!-- Content Viewer Assets -->
File: org/alfresco/components/content-viewer/content-viewer.get.html.ftl
<#--
      The included content will automatically have the same parameters as this template.
      In other words have access to the node and its content.
-->
   
<#include "${viewer}"/>
File: org/alfresco/components/content-viewer/content-viewer.get.js
// Load the config to know what viewer to use for each mimetype
var contentviewer =  new XML(config.script);

// Check mandatory parameters
var nodeRef = page.url.args.nodeRef;
if (nodeRef == null || nodeRef.length == 0)
{
   status.code = 400;
   status.message = "Parameter 'nodeRef' is missing.";
   status.redirect = true;
}

// Call the repo for metadata
var json = remote.call("/api/metadata?nodeRef=" + nodeRef)
var node = eval('(' + json + ')');

/**
 * If no viewer is configured for the nodes mime-type display
 * a fallback template with an explanation text
 */
var viewer = "viewers/no-viewer-exist.ftl";
var preload = false;
var contentData = null;

var content = contentviewer.content.(@mimetype==node.mimetype);
if (content.length() == 1)
{
   // Found a configured viewer for the mimetype
   viewer = content.@viewer.toString();
   preload = (content.@preload.toString() == "true");
}
else if (content.length() > 1)
{
   // Multiple viewers found for the same mimetype, throw an error
   status.code = 500;
   status.message = "Multiple viewers (" + content.@viewer.toString() + ") defined for the mime-type ${node.mimetype}";
   status.redirect = true;
}

// property namespaces
var mcns = "{http://www.alfresco.org/model/content/1.0}";
var msns = "{http://www.alfresco.org/model/system/1.0}";

// extract metadata
var storeType = node.properties[msns + "store-protocol"];
var storeId = node.properties[msns + "store-identifier"];
var nodeId = node.properties[msns + "node-uuid"];
var name = node.properties[mcns + "name"];

var contentUrl = "/api/node/content/" +storeType+ "/" +storeId + "/" + nodeId + "?" + encodeURIComponent(name)
if (preload)
{
   /**
    * This mimetype can be displayed inline and has therefore been configured
    * to be loaded directly instead from the browser.
    */
   contentData = remote.call(contentUrl);
}

// Prepare model for template
model.viewer = viewer;
model.node = node;
model.contentData = contentData;
model.contentUrl = "/alfresco/service" + contentUrl;

// Set the width
model.width = "100%"; // default value
if (node.properties[mcns + "width"])
{
   model.width = node.properties[mcns + "width"];
}
else if (args.width)
{
   model.width = args.width;
}
else if (content.@width.toString().length > 0)
{
   model.width = content.@width.toString();
}

// Set the height
model.height = "100%"; // default value
if (node.properties[mcns + "height"])
{
   model.height = node.properties[mcns + "height"];
}
else if (args.height)
{
   model.height = args.height;
}
else if (content.@height.toString().length > 0)
{
   model.height = content.@height.toString();
}

Store: classpath:alfresco/webscripts

[No implementation files]