Merged V3.2 to HEAD

16841: Fix for ETHREEOH-3046 - discussion post replies and further post content now all set to UTF-8 encoding format.
   16853: Merged V3.1 to V3.2
      13681: Disable CMIS Web Services.
      13958: ETHREEOH-1625 - Incorrect save file process via Office Addin
      14026: ETHREEOH-1805 - update GET login web script description to recommend use of POST login web script instead.
   16861: Merged V3.1 to V3.2
      14162: ETHREEOH-1733 - multiday events display correctly
      14273: fix for ETHREEOH-2031
      14274: fix for event not adjusted by height issue in week view, after adding
   16867: Merged V3.1 to V3.2
      15429: The solution is to remove 'label' and 'description attributes' and add appropriate 'label-id' and 'description-id' attributes in 
   web-client\config\alfresco\web-client-config.xml for dashlets. Appropriate ids were added into webclient.properties.
      16677: ETHREEOH-1208 - Upload/recall documents with apostrophe/accent via Alfresco Office plugin
   16869: Merged V3.1 to V3.2
      16848: Merged V2.2 to V3.1
         15217: Fix for ETWOTWO-1268. Check for existence of desired control on first step of the dialog.
         15218: Fix for ETWOTWO-1269. Remove node.hasPermission(PermissionService.CREATE_CHILDREN) from CheckoutDocEvaluator#evaluate method (like 3.2 version).
      16849: Merged V2.2 to V3.1
         15424: ETWOTWO-1349
      16851: Merged V2.2 to V3.1
         15432: **RECORD ONLY** Input characters validation script was modified to disallow  !@#$%^&*().
         15433: This check-in fixes ETWOTWO-1351, ETWOTWO-1352, ETWOTWO-1353 because their behaviour is similar.
   16874: Merged DEV/TEMPORARY to V3.2
      16789: ETHREEOH-1895: Incorrect working of Link Destination Details
      16790: ETHREEOH-2372: Incorrect working of Link Destination Details
      16791: ETHREEOH-2342: Error message appear when "Coordinator" try to remove himself from the space
      16793: ETHREEOH-1364 & ETHREEOH-1367
      16794: ETHREEOH-2358: Letters and special symbols can be typed in Date value of property while creation of Content Rule and it leads to error
      16837: ETHREEOH-2631: two jsp:root elements cause compilation error in Weblogic 10.3.1

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16956 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2009-10-15 10:38:44 +00:00
parent b924392726
commit 94fb4a09ae
10 changed files with 92 additions and 18 deletions

View File

@@ -9,6 +9,8 @@
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<!-- Uncomment this block to enable CMIS web services
<jaxws:endpoint address="/RepositoryService" implementor="#dmRepositoryService"
implementorClass="org.alfresco.repo.cmis.ws.DMRepositoryServicePort">
<jaxws:inInterceptors>
@@ -239,6 +241,7 @@
<bean class="org.apache.cxf.feature.LoggingFeature" />
</jaxws:features>
</jaxws:endpoint>
-->
<bean id="dmServicesProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">

View File

@@ -170,7 +170,7 @@
</#if>
<#-- Only Word supports document compare -->
<#if extn == "doc" || extn == "docx" || extn == "odt" || extn == "sxw" >
<a class="bold" href="#" onclick="ExternalComponent.compareDocument('${record.url}')" title="${message("office.action.compare_current")}">${message("office.action.compare_current")}</a><br />
<a class="bold" href="#" onclick="ExternalComponent.compareDocument('${record.url?js_string}')" title="${message("office.action.compare_current")}">${message("office.action.compare_current")}</a><br />
</#if>
</td>
</tr>

View File

