Web Script: org/alfresco/components/navigation/collaboration-navigation.get
Generated from /share/service/script/org/alfresco/components/navigation/collaboration-navigation.get on Jun 15, 2026 2:05:41 AM

Script Properties
Id:org/alfresco/components/navigation/collaboration-navigation.get
Short Name:Collaboration Navigation
Description:Navigation component used in the collaboration site
Authentication:none
Transaction:none
Method:GET
URL Template:/components/navigation/collaboration-navigation
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/navigation/collaboration-navigation.get.desc.xml
<webscript>
  <shortname>Collaboration Navigation</shortname>
  <description>Navigation component used in the collaboration site</description>
  <url>/components/navigation/collaboration-navigation</url>
</webscript>
File: org/alfresco/components/navigation/collaboration-navigation.get.html.ftl
<#assign activeSite = page.url.templateArgs.site!"">
<#assign activePage = page.url.templateArgs.pageid!"dashboard">
<#if activePage = "blog-postview" || activePage = "blog-postedit"><#assign activePage="blog-postlist"></#if>
<#if activePage = "links-linkedit" || activePage = "links-view"><#assign activePage="links"></#if>
<#if activePage = "discussions-topicview"><#assign activePage="discussions-topiclist"></#if>
<#if activePage = "document-details"><#assign activePage="documentlibrary"></#if>
<#if activePage = "wiki-create"><#assign activePage="wiki"></#if>
<div class="site-navigation">
<#if siteExists??>
   <#assign linkClass><#if url.context + "/page/site/" + activeSite + "/dashboard" == page.url.uri>class="active-page"</#if></#assign>
   <span class="navigation-item"><a href="${url.context}/page/site/${activeSite}/dashboard" ${linkClass}>${msg("link.siteDashboard")}</a></span>
   <#list pages as p>
      <#assign linkPage><#if p.pageUrl??>${p.pageUrl}<#else>${p.pageId}</#if></#assign>
      <#assign linkClass><#if linkPage?index_of(activePage) != -1>class="active-page"</#if></#assign>
   <span class="navigation-separator">&nbsp;</span>
   <span class="navigation-item"><a href="${url.context}/page/site/${activeSite}/${linkPage}" ${linkClass}>${p.title}</a></span>
   </#list>
<span class="navigation-separator-alt">&nbsp;</span>
   <#assign linkClass><#if ("site-members" == activePage) || ("sent-invites" == activePage) || ("invite" == activePage)>class="active-page"</#if></#assign>
<span class="navigation-item"><a href="${url.context}/page/site/${activeSite}/site-members" ${linkClass}>${msg("link.members")}</a></span>
</#if>
</div>
File: org/alfresco/components/navigation/collaboration-navigation.get.js
// Get ids for all used pages
var siteId = page.url.templateArgs.site, usedPages = [];
var p = sitedata.getPage("site/" + siteId + "/dashboard");
if (p !== null)
{
   usedPages = eval('(' + p.properties.sitePages + ')');
   if (usedPages === null)
   {
      usedPages = [];
   }

   var availablePages = config.scoped["SitePages"]["pages"].childrenMap["page"], urlMap = {};
   for (i = 0; i < availablePages.size(); i++)
   {
      // Get page id from config file
      pageId = availablePages.get(i).attributes["id"];
      if (pageId)
      {
         pageUrl = availablePages.get(i).value;
         urlMap[pageId] = pageUrl;
      }
   }

   // Find the label for each page
   for (var i = 0; i < usedPages.length; i++)
   {
      var usedPage = usedPages[i], p = sitedata.getPage(usedPage.pageId), pageUrl = urlMap[usedPage.pageId];
      usedPage.title = p.title;
      if (pageUrl)
      {
         // Overwrite the stored pageUrl with the latest one from config file
         usedPage.pageUrl = pageUrl;  
      }
   }
   
   model.siteExists = true;
}

// Prepare template model
model.pages = usedPages;
File: org/alfresco/components/navigation/collaboration-navigation.get.properties
link.siteDashboard = Site Dashboard
link.members = Members

Store: classpath:alfresco/webscripts

[No implementation files]