Web Script: org/alfresco/components/dashlets/my-workspaces.get
Generated from /share/service/script/org/alfresco/components/dashlets/my-workspaces.get on Jun 16, 2026 12:43:14 AM

Script Properties
Id:org/alfresco/components/dashlets/my-workspaces.get
Short Name:My Workspaces
Description:Component used to list workspaces a user belongs to
Authentication:none
Transaction:none
Method:GET
URL Template:/components/dashlets/my-workspaces
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/dashlets/my-workspaces.get.desc.xml
<webscript>
   <shortname>My Workspaces</shortname>
   <description>Component used to list workspaces a user belongs to</description>
   <family>user-dashlet</family>
   <url>/components/dashlets/my-workspaces</url>
</webscript>
File: org/alfresco/components/dashlets/my-workspaces.get.head.ftl
<!-- My Sites Assets -->
<link rel="stylesheet" type="text/css" href="${page.url.context}/components/dashlets/my-sites.css"/>
<script type="text/javascript" src="${page.url.context}/components/dashlets/my-sites.js"></script>
<link rel="stylesheet" type="text/css" href="${page.url.context}/modules/create-site.css"/>
<script type="text/javascript" src="${page.url.context}/modules/create-site.js"></script>
<link rel="stylesheet" type="text/css" href="${page.url.context}/modules/delete-site.css"/>
<script type="text/javascript" src="${page.url.context}/modules/delete-site.js"></script>
File: org/alfresco/components/dashlets/my-workspaces.get.html.ftl
<script type="text/javascript">//<![CDATA[
new Alfresco.MySites("${args.htmlid}").setOptions({
   sites: [
   <#if sites??>
      <#list sites as site>
         {
            shortName: '${site.shortName?js_string}',
            title: '${site.title?js_string}',
            sitePreset: '${site.sitePreset?js_string}',
            isSiteManager: ${site.isSiteManager?string}
         }<#if (site_has_next)>,</#if>
      </#list>
   </#if>
   ]
});
//]]></script>

<div class="dashlet my-sites">
   <div class="title">${msg("header.myWorkspaces")}</div>    
   <div class="body scrollableList">
<#if sites??>
   <#list sites as site>
      <#if site.sitePreset == "document-workspace">
         <div id="${args.htmlid}-site-div-${site.shortName}" class="detail-list-item <#if site_index = 0>first-item<#elseif !site_has_next>last-item</#if>">
            <div>
               <div class="site">
                  <a href="${url.context}/page/site/${site.shortName}/dashboard">${site.title?html}</a>
               </div>
               <div class="actions">
                  <#if (site.isSiteManager)>
                  <span id="${args.htmlid}-delete-span-${site_index}" class="delete" title="${msg("link.deleteWorkspaces")}">&nbsp;</span>
                  </#if>
               </div>
            </div>
         <#if site.description?exists && site.description != "">
            <div class="description">${site.description?html}</div>
         <#else>
            <div class="clear"></div>
         </#if>
         </div>
      </#if>
   </#list>
<#else>
      <div class="detail-list-item first-item last-item">
         <span>${msg("label.noWorkspaces")}</span>
      </div>
</#if>
   </div>
</div>
File: org/alfresco/components/dashlets/my-workspaces.get.js
function sortByTitle(site1, site2)
{
   return (site1.title > site2.title) ? 1 : (site1.title < site2.title) ? -1 : 0;
}

function main()
{
   // Call the repo for sites the user is a member of
   var result = remote.call("/api/people/" + stringUtils.urlEncode(user.name) + "/sites");
   if (result.status == 200)
   {
      // Create javascript objects from the server response
      var sites = eval('(' + result + ')');

      // Sort the sites by title
      sites.sort(sortByTitle);
      
      for (i = 0, ii = sites.length; i < ii; i++)
      {
         site = sites[i];
         
         // Is current user a Site Manager for this site?
         site.isSiteManager = false;
         if (site.siteManagers)
         {
            managers = site.siteManagers;
            for (j = 0, jj = managers.length; j < jj; j++)
            {
               if (managers[j] == user.name)
               {
                  site.isSiteManager = true;
                  break;
               }
            }
         }
      }
      
      // Prepare the model for the template
      model.sites = sites;
   }
}

main();
File: org/alfresco/components/dashlets/my-workspaces.get.properties
header.myWorkspaces=My Workspaces
link.deleteWorkspaces=Delete
label.noWorkspaces=No workspaces to display

Store: classpath:alfresco/webscripts

[No implementation files]