@@ -3,6 +3,7 @@
<#assign extn=args.e!"doc"><#assign extnx=extn+"x">
<#if args.e??><#assign extList=[]><#else><#assign extList=[".odt", ".sxw", ".doc", ".rtf", ".ods", ".sxc", ".xls", ".odp", ".sxi", ".ppt", ".odg", ".sxd", ".odb", ".odf", ".sxm"]></#if>
<#assign nav=args.n!"">
<#assign chLen=companyhome.name?length>
<#-- resolve the path (from Company Home) into a node -->
<#if companyhome.childByNamePath[path]??>
<#assign d=companyhome.childByNamePath[path]>
@@ -60,7 +61,7 @@
<#list companyhome.childrenByLuceneSearch[query] as child>
<#if child.isDocument>
<#assign rowNum=rowNum+1>
<#assign relativePath = (child.displayPath?substring(companyhome.name?length+1) + '/' + child.name)?url?replace('%2F', '/')?replace('\'', '\\\'') />
<#assign relativePath = child.displayPath?substring(chLen + 1) + '/' + child.name />
<#assign isSupportedExtn = false>
<#list extList as ext>
<#if child.name?ends_with(ext)>
@@ -74,7 +75,7 @@
</span>
<span class="documentItemDetails">
<#if child.name?ends_with(extn) || child.name?ends_with(extnx) || isSupportedExtn>
<a href="#" onclick="ExternalComponent.openDocument('${relativePath}')" title="${message("office.action.open", child.name?html)}" style="font-weight: bold;">${child.name?html}</a><br />
<a href="#" onclick="ExternalComponent.openDocument('${relativePath?js_string}')" title="${message("office.action.open", child.name?html)}" style="font-weight: bold;">${child.name?html}</a><br />
<#else>
<a href="${url.context}${child.url}" target="_blank" title="${message("office.action.open", child.name?html)}" style="font-weight: bold;">${child.name?html}</a><br />
</#if>
@@ -86,7 +87,7 @@
${message("office.property.modified")}: ${child.properties.modified?datetime} (${(child.size / 1024)?int}${message("office.unit.kb")})<br />
<a href="#" onclick="OfficeAddin.getAction('${doc_actions}','checkin','${child.id}', '');"><img src="${url.context}/images/office/checkin.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.checkin")}" title="${message("office.action.checkin")}" /></a>
<a href="${url.serviceContext}/office/myTasks${defaultQuery?html}&amp;w=new&amp;wd=${child.id}"><img src="${url.context}/images/office/new_workflow.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.start_workflow")}..." title="${message("office.action.start_workflow")}..." /></a>
<a href="#" onclick="ExternalComponent.insertDocument('${relativePath}','${child.nodeRef}')"><img src="${url.context}/images/office/insert_document.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.insert")}" title="${message("office.action.insert")}" /></a>
<a href="#" onclick="ExternalComponent.insertDocument('${relativePath?js_string}','${child.nodeRef}')"><img src="${url.context}/images/office/insert_document.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.insert")}" title="${message("office.action.insert")}" /></a>
<#if !child.name?ends_with(".pdf")>
<a href="#" onclick="OfficeAddin.getAction('${doc_actions}','makepdf','${child.id}', '');"><img src="${url.context}/images/office/makepdf.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.transform_pdf")}" title="${message("office.action.transform_pdf")}" /></a>
</#if>

View File

@@ -6,6 +6,7 @@
<#assign task = workflow.getTaskById(taskid)>
</#if>
</#if>
<#assign chLen=companyhome.name?length>
<#if task??>
<table width="260">
@@ -46,11 +47,11 @@
<#list task.packageResources as res>
<tr>
<#if res.isDocument>
<#assign relativePath = (res.displayPath?substring(companyhome.name?length+1) + '/' + res.name)?url?replace('%2F', '/')?replace('\'', '\\\'') />
<#assign relativePath = res.displayPath?substring(chLen + 1) + '/' + res.name />
<#if res.name?ends_with(extn) || res.name?ends_with(extnx)>
<td width="16" valign="top"><a href="${url.context}${res.url}" target="_blank"><img src="${url.context}${res.icon16}" alt="${res.name?html}"></a></td>
<td>
<a href="#" onclick="ExternalComponent.openDocument('${relativePath}')" title="${message("office.action.open", res.name?html)}">${res.name?html}</a>
<a href="#" onclick="ExternalComponent.openDocument('${relativePath?js_string}')" title="${message("office.action.open", res.name?html)}">${res.name?html}</a>
<#else>
<td width="16" valign="top"><a href="${url.context}${res.url}" target="_blank" title="${message("office.action.open", res.name?html)}"><img src="${url.context}${res.icon16}" alt="${res.name?html}"></a></td>
<td>
@@ -65,7 +66,7 @@
<#else>
<a href="#" onclick="OfficeMyTasks.runAction('${doc_actions}','checkout','${res.id}');"><img src="${url.context}/images/office/checkout.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.checkout")}" title="${message("office.action.checkout")}" /></a>
</#if>
<a href="#" onclick="ExternalComponent.insertDocument('${relativePath}', '${res.nodeRef}')"><img src="${url.context}/images/office/insert_document.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.insert")}" title="${message("office.action.insert")}" /></a>
<a href="#" onclick="ExternalComponent.insertDocument('${relativePath?js_string}', '${res.nodeRef}')"><img src="${url.context}/images/office/insert_document.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.insert")}" title="${message("office.action.insert")}" /></a>
<#if !res.name?ends_with(".pdf")>
<a href="#" onclick="OfficeMyTasks.runAction('${doc_actions}','makepdf','${res.id}');"><img src="${url.context}/images/office/makepdf.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.transform_pdf")}" title="${message("office.action.transform_pdf")}" /></a>
</#if>

