|
| File: org/alfresco/components/dashlets/my-sites.get.desc.xml |
<webscript>
<shortname>My Sites</shortname>
<description>Component used to list sites a user belongs to</description>
<family>user-dashlet</family>
<url>/components/dashlets/my-sites</url>
</webscript> |
| File: org/alfresco/components/dashlets/my-sites.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-sites.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}',
isFavourite: ${site.isFavourite?string},
isSiteManager: ${site.isSiteManager?string}
}<#if (site_has_next)>,</#if>
</#list>
</#if>
]
}).setMessages(
${messages}
);
//]]></script>
<div class="dashlet my-sites">
<div class="title">${msg("header.mySites")}</div>
<div class="toolbar">
<a href="#" id="${args.htmlid}-createSite-button" class="theme-color-1">${msg("link.createSite")}</a>
</div>
<div class="body scrollableList">
<#if sites??>
<#list sites as site>
<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="my-actions">
<span id="${args.htmlid}-favourite-span-${site_index}" class="favourite <#if (site.isFavourite)>enabled</#if>" title="${msg("link.favouriteSite")}"> </span>
</div>
<div class="site">
<a href="${url.context}/page/site/${site.shortName}/dashboard" class="theme-color-1">${site.title?html}</a>
</div>
<div class="actions">
<#if (site.isSiteManager)>
<span id="${args.htmlid}-delete-span-${site_index}" class="delete" title="${msg("link.deleteSite")}"> </span>
</#if>
</div>
</div>
<#if site.description?exists && site.description != "">
<div class="description">${site.description?html}</div>
<#else>
<div class="clear"></div>
</#if>
</div>
</#list>
<#else>
<div class="detail-list-item first-item last-item">
<span>${msg("label.noSites")}</span>
</div>
</#if>
</div>
</div> |
| File: org/alfresco/components/dashlets/my-sites.get.js |
const PREF_FAVOURITE_SITES = "org.alfresco.share.sites.favourites";
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)
{
var i, ii, j, jj;
// Create javascript objects from the server response
var sites = eval('(' + result + ')'), site, favourites = {}, managers;
if (sites.length > 0)
{
// Sort the sites by title
sites.sort(sortByTitle);
// Call the repo for the user's favourite sites
result = remote.call("/api/people/" + stringUtils.urlEncode(user.name) + "/preferences?pf=" + PREF_FAVOURITE_SITES);
if (result.status == 200)
{
var prefs = eval('(' + result + ')');
try
{
// Populate the favourites object literal for easy look-up later
favourites = eval('(prefs.' + PREF_FAVOURITE_SITES + ')');
if (typeof favourites != "object")
{
favourites = {};
}
}
catch (e)
{
}
}
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;
}
}
}
// Is this site a user favourite?
site.isFavourite = !!(favourites[site.shortName]);
}
}
// Prepare the model for the template
model.sites = sites;
}
}
main(); |
| File: org/alfresco/components/dashlets/my-sites.get.properties |
header.mySites=My Sites
link.createSite=Create Site
link.deleteSite=Delete
link.favouriteSite=Mark or unmark site as favourite
label.noSites=No sites to display
message.siteFavourite.failure=The favourite-setting for the site could not be changed |