Merged V2.2 to HEAD (V2.1 sourced)

7127: Merged V2.1 to V2.2
      7118: Fixed overly-eager applicability of patches brought forward from previous releases
      7119: Fixed SQL script patch schema numbering
   7245: Merged V2.1 to V2.2:
      7238: Serializes alfresco->alfresco deployments to the same target.
      7241: Added AVM index tracking into the built-in, cron-controlled config.
      7242: More DEBUG messages for index tracking, where required.
      7243: Fix for url encoding issue as found by by Ishii Akinori
   7372: Merged V2.1 to V2.2
      7289: Fix for AWC-1542 where utf-8 characters not displaying correctly in RSS feed output
      7300: Bumped up session size management values to reduce potential issues with mix-style, shorter transactions.
      7303: Portlet updates for MSIE problems in Liferay.
      7304: Added the <cifs-url-suffix>. AWC-1671.
      7317: Fix OO shutdown
      7319: Catch for raising rule executions using null NodeRefs.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@7374 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2007-11-13 03:19:12 +00:00
parent f6ae19f3f5
commit 4510919e61
11 changed files with 86 additions and 21 deletions

View File

@@ -186,6 +186,10 @@ a.docfilterLinkSelected:link, a.docfilterLinkSelected:visited
vertical-align: top;
}
.docHeader th
{
text-align: center;
}
.docFooter
{

View File

@@ -132,6 +132,8 @@ a.spacefilterLink:hover
{
color: #168ECE;
background-color: #EEF7FB;
font-weight: bold;
text-decoration: none;
}
a.spacefilterLinkSelected:link, a.spacefilterLinkSelected:visited, .spaceCurrentSpace
@@ -164,6 +166,11 @@ a.spacefilterLinkSelected:link, a.spacefilterLinkSelected:visited, .spaceCurrent
background-image: url(${url.context}/images/parts/doclist_headerbg.png);
height: 30px;
}
.spaceHeader table
{
border-collapse: separate;
border-spacing: 6px 6px;
}
#spacePanel
{

View File

@@ -18,7 +18,7 @@
<#else>
<#-- 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}&amp;p=${args.p}/${d.name}</span>
<span class="spaceNavLinkUrl">${url.serviceContext}/ui/myspaces?f=${args.f}&amp;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>

View File

@@ -85,6 +85,11 @@
<!-- minimum length for username and password -->
<username-min-length>2</username-min-length>
<password-min-length>3</password-min-length>
<!-- Domain suffix appended to the CIFS URL host name -->
<!--
<cifs-url-suffix>.alfresco.org<cifs-url-suffix>
-->
</client>
</config>

View File

@@ -826,9 +826,15 @@ public class NavigationBean
String serverName = this.cifsServer.getConfiguration().getServerName();
if (serverName != null && serverName.length() != 0)
{
buf.append("\\\\")
.append(serverName)
.append("\\");
buf.append("\\\\");
buf.append(serverName);
// Check if there is a suffix to apply to the host name
if ( clientConfig != null && clientConfig.getCifsURLSuffix() != null)
buf.append(clientConfig.getCifsURLSuffix());
buf.append("\\");
buf.append(diskShare.getName());
}

View File

@@ -411,7 +411,7 @@ public class SpaceDetailsBean extends BaseDetailsBean
// add the mimetype=text/xml URL parameter - required to return correct stream type
return GuestTemplateContentServlet.generateURL(space.getNodeRef(),
(NodeRef)space.getProperties().get(ApplicationModel.PROP_FEEDTEMPLATE))
+ "/rss.xml?mimetype=text%2Fxml";
+ "/rss.xml?mimetype=text%2Fxml%3Bcharset=utf-8";
}
/**

View File

@@ -74,6 +74,7 @@ public class ClientConfigElement extends ConfigElementAdapter
private List<QName> simpleSearchAdditionalAttributes = null;
private int minUsernameLength = 2;
private int minPasswordLength = 3;
private String cifsURLSuffix;
/**
* Default Constructor
@@ -232,6 +233,12 @@ public class ClientConfigElement extends ConfigElementAdapter
combinedElement.setMinPasswordLength(newElement.getMinPasswordLength());
}
if ( newElement.getCifsURLSuffix() != null &&
newElement.getCifsURLSuffix().equals(combinedElement.getCifsURLSuffix()) == false)
{
combinedElement.setCifsURLSuffix(newElement.getCifsURLSuffix());
}
return combinedElement;
}
@@ -623,4 +630,24 @@ public class ClientConfigElement extends ConfigElementAdapter
{
this.minPasswordLength = minPasswordLength;
}
/**
* Get the CIFs URL suffix
*
* @return String
*/
public final String getCifsURLSuffix()
{
return cifsURLSuffix;
}
/**
* Set the CIFS URL suffix
*
* @param suffix String
*/
void setCifsURLSuffix(String suffix)
{
cifsURLSuffix = suffix;
}
}