View File

@@ -177,7 +177,7 @@
<#if child.isDocument>
<#assign isVersionable = child.hasAspect("cm:versionable")>
<#assign documentsFound = documentsFound + 1>
<#assign relativePath = (child.displayPath?substring(chLen+1) + '/' + child.name)?url?replace('%2F', '/')?replace('\'', '\\\'') />
<#assign relativePath = child.displayPath?substring(chLen + 1) + '/' + child.name />
<#assign isSupportedExtn = false>
<#list extList as ext>
<#if child.name?ends_with(ext)>
@@ -188,14 +188,14 @@
<div class="documentItem ${(documentsFound % 2 = 0)?string("even", "odd")}">
<span class="documentItemIcon">
<#if child.name?ends_with(extn) || child.name?ends_with(extnx) || isSupportedExtn>
<a href="#" onclick="ExternalComponent.openDocument('${relativePath}')"><img src="${url.context}${child.icon32}" alt="Open ${child.name?html}" /></a>
<a href="#" onclick="ExternalComponent.openDocument('${relativePath?js_string}')"><img src="${url.context}${child.icon32}" alt="Open ${child.name?html}" /></a>
<#else>
<a href="${url.context}${child.url}" rel="_blank"><img src="${url.context}${child.icon32}" alt="Open ${child.name?html}" /></a>
</#if>
</span>
<span class="documentItemDetails">
<#if child.name?ends_with(extn) || child.name?ends_with(extnx) || isSupportedExtn>
<a href="#" onclick="ExternalComponent.openDocument('${relativePath}')"><span id="document${documentsFound}" class="bold ${isVersionable?string("versionable", "notVersionable")}">${child.name?html}</span></a>
<a href="#" onclick="ExternalComponent.openDocument('${relativePath?js_string}')"><span id="document${documentsFound}" class="bold ${isVersionable?string("versionable", "notVersionable")}">${child.name?html}</span></a>
<#else>
<a href="${url.context}${child.url}" rel="_blank"><span id="document${documentsFound}" class="bold">${child.name?html}</span></a>
</#if>
@@ -214,7 +214,7 @@
<a href="#" onclick="OfficeAddin.getAction('${doc_actions}','checkout','${child.id}', '');"><img src="${url.context}/images/office/checkout.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.checkout")}" title="${message("office.action.checkout")}" /></a>
</#if>
<a href="${url.serviceContext}/office/myTasks${defaultQuery?html}&amp;w=new&amp;wd=${child.id}"><img src="${url.context}/images/office/new_workflow.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.start_workflow")}..." title="${message("office.action.start_workflow")}..." /></a>
<a href="#" onclick="ExternalComponent.insertDocument('${relativePath}', '${child.nodeRef}')"><img src="${url.context}/images/office/insert_document.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.insert")}" title="${message("office.action.insert")}" /></a>
<a href="#" onclick="ExternalComponent.insertDocument('${relativePath?js_string}', '${child.nodeRef}')"><img src="${url.context}/images/office/insert_document.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.insert")}" title="${message("office.action.insert")}" /></a>
<#if !child.name?ends_with(".pdf")>
<a href="#" onclick="OfficeAddin.getAction('${doc_actions}','makepdf','${child.id}', '');"><img src="${url.context}/images/office/makepdf.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.transform_pdf")}" title="${message("office.action.transform_pdf")}" /></a>
</#if>
@@ -235,7 +235,7 @@
</div>
<#assign currentPath = thisSpace.displayPath + '/' + thisSpace.name />
<#assign currentPath = currentPath?substring(chLen+1)?url?replace('%2F', '/')?replace('\'', '\\\'') />
<#assign currentPath = currentPath?substring(chLen + 1) />
<div id="navigationActions" class="actionsPanel">
<div id="saveDetailsPanel">
${message("office.property.filename")}:<br />
@@ -246,7 +246,7 @@
<div id="nonStatusText">
<ul>
<li>
<a href="#" onclick="OfficeNavigation.saveToAlfresco('${currentPath}')">
<a href="#" onclick="OfficeNavigation.saveToAlfresco('${currentPath?js_string}')">
<img src="${url.context}/images/office/save_to_alfresco.gif" alt="${message("office.action.save_to_alfresco")}" />
${message("office.action.save_to_alfresco")}
</a>

