mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud)
80924: Merged EOL (5.0/Cloud) to HEAD-BUG-FIX (5.0/Cloud) 80469: ACE-2091 EOL Explorer. ACE-2014 EOL URL Addressibility API - 90% of the Explorer Client config, pages and assets moved to privatemodules/thor - Explorer client available via mvn -Pcloud build only - Alfresco minimal index page added - Deprecated and disabled: Servlets related to Explorer e.g. ExternalAccessServlet, CommandServlet - will be removed fully in 5.1 - Removed: Explorer liferay portlet context, jboss portlet context, collaboration WebScript remoteapi (Explorer), old web assets no longer used - Tested: Enterprise build, Cloud build, build unit tests, NTLM SSO/Cookie SSO path git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@83132 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Blog Custom View</shortname>
|
|
||||||
<description>Collaboration Blog Space view</description>
|
|
||||||
<url>/collaboration/blogSpace?nodeRef={noderef}</url>
|
|
||||||
<format default="html"/>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,176 +0,0 @@
|
|||||||
<div id="collabContainer">
|
|
||||||
|
|
||||||
<#if blogSpace.actionResult != "">
|
|
||||||
<div class="collabError">${blogSpace.actionResult}</div>
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div class="collabHeader">
|
|
||||||
<span>Articles pending publishing (${blogSpace.pending?size})</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="collabContent">
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" cellspacing="0">
|
|
||||||
<tr valign="top">
|
|
||||||
<td width="1" style="background-color:#cacfd3;"></td>
|
|
||||||
<td>
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="16" cellspacing="0">
|
|
||||||
<tr valign="top">
|
|
||||||
<td>
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" cellspacing="0">
|
|
||||||
<tr class="blogRowHeader">
|
|
||||||
<td> </td>
|
|
||||||
<td>Name</td>
|
|
||||||
<td>Created on</td>
|
|
||||||
<td>Created by</td>
|
|
||||||
<td>Actions</td>
|
|
||||||
</tr>
|
|
||||||
<#assign rowNum = 0>
|
|
||||||
<#list blogSpace.pending as article>
|
|
||||||
<#assign n = article.node>
|
|
||||||
<#assign p = article.person>
|
|
||||||
<#assign rowNum = rowNum + 1>
|
|
||||||
<tr class="blogRowPost${(rowNum % 2 = 0)?string("Even", "Odd")}">
|
|
||||||
<td><img src="${url.context}${n.icon32}"></td>
|
|
||||||
<td>${n.name}</td>
|
|
||||||
<td>${n.properties["cm:created"]?datetime}</td>
|
|
||||||
<td>${p.properties["cm:firstName"]} ${p.properties["cm:lastName"]}</td>
|
|
||||||
<td>
|
|
||||||
<a class="blogAction" title="Post this article" href="${scripturl("?nodeRef=" + n.parent.nodeRef + "&n=" + n.nodeRef + "&a=p")}"><img src="${url.context}/images/icons/blog_post.png" alt="details"></a>
|
|
||||||
<a class="blogAction" title="Details" href="${url.context}/n/showDocDetails/${n.nodeRef.storeRef.protocol}/${n.nodeRef.storeRef.identifier}/${n.id}"><img src="${url.context}/images/icons/View_details.gif" alt="details"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</#list>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td width="1" style="background-color:#cacfd3;"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="collabFooter">
|
|
||||||
<span> </span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="collabHeader">
|
|
||||||
<span>Articles to be updated (${blogSpace.updates?size})</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="collabContent">
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" cellspacing="0">
|
|
||||||
<tr valign="top">
|
|
||||||
<td width="1" style="background-color:#b9bec4;"></td>
|
|
||||||
<td>
|
|
||||||
<table width="100%" cellpadding="16" cellspacing="0">
|
|
||||||
<tr valign="top">
|
|
||||||
<td>
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" cellspacing="0">
|
|
||||||
<tr class="blogRowHeader">
|
|
||||||
<td> </td>
|
|
||||||
<td>Name</td>
|
|
||||||
<td>Published on</td>
|
|
||||||
<td>Modified on</td>
|
|
||||||
<td>Actions</td>
|
|
||||||
</tr>
|
|
||||||
<#assign rowNum = 0>
|
|
||||||
<#list blogSpace.updates as article>
|
|
||||||
<#assign n = article.node>
|
|
||||||
<#assign p = article.person>
|
|
||||||
<#assign rowNum = rowNum + 1>
|
|
||||||
<tr class="blogRowPost${(rowNum % 2 = 0)?string("Even", "Odd")}">
|
|
||||||
<td><img src="${url.context}${n.icon32}"></td>
|
|
||||||
<td>${n.name}</td>
|
|
||||||
<td>${n.properties["blg:lastUpdate"]?datetime}</td>
|
|
||||||
<td>${n.properties["cm:modified"]?datetime}</td>
|
|
||||||
<td>
|
|
||||||
<a class="blogAction" title="Update blog" href="${scripturl("?nodeRef=" + n.parent.nodeRef + "&n=" + n.nodeRef + "&a=u")}"><img src="${url.context}/images/icons/blog_update.png"></a>
|
|
||||||
<a class="blogAction" title="Remove from blog" href="${scripturl("?nodeRef=" + n.parent.nodeRef + "&n=" + n.nodeRef + "&a=r")}"><img src="${url.context}/images/icons/blog_remove.png"></a>
|
|
||||||
<a class="blogAction" title="Details" href="${url.context}/n/showDocDetails/${n.nodeRef.storeRef.protocol}/${n.nodeRef.storeRef.identifier}/${n.id}"><img src="${url.context}/images/icons/View_details.gif" alt="details"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</#list>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td width="1" style="background-color:#b9bec4;"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="collabFooter">
|
|
||||||
<span> </span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/* Main Container elements */
|
|
||||||
#collabContainer {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collabError {
|
|
||||||
background-color: #FFFF90;
|
|
||||||
border: 1px dashed red;
|
|
||||||
font-weight: bold;
|
|
||||||
color: red;
|
|
||||||
padding: 4px;
|
|
||||||
margin: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collabHeader {
|
|
||||||
background: url(${url.context}/images/parts/collab_topleft.png) no-repeat left top;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 0px 0px 2px;
|
|
||||||
}
|
|
||||||
.collabHeader span {
|
|
||||||
background: url(${url.context}/images/parts/collab_topright.png) no-repeat right top;
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
padding: 5px 15px 4px 6px;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 10pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collabContent {
|
|
||||||
}
|
|
||||||
|
|
||||||
.collabFooter {
|
|
||||||
background: url(${url.context}/images/parts/collab_bottomleft.png) no-repeat left top;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 0px 0px 4px;
|
|
||||||
}
|
|
||||||
.collabFooter span {
|
|
||||||
background: url(${url.context}/images/parts/collab_bottomright.png) no-repeat right top;
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
padding: 5px 15px 4px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blogRowHeader {
|
|
||||||
}
|
|
||||||
.blogRowHeader td {
|
|
||||||
border-bottom: 1px solid #ccc;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blogRowPostEven {
|
|
||||||
background-color: #f0f0f0;
|
|
||||||
}
|
|
||||||
.blogRowPostOdd {
|
|
||||||
}
|
|
||||||
|
|
||||||
.blogAction img {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
</style>
|
|
@@ -1,100 +0,0 @@
|
|||||||
/*
|
|
||||||
* blogSpace
|
|
||||||
*
|
|
||||||
* Inputs:
|
|
||||||
* mandatory: nodeRef = parent space nodeRef
|
|
||||||
* optional: n = nodeId for document to action against
|
|
||||||
* a = action
|
|
||||||
* "p" = publish
|
|
||||||
* "u" = update
|
|
||||||
* "r" = remove
|
|
||||||
*
|
|
||||||
* Outputs: blogSpace - object containing node arrays of articles pending and to be updated
|
|
||||||
*/
|
|
||||||
var actionResult = parseArgs(args["n"], args["a"]);
|
|
||||||
model.blogSpace = main(args["nodeRef"], actionResult);
|
|
||||||
|
|
||||||
function parseArgs(nodeId, action)
|
|
||||||
{
|
|
||||||
var result = "";
|
|
||||||
if ((nodeId != null) && (action != null))
|
|
||||||
{
|
|
||||||
var blog = actions.create("blog-post");
|
|
||||||
|
|
||||||
var node = search.findNode(nodeId);
|
|
||||||
if (node != null)
|
|
||||||
{
|
|
||||||
var blogAction = "";
|
|
||||||
var isPublished = false;
|
|
||||||
if ((node.hasAspect("blg:blogPost")) && (node.properties["blg:published"] == true))
|
|
||||||
{
|
|
||||||
isPublished = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (action)
|
|
||||||
{
|
|
||||||
case "p":
|
|
||||||
blogAction = (isPublished ? "" : "post");
|
|
||||||
break;
|
|
||||||
case "u":
|
|
||||||
blogAction = (isPublished ? "update" : "");
|
|
||||||
break;
|
|
||||||
case "r":
|
|
||||||
blogAction = (isPublished ? "remove" : "");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (blogAction != "")
|
|
||||||
{
|
|
||||||
blog.parameters.action = blogAction;
|
|
||||||
blog.execute(node);
|
|
||||||
result = blog.parameters["result"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
function main(nodeRef, actionResult)
|
|
||||||
{
|
|
||||||
var pending = new Array(),
|
|
||||||
updates = new Array();
|
|
||||||
|
|
||||||
var article = {};
|
|
||||||
var person;
|
|
||||||
|
|
||||||
var space = search.findNode(nodeRef);
|
|
||||||
|
|
||||||
if (space != null)
|
|
||||||
{
|
|
||||||
for each(node in space.children)
|
|
||||||
{
|
|
||||||
person = people.getPerson(node.properties["cm:creator"]);
|
|
||||||
article =
|
|
||||||
{
|
|
||||||
"node": node,
|
|
||||||
"person": person
|
|
||||||
};
|
|
||||||
|
|
||||||
if ((node.hasAspect("blg:blogPost")) && (node.properties["blg:published"] == true))
|
|
||||||
{
|
|
||||||
if (node.properties["cm:modified"] - node.properties["blg:lastUpdate"] > 5000)
|
|
||||||
{
|
|
||||||
updates.push(article);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pending.push(article);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var blogSpace =
|
|
||||||
{
|
|
||||||
"actionResult": actionResult,
|
|
||||||
"pending": pending,
|
|
||||||
"updates": updates
|
|
||||||
};
|
|
||||||
return blogSpace;
|
|
||||||
}
|
|
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Blog Summary</shortname>
|
|
||||||
<description>Collaboration Blog Summary</description>
|
|
||||||
<url>/collaboration/blogSummary?nodeRef={noderef}</url>
|
|
||||||
<format default="html"/>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,2 +0,0 @@
|
|||||||
${blogSummary.numUpdates} articles need updating<br>
|
|
||||||
${blogSummary.numPending} articles pending
|
|
@@ -1,53 +0,0 @@
|
|||||||
/*
|
|
||||||
* blogSummary
|
|
||||||
*
|
|
||||||
* Inputs:
|
|
||||||
* nodeRef = blog space nodeRef
|
|
||||||
*
|
|
||||||
* Outputs:
|
|
||||||
* blogSummary - object containing
|
|
||||||
* numUpdates - number of articles updated since being published
|
|
||||||
* numPending - number of unpublished articles
|
|
||||||
*/
|
|
||||||
model.blogSummary = main(args["nodeRef"]);
|
|
||||||
|
|
||||||
function main(nodeRef)
|
|
||||||
{
|
|
||||||
var numUpdates = 0,
|
|
||||||
numPending = 0;
|
|
||||||
|
|
||||||
if (nodeRef != null)
|
|
||||||
{
|
|
||||||
var space = search.findNode(nodeRef);
|
|
||||||
|
|
||||||
if (space != null)
|
|
||||||
{
|
|
||||||
// generate lucene PATH to get all child documents
|
|
||||||
var path = space.qnamePath + "//*";
|
|
||||||
var nodes = search.luceneSearch("+PATH:\"" + path + "\"" +
|
|
||||||
" +(@cm\\:content.mimetype:\"text/plain\" OR @cm\\:content.mimetype:\"text/html\")");
|
|
||||||
|
|
||||||
for each(node in nodes)
|
|
||||||
{
|
|
||||||
if ((node.hasAspect("blg:blogPost")) && (node.properties["blg:published"] == true))
|
|
||||||
{
|
|
||||||
if (node.properties["cm:modified"] - node.properties["blg:lastUpdate"] > 5000)
|
|
||||||
{
|
|
||||||
++numUpdates;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
++numPending;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var blogSummary =
|
|
||||||
{
|
|
||||||
"numUpdates": numUpdates,
|
|
||||||
"numPending": numPending
|
|
||||||
};
|
|
||||||
return blogSummary;
|
|
||||||
}
|
|
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Calendar View</shortname>
|
|
||||||
<description>Collaboration Calendar Space view</description>
|
|
||||||
<url>/collaboration/calendar?nodeRef={noderef}</url>
|
|
||||||
<format default="html"/>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,219 +0,0 @@
|
|||||||
<!-- Calendar Code v2.1 -->
|
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="${url.context}/yui/example.css">
|
|
||||||
<link rel="stylesheet" type="text/css" href="${url.context}/yui/assets/tabview.css">
|
|
||||||
<link rel="stylesheet" type="text/css" href="${url.context}/yui/assets/round_tabs.css">
|
|
||||||
<link type="text/css" rel="stylesheet" href="${url.context}/yui/fonts.css"/>
|
|
||||||
<link type="text/css" rel="stylesheet" href="${url.context}/yui/assets/calendar.css"/>
|
|
||||||
<link type="text/css" rel="stylesheet" href="${url.context}/yui/Custom.css"/>
|
|
||||||
|
|
||||||
<script type="text/javascript" src="${url.context}/yui/yahoo.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/yui/event.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/yui/dom.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/yui/element-beta.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/yui/tabview.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/yui/yahoo-min.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/yui/event-min.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/yui/connection-min.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/yui/calendar.js"></script>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
var tabView;
|
|
||||||
var spaceRef = '${args["nodeRef"]}';
|
|
||||||
|
|
||||||
function showColorWindow(txtColor)
|
|
||||||
{
|
|
||||||
win2 = window.open("${url.context}/images/calendar/color_picker.htm", "colorwind", "height=160,width=200,status=0");
|
|
||||||
win2.colorControl = txtColor;
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/calendarScripts.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/initializeEventDetails.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/saveEventDetails.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/eventRetrieversMonthView.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/eventRetrieversWeekView.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/captureWeekViewEvents.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/eventRetrieversDayView.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/captureDayViewEvents.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/eventCaptureHandlers.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/editEventHandlers.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/calendarSearch.js" ></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/calendarUtil.js" ></script>
|
|
||||||
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/calendar/ColorPicker2.js" ></script>
|
|
||||||
|
|
||||||
<link type="text/css" rel="stylesheet" href="${url.context}/css/calendar/calendarMain.css"/>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
#demo .yui-content { padding:1em; } /* pad content container */
|
|
||||||
</style>
|
|
||||||
|
|
||||||
|
|
||||||
<div id="divCalendarMainContainer" class="yui-navset">
|
|
||||||
<ul class="yui-nav">
|
|
||||||
<li class="selected" id="lnkShowMonthEvents"><a href="#showMonthEvents"><em>Month</em></a></li>
|
|
||||||
<li id="lnkShowWeekEvents"><a href="#showWeekEvents"><em>Week</em></a></li>
|
|
||||||
<li id="lnkShowDayEvents"><a href="#showDayEvents"><em>Day</em></a></li>
|
|
||||||
<li id="lnkEventCapture"><a href="#eventCapture"><em>Create New Event</em></a></li>
|
|
||||||
<li id="lnkCalendarSubscribe"><a href="#calendarSubscribe"><em>Calendar Admin</em></a></li>
|
|
||||||
</ul>
|
|
||||||
<div class="yui-content">
|
|
||||||
|
|
||||||
<!-- Start Show and Capture Month View Events -->
|
|
||||||
<div id="showMonthEvents">
|
|
||||||
<BR>
|
|
||||||
<div style="text-align:center">
|
|
||||||
<img src="${url.context}/yui/img/prev.gif" title="Previous Year" onclick="addYearsMonthView(-1)" style="cursor:pointer" />
|
|
||||||
<img src="${url.context}/yui/img/prevMinor.gif" title="Previous Month" onclick="addMonthsMonthView(-1)" style="cursor:pointer" />
|
|
||||||
<img src="${url.context}/yui/img/now.gif" title="This Month" onclick="setCurrentMonthView(event)" style="cursor:pointer" />
|
|
||||||
<img src="${url.context}/yui/img/nextMinor.gif" title="Next Month" onclick="addMonthsMonthView(1)" style="cursor:pointer"/>
|
|
||||||
<img src="${url.context}/yui/img/next.gif" title="Next Year" onclick="addYearsMonthView(1)" style="cursor:pointer" />
|
|
||||||
<span id="spnCurrentDisplayMonth"></span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<table id="tabMonthViewMain" border="0" cellpadding="2" cellspacing="2" width="100%">
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<span id="spnCurrentDisplayMonthMonthView"></span>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div id="divMonthView"></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- Start Show and Capture Month View Events -->
|
|
||||||
|
|
||||||
<!-- Start Show and Capture Week View Events -->
|
|
||||||
<div id="showWeekEvents">
|
|
||||||
<BR>
|
|
||||||
<div style="text-align:center">
|
|
||||||
<img src="${url.context}/yui/img/prevMinor.gif" title="Previous Week" onclick="callLoadersWeekView(-7)" style="cursor:pointer" />
|
|
||||||
<img src="${url.context}/yui/img/now.gif" title="This Week" onclick="callLoadersWeekView(0)" style="cursor:pointer" />
|
|
||||||
<img src="${url.context}/yui/img/nextMinor.gif" title="Next Week" onclick="callLoadersWeekView(7)" style="cursor:pointer" />
|
|
||||||
<span id="spnCurrentDisplayWeek"></span>
|
|
||||||
</div>
|
|
||||||
<table id="tabWeekViewMain" border="0" cellpadding="2" cellspacing="2" width="100%">
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<span id="spnCurrentDisplayWeekWeekView"></span>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div id="divWeekView">
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- End Show and Capture Week View Events -->
|
|
||||||
|
|
||||||
<!-- Start Show and Capture Day View Events -->
|
|
||||||
<div id="showDayEvents">
|
|
||||||
<BR>
|
|
||||||
<div style="text-align:center">
|
|
||||||
<img src="${url.context}/yui/img/prevMinor.gif" title="Previous Day" onclick="callLoadersDayView(-1)" style="cursor:pointer" />
|
|
||||||
<img src="${url.context}/yui/img/now.gif" title="Today" onclick="callLoadersDayView(0)" style="cursor:pointer" />
|
|
||||||
<img src="${url.context}/yui/img/nextMinor.gif" title="Next Day" onclick="callLoadersDayView(1)" style="cursor:pointer" />
|
|
||||||
<span id="spnCurrentDisplayDay"></span>
|
|
||||||
</div>
|
|
||||||
<table id="tabDayViewMain" border="0" cellpadding="2" cellspacing="2" width="100%">
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<span id="spnCurrentDisplayDayDayView"></span>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div id="divDayView">
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- End Show and Capture Day View Events -->
|
|
||||||
|
|
||||||
<!-- Start Create/Edit Events -->
|
|
||||||
<div id="eventCapture">
|
|
||||||
<BR>
|
|
||||||
<div id="cal1Container" style="display:none; position:absolute"></div>
|
|
||||||
<input type="hidden" id="hidFromDate"/>
|
|
||||||
<input type="hidden" id="hidToDate"/>
|
|
||||||
<table id="tabEventCapture" border="0" cellpadding="4" cellspacing="1" width="100%">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th colspan="2">Enter Event Information<span id="spnEventCapture"></span></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tr class='alternateRow'>
|
|
||||||
<td>What *</td>
|
|
||||||
<td><input type="text" id="txtWhatEvent" /></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>When *</td>
|
|
||||||
<td>
|
|
||||||
<input type="text" id="txtFromDate" readonly="readonly" onfocus="ToggleCalendar(1, this)" />
|
|
||||||
<select id="lstFromTime"></select>
|
|
||||||
to
|
|
||||||
<input type="text" id="txtToDate" readonly="readonly" onfocus="ToggleCalendar(1, this)" />
|
|
||||||
<select id="lstToTime"></select>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class='alternateRow'>
|
|
||||||
<td>Where</td>
|
|
||||||
<td><input type="text" id="txtWhereEvent" /></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Description</td>
|
|
||||||
<td><textarea id="txtDescriptionEvent" rows="4" cols="50"></textarea></td>
|
|
||||||
</tr>
|
|
||||||
<tr style="display: none;">
|
|
||||||
<td>Color</td>
|
|
||||||
<td><input type="text" size="10" maxlength="7" id="txtColor" readonly="readonly"><input type="button" class="buttonStyle" value="Color picker" onclick="showColorWindow('txtColor')"></td>
|
|
||||||
</tr>
|
|
||||||
<tr class='alternateRow'>
|
|
||||||
<td></td>
|
|
||||||
<td><input class="buttonStyle" type="button" id="btnSubmit" value="Submit" onclick="saveCalendarEvent(false)" /><input class="buttonStyle" type="button" id="btnReset" value="New" onclick="resetEventDetails()" /><input class="buttonStyle" type="button" id="btnDelete" value="Delete" onclick="saveCalendarEvent(true)" /></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- End Create/Edit Events -->
|
|
||||||
<!-- Start calendar subscription -->
|
|
||||||
<div id="calendarSubscribe">
|
|
||||||
|
|
||||||
<script language="JavaScript">
|
|
||||||
|
|
||||||
function colorHandler(o) {
|
|
||||||
// Success
|
|
||||||
};
|
|
||||||
|
|
||||||
function colorFailureHandler(o) {
|
|
||||||
alert("Failed to set color");
|
|
||||||
};
|
|
||||||
|
|
||||||
// Color picker functions
|
|
||||||
function pickColor(color) {
|
|
||||||
document.getElementById("color2").style.background = color;
|
|
||||||
// Update the calendar color property
|
|
||||||
var params = new Array();
|
|
||||||
params[0] = "ref=" + spaceRef;
|
|
||||||
params[1] = "color=" + escape(color);
|
|
||||||
var url = getContextPath() + "/wcservice/camden/setColor";
|
|
||||||
var colorCallback = {
|
|
||||||
success:colorHandler,
|
|
||||||
failure:colorFailureHandler,
|
|
||||||
argument: { foo:"foo", bar:"bar" }
|
|
||||||
};
|
|
||||||
var request = YAHOO.util.Connect.asyncRequest("POST", url + "?" + params.join("&"), colorCallback, null);
|
|
||||||
};
|
|
||||||
|
|
||||||
var picker = new ColorPicker();
|
|
||||||
</script>
|
|
||||||
</div> <!-- end of calendar subscription -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Calendar Summary</shortname>
|
|
||||||
<description>Collaboration Calendar Summary</description>
|
|
||||||
<url>/collaboration/calendarSummary?nodeRef={noderef}</url>
|
|
||||||
<format default="html"/>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,2 +0,0 @@
|
|||||||
${calendarSummary.thisWeek} events this week<br>
|
|
||||||
${calendarSummary.nextWeek} events next week
|
|
@@ -1,56 +0,0 @@
|
|||||||
/*
|
|
||||||
* calendarSummary
|
|
||||||
*
|
|
||||||
* Inputs:
|
|
||||||
* nodeRef = Calendar space nodeRef
|
|
||||||
*
|
|
||||||
* Outputs:
|
|
||||||
* calendarSummary - object containing
|
|
||||||
* eventsthis - Number of events occuring this
|
|
||||||
* eventsTomorrow - Number of events occuring tomorrow
|
|
||||||
*/
|
|
||||||
model.calendarSummary = main(args["nodeRef"]);
|
|
||||||
|
|
||||||
function main(nodeRef)
|
|
||||||
{
|
|
||||||
var thisWeek = 0,
|
|
||||||
nextWeek = 0;
|
|
||||||
|
|
||||||
if (nodeRef != null)
|
|
||||||
{
|
|
||||||
var calSpace = search.findNode(nodeRef);
|
|
||||||
if (calSpace != null)
|
|
||||||
{
|
|
||||||
// generate lucene PATH to calendar events
|
|
||||||
var path = calSpace.qnamePath + "/cm:CalEvents/*";
|
|
||||||
|
|
||||||
// find the events scheduled for this week
|
|
||||||
var fromDate = new Date();
|
|
||||||
// go back to previous Sunday
|
|
||||||
fromDate.setDate(fromDate.getDate() - fromDate.getDay());
|
|
||||||
var fromQuery = fromDate.getFullYear() + "\\-" + (fromDate.getMonth()+1) + "\\-" + fromDate.getDate();
|
|
||||||
var toDate = new Date();
|
|
||||||
toDate.setDate(fromDate.getDate() + 7);
|
|
||||||
var toQuery = toDate.getFullYear() + "\\-" + (toDate.getMonth()+1) + "\\-" + toDate.getDate();
|
|
||||||
var events = search.luceneSearch("+PATH:\"" + path + '"' +
|
|
||||||
" +@ia\\:fromDate:[" + fromQuery + "T00\\:00\\:00 TO " + toQuery + "T23\\:59\\:59]");
|
|
||||||
thisWeek = events.length;
|
|
||||||
|
|
||||||
// increment to and from dates to cover next week
|
|
||||||
fromDate.setDate(toDate.getDate());
|
|
||||||
fromQuery = fromDate.getFullYear() + "\\-" + (fromDate.getMonth()+1) + "\\-" + fromDate.getDate();
|
|
||||||
toDate.setDate(toDate.getDate() + 7);
|
|
||||||
toQuery = toDate.getFullYear() + "\\-" + (toDate.getMonth()+1) + "\\-" + toDate.getDate();
|
|
||||||
events = search.luceneSearch("+PATH:\"" + path + '"' +
|
|
||||||
" +@ia\\:fromDate:[" + fromQuery + "T00\\:00\\:00 TO " + toQuery + "T23\\:59\\:59]");
|
|
||||||
nextWeek = events.length;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var calendarSummary =
|
|
||||||
{
|
|
||||||
"thisWeek": thisWeek,
|
|
||||||
"nextWeek": nextWeek
|
|
||||||
};
|
|
||||||
return calendarSummary
|
|
||||||
}
|
|
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Colleague Presence Custom View</shortname>
|
|
||||||
<description>Collaboration Colleague Presence view</description>
|
|
||||||
<url>/collaboration/colleaguePresence?nodeRef={noderef}</url>
|
|
||||||
<format default="html"/>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,119 +0,0 @@
|
|||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/project_presence.js"></script>
|
|
||||||
|
|
||||||
<div class="collabHeader">
|
|
||||||
<span>
|
|
||||||
<img id="refreshColleagues" src="${url.context}/images/icons/reset.gif" align="top" alt="Refresh">
|
|
||||||
Colleagues Online
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="colleagueList" rel="${colleaguePresence.colleagues?size}">
|
|
||||||
<div id="colleaguesOnline">
|
|
||||||
</div>
|
|
||||||
<div id="colleaguesNotOnline">
|
|
||||||
<#list colleaguePresence.colleagues?keys as key>
|
|
||||||
<#assign c = colleaguePresence.colleagues[key]>
|
|
||||||
<div class="colleagueRow"<#if c.nodeRef = colleaguePresence.self.nodeRef>rel="self"</#if>>
|
|
||||||
<div class="colleagueAvatar">
|
|
||||||
<#if (c.assocs["cm:avatar"]?exists)>
|
|
||||||
<#assign avatarURL = c.assocs["cm:avatar"][0].url>
|
|
||||||
<#else>
|
|
||||||
<#assign avatarURL = "images/icons/default_avatar.png">
|
|
||||||
</#if>
|
|
||||||
<img src="${url.context}/${avatarURL}" height="48" width="48" alt="avatar">
|
|
||||||
<div class="colleaguePresence" rel="${c.properties["presenceProvider"]!""}|${c.properties["presenceUsername"]!""}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="colleagueDetails">
|
|
||||||
<div class="colleagueName">${c.properties["firstName"]!""} ${c.properties["lastName"]!""}</div>
|
|
||||||
<div class="colleagueDetail">${c.properties["jobtitle"]!""}</div>
|
|
||||||
<div class="colleagueDetail">${c.properties["location"]!""}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="collabFooter">
|
|
||||||
<span> </span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/* Colleague Status */
|
|
||||||
#refreshColleagues {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.colleagueList {
|
|
||||||
border-left: 1px solid #CACFD3;
|
|
||||||
border-right: 1px solid #CACFD3;
|
|
||||||
height: 297px;
|
|
||||||
overflow-x: hidden;
|
|
||||||
overflow-y: scroll;
|
|
||||||
}
|
|
||||||
|
|
||||||
#colleaguesOnline {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
#colleaguesNotOnline {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.colleagueRow {
|
|
||||||
clear: both;
|
|
||||||
float: left;
|
|
||||||
min-height: 56px;
|
|
||||||
padding: 8px 8px 0px;
|
|
||||||
width: 208px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.colleagueAvatar {
|
|
||||||
float: left;
|
|
||||||
position: relative;
|
|
||||||
height: 48px;
|
|
||||||
width: 48px;
|
|
||||||
padding-right: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.colleaguePresence {
|
|
||||||
background-image: url(${url.context}/images/icons/ajax_anim.gif);
|
|
||||||
position: absolute;
|
|
||||||
left: 32px;
|
|
||||||
top: 32px;
|
|
||||||
height: 16px;
|
|
||||||
width: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.colleaguePresence.skype-online
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/presence_skype_online.png) !important;
|
|
||||||
}
|
|
||||||
.colleaguePresence.skype-offline
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/presence_skype_offline.png) !important;
|
|
||||||
}
|
|
||||||
.colleaguePresence.yahoo-online
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/presence_yahoo_online.png) !important;
|
|
||||||
}
|
|
||||||
.colleaguePresence.yahoo-offline
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/presence_yahoo_offline.png) !important;
|
|
||||||
}
|
|
||||||
.colleaguePresence.unknown, .colleaguePresence.skype-unknown, .colleaguePresence.yahoo-unknown
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/presence_status_unknown.png) !important;
|
|
||||||
}
|
|
||||||
.colleaguePresence.none
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/presence_status_none.png) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.colleagueDetails {
|
|
||||||
}
|
|
||||||
|
|
||||||
.colleagueName {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.colleagueDetail {
|
|
||||||
}
|
|
||||||
</style>
|
|
@@ -1,68 +0,0 @@
|
|||||||
/*
|
|
||||||
* colleaguePresence
|
|
||||||
*
|
|
||||||
* Inputs:
|
|
||||||
* mandatory: nodeRef = parent space nodeRef
|
|
||||||
*
|
|
||||||
* Outputs: colleaguePresence - object containing presence data model
|
|
||||||
*/
|
|
||||||
model.colleaguePresence = main(args["nodeRef"]);
|
|
||||||
|
|
||||||
function main(nodeRef)
|
|
||||||
{
|
|
||||||
var space = search.findNode(nodeRef);
|
|
||||||
var colleagues = {};
|
|
||||||
|
|
||||||
if (space != null)
|
|
||||||
{
|
|
||||||
colleagues = parsePermissions(space);
|
|
||||||
}
|
|
||||||
|
|
||||||
var colleaguePresence =
|
|
||||||
{
|
|
||||||
"colleagues": colleagues,
|
|
||||||
"self": person
|
|
||||||
};
|
|
||||||
return colleaguePresence;
|
|
||||||
}
|
|
||||||
|
|
||||||
function parsePermissions(space)
|
|
||||||
{
|
|
||||||
var tokens, user, group;
|
|
||||||
var userHash = {};
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
for each(perm in space.permissions)
|
|
||||||
{
|
|
||||||
tokens = perm.split(";");
|
|
||||||
if (tokens[0] == "ALLOWED")
|
|
||||||
{
|
|
||||||
if (("AllCollaboratorContributorCoordinatorEditor").indexOf(tokens[2]) != -1)
|
|
||||||
{
|
|
||||||
user = people.getPerson(tokens[1]);
|
|
||||||
if (user != null)
|
|
||||||
{
|
|
||||||
userHash[user.name] = user;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
group = people.getGroup(tokens[1]);
|
|
||||||
if (group != null)
|
|
||||||
{
|
|
||||||
for each(user in people.getMembers(group))
|
|
||||||
{
|
|
||||||
userHash[user.name] = user;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
return userHash;
|
|
||||||
}
|
|
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>DocLib Custom View</shortname>
|
|
||||||
<description>Collaboration Document Library view</description>
|
|
||||||
<url>/collaboration/docLibrary?nodeRef={noderef}</url>
|
|
||||||
<format default="html"/>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,120 +0,0 @@
|
|||||||
<#assign doclib = companyhome.nodeByReference[args["nodeRef"]]>
|
|
||||||
<#assign datetimeformat="EEE, dd MMM yyyy HH:mm">
|
|
||||||
<div id="collabContainer">
|
|
||||||
|
|
||||||
<div class="collabHeader">
|
|
||||||
<span>Recent Changes</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" cellspacing="0">
|
|
||||||
<tr valign="top">
|
|
||||||
<td width="1" style="background-color:#b9bec4;"></td>
|
|
||||||
<td>
|
|
||||||
|
|
||||||
<div class="collabContent">
|
|
||||||
|
|
||||||
<#assign count=0>
|
|
||||||
<#list doclib.childrenByXPath[".//*[subtypeOf('cm:content')]"] as c>
|
|
||||||
<#assign count=count+1>
|
|
||||||
<#assign curl=url.serviceContext + c.serviceUrl>
|
|
||||||
<div class="collab${(count%2=0)?string("RowEven", "RowOdd")}">
|
|
||||||
<div style="float:left">
|
|
||||||
<a href="${curl}" target="new"><img src="${url.context}${c.icon32}" width="32" height="32" border="0" alt="${c.name?html}" title="${c.name?html}"></a>
|
|
||||||
</div>
|
|
||||||
<div style="margin-left:36px;padding: 4px 0px 4px 0px">
|
|
||||||
<div>
|
|
||||||
<div class="collabNodeActions">
|
|
||||||
<a href="${url.context}/n/showDocDetails/${c.nodeRef.storeRef.protocol}/${c.nodeRef.storeRef.identifier}/${c.id}" alt="Details" title="Details"><img src="${url.context}/images/icons/View_details.gif" border="0"></a>
|
|
||||||
</div>
|
|
||||||
<a class="collabNodeLink" href="${curl}" target="new">${c.name?html}</a>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span class="metaData"><#if c.properties.description?exists>${c.properties.description?html}</#if></span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<span class="metaTitle">Modified:</span> <span class="metaData">${c.properties.modified?string(datetimeformat)}</span>
|
|
||||||
<span class="metaTitle">Modified By:</span> <span class="metaData">${c.properties.modifier}</span>
|
|
||||||
<span class="metaTitle">Size:</span> <span class="metaData">${(c.size/1000)?string("0.##")} KB</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#list>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td width="1" style="background-color:#b9bec4;"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<div class="collabFooter">
|
|
||||||
<span> </span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/* Main Container elements */
|
|
||||||
#collabContainer {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collabHeader {
|
|
||||||
background: url(${url.context}/images/parts/collab_topleft.png) no-repeat left top;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 0px 0px 2px;
|
|
||||||
}
|
|
||||||
.collabHeader span {
|
|
||||||
background: url(${url.context}/images/parts/collab_topright.png) no-repeat right top;
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
padding: 5px 15px 4px 6px;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 10pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collabContent {
|
|
||||||
padding: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collabFooter {
|
|
||||||
background: url(${url.context}/images/parts/collab_bottomleft.png) no-repeat left top;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 0px 0px 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collabFooter span {
|
|
||||||
background: url(${url.context}/images/parts/collab_bottomright.png) no-repeat right top;
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
padding: 5px 15px 4px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.collabRowOdd {
|
|
||||||
padding: 4px 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.collabRowEven {
|
|
||||||
padding: 4px 2px;
|
|
||||||
background-color: #F1F7FD;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.metaTitle {
|
|
||||||
font-size: 11px;
|
|
||||||
color: #666677;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.metaData {
|
|
||||||
font-size: 11px;
|
|
||||||
color: #515D6B;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.collabNodeLink, a.collabNodeLink:hover {
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.collabNodeActions {
|
|
||||||
float: right;
|
|
||||||
padding: 0px 4px;
|
|
||||||
}
|
|
||||||
</style>
|
|
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Doc Summary</shortname>
|
|
||||||
<description>Collaboration Doc Summary</description>
|
|
||||||
<url>/collaboration/docSummary?nodeRef={noderef}</url>
|
|
||||||
<format default="html"/>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,2 +0,0 @@
|
|||||||
${docSummary.numNew} added in the last 7 days<br>
|
|
||||||
${docSummary.numModified} modified in the last 7 days
|
|
@@ -1,59 +0,0 @@
|
|||||||
/*
|
|
||||||
* docSummary
|
|
||||||
*
|
|
||||||
* Inputs:
|
|
||||||
* nodeRef = doc space nodeRef
|
|
||||||
*
|
|
||||||
* Outputs:
|
|
||||||
* docSummary - object containing
|
|
||||||
* numNew - number new documents added in the last 7 days
|
|
||||||
* numModified - number of documents modified in the last 7 days
|
|
||||||
*/
|
|
||||||
model.docSummary = main(args["nodeRef"]);
|
|
||||||
|
|
||||||
function main(nodeRef)
|
|
||||||
{
|
|
||||||
var numNew = 0,
|
|
||||||
numModified = 0;
|
|
||||||
|
|
||||||
if (nodeRef != null)
|
|
||||||
{
|
|
||||||
var space = search.findNode(nodeRef);
|
|
||||||
|
|
||||||
if (space != null)
|
|
||||||
{
|
|
||||||
// generate lucene PATH to get all child documents
|
|
||||||
var path = space.qnamePath + "//*";
|
|
||||||
|
|
||||||
var date = new Date();
|
|
||||||
var toQuery = date.getFullYear() + "\\-" + (date.getMonth()+1) + "\\-" + date.getDate();
|
|
||||||
date.setDate(date.getDate() - 7);
|
|
||||||
var fromQuery = date.getFullYear() + "\\-" + (date.getMonth()+1) + "\\-" + date.getDate();
|
|
||||||
|
|
||||||
// documents created in the last 7 days
|
|
||||||
var docs = search.luceneSearch("+PATH:\"" + path + "\"" +
|
|
||||||
" +@cm\\:created:[" + fromQuery + "T00\\:00\\:00 TO " + toQuery + "T23\\:59\\:59]");
|
|
||||||
numNew = docs.length;
|
|
||||||
|
|
||||||
// documents modified in the last 7 days
|
|
||||||
docs = search.luceneSearch("+PATH:\"" + path + "\"" +
|
|
||||||
" +@cm\\:modified:[" + fromQuery + "T00\\:00\\:00 TO " + toQuery + "T23\\:59\\:59]");
|
|
||||||
|
|
||||||
numModified = 0;
|
|
||||||
for each(doc in docs)
|
|
||||||
{
|
|
||||||
if (doc.properties["cm:modified"] - doc.properties["cm:created"] > 1000)
|
|
||||||
{
|
|
||||||
++numModified;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var docSummary =
|
|
||||||
{
|
|
||||||
"numNew": numNew,
|
|
||||||
"numModified": numModified
|
|
||||||
};
|
|
||||||
return docSummary;
|
|
||||||
}
|
|
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Email Summary</shortname>
|
|
||||||
<description>Collaboration Email Summary</description>
|
|
||||||
<url>/collaboration/emailSummary?nodeRef={noderef}</url>
|
|
||||||
<format default="html"/>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,2 +0,0 @@
|
|||||||
${emailSummary.numToday} e-mails have arrived today<br>
|
|
||||||
${emailSummary.numWeek} e-mails in the last 7 days
|
|
@@ -1,54 +0,0 @@
|
|||||||
/*
|
|
||||||
* emailSummary
|
|
||||||
*
|
|
||||||
* Inputs:
|
|
||||||
* nodeRef = email space nodeRef
|
|
||||||
*
|
|
||||||
* Outputs:
|
|
||||||
* emailSummary - object containing
|
|
||||||
* numToday - number of articles updated since being published
|
|
||||||
* numWeek - number of unpublished articles
|
|
||||||
*/
|
|
||||||
model.emailSummary = main(args["nodeRef"]);
|
|
||||||
|
|
||||||
function main(nodeRef)
|
|
||||||
{
|
|
||||||
var numToday = 0,
|
|
||||||
numWeek = 0;
|
|
||||||
|
|
||||||
if (nodeRef != null)
|
|
||||||
{
|
|
||||||
var space = search.findNode(nodeRef);
|
|
||||||
|
|
||||||
if (space != null)
|
|
||||||
{
|
|
||||||
// generate lucene PATH to get all child documents
|
|
||||||
var path = space.qnamePath + "//*";
|
|
||||||
|
|
||||||
var date = new Date();
|
|
||||||
var toQuery = date.getFullYear() + "\\-" + (date.getMonth()+1) + "\\-" + date.getDate();
|
|
||||||
var fromQuery = toQuery;
|
|
||||||
|
|
||||||
// emails today
|
|
||||||
var docs = search.luceneSearch("+PATH:\"" + path + "\"" +
|
|
||||||
" +@cm\\:created:[" + fromQuery + "T00\\:00\\:00 TO " + toQuery + "T23\\:59\\:59]");
|
|
||||||
numToday = docs.length;
|
|
||||||
|
|
||||||
date.setDate(date.getDate() - 7);
|
|
||||||
fromQuery = date.getFullYear() + "\\-" + (date.getMonth()+1) + "\\-" + date.getDate();
|
|
||||||
|
|
||||||
// documents modified in the last 7 days
|
|
||||||
docs = search.luceneSearch("+PATH:\"" + path + "\"" +
|
|
||||||
" +@cm\\:modified:[" + fromQuery + "T00\\:00\\:00 TO " + toQuery + "T23\\:59\\:59]");
|
|
||||||
|
|
||||||
numWeek = docs.length;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var emailSummary =
|
|
||||||
{
|
|
||||||
"numToday": numToday,
|
|
||||||
"numWeek": numWeek
|
|
||||||
};
|
|
||||||
return emailSummary;
|
|
||||||
}
|
|
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Forum Summary</shortname>
|
|
||||||
<description>Collaboration Forum Summary</description>
|
|
||||||
<url>/collaboration/forumSummary?nodeRef={noderef}</url>
|
|
||||||
<format default="html"/>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,2 +0,0 @@
|
|||||||
${forumSummary.numPosts} posts in the last 7 days<br>
|
|
||||||
${forumSummary.numTopics} new topics in the last 7 days
|
|
@@ -1,59 +0,0 @@
|
|||||||
/*
|
|
||||||
* forumSummary
|
|
||||||
*
|
|
||||||
* Inputs:
|
|
||||||
* nodeRef = forum space nodeRef
|
|
||||||
*
|
|
||||||
* Outputs:
|
|
||||||
* forumSummary - object containing
|
|
||||||
* numPosts - posts in last 7 days
|
|
||||||
* numTopics - new topics in last 7 days
|
|
||||||
*/
|
|
||||||
model.forumSummary = main(args["nodeRef"]);
|
|
||||||
|
|
||||||
function main(nodeRef)
|
|
||||||
{
|
|
||||||
var numPosts = 0,
|
|
||||||
numTopics = 0;
|
|
||||||
|
|
||||||
if (nodeRef != null)
|
|
||||||
{
|
|
||||||
var space = search.findNode(nodeRef);
|
|
||||||
|
|
||||||
if (space != null)
|
|
||||||
{
|
|
||||||
// generate lucene PATH to get forums
|
|
||||||
var path = space.qnamePath + "//*";
|
|
||||||
|
|
||||||
var date = new Date();
|
|
||||||
var toQuery = date.getFullYear() + "\\-" + (date.getMonth()+1) + "\\-" + date.getDate();
|
|
||||||
date.setDate(date.getDate() - 7);
|
|
||||||
var fromQuery = date.getFullYear() + "\\-" + (date.getMonth()+1) + "\\-" + date.getDate();
|
|
||||||
|
|
||||||
// posts created in the last 7 days
|
|
||||||
var docs = search.luceneSearch("+PATH:\"" + path + "\"" +
|
|
||||||
" +TYPE:\"{http://www.alfresco.org/model/forum/1.0}post\"" +
|
|
||||||
" +@cm\\:created:[" + fromQuery + "T00\\:00\\:00 TO " + toQuery + "T23\\:59\\:59]");
|
|
||||||
numPosts = docs.length;
|
|
||||||
|
|
||||||
// topics created in the last 7 days
|
|
||||||
docs = search.luceneSearch("+PATH:\"" + path + "\"" +
|
|
||||||
" +TYPE:\"{http://www.alfresco.org/model/forum/1.0}topic\"" +
|
|
||||||
" +@cm\\:created:[" + fromQuery + "T00\\:00\\:00 TO " + toQuery + "T23\\:59\\:59]");
|
|
||||||
numTopics = docs.length;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var forumSummary =
|
|
||||||
{
|
|
||||||
"numPosts": numPosts,
|
|
||||||
"numTopics": numTopics
|
|
||||||
};
|
|
||||||
return forumSummary;
|
|
||||||
}
|
|
||||||
|
|
||||||
// var query = "TYPE:\"{http://www.alfresco.org/model/content/1.0}person\"";
|
|
||||||
|
|
||||||
|
|
||||||
// {http://www.alfresco.org/model/forum/1.0}topic
|
|
||||||
// {http://www.alfresco.org/model/forum/1.0}post
|
|
@@ -1,14 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
|
|
||||||
<!-- Details of the web script -->
|
|
||||||
<shortname>Gallery Sample Data</shortname>
|
|
||||||
<description>Returns data used to populate the Flex gallery sample.</description>
|
|
||||||
|
|
||||||
<!-- Web script URL's -->
|
|
||||||
<url>/collaboration/gallery/{noderef}</url>
|
|
||||||
|
|
||||||
<format default="xml">extension</format>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
|
|
||||||
</webscript>
|
|
@@ -1,9 +0,0 @@
|
|||||||
|
|
||||||
var gallery = search.findNode(url.extension);
|
|
||||||
if (gallery == undefined || gallery.isContainer == false)
|
|
||||||
{
|
|
||||||
status.code = 404;
|
|
||||||
status.message = "Gallery " + url.extension + " not found.";
|
|
||||||
status.redirect = true;
|
|
||||||
}
|
|
||||||
model.gallery = gallery;
|
|
@@ -1,21 +0,0 @@
|
|||||||
|
|
||||||
<gallery>
|
|
||||||
<name>${gallery.name}</name>
|
|
||||||
<#list gallery.children as image>
|
|
||||||
<#if image.isDocument>
|
|
||||||
<image>
|
|
||||||
<url>${absurl(url.context)}${image.url}</url>
|
|
||||||
<#if image.properties["cm:title"]?exists>
|
|
||||||
<title>${image.properties["cm:title"]}</title>
|
|
||||||
<#else>
|
|
||||||
<title/>
|
|
||||||
</#if>
|
|
||||||
<#if image.properties["cm:description"]?exists>
|
|
||||||
<description>${image.properties["cm:description"]}</description>
|
|
||||||
<#else>
|
|
||||||
<description/>
|
|
||||||
</#if>
|
|
||||||
</image>
|
|
||||||
</#if>
|
|
||||||
</#list>
|
|
||||||
</gallery>
|
|
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Gallery Summary</shortname>
|
|
||||||
<description>Collaboration Gallery Summary</description>
|
|
||||||
<url>/collaboration/gallerySummary?nodeRef={noderef}</url>
|
|
||||||
<format default="html"/>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,2 +0,0 @@
|
|||||||
${gallerySummary.numNew} added in the last 7 days<br>
|
|
||||||
${gallerySummary.numTotal} images in this gallery
|
|
@@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* gallerySummary
|
|
||||||
*
|
|
||||||
* Inputs:
|
|
||||||
* nodeRef = gallery space nodeRef
|
|
||||||
*
|
|
||||||
* Outputs:
|
|
||||||
* gallerySummary - object containing
|
|
||||||
* numNew - number of new images in the last 7 days
|
|
||||||
* numTotal - total number of images
|
|
||||||
*/
|
|
||||||
model.gallerySummary = main(args["nodeRef"]);
|
|
||||||
|
|
||||||
function main(nodeRef)
|
|
||||||
{
|
|
||||||
var numNew = 0,
|
|
||||||
numTotal = 0;
|
|
||||||
|
|
||||||
if (nodeRef != null)
|
|
||||||
{
|
|
||||||
var space = search.findNode(nodeRef);
|
|
||||||
|
|
||||||
if (space != null)
|
|
||||||
{
|
|
||||||
// generate lucene PATH to all gallery images
|
|
||||||
var path = space.qnamePath + "//*";
|
|
||||||
|
|
||||||
var date = new Date();
|
|
||||||
var toQuery = date.getFullYear() + "\\-" + (date.getMonth()+1) + "\\-" + date.getDate();
|
|
||||||
date.setDate(date.getDate() - 7);
|
|
||||||
var fromQuery = date.getFullYear() + "\\-" + (date.getMonth()+1) + "\\-" + date.getDate();
|
|
||||||
|
|
||||||
// images added in the last 7 days
|
|
||||||
var images = search.luceneSearch("+PATH:\"" + path + "\"" +
|
|
||||||
" +@cm\\:created:[" + fromQuery + "T00\\:00\\:00 TO " + toQuery + "T23\\:59\\:59]");
|
|
||||||
numNew = images.length;
|
|
||||||
|
|
||||||
// total images
|
|
||||||
images = search.luceneSearch("+PATH:\"" + path + "\"");
|
|
||||||
numTotal = images.length;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var gallerySummary =
|
|
||||||
{
|
|
||||||
"numNew": numNew,
|
|
||||||
"numTotal": numTotal
|
|
||||||
};
|
|
||||||
return gallerySummary;
|
|
||||||
}
|
|
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Project Space Custom View</shortname>
|
|
||||||
<description>Collaboration Project Space Space view</description>
|
|
||||||
<url>/collaboration/projectSpace?nodeRef={noderef}</url>
|
|
||||||
<format default="html"/>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,150 +0,0 @@
|
|||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/project_space.js"></script>
|
|
||||||
|
|
||||||
<div class="collabHeader">
|
|
||||||
<span>
|
|
||||||
<img id="refreshProjectSpace" src="${url.context}/images/icons/reset.gif" align="top" alt="Refresh">
|
|
||||||
${projectSpace.title} Summary
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="collabContainer">
|
|
||||||
|
|
||||||
<table width="100%" cellpadding="0" cellspacing="0">
|
|
||||||
<tr valign="top">
|
|
||||||
<td width="1" style="background-color:#cacfd3;"></td>
|
|
||||||
<td>
|
|
||||||
<table width="100%" cellpadding="8" cellspacing="0">
|
|
||||||
<tr valign="top">
|
|
||||||
<td>
|
|
||||||
<#assign panelCount = 0>
|
|
||||||
<#list projectSpace.subSpaces?keys?sort as key>
|
|
||||||
<#assign node = projectSpace.subSpaces[key]>
|
|
||||||
<#assign summary = node.properties["cm:summaryWebscript"]!"">
|
|
||||||
<div class="projectSpace">
|
|
||||||
<span>
|
|
||||||
<a class="projectSpaceArrow" href="${url.context}${node.url}"><img src="${url.context}/images/parts/collab_arrow.png" height="16" width="16" alt=">"></a>
|
|
||||||
<div class="projectSpaceIcon">
|
|
||||||
<a href="${url.context}${node.url}"><img src="${url.context}${node.icon64}" height="64" width="64"></a>
|
|
||||||
</div>
|
|
||||||
<div><a class="projectSpaceTitle" href="${url.context}${node.url}">${node.name}</a></div>
|
|
||||||
<div class="projectSpaceSummary" rel="<#if summary != "">${url.context}${summary}?nodeRef=${node.nodeRef}</#if>"></div>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<#assign panelCount = panelCount + 1>
|
|
||||||
<#if (panelCount % 2 = 0)>
|
|
||||||
<div style="clear:left;"></div>
|
|
||||||
</#if>
|
|
||||||
</#list>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td width="1" style="background-color:#cacfd3;"></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="collabFooter">
|
|
||||||
<span> </span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/* Main Container elements */
|
|
||||||
#projectContainer {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#projectContainer a img {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#projectSummary {
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
#projectColleagues {
|
|
||||||
vertical-align: top;
|
|
||||||
width: 240px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Project Summary */
|
|
||||||
.projectTitle {
|
|
||||||
font-family: "Trebuchet MS", Verdana, Helvetica, sans-serif;
|
|
||||||
font-size: medium;
|
|
||||||
font-weight: bold;
|
|
||||||
margin: -8px 0px 4px;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collabHeader {
|
|
||||||
background: url(${url.context}/images/parts/collab_topleft.png) no-repeat left top;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 0px 0px 2px;
|
|
||||||
}
|
|
||||||
.collabHeader span {
|
|
||||||
background: url(${url.context}/images/parts/collab_topright.png) no-repeat right top;
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
padding: 5px 15px 4px 6px;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 10pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
#refreshProjectSpace {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collabContainer {
|
|
||||||
min-height: 289px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.projectSpace {
|
|
||||||
background: url(${url.context}/images/parts/collab_gradleft.png) no-repeat left top;
|
|
||||||
float: left;
|
|
||||||
margin: 1em 0px;
|
|
||||||
padding: 0px;
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
.projectSpace span {
|
|
||||||
background: url(${url.context}/images/parts/collab_gradright.png) no-repeat right top;
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
margin: 0px 0px 0px 16px;
|
|
||||||
padding: 8px 0px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.projectSpaceArrow {
|
|
||||||
float: right;
|
|
||||||
margin: 0px 16px 0px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.projectSpaceIcon {
|
|
||||||
float: left;
|
|
||||||
padding-right: 8px;
|
|
||||||
}
|
|
||||||
a.projectSpaceTitle:link, a.projectSpaceTitle:visited {
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 10pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.projectSpaceTitle:hover {
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 10pt;
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.projectSpaceSummary {
|
|
||||||
margin: 0px 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collabFooter {
|
|
||||||
background: url(${url.context}/images/parts/collab_bottomleft.png) no-repeat left top;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 0px 0px 4px;
|
|
||||||
}
|
|
||||||
.collabFooter span {
|
|
||||||
background: url(${url.context}/images/parts/collab_bottomright.png) no-repeat right top;
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
padding: 5px 15px 4px 6px;
|
|
||||||
}
|
|
||||||
</style>
|
|
@@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
* projectSpace
|
|
||||||
*
|
|
||||||
* Inputs:
|
|
||||||
* mandatory: nodeRef = parent space nodeRef
|
|
||||||
*
|
|
||||||
* Outputs: projectSpace - object containing pproject space details
|
|
||||||
*/
|
|
||||||
model.projectSpace = main(args["nodeRef"]);
|
|
||||||
|
|
||||||
function main(nodeRef)
|
|
||||||
{
|
|
||||||
var title = "";
|
|
||||||
var subSpaces = {};
|
|
||||||
var space = search.findNode(nodeRef);
|
|
||||||
|
|
||||||
if (space != null)
|
|
||||||
{
|
|
||||||
title = space.name;
|
|
||||||
// Discover the nodeRef of each project subspace
|
|
||||||
for each(node in space.children)
|
|
||||||
{
|
|
||||||
if (node.hasAspect("{http://www.alfresco.org/model/content/1.0}projectsummary"))
|
|
||||||
{
|
|
||||||
subSpaces[node.name] = node;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var projectSpace =
|
|
||||||
{
|
|
||||||
"title": title,
|
|
||||||
"subSpaces": subSpaces
|
|
||||||
};
|
|
||||||
return projectSpace;
|
|
||||||
}
|
|
@@ -1,14 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
|
|
||||||
<!-- Details of the web script -->
|
|
||||||
<shortname>Views the specified gallery</shortname>
|
|
||||||
<description>Views the specified gallery.</description>
|
|
||||||
|
|
||||||
<!-- Web script URL's -->
|
|
||||||
<url>/collaboration/gallery/view/{noderef}</url>
|
|
||||||
|
|
||||||
<format default="html">extension</format>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
|
|
||||||
</webscript>
|
|
@@ -1,28 +0,0 @@
|
|||||||
|
|
||||||
<#assign dataURL=absurl(url.context) + "/wcs/collaboration/gallery/" + path>
|
|
||||||
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body scroll='no' height="100%" width="100%">
|
|
||||||
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
|
|
||||||
id="Flexbook" width="100%" height="100%"
|
|
||||||
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
|
|
||||||
<param name="movie" value="/alfresco/swf/Flexbook.swf?dataURL=${dataURL?url}&ticket=${ticket}" />
|
|
||||||
<param name="quality" value="high" />
|
|
||||||
<param name="bgcolor" value="#282828" />
|
|
||||||
<param name="allowScriptAccess" value="sameDomain" />
|
|
||||||
<embed src="/alfresco/swf/Flexbook.swf?dataURL=${dataURL?url}&ticket=${ticket}" quality="high" bgcolor="#000000"
|
|
||||||
width="100%" height="310" name="Flexbook" align="middle"
|
|
||||||
play="true"
|
|
||||||
loop="false"
|
|
||||||
quality="high"
|
|
||||||
allowScriptAccess="sameDomain"
|
|
||||||
type="application/x-shockwave-flash"
|
|
||||||
pluginspage="http://www.adobe.com/go/getflashplayer">
|
|
||||||
</embed>
|
|
||||||
</object>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@@ -1,3 +0,0 @@
|
|||||||
|
|
||||||
model.ticket = session.ticket;
|
|
||||||
model.path = url.extension;
|
|
@@ -1,72 +0,0 @@
|
|||||||
<#-- get the path location from the passed in args -->
|
|
||||||
<#if args.p?exists><#assign path=args.p><#else><#assign path=""></#if>
|
|
||||||
<#-- see if lucene query specified - this overrides any path argument -->
|
|
||||||
<#if !args.q?exists || args.q?length=0>
|
|
||||||
<#assign query="">
|
|
||||||
<#-- resolve the path (from Company Home) into a node or fall back to userhome-->
|
|
||||||
<#if path?starts_with("/Company Home")>
|
|
||||||
<#if path?length=13>
|
|
||||||
<#assign home=companyhome>
|
|
||||||
<#elseif companyhome.childByNamePath[args.p[14..]]?exists>
|
|
||||||
<#assign home=companyhome.childByNamePath[args.p[14..]]>
|
|
||||||
<#else>
|
|
||||||
<#assign home=userhome>
|
|
||||||
</#if>
|
|
||||||
<#else>
|
|
||||||
<#assign home=userhome>
|
|
||||||
</#if>
|
|
||||||
<#else>
|
|
||||||
<#assign query=args.q>
|
|
||||||
</#if>
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
|
||||||
<channel rdf:about="http://www.alfresco.com/">
|
|
||||||
<title>Alfresco - My Documents</title>
|
|
||||||
<link>${absurl(url.context)}/</link>
|
|
||||||
<description>Alfresco - My Documents</description>
|
|
||||||
<lastBuildDate>${date?string("EEE, dd MMM yyyy HH:mm:ss zzz")}</lastBuildDate>
|
|
||||||
<pubDate>${date?string("EEE, dd MMM yyyy HH:mm:ss zzz")}</pubDate>
|
|
||||||
<generator>Alfresco ${server.edition} v${server.version}</generator>
|
|
||||||
<image>
|
|
||||||
<title>Alfresco - My Documents</title>
|
|
||||||
<url>${absurl(url.context)}/images/logo/AlfrescoLogo200.png</url>
|
|
||||||
</image>
|
|
||||||
<#assign weekms=1000*60*60*24*7>
|
|
||||||
<#assign count=0>
|
|
||||||
<#-- get the filter mode from the passed in args -->
|
|
||||||
<#-- filters: 0=all, 1=word, 2=html, 3=pdf, 4=recent -->
|
|
||||||
<#if args.f?exists && args.f?length!=0><#assign filter=args.f?number><#else><#assign filter=0></#if>
|
|
||||||
<#if home?exists>
|
|
||||||
<#assign docs=home.children?reverse>
|
|
||||||
<#else>
|
|
||||||
<#assign docs=companyhome.childrenByLuceneSearch[query]?sort_by('name')>
|
|
||||||
</#if>
|
|
||||||
<#list docs as d>
|
|
||||||
<#if d.isDocument>
|
|
||||||
<#assign isImage=(d.mimetype="image/gif" || d.mimetype="image/jpeg" || d.mimetype="image/png")>
|
|
||||||
<#assign isMP3=(d.mimetype="audio/x-mpeg" || d.mimetype="audio/mpeg")>
|
|
||||||
<#if (filter=0) ||
|
|
||||||
(filter=1 && d.mimetype="application/msword" || d.mimetype="application/vnd.openxmlformats-officedocument.wordprocessingml.document") ||
|
|
||||||
(filter=2 && d.mimetype="text/html") ||
|
|
||||||
(filter=3 && d.mimetype="application/pdf") ||
|
|
||||||
(filter=4 && (dateCompare(d.properties["cm:modified"],date,weekms) == 1 || dateCompare(d.properties["cm:created"], date, weekms) == 1))>
|
|
||||||
<#assign count=count+1>
|
|
||||||
<item>
|
|
||||||
<title>${d.name?html}</title>
|
|
||||||
<#assign navurl='/navigate/showDocDetails/' + d.nodeRef.storeRef.protocol + '/' + d.nodeRef.storeRef.identifier + '/' + d.nodeRef.id>
|
|
||||||
<link>${absurl(url.context)}${navurl}?ticket=${session.ticket}</link>
|
|
||||||
<#if isMP3>
|
|
||||||
<enclosure url="${absurl(url.context)}${d.url}ticket=${session.ticket}}" length="${d.size?string?replace(",","")}" type="audio/mpeg"/>
|
|
||||||
</#if>
|
|
||||||
<description>
|
|
||||||
<#if isImage><img src="${absurl(url.context)}${d.url}?ticket=${session.ticket}"><br></#if>
|
|
||||||
<#if d.properties.description?exists>${d.properties.description?html}</#if>
|
|
||||||
</description>
|
|
||||||
<pubDate>${d.properties.modified?string("EEE, dd MMM yyyy HH:mm:ss zzz")}</pubDate>
|
|
||||||
<guid isPermaLink="false">${d.id}</guid>
|
|
||||||
</item>
|
|
||||||
</#if>
|
|
||||||
</#if>
|
|
||||||
</#list>
|
|
||||||
</channel>
|
|
||||||
</rss>
|
|
@@ -1,8 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Document List</shortname>
|
|
||||||
<description>Generate the Document list portlet page</description>
|
|
||||||
<url>/ui/doclist?f={filter?}&p={path?}&q={query?}</url>
|
|
||||||
<url>/ui/doclist.atom?f={filter?}&p={path?}&q={query?}</url>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,443 +0,0 @@
|
|||||||
<link rel="stylesheet" href="${url.context}/css/main.css" TYPE="text/css">
|
|
||||||
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/yahoo/yahoo/yahoo-min.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/yahoo/connection/connection-min.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/mootools.v1.11.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/common.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/summary-info.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/doclist.js"></script>
|
|
||||||
<script type="text/javascript">setContextPath('${url.context}');</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// create manager object for the pop-up summary panels
|
|
||||||
var AlfNodeInfoMgr = new Alfresco.PanelManager("NodeInfoBean.sendNodeInfo", "noderef", "portlet_node_summary_panel.ftl");
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<#-- get the filter mode from the passed in args -->
|
|
||||||
<#-- filters: 0=all, 1=word, 2=html, 3=pdf, 4=recent -->
|
|
||||||
<#if args.f?exists && args.f?length!=0><#assign filter=args.f?number><#else><#assign filter=0></#if>
|
|
||||||
|
|
||||||
<#-- get the path location from the passed in args -->
|
|
||||||
<#if args.p?exists><#assign path=args.p><#else><#assign path=""></#if>
|
|
||||||
|
|
||||||
<#-- see if lucene query specified - this overrides any path argument -->
|
|
||||||
<#if !args.q?exists || args.q?length=0>
|
|
||||||
<#assign query="">
|
|
||||||
<#-- resolve the path (from Company Home) into a node or fall back to userhome-->
|
|
||||||
<#assign chLen=companyhome.name?length>
|
|
||||||
<#if path?starts_with("/" + companyhome.name)>
|
|
||||||
<#if path?length=chLen+1>
|
|
||||||
<#assign home=companyhome>
|
|
||||||
<#elseif companyhome.childByNamePath[path[(chLen+2)..]]?exists>
|
|
||||||
<#assign home=companyhome.childByNamePath[path[(chLen+2)..]]>
|
|
||||||
<#else>
|
|
||||||
<#assign home=userhome>
|
|
||||||
</#if>
|
|
||||||
<#else>
|
|
||||||
<#assign home=userhome>
|
|
||||||
</#if>
|
|
||||||
<#else>
|
|
||||||
<#assign query=args.q>
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<table border=0 cellspacing=0 cellpadding=0 class="docTable">
|
|
||||||
<tr>
|
|
||||||
<td class="docHeader">
|
|
||||||
<table border="0" cellspacing="0" cellpadding="0" width="100%">
|
|
||||||
<tr>
|
|
||||||
<th><a id="docFilter0" class="docfilterLink <#if filter=0>docfilterLinkSelected</#if>" href="#" onclick="MyDocs.filter(0); return false;"><span>${message("portlets.doclist.all_items")}</span></a></th>
|
|
||||||
<th><a id="docFilter1" class="docfilterLink <#if filter=1>docfilterLinkSelected</#if>" href="#" onclick="MyDocs.filter(1); return false;"><span>${message("portlets.doclist.word_documents")}</span></a></th>
|
|
||||||
<th><a id="docFilter2" class="docfilterLink <#if filter=2>docfilterLinkSelected</#if>" href="#" onclick="MyDocs.filter(2); return false;"><span>${message("portlets.doclist.html_documents")}</span></a></th>
|
|
||||||
<th><a id="docFilter3" class="docfilterLink <#if filter=3>docfilterLinkSelected</#if>" href="#" onclick="MyDocs.filter(3); return false;"><span>${message("portlets.doclist.pdf_documents")}</span></a></th>
|
|
||||||
<th><a id="docFilter4" class="docfilterLink <#if filter=4>docfilterLinkSelected</#if>" href="#" onclick="MyDocs.filter(4); return false;"><span>${message("portlets.doclist.recently_modified")}</span></a></th>
|
|
||||||
<th align=right>
|
|
||||||
<a href="#" onclick="MyDocs.refreshList(); return false;" class="docRefreshViewLink"><img src="${url.context}/images/icons/reset.gif" border="0" width="16" height="16" style="vertical-align:-25%;padding-right:4px">${message("portlets.refresh")}</a>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div id="docUpdatePanel">
|
|
||||||
<input class="docFormItem" type="button" value="${message('portlets.button.ok')}" onclick="MyDocs.updateOK(this);">
|
|
||||||
<input class="docFormItem" type="button" value="${message('portlets.button.cancel')}" onclick="MyDocs.closePopupPanel();">
|
|
||||||
</div>
|
|
||||||
<div id="docPanelOverlay"></div>
|
|
||||||
<div id="docPanelOverlayAjax"></div>
|
|
||||||
<div id="docPanel">
|
|
||||||
<#-- populated via an AJAX call to 'doclistpanel' webscript -->
|
|
||||||
<#-- resolved path, filter and home.noderef required as arguments -->
|
|
||||||
<script>
|
|
||||||
MyDocs.ServiceContext="${url.serviceContext}";
|
|
||||||
MyDocs.Filter="${filter}";
|
|
||||||
<#if home?exists>MyDocs.Home="${home.nodeRef}";</#if>
|
|
||||||
MyDocs.Query="${query?replace("\"","\\\"")}";
|
|
||||||
</script>
|
|
||||||
</div>
|
|
||||||
<div id="docMessagePanel">
|
|
||||||
<div class="docMessagePanelClose"><img id="docMessagePanelCloseImage" src="${url.context}/images/icons/close_portlet_static.gif" onclick="MyDocs.closeMessage();" /></div>
|
|
||||||
<div class="docMessagePanelLabel"></div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="docFooter">
|
|
||||||
<span class="docFooterText" id="docCount" />
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
a.docfilterLink, a.docfilterLink:hover
|
|
||||||
{
|
|
||||||
color: #8EA1B3 !important;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif !important;
|
|
||||||
font-size: 12px !important;
|
|
||||||
font-weight: bold !important;
|
|
||||||
text-decoration: none !important;
|
|
||||||
padding: 8px 4px 16px;
|
|
||||||
outline: none;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.docfilterLink:hover span
|
|
||||||
{
|
|
||||||
color: #168ECE;
|
|
||||||
background-color: #EEF7FB;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.docfilterLinkSelected
|
|
||||||
{
|
|
||||||
background: transparent url("${url.context}/images/parts/doclist_item_marker.png") no-repeat scroll center 29px !important;
|
|
||||||
padding-bottom: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.docfilterLinkSelected:link, a.docfilterLinkSelected:visited
|
|
||||||
{
|
|
||||||
color: #0085CA;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docTable
|
|
||||||
{
|
|
||||||
background-color: #FFFFFF;
|
|
||||||
border: 1px solid #CCD4DB;
|
|
||||||
}
|
|
||||||
|
|
||||||
#docPanel
|
|
||||||
{
|
|
||||||
height: 320px;
|
|
||||||
width: 716px;
|
|
||||||
overflow: none;
|
|
||||||
overflow-y: scroll;
|
|
||||||
border-top: 1px solid #CCD4DB;
|
|
||||||
border-bottom: 1px solid #CCD4DB;
|
|
||||||
visibility: hidden;
|
|
||||||
scrollbar-face-color: #fafdfd;
|
|
||||||
scrollbar-3dlight-color: #d2dde0;
|
|
||||||
scrollbar-highlight-color: #d2dde0;
|
|
||||||
scrollbar-shadow-color: #c3cdd0;
|
|
||||||
scrollbar-darkshadow-color: #c3cdd0;
|
|
||||||
scrollbar-arrow-color: #239ad7;
|
|
||||||
scrollbar-track-color: #ecf1f2;
|
|
||||||
}
|
|
||||||
|
|
||||||
#docPanelOverlay
|
|
||||||
{
|
|
||||||
background-color: #fff;
|
|
||||||
position: absolute;
|
|
||||||
height: 320px;
|
|
||||||
width: 716px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#docPanelOverlayAjax
|
|
||||||
{
|
|
||||||
background-color: #fff;
|
|
||||||
background-image: url(${url.context}/images/icons/ajax_anim.gif);
|
|
||||||
background-position: center;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
position: absolute;
|
|
||||||
height: 320px;
|
|
||||||
width: 716px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docRow
|
|
||||||
{
|
|
||||||
padding-top: 4px;
|
|
||||||
}
|
|
||||||
.docRowOdd
|
|
||||||
{
|
|
||||||
background-color: #F1F7FD;
|
|
||||||
}
|
|
||||||
.docRowEven
|
|
||||||
{
|
|
||||||
background-color: #FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docHeader
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/parts/doclist_headerbg.png);
|
|
||||||
height: 40px;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docHeader th
|
|
||||||
{
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docFooter
|
|
||||||
{
|
|
||||||
height: 34px;
|
|
||||||
width: 716px;
|
|
||||||
padding: 0px;
|
|
||||||
border: 1px solid #F8FCFD;
|
|
||||||
background-image: url(${url.context}/images/parts/doclist_footerbg.png);
|
|
||||||
text-align: center;
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docFooterText
|
|
||||||
{
|
|
||||||
display: block;
|
|
||||||
margin-top: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.docItem, a.docItem:hover
|
|
||||||
{
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif !important;
|
|
||||||
font-size: 14px !important;
|
|
||||||
color: #515D6B !important;
|
|
||||||
padding: 0px 8px 6px 8px;
|
|
||||||
text-decoration: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docIcon
|
|
||||||
{
|
|
||||||
float: left;
|
|
||||||
padding-left: 16px;
|
|
||||||
padding-top: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docInfo
|
|
||||||
{
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docDetail
|
|
||||||
{
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
color: #000000;
|
|
||||||
display: none;
|
|
||||||
overflow: hidden;
|
|
||||||
padding-left: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docItemSelected
|
|
||||||
{
|
|
||||||
background: #CCE7F3 url("${url.context}/images/parts/doclist_arrow_down.png") no-repeat right top;
|
|
||||||
border-bottom: 1px solid #0092DD !important;
|
|
||||||
border-top: 1px solid #0092DD !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docItemSelectedOpen
|
|
||||||
{
|
|
||||||
background-image: url("${url.context}/images/parts/doclist_arrow_up.png") !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docResource
|
|
||||||
{
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
background-color: #bad7e4;
|
|
||||||
color: #000000;
|
|
||||||
margin: 0px;
|
|
||||||
border-top: 1px dotted #0092dd;
|
|
||||||
visibility: hidden;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docMetadata
|
|
||||||
{
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docMetaprop
|
|
||||||
{
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-weight: bolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docPreview
|
|
||||||
{
|
|
||||||
background-color: #ddebf2;
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
overflow: hidden;
|
|
||||||
height: 140px;
|
|
||||||
width: 406px;
|
|
||||||
border: 1px solid #75badd;
|
|
||||||
padding: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docAction
|
|
||||||
{
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 9pt;
|
|
||||||
font-weight: bolder;
|
|
||||||
background-color: #c3dce7;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: left;
|
|
||||||
width: 87px;
|
|
||||||
height: 20px;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
padding: 10px 0px 8px 36px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionCheckout
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_checkout.png);
|
|
||||||
border-bottom: none;
|
|
||||||
border-right: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionCheckin
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_checkin.png);
|
|
||||||
border-bottom: none;
|
|
||||||
border-right: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionLocked
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_locked.png) !important;
|
|
||||||
cursor: default !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionEditDetails
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_edit.png);
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionUpdate
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_update.png);
|
|
||||||
border-bottom: none;
|
|
||||||
border-right: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionViewContent
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_view.png);
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionDelete
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_delete.png);
|
|
||||||
border-right: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionMoreActions
|
|
||||||
{
|
|
||||||
padding-left: 20px;
|
|
||||||
padding-right: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docListAjaxWait
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/ajax_anim.gif);
|
|
||||||
background-position: center;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
width: 696px;
|
|
||||||
height: 150px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.docRefreshViewLink
|
|
||||||
{
|
|
||||||
padding: 8px 4px 0px 0px;
|
|
||||||
display: block;
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.docRefreshViewLink:link, a.docRefreshViewLink:visited, a.docRefreshViewLink:hover
|
|
||||||
{
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
color: #515D6B;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#docUpdatePanel
|
|
||||||
{
|
|
||||||
position: absolute;
|
|
||||||
border: 1px solid #CCD4DB;
|
|
||||||
background-color: #EEF7FB;
|
|
||||||
width: 24em;
|
|
||||||
height: 5em;
|
|
||||||
padding: 8px;
|
|
||||||
margin: 8px;
|
|
||||||
display: none;
|
|
||||||
z-index: 1;
|
|
||||||
-moz-border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docFormItem
|
|
||||||
{
|
|
||||||
margin: 4px;
|
|
||||||
padding: 2px;
|
|
||||||
background-color: #F8FCFD;
|
|
||||||
border: 1px solid #CCD4DB;
|
|
||||||
}
|
|
||||||
|
|
||||||
#docMessagePanel
|
|
||||||
{
|
|
||||||
position: absolute;
|
|
||||||
border: 1px solid #65696C;
|
|
||||||
background-color: #eeeeee;
|
|
||||||
width: 250px;
|
|
||||||
height: 72px;
|
|
||||||
padding: 8px;
|
|
||||||
margin-left: 440px;
|
|
||||||
display: none;
|
|
||||||
z-index: 1;
|
|
||||||
-moz-border-radius: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docMessagePanelClose
|
|
||||||
{
|
|
||||||
margin: -4px -4px 2px 2px;
|
|
||||||
float:right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#docMessagePanelCloseImage
|
|
||||||
{
|
|
||||||
cursor: pointer;
|
|
||||||
display: block;
|
|
||||||
height: 23px;
|
|
||||||
width: 23px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docMessagePanelLabel
|
|
||||||
{
|
|
||||||
color: #45494C;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
</style>
|
|
@@ -1,7 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>Document List Panel</shortname>
|
|
||||||
<description>Generate the inner panel for the Document List portlet page</description>
|
|
||||||
<url>/ui/doclistpanel?f={filter}&p={path}&h={home};q={query?}</url>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,56 +0,0 @@
|
|||||||
<#assign weekms=1000*60*60*24*7>
|
|
||||||
<#assign count=0>
|
|
||||||
<#-- get the filter mode from the passed in args -->
|
|
||||||
<#-- filters: 0=all, 1=word, 2=html, 3=pdf, 4=recent -->
|
|
||||||
<#if args.f?exists && args.f?length!=0><#assign filter=args.f?number><#else><#assign filter=0></#if>
|
|
||||||
<#if args.h?exists>
|
|
||||||
<#assign docs=companyhome.nodeByReference[args.h].children?sort_by('name')>
|
|
||||||
<#else>
|
|
||||||
<#assign docs=companyhome.childrenByLuceneSearch[args.q]?sort_by('name')>
|
|
||||||
</#if>
|
|
||||||
<#list docs as d>
|
|
||||||
<#if d.isDocument>
|
|
||||||
<#if (filter=0) ||
|
|
||||||
(filter=1 && (d.mimetype="application/msword" || d.mimetype="application/vnd.openxmlformats-officedocument.wordprocessingml.document")) ||
|
|
||||||
(filter=2 && d.mimetype="text/html") ||
|
|
||||||
(filter=3 && d.mimetype="application/pdf") ||
|
|
||||||
(filter=4 && (dateCompare(d.properties["cm:modified"],date,weekms) == 1 || dateCompare(d.properties["cm:created"], date, weekms) == 1))>
|
|
||||||
<#assign count=count+1>
|
|
||||||
<div class="docRow docRow${(count % 2 = 0)?string("Odd", "Even")}" id="${d.id}">
|
|
||||||
<div class="docIcon">
|
|
||||||
<a href="${url.context}${d.url}" target="new"><img class="docIconImage" alt="" width="16" height="16" src="${url.context}${d.icon16?replace(".gif",".png")}" border=0></a>
|
|
||||||
</div>
|
|
||||||
<div style="display:none"><img class="docIconImage64" alt="" width="64" height="64" src="${url.context}${d.icon64}"></div>
|
|
||||||
<div>
|
|
||||||
<a class="docItem" href="${url.context}${d.url}" target="new">${d.name?html}</a>
|
|
||||||
<span class="docInfo" onclick="event.cancelBubble=true; AlfNodeInfoMgr.toggle('${d.nodeRef}',this);">
|
|
||||||
<img src="${url.context}/images/icons/popup.gif" class="popupImage" width="16" height="16" />
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="docDetail">
|
|
||||||
<table cellpadding="2" cellspacing="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<span class="docMetaprop">${message("portlets.panel.description")}:</span> <span class="docMetadata"><#if d.properties.description?exists>${d.properties.description?html}<#else> </#if></span><br />
|
|
||||||
<span class="docMetaprop">${message("portlets.panel.modified")}:</span> <span class="docMetadata">${d.properties.modified?datetime}</span><br />
|
|
||||||
<span class="docMetaprop">${message("portlets.panel.modified_by")}:</span> <span class="docMetadata">${d.properties.modifier}</span>
|
|
||||||
</td>
|
|
||||||
<td width="24"> </td>
|
|
||||||
<td>
|
|
||||||
<span class="docMetaprop">${message("portlets.panel.created")}:</span> <span class="docMetadata">${d.properties.created?datetime}</span><br />
|
|
||||||
<span class="docMetaprop">${message("portlets.panel.created_by")}:</span> <span class="docMetadata">${d.properties.creator}</span><br />
|
|
||||||
<span class="docMetaprop">${message("portlets.panel.size")}:</span> <span class="docMetadata">${(d.size/1000)?string("0.##")} ${message("portlets.panel.kb")}</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="docResource doclistAjaxWait" id="${d.nodeRef}"></div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
</#if>
|
|
||||||
</#list>
|
|
||||||
<#-- hidden div with the count value for the page -->
|
|
||||||
<div id="docCountValue" style="display:none">${message("portlets.message.showing_items", count)}</div>
|
|
||||||
<#-- hidden div with the error message -->
|
|
||||||
<div id="displayTheError" style="display:none">${message("portlets.error.data_currently_unavailable")}</div>
|
|
||||||
<div id="previewCurrentlyUnavailable" style="display:none">${message("portlets.preview_currently_unavailable")}</div>
|
|
@@ -1,7 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>My Spaces</shortname>
|
|
||||||
<description>Generate the My Spaces portlet page</description>
|
|
||||||
<url>/ui/myspaces?f={filter?}&p={path?}</url>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,565 +0,0 @@
|
|||||||
<link rel="stylesheet" href="${url.context}/css/main.css" TYPE="text/css">
|
|
||||||
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/yahoo/yahoo/yahoo-min.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/yahoo/connection/connection-min.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/mootools.v1.11.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/common.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/summary-info.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/myspaces.js"></script>
|
|
||||||
<script type="text/javascript">setContextPath('${url.context}');</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// create manager object for the pop-up summary panels
|
|
||||||
var AlfNodeInfoMgr = new Alfresco.PanelManager("NodeInfoBean.sendNodeInfo", "noderef", "portlet_node_summary_panel.ftl");
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<#-- get the filter mode from the passed in args -->
|
|
||||||
<#-- filters: 0=all, 1=spaces, 2=docs, 3=mine, 4=recent -->
|
|
||||||
<#if args.f?exists && args.f?length!=0><#assign filter=args.f?number><#else><#assign filter=0></#if>
|
|
||||||
|
|
||||||
<#-- get the path location from the passed in args, remove trailing slash -->
|
|
||||||
<#if args.p?exists><#assign path=args.p><#else><#assign path=""></#if>
|
|
||||||
<#if path?ends_with("/")><#assign path=path[0..path?length-2]></#if>
|
|
||||||
<#-- resolve the path (from Company Home) into a node or fall back to userhome-->
|
|
||||||
<#assign chLen=companyhome.name?length>
|
|
||||||
<#if path?starts_with("/" + companyhome.name)>
|
|
||||||
<#if path?length=chLen+1>
|
|
||||||
<#assign home=companyhome>
|
|
||||||
<#elseif companyhome.childByNamePath[path[(chLen+2)..]]?exists>
|
|
||||||
<#assign home=companyhome.childByNamePath[path[(chLen+2)..]]>
|
|
||||||
<#else>
|
|
||||||
<#assign home=userhome>
|
|
||||||
</#if>
|
|
||||||
<#else>
|
|
||||||
<#assign home=userhome>
|
|
||||||
</#if>
|
|
||||||
<#assign path=home.displayPath + "/" + home.name>
|
|
||||||
|
|
||||||
<div class="spaceTable">
|
|
||||||
<div class="spaceBreadcrumb">
|
|
||||||
<#-- construct breadcrumb elements as links -->
|
|
||||||
<#assign bcpath="/">
|
|
||||||
<#assign crumbs=path?split("/")>
|
|
||||||
<#list crumbs as c>
|
|
||||||
<#if c?length != 0>
|
|
||||||
<#assign bcpath=bcpath+c+"/">
|
|
||||||
<a class="spaceBreadcrumbLink<#if c_index = (crumbs?size - 1)> spaceCurrentSpace</#if>" href="${scripturl("?f=${filter}&p=${bcpath?url}")}"><img src="${url.context}/images/icons/space-icon-default-16.png" border="0" width="16" height="16" alt="" style="vertical-align:-25%;margin-right:4px">${c}</a>
|
|
||||||
<#if c_index < (crumbs?size - 1)> > </#if>
|
|
||||||
</#if>
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
<div class="spaceToolbar">
|
|
||||||
<#-- TODO: permission checks on the actions! -->
|
|
||||||
<#-- Upload File action -->
|
|
||||||
<div class="spaceToolbarAction spaceToolbarActionUpload" title="${message('portlets.myspaces.upload.title')}" <#if home.hasPermission("CreateChildren")>onclick="MySpaces.upload(this);"</#if>>${message("portlets.myspaces.upload")}</div>
|
|
||||||
<div class="spaceUploadPanel">
|
|
||||||
<#-- Url encode the path value, and encode any single quotes to generate valid string -->
|
|
||||||
<input class="spaceFormItem" type="button" value="${message('portlets.button.ok')}" onclick='MySpaces.uploadOK(this, "${path?url?replace("'","_%_")}");'>
|
|
||||||
<input class="spaceFormItem" type="button" value="${message('portlets.button.cancel')}" onclick="MySpaces.closePopupPanel();">
|
|
||||||
</div>
|
|
||||||
<div id="spaceUpdateDocPanel">
|
|
||||||
<input class="spaceFormItem" type="button" value="${message('portlets.button.ok')}" onclick="MySpaces.updateOK(this);">
|
|
||||||
<input class="spaceFormItem" type="button" value="${message('portlets.button.cancel')}" onclick="MySpaces.closePopupPanel();">
|
|
||||||
</div>
|
|
||||||
<#-- Create Space action -->
|
|
||||||
<div class="spaceToolbarAction spaceToolbarActionCreateSpace" title="${message('portlets.myspaces.create_space.title')}" <#if home.hasPermission("CreateChildren")>onclick="MySpaces.createSpace(this);"</#if>>${message("portlets.myspaces.create_space")}</div>
|
|
||||||
<div class="spaceCreateSpacePanel">
|
|
||||||
<table cellspacing="2" cellpadding="2" border="0">
|
|
||||||
<tr><td class="spaceFormLabel">${message("portlets.myspaces.name")}:</td><td><input class="spaceFormItem" type="text" size="32" maxlength="1024" id="space-name"></td></tr>
|
|
||||||
<tr><td class="spaceFormLabel">${message("portlets.myspaces.title")}:</td><td><input class="spaceFormItem" type="text" size="32" maxlength="1024" id="space-title"></td></tr>
|
|
||||||
<tr><td class="spaceFormLabel">${message("portlets.myspaces.description")}:</td><td><input class="spaceFormItem" type="text" size="32" maxlength="1024" id="space-description"></td></tr>
|
|
||||||
</table>
|
|
||||||
<input class="spaceFormItem" type="button" value="${message('portlets.button.ok')}" onclick='MySpaces.createSpaceOK(this, "${path?url?replace("'","_%_")}");'>
|
|
||||||
<input class="spaceFormItem" type="button" value="${message('portlets.button.cancel')}" onclick="MySpaces.closePopupPanel();">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="spaceHeader">
|
|
||||||
<table border="0" cellspacing="6" cellpadding="0" width="100%">
|
|
||||||
<tr>
|
|
||||||
<th><a class="spacefilterLink <#if filter=0>spacefilterLinkSelected</#if>" href="#" onclick="MySpaces.filter(0); return false;">${message("portlets.myspaces.all_items")}</a></th>
|
|
||||||
<th><a class="spacefilterLink <#if filter=1>spacefilterLinkSelected</#if>" href="#" onclick="MySpaces.filter(1); return false;">${message("portlets.myspaces.spaces")}</a></th>
|
|
||||||
<th><a class="spacefilterLink <#if filter=2>spacefilterLinkSelected</#if>" href="#" onclick="MySpaces.filter(2); return false;">${message("portlets.myspaces.documents")}</a></th>
|
|
||||||
<th><a class="spacefilterLink <#if filter=3>spacefilterLinkSelected</#if>" href="#" onclick="MySpaces.filter(3); return false;">${message("portlets.myspaces.my_items")}</a></th>
|
|
||||||
<th><a class="spacefilterLink <#if filter=4>spacefilterLinkSelected</#if>" href="#" onclick="MySpaces.filter(4); return false;">${message("portlets.myspaces.recently_modified")}</a></th>
|
|
||||||
<td align=right>
|
|
||||||
<a href="#" onclick="MySpaces.refreshList(); return false;" class="refreshViewLink"><img src="${url.context}/images/icons/reset.gif" border="0" width="16" height="16" class="spaceImageIcon">${message("portlets.refresh")}</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div id="spacePanelOverlay"></div>
|
|
||||||
<div id="spacePanelOverlayAjax"></div>
|
|
||||||
<div id="spacePanel">
|
|
||||||
<#-- populated via an AJAX call to 'myspacespanel' webscript -->
|
|
||||||
<#-- resolved path, filter and home.noderef required as arguments -->
|
|
||||||
<script>
|
|
||||||
MySpaces.ServiceContext="${url.serviceContext}";
|
|
||||||
MySpaces.ScriptUrlEncoder=eval("MySpaces.ScriptUrlEncoder=" + unescape("${clienturlfunction("encUrl")}"));
|
|
||||||
MySpaces.Path="${path?replace("\"","\\\"")}";
|
|
||||||
MySpaces.Filter="${filter}";
|
|
||||||
MySpaces.Home="${home.nodeRef}";
|
|
||||||
</script>
|
|
||||||
</div>
|
|
||||||
<div id="spaceMessagePanel" class="spaceMessagePanel">
|
|
||||||
<div style="margin:2px;float:right"><img src="${url.context}/images/icons/close_portlet_panel.gif" style="cursor:pointer;" width="16" height="16" onclick="MySpaces.closeMessage();"></div>
|
|
||||||
<div class="spaceMessagePanelLabel"></div>
|
|
||||||
</div>
|
|
||||||
<div class="spaceFooter">
|
|
||||||
<#-- the count value is retrieved and set dynamically from the AJAX webscript output above -->
|
|
||||||
<span class="spaceFooterText" id="spaceCount" />0</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
a.spacefilterLink:link, a.spacefilterLink:visited
|
|
||||||
{
|
|
||||||
color: #8EA1B3;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: bold;
|
|
||||||
text-decoration: none;
|
|
||||||
outline: none;
|
|
||||||
padding-left: 4px;
|
|
||||||
padding-right: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.spacefilterLink:hover
|
|
||||||
{
|
|
||||||
color: #168ECE;
|
|
||||||
background-color: #EEF7FB;
|
|
||||||
font-weight: bold;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.spacefilterLinkSelected:link, a.spacefilterLinkSelected:visited, .spaceCurrentSpace
|
|
||||||
{
|
|
||||||
color: #0085CA !important;
|
|
||||||
font-weight: bold !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceTable
|
|
||||||
{
|
|
||||||
background-color: #F8FCFD;
|
|
||||||
border: 1px solid #CCD4DB;
|
|
||||||
width: 720px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceTitle
|
|
||||||
{
|
|
||||||
background-color: #F8FCFD;
|
|
||||||
color: #515D6B;
|
|
||||||
text-align: center;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 6px;
|
|
||||||
border-bottom: 1px solid #CCD4DB;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceHeader
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/parts/doclist_headerbg.png);
|
|
||||||
height: 30px;
|
|
||||||
}
|
|
||||||
.spaceHeader table
|
|
||||||
{
|
|
||||||
border-collapse: separate;
|
|
||||||
border-spacing: 6px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#spacePanel
|
|
||||||
{
|
|
||||||
height: 320px;
|
|
||||||
width: 718px;
|
|
||||||
overflow: auto;
|
|
||||||
overflow-y: scroll;
|
|
||||||
border-top: 1px solid #CCD4DB;
|
|
||||||
border-bottom: 1px solid #CCD4DB;
|
|
||||||
visibility: hidden;
|
|
||||||
scrollbar-face-color: #fafdfd;
|
|
||||||
scrollbar-3dlight-color: #d2dde0;
|
|
||||||
scrollbar-highlight-color: #d2dde0;
|
|
||||||
scrollbar-shadow-color: #c3cdd0;
|
|
||||||
scrollbar-darkshadow-color: #c3cdd0;
|
|
||||||
scrollbar-arrow-color: #239ad7;
|
|
||||||
scrollbar-track-color: #ecf1f2;
|
|
||||||
}
|
|
||||||
|
|
||||||
#spacePanelOverlay
|
|
||||||
{
|
|
||||||
background-color: #fff;
|
|
||||||
position: absolute;
|
|
||||||
height: 320px;
|
|
||||||
width: 720px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#spacePanelOverlayAjax
|
|
||||||
{
|
|
||||||
background-color: #fff;
|
|
||||||
background-image: url(${url.context}/images/icons/ajax_anim.gif);
|
|
||||||
background-position: center;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
position: absolute;
|
|
||||||
height: 320px;
|
|
||||||
width: 720px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceRow
|
|
||||||
{
|
|
||||||
padding-top: 4px;
|
|
||||||
}
|
|
||||||
.spaceRowOdd
|
|
||||||
{
|
|
||||||
background-color: #F1F7FD;
|
|
||||||
}
|
|
||||||
.spaceRowEven
|
|
||||||
{
|
|
||||||
background-color: #FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceFooter
|
|
||||||
{
|
|
||||||
height: 34px;
|
|
||||||
width: 718px;
|
|
||||||
padding: 0px;
|
|
||||||
border: 1px solid #F8FCFD;
|
|
||||||
background-image: url(${url.context}/images/parts/doclist_footerbg.png);
|
|
||||||
text-align: center;
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceFooterText
|
|
||||||
{
|
|
||||||
display: block;
|
|
||||||
margin-top: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceItem
|
|
||||||
{
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
color: #515D6B;
|
|
||||||
padding: 0px 8px 6px 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceIcon
|
|
||||||
{
|
|
||||||
float: left;
|
|
||||||
padding-left: 16px;
|
|
||||||
padding-top: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceInfo
|
|
||||||
{
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceDetail
|
|
||||||
{
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
color: #000000;
|
|
||||||
display: none;
|
|
||||||
overflow: hidden;
|
|
||||||
padding-left: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceResource
|
|
||||||
{
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
background-color: #bad7e4;
|
|
||||||
color: #000000;
|
|
||||||
margin: 0px;
|
|
||||||
border-top: 1px dotted #0092dd;
|
|
||||||
visibility: hidden;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spacesAjaxWait
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/ajax_anim.gif);
|
|
||||||
background-position: center;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
width: 696px;
|
|
||||||
height: 150px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceItemSelected
|
|
||||||
{
|
|
||||||
background-color: #CCE7F3 !important;
|
|
||||||
border-bottom: 1px solid #0092DD !important;
|
|
||||||
border-top: 1px solid #0092DD !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceMetadata
|
|
||||||
{
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceMetaprop
|
|
||||||
{
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-weight: bolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceBreadcrumb
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/parts/spacelist_breadbg.png);
|
|
||||||
border-bottom: 1px solid #CCD4DB;
|
|
||||||
padding: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.spaceBreadcrumbLink:link, a.spaceBreadcrumbLink:visited, a.spaceBreadcrumbLink:hover
|
|
||||||
{
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
color: #515D6B;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceFormLabel
|
|
||||||
{
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 11px;
|
|
||||||
color: #515D6B;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceFormItem
|
|
||||||
{
|
|
||||||
margin: 4px;
|
|
||||||
padding: 2px;
|
|
||||||
background-color: #F8FCFD;
|
|
||||||
border: 1px solid #CCD4DB;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceFormItemError
|
|
||||||
{
|
|
||||||
border-color: red !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceToolbar
|
|
||||||
{
|
|
||||||
background-color: #D0D8E0;
|
|
||||||
border-bottom: 1px solid #CCD4DB;
|
|
||||||
height: 28px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceToolbarAction
|
|
||||||
{
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: 2px;
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
float: left;
|
|
||||||
margin: 3px 3px 3px 3px;
|
|
||||||
height: 17px;
|
|
||||||
cursor: pointer;
|
|
||||||
padding: 2px 4px 1px 22px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceToolbarActionUpload
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/add.gif);
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceToolbarActionCreateSpace
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/create_space.gif);
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceAction
|
|
||||||
{
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 9pt;
|
|
||||||
font-weight: bolder;
|
|
||||||
background-color: #c3dce7;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: left;
|
|
||||||
width: 87px;
|
|
||||||
height: 20px;
|
|
||||||
border: 1px solid #ffffff;
|
|
||||||
padding: 10px 0px 8px 36px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionCheckout
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_checkout.png);
|
|
||||||
border-bottom: none;
|
|
||||||
border-right: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionCheckin
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_checkin.png);
|
|
||||||
border-bottom: none;
|
|
||||||
border-right: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionLocked
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_locked.png) !important;
|
|
||||||
cursor: default !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionEditDetails
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_edit.png);
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionUpdate
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_update.png);
|
|
||||||
border-bottom: none;
|
|
||||||
border-right: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionViewContent
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_view.png);
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionDelete
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_delete.png);
|
|
||||||
border-right: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.docActionMoreActions
|
|
||||||
{
|
|
||||||
padding-left: 20px;
|
|
||||||
padding-right: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceActionMoreActions
|
|
||||||
{
|
|
||||||
padding-left: 20px;
|
|
||||||
padding-right: 16px;
|
|
||||||
border-top: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceActionEditDetails
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_edit.png);
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceActionDelete
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/doclist_action_delete.png);
|
|
||||||
border-left: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceUploadPanel
|
|
||||||
{
|
|
||||||
position: absolute;
|
|
||||||
border: 1px solid #CCD4DB;
|
|
||||||
background-color: #EEF7FB;
|
|
||||||
width: 24em;
|
|
||||||
height: 5em;
|
|
||||||
padding: 8px;
|
|
||||||
margin: 8px;
|
|
||||||
display: none;
|
|
||||||
z-index: 1;
|
|
||||||
-moz-border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceCreateSpacePanel
|
|
||||||
{
|
|
||||||
position: absolute;
|
|
||||||
border: 1px solid #CCD4DB;
|
|
||||||
background-color: #EEF7FB;
|
|
||||||
width: 27em;
|
|
||||||
height: 11.4em;
|
|
||||||
padding: 8px;
|
|
||||||
margin: 8px;
|
|
||||||
display: none;
|
|
||||||
z-index: 1;
|
|
||||||
-moz-border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceMessagePanel
|
|
||||||
{
|
|
||||||
position: absolute;
|
|
||||||
border: 1px solid #65696C;
|
|
||||||
background-color: #7E8387;
|
|
||||||
width: 250px;
|
|
||||||
*width: 260px;
|
|
||||||
height: 72px;
|
|
||||||
padding: 8px;
|
|
||||||
margin-left: 440px;
|
|
||||||
display: none;
|
|
||||||
z-index: 1;
|
|
||||||
-moz-border-radius: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spaceMessagePanelLabel
|
|
||||||
{
|
|
||||||
color: white;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#spaceUpdateDocPanel
|
|
||||||
{
|
|
||||||
position: absolute;
|
|
||||||
border: 1px solid #CCD4DB;
|
|
||||||
background-color: #EEF7FB;
|
|
||||||
width: 24em;
|
|
||||||
height: 5em;
|
|
||||||
padding: 8px;
|
|
||||||
margin: 8px;
|
|
||||||
display: none;
|
|
||||||
z-index: 1;
|
|
||||||
-moz-border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.refreshViewLink:link, a.refreshViewLink:visited, a.refreshViewLink:hover
|
|
||||||
{
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
color: #515D6B;
|
|
||||||
text-decoration: none;
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.spacePreview
|
|
||||||
{
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
overflow: hidden;
|
|
||||||
height: 144px;
|
|
||||||
width: 410px;
|
|
||||||
border: 1px solid #0092dd;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.childSpaceLink:link, a.childSpaceLink:visited, a.childSpaceLink:hover
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.spacesNoItems
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
img.spaceImageIcon
|
|
||||||
{
|
|
||||||
vertical-align: -25%;
|
|
||||||
padding-right:4px;
|
|
||||||
}
|
|
||||||
</style>
|
|
@@ -1,7 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>My Spaces Panel</shortname>
|
|
||||||
<description>Generate the inner panel for the My Spaces portlet page</description>
|
|
||||||
<url>/ui/myspacespanel?f={filter}&p={path}&h={home}</url>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,64 +0,0 @@
|
|||||||
<#assign user=person.properties.userName>
|
|
||||||
<#assign count=0>
|
|
||||||
<#assign weekms=1000*60*60*24*7>
|
|
||||||
<#function encodepath node>
|
|
||||||
<#if node.parent?exists><#return encodepath(node.parent) + "/" + node.name?url><#else><#return ""></#if>
|
|
||||||
</#function>
|
|
||||||
<#list companyhome.nodeByReference[args.h].children?sort_by('name') as d>
|
|
||||||
<#if (d.isDocument ||
|
|
||||||
(d.type != "{http://www.alfresco.org/model/forum/1.0}forums" &&
|
|
||||||
d.type != "{http://www.alfresco.org/model/wcmappmodel/1.0}webfolder" &&
|
|
||||||
d.type != "{http://www.alfresco.org/model/content/1.0}systemfolder")) &&
|
|
||||||
((args.f="0") ||
|
|
||||||
(args.f="1" && !d.isDocument) ||
|
|
||||||
(args.f="2" && d.isDocument) ||
|
|
||||||
(args.f="3" && (d.properties.creator == user || d.properties.modifier == user)) ||
|
|
||||||
(args.f="4" && (dateCompare(d.properties["cm:modified"],date,weekms) == 1 || dateCompare(d.properties["cm:created"], date, weekms) == 1)))>
|
|
||||||
<#assign count=count+1>
|
|
||||||
<div class="spaceRow spaceRow${(count % 2 = 0)?string("Odd", "Even")}" id="${d.id}">
|
|
||||||
<div class="spaceIcon">
|
|
||||||
<#if d.isDocument>
|
|
||||||
<a href="${url.context}${d.url}" target="new" onclick="event.cancelBubble=true"><img class="spaceIconImage" alt="" width="16" height="16" src="${url.context}${d.icon16?replace(".gif",".png")}" border=0></a>
|
|
||||||
<#elseif d.type="{http://www.alfresco.org/model/application/1.0}folderlink">
|
|
||||||
<#-- the component parts need to build up an encoded url to the outer webscript -->
|
|
||||||
<#-- the client-side url encoder method of the outer webscript runtime will be used -->
|
|
||||||
<span class="spaceNavLinkUrl">${url.serviceContext}/ui/myspaces?f=${args.f}&p=${encodepath(d.properties.destination)}</span>
|
|
||||||
<span class="spaceNavLinkImg" style="display:none"><img class="spaceIconImage" alt="" width="16" height="16" src="${url.context}${d.icon16?replace(".gif",".png")}" border="0"></span>
|
|
||||||
<#else>
|
|
||||||
<span class="spaceNavLinkUrl">${url.serviceContext}/ui/myspaces?f=${args.f}&p=${args.p?url}%2F${d.name?url}</span>
|
|
||||||
<span class="spaceNavLinkImg" style="display:none"><img class="spaceIconImage" alt="" width="16" height="16" src="${url.context}${d.icon16?replace(".gif",".png")}" border="0"></span>
|
|
||||||
</#if>
|
|
||||||
<div style="display:none"><img class="spaceIconImage64" alt="" width="64" height="64" src="${url.context}${d.icon64}"></div>
|
|
||||||
</div>
|
|
||||||
<div class="spaceItem">
|
|
||||||
${d.name?html}
|
|
||||||
<span class="spaceInfo" onclick="event.cancelBubble=true; AlfNodeInfoMgr.toggle('${d.nodeRef}',this);">
|
|
||||||
<img src="${url.context}/images/icons/popup.gif" class="popupImage" width="16" height="16" />
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="spaceDetail">
|
|
||||||
<table cellpadding="2" cellspacing="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<span class="spaceMetaprop">${message("portlets.panel.description")}:</span> <span class="spaceMetadata"><#if d.properties.description?exists>${d.properties.description?html}<#else> </#if></span><br />
|
|
||||||
<span class="spaceMetaprop">${message("portlets.panel.modified")}:</span> <span class="spaceMetadata">${d.properties.modified?datetime}</span><br />
|
|
||||||
<span class="spaceMetaprop">${message("portlets.panel.modified_by")}:</span> <span class="spaceMetadata">${d.properties.modifier}</span>
|
|
||||||
</td>
|
|
||||||
<td width="24"> </td>
|
|
||||||
<td>
|
|
||||||
<span class="spaceMetaprop">${message("portlets.panel.created")}:</span> <span class="spaceMetadata">${d.properties.created?datetime}</span><br />
|
|
||||||
<span class="spaceMetaprop">${message("portlets.panel.created_by")}:</span> <span class="spaceMetadata">${d.properties.creator}</span><br />
|
|
||||||
<span class="spaceMetaprop">${message("portlets.panel.size")}:</span> <span class="spaceMetadata">${(d.size/1000)?string("0.##")} ${message("portlets.panel.kb")}</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="spaceResource spacesAjaxWait" id="${d.nodeRef}"></div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
</#list>
|
|
||||||
<#-- hidden div with the count value for the page -->
|
|
||||||
<div id="spaceCountValue" style="display:none">${message("portlets.message.showing_items", count)}</div>
|
|
||||||
<#-- hidden div with the error message -->
|
|
||||||
<div id="displayTheError" style="display:none">${message("portlets.error.data_currently_unavailable")}</div>
|
|
||||||
<div id="previewCurrentlyUnavailable" style="display:none">${message("portlets.preview_currently_unavailable")}</div>
|
|
@@ -1,7 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>My Tasks</shortname>
|
|
||||||
<description>Generate the My Tasks portlet page</description>
|
|
||||||
<url>/ui/mytasks?f={filter?}</url>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,482 +0,0 @@
|
|||||||
<link rel="stylesheet" href="${url.context}/css/main.css" TYPE="text/css">
|
|
||||||
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/yahoo/yahoo/yahoo-min.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/yahoo/connection/connection-min.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/mootools.v1.11.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/common.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/summary-info.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/mytasks.js"></script>
|
|
||||||
<script type="text/javascript">setContextPath('${url.context}');</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// create manager object for the pop-up summary panels
|
|
||||||
var TaskInfoMgr = new Alfresco.PanelManager("TaskInfoBean.sendTaskInfo", "taskId");
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<#-- get the filter mode from the passed in args -->
|
|
||||||
<#-- filters: 0=all, 1=today, 2=next week, 3=no due date, 4=overdue -->
|
|
||||||
<#if args.f?exists && args.f?length!=0><#assign filter=args.f?number><#else><#assign filter=0></#if>
|
|
||||||
|
|
||||||
<table border="0" cellspacing="0" cellpadding="0" class="taskTable">
|
|
||||||
<tr>
|
|
||||||
<td width="36" bgcolor="#F8F2AC"> </td>
|
|
||||||
<td>
|
|
||||||
<table border="0" cellspacing="0" cellpadding="0">
|
|
||||||
<tr>
|
|
||||||
<td align=center height=40 style="border-left: 1px solid #EBE398;">
|
|
||||||
<table border="0" cellspacing="8" cellpadding="0" width="100%">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div id="taskFilterBar">
|
|
||||||
<ul>
|
|
||||||
<li <#if filter=0>class="taskCurrent"</#if>><a href="#" onclick="MyTasks.filter(0); return false;"><span>${message("portlets.mytasks.tasks_to_do")}</span></a></li>
|
|
||||||
<li <#if filter=1>class="taskCurrent"</#if>><a href="#" onclick="MyTasks.filter(1); return false;"><span style="color: #399DF7;">${message("portlets.mytasks.due_today")}</span></a></li>
|
|
||||||
<li <#if filter=2>class="taskCurrent"</#if>><a href="#" onclick="MyTasks.filter(2); return false;"><span>${message("portlets.mytasks.next_7_days")}</span></a></li>
|
|
||||||
<li <#if filter=3>class="taskCurrent"</#if>><a href="#" onclick="MyTasks.filter(3); return false;"><span>${message("portlets.mytasks.no_due_date")}</span></a></li>
|
|
||||||
<li <#if filter=4>class="taskCurrent"</#if>><a href="#" onclick="MyTasks.filter(4); return false;"><span style="color: #DF3704;">${message("portlets.mytasks.overdue")}</span></a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td width="150" align="right" style="padding: 5px 5px 0px 0px;">
|
|
||||||
<a class="refreshViewLink" href="#" onclick="MyTasks.refreshList(); return false;"><img src="${url.context}/images/icons/reset.gif" border="0" width="16" height="16" style="vertical-align:-25%;padding-right:4px"><span>${message("portlets.refresh")}</span></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div id="taskPanelOverlay"></div>
|
|
||||||
<div id="taskPanel">
|
|
||||||
<#-- populated via an AJAX call to 'mytaskspanel' webscript -->
|
|
||||||
<#-- resolved filter required as argument -->
|
|
||||||
<script>MyTasks.ServiceContext="${url.serviceContext}";MyTasks.Filter="${filter}";</script>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div id="taskFooter">
|
|
||||||
<#-- the count value is retrieved and set dynamically from the AJAX webscript output above -->
|
|
||||||
<span class="taskFooterText">${message("portlets.message.showing")} <span id="taskCount">0</span> <#if filter=4>${message("portlets.mytasks.showing_overdue")}</#if> ${message("portlets.mytasks.showing_task")}<#if filter=1> ${message("portlets.mytasks.showing_due_today")}</#if><#if filter=2> ${message("portlets.mytasks.showing_due_next_week")}</#if><#if filter=3> ${message("portlets.mytasks.showing_with_no_due_date_set")}</#if></span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td class="paperEdgeRight"> </td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<div id="taskMessagePanel">
|
|
||||||
<div class="taskMessagePanelClose"><img id="taskMessagePanelCloseImage" src="${url.context}/images/icons/close_portlet_static.gif" onclick="MyTasks.closeMessage();" /></div>
|
|
||||||
<div class="taskMessagePanelLabel"></div>
|
|
||||||
</div>
|
|
||||||
<div style="font-size: 3px;">
|
|
||||||
<span class="paperLeftCorner"></span>
|
|
||||||
<span class="paperBottomEdge"></span>
|
|
||||||
<span class="paperRightCorner"></span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
.taskTable
|
|
||||||
{
|
|
||||||
background-color: #FEF8BC;
|
|
||||||
border-top: 1px solid #EBE398;
|
|
||||||
border-left: 1px solid #EBE398;
|
|
||||||
background-image: url(${url.context}/images/logo/alf_task_bg.png);
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: 72 64;
|
|
||||||
width: 716px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskPanel
|
|
||||||
{
|
|
||||||
height: 300px;
|
|
||||||
width: 672px;
|
|
||||||
overflow: auto;
|
|
||||||
overflow-y: scroll;
|
|
||||||
border-top: 1px solid #EBE398;
|
|
||||||
border-left: 1px solid #F6DEA0;
|
|
||||||
visibility: hidden;
|
|
||||||
scrollbar-face-color: #fcf49a;
|
|
||||||
scrollbar-3dlight-color: #ede591;
|
|
||||||
scrollbar-highlight-color: #fcf49a;
|
|
||||||
scrollbar-shadow-color: #d5cc75;
|
|
||||||
scrollbar-darkshadow-color: #d5cc75;
|
|
||||||
scrollbar-arrow-color: #c2bb70;
|
|
||||||
scrollbar-track-color: #f3e985;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskPanelOverlay
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/icons/ajax_anim.gif);
|
|
||||||
background-position: center;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
position: absolute;
|
|
||||||
border-top: 1px solid #EBE398;
|
|
||||||
border-left: 1px solid #F6DEA0;
|
|
||||||
height: 300px;
|
|
||||||
width: 672px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskFilterBar {
|
|
||||||
float: left;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
#taskFilterBar ul {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 4px 10px 0px 4px;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
#taskFilterBar li {
|
|
||||||
display: inline;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
height: 27px;
|
|
||||||
}
|
|
||||||
#taskFilterBar a {
|
|
||||||
background: none;
|
|
||||||
float:left;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 0px 0px 4px;
|
|
||||||
text-decoration: none;
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
#taskFilterBar a span {
|
|
||||||
background: none;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #5A5741;
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
padding: 5px 15px 4px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskFilterBar a:hover {
|
|
||||||
background: url("${url.context}/images/parts/marker_effect_left.png") no-repeat left top;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskFilterBar a:hover span {
|
|
||||||
background: url("${url.context}/images/parts/marker_effect_right.png") no-repeat right top;
|
|
||||||
color: #ffffff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskFilterBar .taskCurrent a {
|
|
||||||
background: url("${url.context}/images/parts/marker_effect_left.png") no-repeat left top;
|
|
||||||
}
|
|
||||||
#taskFilterBar .taskCurrent a span {
|
|
||||||
background: url("${url.context}/images/parts/marker_effect_right.png") no-repeat right top;
|
|
||||||
color: #ffffff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refreshViewLink, .refreshViewLink
|
|
||||||
{
|
|
||||||
text-decoration: none !important;
|
|
||||||
}
|
|
||||||
.refreshViewLink span
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskRow
|
|
||||||
{
|
|
||||||
padding-top: 4px;
|
|
||||||
border-top: 1px solid transparent;
|
|
||||||
border-bottom: 1px solid #EBE398;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskFooter
|
|
||||||
{
|
|
||||||
height: 36px;
|
|
||||||
width: 656px;
|
|
||||||
padding: 0px;
|
|
||||||
border-top: 1px solid #EBE398;
|
|
||||||
border-left: 1px solid #F6DEA0;
|
|
||||||
text-align: center;
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskFooterText
|
|
||||||
{
|
|
||||||
display: block;
|
|
||||||
margin-top: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskTitle
|
|
||||||
{
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskItem
|
|
||||||
{
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
color: #5A5741;
|
|
||||||
margin: 0px 0px 0px 24px;
|
|
||||||
padding: 0px 8px 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskItemOverdue
|
|
||||||
{
|
|
||||||
color: #DF3704;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskItemToday
|
|
||||||
{
|
|
||||||
color: #399DF7;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskIndicator
|
|
||||||
{
|
|
||||||
float: left;
|
|
||||||
padding-top:6px;
|
|
||||||
padding-left:8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskDetail
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
background-color: #DFC900;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskDetailTopSpacer {
|
|
||||||
padding: 4px 0px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskDetailSeparator
|
|
||||||
{
|
|
||||||
border-right: 1px solid #c1af05;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskItemSelected
|
|
||||||
{
|
|
||||||
background: #FFE500 url("${url.context}/images/parts/mytasks_arrow_down.png") no-repeat right top;
|
|
||||||
border-bottom: 1px solid #82770B !important;
|
|
||||||
border-top: 1px solid #82770B !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskItemSelectedOpen
|
|
||||||
{
|
|
||||||
background-image: url("${url.context}/images/parts/mytasks_arrow_up.png") !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskResources
|
|
||||||
{
|
|
||||||
border: 1px solid #FFE500;
|
|
||||||
background-color: #fff;
|
|
||||||
margin: 4px 0px 0px 0px;
|
|
||||||
width: 300px;
|
|
||||||
height: 80px;
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskResourceEven
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskResourceOdd
|
|
||||||
{
|
|
||||||
background-color: #FEF8BC;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskResourceHeader
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
padding: 0px;
|
|
||||||
font-weight: bold;
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.resourceLink:link, a.resourceLink:visited
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.resourceLink
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskAction
|
|
||||||
{
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskAction ul {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
list-style: none;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.taskAction ul li {
|
|
||||||
display: inline;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskAction a {
|
|
||||||
background: url("${url.context}/images/parts/task_btn_normal_right.png") no-repeat 100% 50%;
|
|
||||||
float: left;
|
|
||||||
margin: 4px;
|
|
||||||
padding: 0px;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.taskAction a span {
|
|
||||||
background: url("${url.context}/images/parts/task_btn_normal_left.png") no-repeat 0 50%;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 11px;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #5A5741;
|
|
||||||
padding: 4px 1.5em;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskAction a:hover {
|
|
||||||
background: url("${url.context}/images/parts/task_btn_rollover_right.png") no-repeat 100% 50%;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskAction a:hover span {
|
|
||||||
background: url("${url.context}/images/parts/task_btn_rollover_left.png") no-repeat 0 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskManage ul {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 4px 0px 0px;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
.taskManage li {
|
|
||||||
display: inline;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
height: 27px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskManage a {
|
|
||||||
background: url("${url.context}/images/parts/task_btn_normal_left.png") no-repeat left top;
|
|
||||||
float:left;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 0px 0px 8px;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.taskManage a span {
|
|
||||||
background: url("${url.context}/images/parts/task_btn_normal_right.png") no-repeat right top;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 11px;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #5A5741;
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
padding: 4px 15px 4px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskManage a:hover {
|
|
||||||
background: url("${url.context}/images/parts/task_btn_rollover_left.png") no-repeat left top;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskManage a:hover span {
|
|
||||||
background: url("${url.context}/images/parts/task_btn_rollover_right.png") no-repeat right top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskMetadata
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskMetaprop
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.paperEdgeRight
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/parts/paper_rightedge.png);
|
|
||||||
}
|
|
||||||
|
|
||||||
.paperLeftCorner
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/parts/paper_leftcorner.png);
|
|
||||||
float: left;
|
|
||||||
height: 6px;
|
|
||||||
width: 36px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.paperBottomEdge
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/parts/paper_bottomedge.png);
|
|
||||||
float: left;
|
|
||||||
height: 6px;
|
|
||||||
width: 676px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.paperRightCorner
|
|
||||||
{
|
|
||||||
background-image: url(${url.context}/images/parts/paper_rightcorner.gif);
|
|
||||||
float: left;
|
|
||||||
height: 6px;
|
|
||||||
width: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskMessagePanel
|
|
||||||
{
|
|
||||||
position: absolute;
|
|
||||||
border: 1px solid #65696C;
|
|
||||||
background-color: #eeeeee;
|
|
||||||
width: 250px;
|
|
||||||
height: 72px;
|
|
||||||
padding: 8px;
|
|
||||||
margin-left: 440px;
|
|
||||||
display: none;
|
|
||||||
z-index: 1;
|
|
||||||
-moz-border-radius: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskMessagePanelClose
|
|
||||||
{
|
|
||||||
margin: -4px -4px 2px 2px;
|
|
||||||
float:right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskMessagePanelCloseImage
|
|
||||||
{
|
|
||||||
cursor: pointer;
|
|
||||||
display: block;
|
|
||||||
height: 23px;
|
|
||||||
width: 23px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.taskMessagePanelLabel
|
|
||||||
{
|
|
||||||
color: #45494C;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
@@ -1,7 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>My Tasks Panel</shortname>
|
|
||||||
<description>Generate the Generate the inner panel for the My Tasks portlet page</description>
|
|
||||||
<url>/ui/mytaskspanel?f={filter?}</url>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,104 +0,0 @@
|
|||||||
<#assign weekms=1000*60*60*24*7>
|
|
||||||
<#assign count=0>
|
|
||||||
<#list workflow.assignedTasks as t>
|
|
||||||
<#-- TODO: is it better to use a js script to pre-filter the list? -->
|
|
||||||
<#assign hasDue=t.properties["bpm:dueDate"]?exists>
|
|
||||||
<#if hasDue>
|
|
||||||
<#assign due=t.properties["bpm:dueDate"]>
|
|
||||||
</#if>
|
|
||||||
<#-- filters: 0=all, 1=today, 2=next week, 3=no due date, 4=overdue -->
|
|
||||||
<#if (args.f="0") ||
|
|
||||||
(args.f="3" && !hasDue) ||
|
|
||||||
(args.f="1" && hasDue && (dateCompare(date?date, due?date, 0, "==") == 1)) ||
|
|
||||||
(args.f="2" && hasDue && (dateCompare(due?date, date?date) == 1 && dateCompare(date?date, due?date, weekms) == 1)) ||
|
|
||||||
(args.f="4" && hasDue && (dateCompare(date?date, due?date) == 1))>
|
|
||||||
<#assign count=count+1>
|
|
||||||
<div class="taskRow" id="${t.id}" rel="<#if hasDue>${due?date?string("yyyyMMddHHmmss")}<#else>99999999999999</#if>">
|
|
||||||
<div class="taskTitle">
|
|
||||||
<div class="taskIndicator">
|
|
||||||
<#if hasDue>
|
|
||||||
<#-- items due today? -->
|
|
||||||
<#if (args.f="0" || args.f="1") && (dateCompare(date?date, due?date, 0, "==") == 1)>
|
|
||||||
<img src="${url.context}/images/icons/task_today.gif"></div><div class="taskItem taskItemToday">
|
|
||||||
<#-- items overdue? -->
|
|
||||||
<#elseif (args.f="0" || args.f="4") && (dateCompare(date?date, due?date) == 1)>
|
|
||||||
<img src="${url.context}/images/icons/task_overdue.gif"></div><div class="taskItem taskItemOverdue">
|
|
||||||
<#else>
|
|
||||||
</div><div class="taskItem">
|
|
||||||
</#if>
|
|
||||||
<#else>
|
|
||||||
</div><div class="taskItem">
|
|
||||||
</#if>
|
|
||||||
<#if t.description?exists>
|
|
||||||
${t.description?html} (${t.type?html})
|
|
||||||
<#else>
|
|
||||||
${t.type?html} (${t.type?html})
|
|
||||||
</#if>
|
|
||||||
<#if hasDue>
|
|
||||||
(Due: ${due?date})
|
|
||||||
</#if>
|
|
||||||
<span class="taskInfo" onclick="event.cancelBubble=true; TaskInfoMgr.toggle('${t.id}',this);">
|
|
||||||
<img src="${url.context}/images/icons/popup.gif" class="popupImage" width="16" height="16" />
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="taskDetail">
|
|
||||||
<div class="taskDetailTopSpacer"></div>
|
|
||||||
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
|
||||||
<tr>
|
|
||||||
<td width="190" class="taskDetailSeparator">
|
|
||||||
<table cellpadding="2" cellspacing="2" style="margin-left:24px; margin-top:4px">
|
|
||||||
<tr><td class="taskMetaprop">${message("portlets.mytaskspanel.status")}:</td><td class="taskMetadata">${t.properties["bpm:status"]}</td>
|
|
||||||
<tr><td class="taskMetaprop">${message("portlets.mytaskspanel.priority")}:</td><td class="taskMetadata">${t.properties["bpm:priority"]}</td>
|
|
||||||
<tr><td class="taskMetaprop">${message("portlets.mytaskspanel.start_date")}:</td><td class="taskMetadata">${t.startDate?date}</td></tr>
|
|
||||||
<tr><td class="taskMetaprop">${message("portlets.mytaskspanel.complete")}:</td><td class="taskMetadata">${t.properties["bpm:percentComplete"]}%</td>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td width="8"> </td>
|
|
||||||
<td width="300">
|
|
||||||
<div class="taskResourceHeader">${t.name?html}:</div>
|
|
||||||
<div class="taskResources"></div>
|
|
||||||
</td>
|
|
||||||
<td width="8" class="taskDetailSeparator"> </td>
|
|
||||||
<td align="center">
|
|
||||||
<table cellpadding="0" cellspacing="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="taskManage">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" onclick="event.cancelBubble=true; openWindowCallback('${url.context}/command/ui/managetask?id=${t.id}&type=${t.qnameType}&container=plain', MyTasks.manageTaskCallback);"><span style="white-space:nowrap"><img src="${url.context}/images/icons/manage_workflow_task.gif" align="top" alt="" border="0"> ${message("portlets.mytaskspanel.manage_task")}</span></a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="2"> </td>
|
|
||||||
<td width="300" align="center">
|
|
||||||
<table cellpadding="0" cellspacing="0" border="0">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="taskAction">
|
|
||||||
<ul>
|
|
||||||
<#list t.transitions as wt>
|
|
||||||
<li><a href="#" onclick="event.cancelBubble=true; MyTasks.transitionTask('/command/task/end/${t.id}<#if wt.id?exists>/${wt.id}</#if>', '${message("portlets.mytaskspanel.workflow_action")} \'${wt.label?html}\' ${message("portlets.mytaskspanel.workflow_complited")}.');"><span>${wt.label?html}</span></a></li>
|
|
||||||
</#list>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td colspan="2"> </td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
</#list>
|
|
||||||
<#-- hidden div with the error message -->
|
|
||||||
<div id="displayTheError" style="display:none">${message("portlets.error.data_currently_unavailable")}</div>
|
|
||||||
<#-- hidden div with the count value for the page -->
|
|
||||||
<div id="taskCountValue" style="display:none">${count}</div>
|
|
@@ -1,7 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>My Web Modified Files</shortname>
|
|
||||||
<description>Generate the My Web Modified Files portlet page</description>
|
|
||||||
<url>/ui/mywebfiles</url>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,271 +0,0 @@
|
|||||||
<link rel="stylesheet" href="${url.context}/css/main.css" TYPE="text/css">
|
|
||||||
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/yahoo/yahoo/yahoo-min.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/yahoo/connection/connection-min.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/mootools.v1.11.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/common.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/summary-info.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/mywebfiles.js"></script>
|
|
||||||
<script type="text/javascript">setContextPath('${url.context}');</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// create manager object for the pop-up summary panels
|
|
||||||
var AlfNodeInfoMgr = new Alfresco.PanelManager("NodeInfoBean.sendNodeInfo", "noderef", "portlet_node_summary_panel.ftl");
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<#-- List the user modified files in all web projects the user is assigned to -->
|
|
||||||
<table cellspacing=0 cellpadding=0 border=0 class="webFilesTable">
|
|
||||||
<tr><td>
|
|
||||||
<div id="webFilesPanel">
|
|
||||||
<#assign filecount=0>
|
|
||||||
<#assign projectcount=0>
|
|
||||||
<#assign search="TYPE:\"{http://www.alfresco.org/model/wcmappmodel/1.0}webfolder\"">
|
|
||||||
<#list companyhome.childrenByLuceneSearch[search]?sort_by('name') as wp>
|
|
||||||
<#list wp.getChildAssocsByType("wca:webuser") as user>
|
|
||||||
<#if user.properties["wca:username"] = person.properties.userName>
|
|
||||||
<#assign projectcount=projectcount+1>
|
|
||||||
<#-- construct the sandbox name based on the webproject and current username -->
|
|
||||||
<#assign storeId=wp.properties["wca:avmstore"]>
|
|
||||||
<#assign username=person.properties.userName>
|
|
||||||
<#assign sandbox=avm.userSandboxStore(storeId, username)>
|
|
||||||
<#if avm.lookupStore(sandbox)?exists>
|
|
||||||
<div class="webProjectRow">
|
|
||||||
<div class="webProjectTitle">
|
|
||||||
<a class="webPreviewLink" href="${avm.websiteUserSandboxUrl(storeId, username)}" target="new"><img src="${url.context}/images/icons/website_large.gif" width=32 height=32 border=0><span class="websiteLink">${wp.name}</span></a>
|
|
||||||
<span class="webProjectInfo" onclick="event.cancelBubble=true; AlfNodeInfoMgr.toggle('${wp.nodeRef}',this);">
|
|
||||||
<img src="${url.context}/images/icons/popup.gif" class="popupImage" width="16" height="16" />
|
|
||||||
</span>
|
|
||||||
<a class="webProjectLink" href="${url.context}${wp.url}" target="new"><img class="itemImageIcon" src="${url.context}/images/icons/view_web_project.gif" width="16" height="16" border="0">${message("portlets.mywebfiles.view_web_project")}</a>
|
|
||||||
<#if wp.properties.description?exists && wp.properties.description?length!=0>
|
|
||||||
<br>
|
|
||||||
<span class="webprojectDesc">${wp.properties.description?html}</span>
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
<div class="webProjectFiles"> <#-- marker class for dynamic click script -->
|
|
||||||
<#assign moditems = avm.getModifiedItems(storeId, username, wp.properties["wca:defaultwebapp"])>
|
|
||||||
<div class="fileTitleRow">${message("portlets.mywebfiles.my_modified_items")}</div>
|
|
||||||
<div class="fileResources">
|
|
||||||
<#if moditems?size != 0>
|
|
||||||
<#assign lcount=0>
|
|
||||||
<#list moditems as t>
|
|
||||||
<#assign filecount=filecount+1>
|
|
||||||
<div class="fileItemRow${(lcount%2=0)?string("", "Alt")}">
|
|
||||||
<#if t.isDocument>
|
|
||||||
<a class="fileItemLink" href="${url.context}${t.url}" target="new" title="${t.path?html}"><img class="itemImageIcon" src="${url.context}${t.icon16}" border="0">${t.name?html}</a>
|
|
||||||
<#else>
|
|
||||||
<span title="${t.path?html}"><img class="itemImageIcon" src="${url.context}${t.icon16}"><span class="fileItemLink">${t.name?html}</span></span>
|
|
||||||
</#if>
|
|
||||||
</a>
|
|
||||||
<#if t.isDocument>
|
|
||||||
<#if t.isLocked>
|
|
||||||
<img class="itemImageIcon" src="${url.context}/images/icons/locked${(t.isLockOwner)?string("_owner", "")}.gif" border="0">
|
|
||||||
</#if>
|
|
||||||
<#if t.hasAspect("wca:forminstancedata") && !t.hasAspect("wcmwf:submitted") && t.hasLockAccess>
|
|
||||||
<a class="fileActionLink" href="${url.context}/c/ui/editwebcontent?sandbox=${sandbox}&webproject=${wp.id}&path=${t.path?url}&container=plain" target="new"><img class="itemImageIcon" src="${url.context}/images/icons/edit_icon.gif" border="0">${message("portlets.mywebfiles.edit")}</a>
|
|
||||||
</#if>
|
|
||||||
</#if>
|
|
||||||
<#assign lcount=lcount+1>
|
|
||||||
</div>
|
|
||||||
</#list>
|
|
||||||
<#else>
|
|
||||||
<div class="fileItemRow">${message("portlets.mywebfiles.no_items_modified")}</div>
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
</#if>
|
|
||||||
</#list>
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="filesFooter">
|
|
||||||
${message("portlets.mywebfiles.showing_count_files_in_count_web_projects", filecount, projectcount)}
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<STYLE type="text/css">
|
|
||||||
.webFilesTable
|
|
||||||
{
|
|
||||||
background-color: #F8FCFD;
|
|
||||||
border: 1px solid #CCD4DB;
|
|
||||||
}
|
|
||||||
|
|
||||||
#webFilesPanel
|
|
||||||
{
|
|
||||||
height: 320px;
|
|
||||||
width: 716px;
|
|
||||||
overflow: auto;
|
|
||||||
overflow-y: scroll;
|
|
||||||
scrollbar-face-color: #fafdfd;
|
|
||||||
scrollbar-3dlight-color: #d2dde0;
|
|
||||||
scrollbar-highlight-color: #d2dde0;
|
|
||||||
scrollbar-shadow-color: #c3cdd0;
|
|
||||||
scrollbar-darkshadow-color: #c3cdd0;
|
|
||||||
scrollbar-arrow-color: #239ad7;
|
|
||||||
scrollbar-track-color: #ecf1f2;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.webPreviewLink:link, a.webPreviewLink:visited, a.webPreviewLink:hover
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.webProjectLink:link, a.webProjectLink:visited, a.webProjectLink:hover
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 11px;
|
|
||||||
padding-left: 16px;
|
|
||||||
vertical-align: 60%;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.fileActionLink:link, a.fileActionLink:visited, a.fileActionLink:hover
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 11px;
|
|
||||||
padding-left: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.webProjectInfo
|
|
||||||
{
|
|
||||||
vertical-align: 60%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.webProjectRow
|
|
||||||
{
|
|
||||||
background-color: #EEF7FB;
|
|
||||||
border-top: 1px solid #EEF7FB;
|
|
||||||
border-bottom: 1px solid #CCD4DB;
|
|
||||||
}
|
|
||||||
|
|
||||||
.webProjectRowSelected
|
|
||||||
{
|
|
||||||
background-color: #CCE7F3;
|
|
||||||
border-bottom: 1px solid #0092DD;
|
|
||||||
border-top: 1px solid #0092DD;
|
|
||||||
}
|
|
||||||
|
|
||||||
.webProjectFiles
|
|
||||||
{
|
|
||||||
background-color: #BAD7E4;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.webprojectDesc
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
padding-left: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.webProjectTitle
|
|
||||||
{
|
|
||||||
padding: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fileResources
|
|
||||||
{
|
|
||||||
border: 1px solid #AFBDC3;
|
|
||||||
background-color: #F8FCFD;
|
|
||||||
margin: 0px 0px 0px 48px;
|
|
||||||
width: 360px;
|
|
||||||
height: 92px;
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fileTitleRow
|
|
||||||
{
|
|
||||||
border-top: 1px solid #CCD4DB;
|
|
||||||
border-bottom: 1px dotted #CCD4DB;
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 4px 0px 4px 48px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fileItemRow
|
|
||||||
{
|
|
||||||
background-color: #F8FCFD;
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
padding: 3px 0px 2px 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fileItemRowAlt
|
|
||||||
{
|
|
||||||
background-color: #EEF7FB;
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
padding: 3px 0px 2px 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.fileItemLink:link, a.fileItemLink:visited, a.fileItemLink:hover
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 11px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.fileItemLink
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 11px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.filesRow, a.filesRow:link, a.filesRow:visited, a.filesRow:hover
|
|
||||||
{
|
|
||||||
background-color: #F8FCFD;
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
padding-left: 44px;
|
|
||||||
padding-top: 4px;
|
|
||||||
border-bottom: 1px solid #F8FCFD;
|
|
||||||
}
|
|
||||||
|
|
||||||
.filesRowAlt
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
img.itemImageIcon
|
|
||||||
{
|
|
||||||
vertical-align: -25%;
|
|
||||||
padding-right:4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.websiteLink
|
|
||||||
{
|
|
||||||
padding-left:8px;
|
|
||||||
vertical-align:60%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.filesFooter
|
|
||||||
{
|
|
||||||
width: 700px;
|
|
||||||
padding: 8px;
|
|
||||||
border: 1px solid #F8FCFD;
|
|
||||||
background-image: url(${url.context}/images/parts/doclist_footerbg.png);
|
|
||||||
text-align: center;
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
</STYLE>
|
|
@@ -1,7 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>My Web Forms</shortname>
|
|
||||||
<description>Generate the My Web Forms portlet page</description>
|
|
||||||
<url>/ui/mywebforms</url>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,196 +0,0 @@
|
|||||||
<link rel="stylesheet" href="${url.context}/css/main.css" TYPE="text/css">
|
|
||||||
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/yahoo/yahoo/yahoo-min.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/yahoo/connection/connection-min.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/mootools.v1.11.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/common.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/summary-info.js"></script>
|
|
||||||
<script type="text/javascript" src="${url.context}/scripts/ajax/mywebforms.js"></script>
|
|
||||||
<script type="text/javascript">setContextPath('${url.context}');</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// create manager object for the pop-up summary panels
|
|
||||||
var AlfNodeInfoMgr = new Alfresco.PanelManager("NodeInfoBean.sendNodeInfo", "noderef", "portlet_node_summary_panel.ftl");
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<#-- List the available web form objects in all web projects the user is assigned to -->
|
|
||||||
<table cellspacing=0 cellpadding=0 border=0 class="formsTable">
|
|
||||||
<tr><td>
|
|
||||||
<div id="formsPanel">
|
|
||||||
<#assign formcount=0>
|
|
||||||
<#assign projectcount=0>
|
|
||||||
<#assign search="TYPE:\"{http://www.alfresco.org/model/wcmappmodel/1.0}webfolder\"">
|
|
||||||
<#list companyhome.childrenByLuceneSearch[search]?sort_by('name') as wp>
|
|
||||||
<#list wp.childAssocs["wca:webuser"] as user>
|
|
||||||
<#if user.properties["wca:username"] = person.properties.userName>
|
|
||||||
<#assign projectcount=projectcount+1>
|
|
||||||
<#-- construct the sandbox name based on the webproject and current username -->
|
|
||||||
<#assign storeId=wp.properties["wca:avmstore"]>
|
|
||||||
<#assign username=person.properties.userName>
|
|
||||||
<#assign sandbox=avm.userSandboxStore(storeId, username)>
|
|
||||||
<#if avm.lookupStore(sandbox)?exists>
|
|
||||||
<div class="webProjectRow">
|
|
||||||
<div class="webProjectTitle">
|
|
||||||
<a class="webPreviewLink" href="${avm.websiteUserSandboxUrl(storeId, username)}" target="new"><img src="${url.context}/images/icons/website_large.gif" width=32 height=32 border=0><span class="websiteLink">${wp.name}</span></a>
|
|
||||||
<span class="webProjectInfo" onclick="event.cancelBubble=true; AlfNodeInfoMgr.toggle('${wp.nodeRef}',this);">
|
|
||||||
<img src="${url.context}/images/icons/popup.gif" class="popupImage" width="16" height="16" />
|
|
||||||
</span>
|
|
||||||
<a class="webProjectLink" href="${url.context}${wp.url}" target="new"><img class="itemImageIcon" src="${url.context}/images/icons/view_web_project.gif" width="16" height="16" border="0">${message("portlets.mywebfiles.view_web_project")}</a>
|
|
||||||
<#if wp.properties.description?exists && wp.properties.description?length!=0>
|
|
||||||
<br>
|
|
||||||
<span class="webprojectDesc">${wp.properties.description?html}</span>
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
<div class="webProjectForms"> <#-- marker class for rollover script -->
|
|
||||||
<#if wp.childAssocs["wca:webform"]?exists>
|
|
||||||
<div class="formsRowSeparator"></div>
|
|
||||||
<#list wp.childAssocs["wca:webform"] as form>
|
|
||||||
<#assign formcount=formcount+1>
|
|
||||||
<div class="formsRow">
|
|
||||||
<img src="${url.context}/images/icons/webform_large.gif" width=32 height=32 border=0>
|
|
||||||
<a class="webformLink" href="${url.context}/c/ui/createwebcontent?sandbox=${sandbox}&webproject=${wp.id}&form=${form.properties["wca:formname"]}&container=plain" target="new">${form.properties.title?html}</a>
|
|
||||||
<#if (form.properties.description?exists) && (form.properties.description?length!=0)>
|
|
||||||
<span style="vertical-align:50%">(${form.properties.description?html})</span>
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
</#list>
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
</#if>
|
|
||||||
</#list>
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<div class="formsFooter">
|
|
||||||
${message("portlets.mywebfiles.showing_count_files_in_count_web_projects", formcount, projectcount)}
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<STYLE type="text/css">
|
|
||||||
.formsTable
|
|
||||||
{
|
|
||||||
background-color: #F8FCFD;
|
|
||||||
border: 1px solid #CCD4DB;
|
|
||||||
}
|
|
||||||
|
|
||||||
#formsPanel
|
|
||||||
{
|
|
||||||
height: 320px;
|
|
||||||
width: 716px;
|
|
||||||
overflow: auto;
|
|
||||||
overflow-y: scroll;
|
|
||||||
scrollbar-face-color: #fafdfd;
|
|
||||||
scrollbar-3dlight-color: #d2dde0;
|
|
||||||
scrollbar-highlight-color: #d2dde0;
|
|
||||||
scrollbar-shadow-color: #c3cdd0;
|
|
||||||
scrollbar-darkshadow-color: #c3cdd0;
|
|
||||||
scrollbar-arrow-color: #239ad7;
|
|
||||||
scrollbar-track-color: #ecf1f2;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.webPreviewLink:link, a.webPreviewLink:visited, a.webPreviewLink:hover
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.webProjectLink:link, a.webProjectLink:visited, a.webProjectLink:hover
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 11px;
|
|
||||||
padding-left: 16px;
|
|
||||||
vertical-align: 60%;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.webProjectInfo
|
|
||||||
{
|
|
||||||
vertical-align: 60%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.webProjectRow
|
|
||||||
{
|
|
||||||
background-color: #EEF7FB;
|
|
||||||
border-bottom: 1px solid #CCD4DB;
|
|
||||||
}
|
|
||||||
|
|
||||||
.webProjectForms
|
|
||||||
{
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.webprojectDesc
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
padding-left: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.webProjectTitle
|
|
||||||
{
|
|
||||||
padding: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
img.itemImageIcon
|
|
||||||
{
|
|
||||||
vertical-align: -25%;
|
|
||||||
padding-right:4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.formsRowSeparator
|
|
||||||
{
|
|
||||||
border-bottom: 1px dotted #CCD4DB;
|
|
||||||
}
|
|
||||||
|
|
||||||
.formsRow, a.formsRow:link, a.formsRow:visited, a.formsRow:hover
|
|
||||||
{
|
|
||||||
background-color: #F8FCFD;
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
padding-left: 44px;
|
|
||||||
padding-top: 4px;
|
|
||||||
border-bottom: 1px solid #F8FCFD;
|
|
||||||
}
|
|
||||||
|
|
||||||
.formsRowAlt
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
span.websiteLink
|
|
||||||
{
|
|
||||||
padding-left:8px;
|
|
||||||
vertical-align:60%;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.webformLink:link, a.webformLink:visited, a.webformLink:hover
|
|
||||||
{
|
|
||||||
color: #5A5741;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
vertical-align:50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.formsFooter
|
|
||||||
{
|
|
||||||
width: 700px;
|
|
||||||
padding: 8px;
|
|
||||||
border: 1px solid #F8FCFD;
|
|
||||||
background-image: url(${url.context}/images/parts/doclist_footerbg.png);
|
|
||||||
text-align: center;
|
|
||||||
color: #515D6B;
|
|
||||||
font-family: Trebuchet MS, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
</STYLE>
|
|
@@ -1,9 +0,0 @@
|
|||||||
<webscript>
|
|
||||||
<shortname>JSF Redirection Handler</shortname>
|
|
||||||
<description>JSF Redirection Handler</description>
|
|
||||||
<url>/webframework/redirect/jsf-client/{command}/{objectType}/{storeType}/{storeId}/{nodeId}</url>
|
|
||||||
<url>/webframework/redirect/jsf-client/{command}/{objectType}/{id}</url>
|
|
||||||
<format default="html">argument</format>
|
|
||||||
<authentication>user</authentication>
|
|
||||||
<transaction>required</transaction>
|
|
||||||
</webscript>
|
|
@@ -1,5 +0,0 @@
|
|||||||
<#if redirectUrl?exists>
|
|
||||||
<script language="Javascript">
|
|
||||||
window.location.href = "${redirectUrl}";
|
|
||||||
</script>
|
|
||||||
</#if>
|
|
@@ -1,47 +0,0 @@
|
|||||||
model.command = url.templateArgs["command"];
|
|
||||||
model.objectType = url.templateArgs["objectType"];
|
|
||||||
|
|
||||||
if("browse" == model.command)
|
|
||||||
{
|
|
||||||
if("node" == model.objectType)
|
|
||||||
{
|
|
||||||
var storeType = url.templateArgs["storeType"];
|
|
||||||
var storeId = url.templateArgs["storeId"];
|
|
||||||
var nodeId = url.templateArgs["nodeId"];
|
|
||||||
|
|
||||||
model.redirectUrl = url.context + "/n/browse/"+storeType+"/"+storeId+"/"+nodeId;
|
|
||||||
}
|
|
||||||
|
|
||||||
if("webproject" == model.objectType)
|
|
||||||
{
|
|
||||||
model.webprojectref = url.templateArgs["id"];
|
|
||||||
|
|
||||||
// load the web project metadata
|
|
||||||
var service = webprojects;
|
|
||||||
var data = service.getWebProject(model.webprojectref);
|
|
||||||
|
|
||||||
// look up the node ref for the web project
|
|
||||||
// TODO: could this be made to be part of the web projects service?
|
|
||||||
|
|
||||||
// look up the web project
|
|
||||||
var dmType = "{http://www.alfresco.org/model/wcmappmodel/1.0}webfolder";
|
|
||||||
var query = "TYPE:\"" + dmType + "\"";
|
|
||||||
|
|
||||||
var webprojects = search.luceneSearch(query);
|
|
||||||
|
|
||||||
// walk through the projects, get the avm store id (for staging)
|
|
||||||
for(var i = 0; i < webprojects.length; i++)
|
|
||||||
{
|
|
||||||
var dns = webprojects[i].properties["{http://www.alfresco.org/model/wcmappmodel/1.0}avmstore"];
|
|
||||||
if(dns == model.webprojectref)
|
|
||||||
{
|
|
||||||
var storeType = webprojects[i].properties["{http://www.alfresco.org/model/system/1.0}store-protocol"];
|
|
||||||
var storeId = webprojects[i].properties["{http://www.alfresco.org/model/system/1.0}store-identifier"];
|
|
||||||
var nodeId = webprojects[i].properties["{http://www.alfresco.org/model/system/1.0}node-uuid"];
|
|
||||||
|
|
||||||
model.redirectUrl = url.context + "/n/browse/"+storeType+"/"+storeId+"/"+nodeId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@@ -38,6 +38,7 @@ import javax.servlet.http.HttpSession;
|
|||||||
* safe.
|
* safe.
|
||||||
*
|
*
|
||||||
* @author Alan Davis
|
* @author Alan Davis
|
||||||
|
* @deprecated 5.0 not exposed in web-client web.xml
|
||||||
*/
|
*/
|
||||||
public class SessionSynchronizedFilter implements Filter
|
public class SessionSynchronizedFilter implements Filter
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user