View File

@@ -63,6 +63,7 @@ public class ClientElementReader implements ConfigElementReader
public static final String ELEMENT_SIMPLESEARCHADDITIONALATTRSQNAME = "qname";
public static final String ELEMENT_MINUSERNAMELENGTH = "username-min-length";
public static final String ELEMENT_MINPASSWORDLENGTH = "password-min-length";
public static final String ELEMENT_CIFSURLSUFFIX = "cifs-url-suffix";
/**
* @see org.alfresco.config.xml.elementreader.ConfigElementReader#parse(org.dom4j.Element)
@@ -244,6 +245,16 @@ public class ClientElementReader implements ConfigElementReader
{
configElement.setMinPasswordLength(Integer.parseInt(minPassword.getTextTrim()));
}
// Get the CIFS URL suffix
Element cifsSuffix = element.element(ELEMENT_CIFSURLSUFFIX);
if ( cifsSuffix != null)
{
String suffix = cifsSuffix.getTextTrim();
if ( suffix.startsWith( ".") == false)
suffix = "." + suffix;
configElement.setCifsURLSuffix( suffix);
}
}
return configElement;

View File

@@ -18,7 +18,7 @@ var MyDocs = {
{
$('docPanelOverlay').setStyle('opacity', 0);
// show AJAX loading overlay
$('docPanelOverlayAjax').setStyle('visibility', 'visible');
$('docPanelOverlayAjax').setStyle('display', 'block');
$('docPanel').setStyle('visibility', 'hidden');
var messagePanel = $('docMessagePanel');
@@ -48,7 +48,7 @@ var MyDocs = {
$('docPanel').setHTML("Sorry, data currently unavailable.");
// hide the ajax wait panel and show the main doc panel
$('docPanelOverlayAjax').setStyle('visibility', 'hidden');
$('docPanelOverlayAjax').setStyle('display', 'none');
$('docPanel').setStyle('visibility', 'visible');
}
}
@@ -61,7 +61,7 @@ var MyDocs = {
MyDocs.parseDocPanels();
// hide the ajax wait panel and show the main doc panel
$('docPanel').setStyle('visibility', 'visible');
$('docPanelOverlayAjax').setStyle('visibility', 'hidden');
$('docPanelOverlayAjax').setStyle('display', 'none');
if (MyDocs.postInit)
{
@@ -741,7 +741,7 @@ var MyDocs = {
var docPanel = $('docPanel');
docPanel.setStyle('visibility', 'hidden');
// show the ajax wait panel
$('docPanelOverlayAjax').setStyle('visibility', 'visible');
$('docPanelOverlayAjax').setStyle('display', 'block');
// Stop all the animation effects
MyDocs.FxAll.each(function(fx, i)

View File

@@ -20,7 +20,7 @@ return array?hex:'#'+hex.join('');},hexToRgb:function(array){if(this.length!=3)r
return array?rgb:'rgb('+rgb.join(',')+')';}});Function.extend({create:function(options){var fn=this;options=$merge({'bind':fn,'event':false,'arguments':null,'delay':false,'periodical':false,'attempt':false},options);if($chk(options.arguments)&&$type(options.arguments)!='array')options.arguments=[options.arguments];return function(event){var args;if(options.event){event=event||window.event;args=[(options.event===true)?event:new options.event(event)];if(options.arguments)args.extend(options.arguments);}
else args=options.arguments||arguments;var returns=function(){return fn.apply($pick(options.bind,fn),args);};if(options.delay)return setTimeout(returns,options.delay);if(options.periodical)return setInterval(returns,options.periodical);if(options.attempt)try{return returns();}catch(err){return false;};return returns();};},pass:function(args,bind){return this.create({'arguments':args,'bind':bind});},attempt:function(args,bind){return this.create({'arguments':args,'bind':bind,'attempt':true})();},bind:function(bind,args){return this.create({'bind':bind,'arguments':args});},bindAsEventListener:function(bind,args){return this.create({'bind':bind,'event':true,'arguments':args});},delay:function(delay,bind,args){return this.create({'delay':delay,'bind':bind,'arguments':args})();},periodical:function(interval,bind,args){return this.create({'periodical':interval,'bind':bind,'arguments':args})();}});Number.extend({toInt:function(){return parseInt(this);},toFloat:function(){return parseFloat(this);},limit:function(min,max){return Math.min(max,Math.max(min,this));},round:function(precision){precision=Math.pow(10,precision||0);return Math.round(this*precision)/precision;},times:function(fn){for(var i=0;i<this;i++)fn(i);}});var Element=new Class({initialize:function(el,props){if($type(el)=='string'){if(window.ie&&props&&(props.name||props.type)){var name=(props.name)?' name="'+props.name+'"':'';var type=(props.type)?' type="'+props.type+'"':'';delete props.name;delete props.type;el='<'+el+name+type+'>';}
el=document.createElement(el);}
el=$(el);return(!props||!el)?el:el.set(props);}});var Elements=new Class({initialize:function(elements){return(elements)?$extend(elements,this):this;}});Elements.extend=function(props){for(var prop in props){this.prototype[prop]=props[prop];this[prop]=$native.generic(prop);}};function $(el){if(!el)return null;if(el.htmlElement)return Garbage.collect(el);if([window,document].contains(el))return el;var type=$type(el);if(type=='string'){el=document.getElementById(el);type=(el)?'element':false;}
el=$(el);return(!props||!el)?el:el.set(props);}});var Elements=new Class({initialize:function(elements){return(elements)?$extend(elements,this):this;}});Elements.extend=function(props){for(var prop in props){this.prototype[prop]=props[prop];this[prop]=$native.generic(prop);}};function $(el){if(!el)return null;if(el.htmlElement)return Garbage.collect(el);/* if([window,document].contains(el))return el; */ var type=$type(el);if(type=='string'){el=document.getElementById(el);type=(el)?'element':false;}
if(type!='element')return null;if(el.htmlElement)return Garbage.collect(el);if(['object','embed'].contains(el.tagName.toLowerCase()))return el;$extend(el,Element.prototype);el.htmlElement=function(){};return Garbage.collect(el);};document.getElementsBySelector=document.getElementsByTagName;function $$(){var elements=[];for(var i=0,j=arguments.length;i<j;i++){var selector=arguments[i];switch($type(selector)){case'element':elements.push(selector);case'boolean':break;case false:break;case'string':selector=document.getElementsBySelector(selector,true);default:elements.extend(selector);}}
return $$.unique(elements);};$$.unique=function(array){var elements=[];for(var i=0,l=array.length;i<l;i++){if(array[i].$included)continue;var element=$(array[i]);if(element&&!element.$included){element.$included=true;elements.push(element);}}
for(var n=0,d=elements.length;n<d;n++)elements[n].$included=null;return new Elements(elements);};Elements.Multi=function(property){return function(){var args=arguments;var items=[];var elements=true;for(var i=0,j=this.length,returns;i<j;i++){returns=this[i][property].apply(this[i],args);if($type(returns)!='element')elements=false;items.push(returns);};return(elements)?$$.unique(items):items;};};Element.extend=function(properties){for(var property in properties){HTMLElement.prototype[property]=properties[property];Element.prototype[property]=properties[property];Element[property]=$native.generic(property);var elementsProperty=(Array.prototype[property])?property+'Elements':property;Elements.prototype[elementsProperty]=Elements.Multi(property);}};Element.extend({set:function(props){for(var prop in props){var val=props[prop];switch(prop){case'styles':this.setStyles(val);break;case'events':if(this.addEvents)this.addEvents(val);break;case'properties':this.setProperties(val);break;default:this.setProperty(prop,val);}}

View File

@@ -26,7 +26,7 @@ var MySpaces = {
messagePanel.setStyle('display', 'block');
// show AJAX loading overlay
$('spacePanelOverlayAjax').setStyle('visibility', 'visible');
$('spacePanelOverlayAjax').setStyle('display', 'block');
$('spacePanel').setStyle('visibility', 'hidden');
// fire off the ajax request to populate the spaces list - the 'myspacespanel' webscript
@@ -63,7 +63,7 @@ var MySpaces = {
$('spacePanel').setHTML("Sorry, data currently unavailable.");
// hide the ajax wait panel and show the main spaces panel
$('spacePanelOverlayAjax').setStyle('visibility', 'hidden');
$('spacePanelOverlayAjax').setStyle('display', 'none');
$('spacePanel').setStyle('visibility', 'visible');
}
}
@@ -76,7 +76,7 @@ var MySpaces = {
MySpaces.parseSpacePanels();
// hide the ajax wait panel and show the main spaces panel
$('spacePanelOverlayAjax').setStyle('visibility', 'hidden');
$('spacePanelOverlayAjax').setStyle('display', 'none');
$('spacePanel').setStyle('visibility', 'visible');
if (MySpaces.postInit)
@@ -504,7 +504,7 @@ var MySpaces = {
var panel = $E(".spaceCreateSpacePanel", $(actionEl).getParent());
panel.setStyle("opacity", 0);
panel.setStyle("display", "inline");
panel.getElementsBySelector('#space-name').removeClass("spaceFormItemError");
$E("#space-name", panel).removeClass("spaceFormItemError");
Alfresco.Dom.smartAlignElement(panel, panel.getParent());
// make into a dragable panel
@@ -517,7 +517,7 @@ var MySpaces = {
transition: Fx.Transitions.linear,
onComplete: function()
{
var nameInput = this.element.getElementById("space-name");
var nameInput = $E("#space-name", this.element);
nameInput.focus();
nameInput.select();
}
@@ -543,9 +543,9 @@ var MySpaces = {
{
if (spaceName.test(/(.*[\"\*\\\>\<\?\/\:\|]+.*)|(.*[\.]?.*[\.]+$)|(.*[ ]+$)/i))
{
// Different object access methods to workaround MSIE7 problem
panel.getElementsBySelector('#space-name').addClass("spaceFormItemError");
panel.getElementById("space-name").focus();
var spaceName = $E("#space-name", panel);
spaceName.addClass("spaceFormItemError");
spaceName.focus();
}
else
{
@@ -905,7 +905,7 @@ var MySpaces = {
var spacePanel = $('spacePanel');
spacePanel.setStyle('visibility', 'hidden');
// show the ajax wait panel
$('spacePanelOverlayAjax').setStyle('visibility', 'visible');
$('spacePanelOverlayAjax').setStyle('display', 'block');
// Stop all the animation effects
MySpaces.FxAll.each(function(fx, i)
@@ -923,7 +923,9 @@ var MySpaces = {
*/
applyModal: function()
{
$("spacePanelOverlay").setStyle('opacity', MySpaces.OVERLAY_OPACITY);
var overlay = $('spacePanelOverlay')
overlay.setStyle('opacity', MySpaces.OVERLAY_OPACITY);
overlay.setStyle('display', 'block');
},
/**
@@ -931,7 +933,10 @@ var MySpaces = {
*/
removeModal: function()
{
$("spacePanelOverlay").setStyle('opacity', 0);
var overlay = $('spacePanelOverlay')
overlay.setStyle('opacity', 0);
overlay.setStyle('display', 'none');
overlay.setStyle('visibility', 'visible');
},
/**