View File

@@ -4,6 +4,7 @@
<#assign extn=args.e!"doc"><#assign extnx=extn+"x">
<#if args.e??><#assign extList=[]><#else><#assign extList=[".odt", ".sxw", ".doc", ".rtf", ".ods", ".sxc", ".xls", ".odp", ".sxi", ".ppt", ".odg", ".sxd", ".odb", ".odf", ".sxm"]></#if>
<#if args.search??><#assign searchString = args.search><#else><#assign searchString=""></#if>
<#assign chLen=companyhome.name?length>
<#assign defaultQuery="?p=" + path?url + "&e=" + extn + "&n=" + nav>
<#if args.maxresults??>
@@ -29,10 +30,10 @@
</#if>
</#list>
<#if child.isDocument>
<#assign relativePath = (child.displayPath?substring(companyhome.name?length+1) + '/' + child.name)?url?replace('%2F', '/')?replace('\'', '\\\'') />
<#assign relativePath = child.displayPath?substring(chLen + 1) + '/' + child.name />
<#if child.name?ends_with(extn) || child.name?ends_with(extnx) || isSupportedExtn>
<#assign openURL = "#">
<#assign hrefExtra = " onClick=\"ExternalComponent.openDocument('${relativePath}')\"">
<#assign hrefExtra = " onClick=\"ExternalComponent.openDocument('${relativePath?js_string}')\"">
<#else>
<#assign openURL = "${url.context}${child.url}">
<#assign hrefExtra = " target=\"_blank\"">
@@ -62,7 +63,7 @@
<a href="#" onclick="OfficeAddin.getAction('${doc_actions}','checkout','${child.id}', '');"><img src="${url.context}/images/office/checkout.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.checkout")}" title="${message("office.action.checkout")}" /></a>
</#if>
<a href="${url.serviceContext}/office/myTasks${defaultQuery?html}&amp;w=new&amp;wd=${child.id}"><img src="${url.context}/images/office/new_workflow.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.start_workflow")}..." title="${message("office.action.start_workflow")}..." /></a>
<a href="#" onclick="ExternalComponent.insertDocument('${relativePath}', '${child.nodeRef}')"><img src="${url.context}/images/office/insert_document.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.insert")}" title="${message("office.action.insert")}" /></a>
<a href="#" onclick="ExternalComponent.insertDocument('${relativePath?js_string}', '${child.nodeRef}')"><img src="${url.context}/images/office/insert_document.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.insert")}" title="${message("office.action.insert")}" /></a>
<#if !child.name?ends_with(".pdf")>
<a href="#" onclick="OfficeAddin.getAction('${doc_actions}','makepdf','${child.id}', '');"><img src="${url.context}/images/office/makepdf.gif" style="padding:3px 6px 2px 0px;" alt="${message("office.action.transform_pdf")}" title="${message("office.action.transform_pdf")}" /></a>
</#if>

