mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.0 to HEAD
12003: ETHREEOH-535: User with Editor role can't edit content 12016: ETHREEOH-864 12018: Fixed NullPointerException during NFS mount. JLAN-51. 12019: Fixed problems in mounting the Alfresco filesystems with NFS. ETHREEOH-913. 12020: Use a default RPC authenticator if not specified in the xml configuration. JLAN-51. 12021: Fixed typo in Portmapper server class name that is loader dynamically. JLAN-52. 12025: MT - fix export/import tenant (ensure tenant admin ops run in tx) 12026: Site service now returns information about the site managers. First part of fix for ETHREEOH-547 12027: Fix for ETHREEOH-664 and ETHREEOH-789. RSS feed issues and authentication errors when trying to retrieve user details via feed service endpoint. 12029: Fix for some wiki page links being highlighted as "missing page" when they're not 12030: ETHREEOH-916 - Unable to "Publish Internally" a newly created blog post 12031: Added logging to thumbnail service to help diagnose ETHREEOH-910 should it occur again 12032: Removed out of date comment on mysql driver 12034: Suppress freemarker.runtime ERROR log messages. These may correspond to exceptions that get handled by Alfresco's retrying transaction handler (e.g. optimistic locking failures) and are only passed on and logged if the retry threshold is exceeded. 12037: Fix for ETHREEOH-901: Radio buttons using a enumeration can not be selected in internet explorer and selecting an option in a drop down menu causes a script error in Internet Explorer 12038: Merged 2.2 to 3.0 12017: Integrated ETWOTWO-926: Inline callouts should be able to reference a web script maintained in the Data Dictionary 12042: Build fix 12043: Fix for ETHREEOH-472 & ETHREEOH-473: File picker restrictions (folder and search) do not work. 12065: New class Alfresco.service.Preferences that makes it easy to add and remove user preferences. 12069: Fix for ETHREEOH-926. Fixed bug webscript matching code when url element containing a dot is followed by further url elements. 12071: Added support to Alfresco.service.Preferences so it can handle hirerchial properties, ie "org.alfresco.share.sites.favourites" 12074: Fix for ETHREEOH-896: XML Form layout is incorrect on Firefox 3 12075: Fix for ETHREEOH-917 - help text for Create Site changed as requested. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@12497 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -50,7 +50,7 @@ public class CheckoutDocEvaluator extends BaseActionEvaluator
|
|||||||
FacesContext.getCurrentInstance()).getDictionaryService();
|
FacesContext.getCurrentInstance()).getDictionaryService();
|
||||||
|
|
||||||
return dd.isSubClass(node.getType(), ContentModel.TYPE_CONTENT) &&
|
return dd.isSubClass(node.getType(), ContentModel.TYPE_CONTENT) &&
|
||||||
((node.hasPermission(PermissionService.CHECK_OUT) && node.hasPermission(PermissionService.CREATE_CHILDREN) &&
|
((node.hasPermission(PermissionService.CHECK_OUT) &&
|
||||||
(node.isLocked() == false &&
|
(node.isLocked() == false &&
|
||||||
node.hasAspect(ContentModel.ASPECT_WORKING_COPY) == false) &&
|
node.hasAspect(ContentModel.ASPECT_WORKING_COPY) == false) &&
|
||||||
node.hasAspect(ContentModel.ASPECT_MULTILINGUAL_EMPTY_TRANSLATION) == false));
|
node.hasAspect(ContentModel.ASPECT_MULTILINGUAL_EMPTY_TRANSLATION) == false));
|
||||||
|
@@ -872,6 +872,11 @@ public class FilePickerBean implements Serializable
|
|||||||
query = queryElemText.substring(cdataStartDelimIndex
|
query = queryElemText.substring(cdataStartDelimIndex
|
||||||
+ CDATA_START_DELIM.length(), cdataEndDelimIndex);
|
+ CDATA_START_DELIM.length(), cdataEndDelimIndex);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// otherwise just use the text as is
|
||||||
|
query = queryElemText;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// perform the search against the repository
|
// perform the search against the repository
|
||||||
|
@@ -77,6 +77,10 @@ import org.w3c.dom.events.EventListener;
|
|||||||
import org.w3c.dom.events.EventTarget;
|
import org.w3c.dom.events.EventTarget;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
import org.alfresco.service.cmr.security.AuthenticationService;
|
||||||
|
import org.alfresco.web.bean.repository.Repository;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bean for interacting with the chiba processor from the ui using ajax requests.
|
* Bean for interacting with the chiba processor from the ui using ajax requests.
|
||||||
* Manages the chiba bean lifecycle.
|
* Manages the chiba bean lifecycle.
|
||||||
@@ -537,28 +541,83 @@ public class XFormsBean implements Serializable
|
|||||||
final NodeList nl =
|
final NodeList nl =
|
||||||
XMLUtil.combine(schemaDocument.getElementsByTagNameNS(NamespaceConstants.XMLSCHEMA_NS, "include"),
|
XMLUtil.combine(schemaDocument.getElementsByTagNameNS(NamespaceConstants.XMLSCHEMA_NS, "include"),
|
||||||
schemaDocument.getElementsByTagNameNS(NamespaceConstants.XMLSCHEMA_NS, "import"));
|
schemaDocument.getElementsByTagNameNS(NamespaceConstants.XMLSCHEMA_NS, "import"));
|
||||||
|
|
||||||
if (LOGGER.isDebugEnabled())
|
if (LOGGER.isDebugEnabled())
|
||||||
LOGGER.debug("rewriting " + nl.getLength() + " includes");
|
LOGGER.debug("rewriting " + nl.getLength() + " includes");
|
||||||
|
|
||||||
for (int i = 0; i < nl.getLength(); i++)
|
for (int i = 0; i < nl.getLength(); i++)
|
||||||
{
|
{
|
||||||
final Element includeEl = (Element)nl.item(i);
|
final Element includeEl = (Element)nl.item(i);
|
||||||
if (includeEl.hasAttribute("schemaLocation"))
|
if (includeEl.hasAttribute("schemaLocation"))
|
||||||
{
|
{
|
||||||
String uri = includeEl.getAttribute("schemaLocation");
|
String uri = includeEl.getAttribute("schemaLocation");
|
||||||
if (uri != null && uri.startsWith("http://"))
|
String finalURI = null;
|
||||||
|
|
||||||
|
if (uri == null || uri.startsWith("http://") || uri.startsWith("https://"))
|
||||||
{
|
{
|
||||||
if (LOGGER.isDebugEnabled())
|
if (LOGGER.isDebugEnabled())
|
||||||
LOGGER.debug("not rewriting " + uri);
|
LOGGER.debug("not rewriting " + uri);
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
final String baseURI = (uri.charAt(0) == '/'
|
if (uri.startsWith("webscript://"))
|
||||||
? AVMUtil.buildStoreUrl(cwdAvmPath)
|
{
|
||||||
: AVMUtil.buildAssetUrl(cwdAvmPath));
|
// It's a web script include / import
|
||||||
|
final FacesContext facesContext = FacesContext.getCurrentInstance();
|
||||||
|
final ExternalContext externalContext = facesContext.getExternalContext();
|
||||||
|
final HttpServletRequest request = (HttpServletRequest)externalContext.getRequest();
|
||||||
|
|
||||||
|
final String baseURI = (request.getScheme() + "://" +
|
||||||
|
request.getServerName() + ':' +
|
||||||
|
request.getServerPort() +
|
||||||
|
request.getContextPath() + "/wcservice");
|
||||||
|
String rewrittenURI = uri;
|
||||||
|
|
||||||
|
if (uri.contains("${storeid}"))
|
||||||
|
{
|
||||||
|
final String storeId = AVMUtil.getStoreName(cwdAvmPath);
|
||||||
|
rewrittenURI = uri.replace("${storeid}", storeId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (LOGGER.isDebugEnabled())
|
||||||
|
LOGGER.debug("no store id specified in webscript URI " + uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (uri.contains("${ticket}"))
|
||||||
|
{
|
||||||
|
AuthenticationService authenticationService = Repository.getServiceRegistry(facesContext).getAuthenticationService();
|
||||||
|
final String ticket = authenticationService.getCurrentTicket();
|
||||||
|
rewrittenURI = rewrittenURI.replace("${ticket}", ticket);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (LOGGER.isDebugEnabled())
|
||||||
|
LOGGER.debug("no ticket specified in webscript URI " + uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
rewrittenURI = rewrittenURI.replaceAll("%26","&");
|
||||||
|
|
||||||
|
finalURI = baseURI + rewrittenURI.replace("webscript://", "/");
|
||||||
|
|
||||||
|
if (LOGGER.isDebugEnabled())
|
||||||
|
LOGGER.debug("Final URI " + finalURI);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// It's a web project asset include / import
|
||||||
|
final String baseURI = (uri.charAt(0) == '/'
|
||||||
|
? AVMUtil.buildStoreUrl(cwdAvmPath)
|
||||||
|
: AVMUtil.buildAssetUrl(cwdAvmPath));
|
||||||
|
|
||||||
|
finalURI = baseURI + uri;
|
||||||
|
}
|
||||||
|
|
||||||
if (LOGGER.isDebugEnabled())
|
if (LOGGER.isDebugEnabled())
|
||||||
LOGGER.debug("rewriting " + uri + " as " + (baseURI + uri));
|
LOGGER.debug("rewriting " + uri + " as " + finalURI);
|
||||||
includeEl.setAttribute("schemaLocation", baseURI + uri);
|
|
||||||
|
includeEl.setAttribute("schemaLocation", finalURI);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -596,11 +596,15 @@ alfresco.xforms.TextField = alfresco.xforms.Widget.extend({
|
|||||||
|
|
||||||
this.widget = this.domNode;
|
this.widget = this.domNode;
|
||||||
this.widget.setAttribute("value", initial_value);
|
this.widget.setAttribute("value", initial_value);
|
||||||
if (this._maxLength >= 0 || this._length >= 0)
|
if (this._maxLength >= 0)
|
||||||
|
{
|
||||||
|
this.widget.setAttribute("maxlength", this._maxLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._length >= 0)
|
||||||
{
|
{
|
||||||
this.widget.setAttribute("maxlength", this._maxLength >= 0 ? this._maxLength : this._length);
|
|
||||||
this.widget.style.maxWidth = "100%";
|
this.widget.style.maxWidth = "100%";
|
||||||
this.widget.setAttribute("size", this._maxLength >= 0 ? this._maxLength : this._length);
|
this.widget.setAttribute("size", this._length);
|
||||||
}
|
}
|
||||||
else if (this.getAppearance() == "full")
|
else if (this.getAppearance() == "full")
|
||||||
{
|
{
|
||||||
@@ -1311,13 +1315,24 @@ alfresco.xforms.ListSelect = alfresco.xforms.AbstractSelectWidget.extend({
|
|||||||
/////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
_list_changeHandler: function(event)
|
_list_changeHandler: function(event)
|
||||||
{
|
{
|
||||||
|
var target;
|
||||||
|
|
||||||
|
if (window.ie)
|
||||||
|
{
|
||||||
|
target = window.event.srcElement;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
target = event.target;
|
||||||
|
}
|
||||||
|
|
||||||
this._selectedValues = [];
|
this._selectedValues = [];
|
||||||
for (var i = 0; i < event.target.options.length; i++)
|
for (var i = 0; i < target.options.length; i++)
|
||||||
{
|
{
|
||||||
if (event.target.options[i].selected)
|
if (target.options[i].selected)
|
||||||
{
|
{
|
||||||
this._selectedValues.push(event.target.options[i].getAttribute("value"));
|
this._selectedValues.push(target.options[i].getAttribute("value"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this._commitValueChange();
|
this._commitValueChange();
|
||||||
@@ -1407,18 +1422,30 @@ alfresco.xforms.RadioSelect1 = alfresco.xforms.AbstractSelectWidget.extend({
|
|||||||
|
|
||||||
_radio_clickHandler: function(event)
|
_radio_clickHandler: function(event)
|
||||||
{
|
{
|
||||||
if (!event.target.checked)
|
var target;
|
||||||
|
|
||||||
|
if (window.ie)
|
||||||
|
{
|
||||||
|
target = window.event.srcElement;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
target = event.target;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!target.checked)
|
||||||
{
|
{
|
||||||
var all_radios = this.widget.getElementsByTagName("input");
|
var all_radios = this.widget.getElementsByTagName("input");
|
||||||
for (var i = 0; i < all_radios.length; i++)
|
for (var i = 0; i < all_radios.length; i++)
|
||||||
{
|
{
|
||||||
if (all_radios[i].name == event.target.name)
|
if (all_radios[i].name == target.name)
|
||||||
{
|
{
|
||||||
all_radios[i].checked = event.target == all_radios[i];
|
all_radios[i].checked = target == all_radios[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this._selectedValue = event.target.value;
|
|
||||||
|
this._selectedValue = target.value;
|
||||||
this._commitValueChange();
|
this._commitValueChange();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -1499,7 +1526,18 @@ alfresco.xforms.ComboboxSelect1 = alfresco.xforms.AbstractSelectWidget.extend({
|
|||||||
|
|
||||||
_combobox_changeHandler: function(event)
|
_combobox_changeHandler: function(event)
|
||||||
{
|
{
|
||||||
this._selectedValue = event.target.options[event.target.selectedIndex].value;
|
var target;
|
||||||
|
|
||||||
|
if (window.ie)
|
||||||
|
{
|
||||||
|
target = window.event.srcElement;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
target = event.target;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._selectedValue = target.options[target.selectedIndex].value;
|
||||||
this._commitValueChange();
|
this._commitValueChange();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user