View File

@@ -11,6 +11,10 @@
</dl>
<BR>
Returns the new authentication ticket.
<BR>
The username and password are provided as URL arguments which may be<br>
logged by proxies or the Alfresco server. The alternative POST method<br>
of login is recommended instead of GET.
]]>
</description>
<url>/api/login?u={username}&amp;pw={password?}</url>

View File

@@ -1,3 +1,4 @@
<import resource="classpath:/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/lib/calendar.lib.js">
/**
* Limits the number of events that get returned.
* TODO: have this supported in the Lucene query syntax
@@ -17,6 +18,67 @@ var siteId = url.templateArgs.site;
model.events = getUserEvents(username, siteId, range);
/**
* calculates duration based on specified start and end dates
*
*
* @method getDuration
* @param dtStartDate {Date} start date
* @param dtEndDate {Date} end date
* @return {String} Duration in ical format eg PT2H15M
*/
function getDuration(dtStartDate,dtEndDate)
{
var DAY = "D";
var WEEK = "W";
var YEAR = "Y";
var MONTH = "M";
var HOUR = 'H';
var SECOND = 'S';
var MINUTE = 'Mn';
var diff = dtEndDate.getTime() - dtStartDate.getTime() ;
var dateDiff = {};
var duration = 'P';
var diff = new Date();
diff.setTime(Math.abs(dtStartDate.getTime() - dtEndDate.getTime()));
var timediff = diff.getTime();
dateDiff[WEEK] = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
timediff -= dateDiff[WEEK] * (1000 * 60 * 60 * 24 * 7);
dateDiff[DAY] = (Math.floor(timediff / (1000 * 60 * 60 * 24))+1);
timediff -= dateDiff[DAY] * (1000 * 60 * 60 * 24);
dateDiff[HOUR] = Math.floor(timediff / (1000 * 60 * 60));
timediff -= dateDiff[HOUR] * (1000 * 60 * 60);
dateDiff[MINUTE] = Math.floor(timediff / (1000 * 60));
timediff -= dateDiff[MINUTE] * (1000 * 60);
dateDiff[SECOND] = Math.floor(timediff / 1000);
timediff -= dateDiff[SECOND] * 1000;
if (dateDiff[WEEK]>0){
duration+=dateDiff[WEEK]+WEEK;
}
if (dateDiff[DAY]>0){
duration+=dateDiff[DAY]+DAY;
}
duration+='T';
if (dateDiff[HOUR]>0){
duration+=dateDiff[HOUR]+HOUR;
}
if (dateDiff[MINUTE]>0){
duration+=dateDiff[MINUTE]+'M';
}
if (dateDiff[SECOND]>0){
duration+=dateDiff[SECOND]+SECOND;
}
return duration;
};
function getUserEvents(user, siteId, range)
{
if (!user)
@@ -76,6 +138,7 @@ function getUserEvents(user, siteId, range)
event.siteTitle = siteTitles[event.site];
event.allday = (isAllDayEvent(e)) ? 'true' : 'false';
event.tags = e.tags.join(' ');
event.duration = getDuration(event.start,event.end);
events.push(event);
}

View File

@@ -13,10 +13,12 @@
"url": "page/site/${event.site}/calendar?date=${event.when?string("yyyy-MM-dd")}",
"start": "${event.start?string("HH:mm")}",
"end": "${event.end?string("HH:mm")}",
"endDate" : "${xmldate(event.end)}",
"site": "${event.site?html}",
"siteTitle": "${event.siteTitle?html}",
"allday": "${event.allday}",
"tags": "${event.tags?html}"
"tags": "${event.tags?html}",
"duration": "${event.duration?html}"
}<#if event_has_next>,</#if>
</#list>
]

View File

@@ -312,7 +312,6 @@ public class LockMethod extends WebDAVMethod
xml.endElement(WebDAV.DAV_NS, WebDAV.XML_MULTI_STATUS, WebDAV.XML_NS_MULTI_STATUS);
// Send the XML back to the client
m_response.setStatus(HttpServletResponse.SC_OK);
xml.flush();
}
}