Merged BRANCHES/DEV/V4.1-BUG-FIX to HEAD

45144: Fix for ALF-16790 - upload ignores additional aspects for updateNodes
   45174: Merged V4.1-BUG-FIX-2012_11_22 to V4.1-BUG-FIX
   43940: ALF-15209: Add Dashlet to User or Site Dashboard not working when IE8 is operating in Compatibility Mode. 
             Fix check p_el.attributes["id"] to avoid errors for "IE8 compatibility mode
   45175: Fix for ALF-17260 - Tags list not updated after moving/copying an high number of nodes with taggable aspect but no tags 
   45188: ALF-16254 ("Leave Site" behaviour for group based site membership)
   45204: Fix for ALF-17335 - OnCreateNodePolicy not fired when custom type is used in the Share flash upload
   45218: ALF-17248 BaseAssociationEditor.java does not return any results when the query filter consists of "firstname + lastname" 
   45221: Merged V4.1.3 (4.1.3) to V4.1-BUG-FIX (4.1.4) RECORD ONLY
             45220: Merged: V4.1-BUG-FIX (4.1.4) to V4.1.3 (4.1.3)
                44054: Fix for ALF-16337. Datalist assignee not searchable by full name.
                45218: ALF-17248 BaseAssociationEditor.java does not return any results when the query filter consists of "firstname + lastname"
   45245: ALF-17089 (Displaying Url Name instead of site Name in Select form)
   45257: ALF-17318 Unnecessary Canned Query in .getPeople(String,...) on startup.
          - Just one extra query on each run of the FeedNotifier was being made at the end.
            The sequence of queries are necessary.
   45336: Merged DEV to V4.1-BUG-FIX (4.1.4)
             45318: ALF-14086: CLONE - Sort order of folders including hyphens ( - ) are different in folder-tree and view on folders (in Share)
             Sort groups and users on the Java server side using collators.
             - Deprecated a few methods not deprecated in DEV and removed one which had just been added to 4.1.4
   45362: Merged V3.4-BUG-FIX (3.4.13) to V4.1-BUG-FIX <<RECORD ONLY>>
             45361: Merged V3.4 (3.4.12) to V3.4-BUG-FIX (3.4.13)
                45360: ALF-17431: Merged V4.1 (4.1.2) to V3.4 (3.4.12)
                   43622: ALF-16757: Sharepoint doesn't work correct with SSO
                   - Fix by Pavel
   45385: Merged V4.1.3 (4.1.3) to V4.1-BUG-FIX (4.1.4)
             45384: ALF-17097 60k Site Performance: Admin Console | Groups | Browse Groups (include sys groups): Results isn't appeared.
                - Error in authorities comparator causing test failure of ALF 14086 in 4.1.4 only.
                  4.1.3 was okay as ALF 14086 now uses the change made for ALF-17097 but only in 4.1.4
   45452: Corrected config check for ALF-16413 - Share asks for Basic-Auth while not needed trying to access RSS feeds (thus breaking SSO).
   45467: Fix for ALF-17509 - patches the FreeMarker built-in ?js_string to correctly encode the "/" character.
   45468: ALF-17492 - WebScript errors must contain useful information
          - SpringSurf libs 1217 provide additional INFO log information on the HTTP method, URL+params that caused the exception.
   45475: Fix for ALF-17510 - Upgrade of htmlparser from 1.6 to 2.1
   45566: Fixed ALF-17530
          - Refactored "successCallback" & "successScope" parameters for multipart uploads to be simply "success" (same for failure)
   45574: Fixed ALF-17528
          - Asserting that request is made using application/json
   45662: Merged HEAD to BRANCHES/DEV/V4.1-BUG-FIX:
             45660: Fixes: ALF-17539 - The server was failing to parse the date. It shouldn't have been trying to parse it at all.
   45849: Merged HEAD to BRANCHES/DEV/V4.1-BUG-FIX:
             45824: Fixes: ALF-13676: Event edit times are now presented using the date-format.shortTime setting & may be entered in either 24h or 12hr formats.
   45876: ALF-17642: Fix broken HtmlParserContentTransformerTest after upgrade of htmlparser to 2.1
          - Since the upgrade slightly changed the behaviour of the transformer, I added some explanatory comments to the test and to the transformer class.
   45927: Fix for ALF-17302  DocLib sort is determined by server locale rather than browser locale 
          - GetChildrenCannedQuery was not using locale based collation
   46014: Fix for ALF-17732 - SWF files are considered insecure content and should not be displayed directly in the browser.
   46160: Fix for ALF-17759 - HTML files are stripped from metadata and style information after they are uploaded.
   46186: Fix for ALF-17786 - Site dashboard page issues too many requests (Site Members dashlet issues avatar requests when it doesn't need too)

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@46287 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2013-02-06 11:00:59 +00:00
parent 0da673b9cf
commit 7f6d154ed8
3 changed files with 55 additions and 15 deletions

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2005-2011 Alfresco Software Limited. * Copyright (C) 2005-2013 Alfresco Software Limited.
* *
* This file is part of Alfresco * This file is part of Alfresco
* *
@@ -124,9 +124,7 @@ public class DeleteUserDialog extends BaseDialogBean
// define the query to find people by their first or last name // define the query to find people by their first or last name
String search = ISO9075.encode(this.searchCriteria); String search = ISO9075.encode(this.searchCriteria);
List<Pair<QName,String>> filter = new ArrayList<Pair<QName,String>>(); List<Pair<QName,String>> filter = Utils.generatePersonFilter(search);
filter.add(new Pair<QName, String>(ContentModel.PROP_FIRSTNAME, search));
filter.add(new Pair<QName, String>(ContentModel.PROP_LASTNAME, search));
if (logger.isDebugEnabled()) if (logger.isDebugEnabled())
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2005-2010 Alfresco Software Limited. * Copyright (C) 2005-2013 Alfresco Software Limited.
* *
* This file is part of Alfresco * This file is part of Alfresco
* *
@@ -98,6 +98,9 @@ public final class Utils extends StringUtils
private static final Log logger = LogFactory.getLog(Utils.class); private static final Log logger = LogFactory.getLog(Utils.class);
/** RegEx to split a String on the first space. */
public static final String ON_FIRST_SPACE = " +";
static static
{ {
tagWhiteList.add("STRIKE"); tagWhiteList.add("STRIKE");
@@ -1132,9 +1135,54 @@ public final class Utils extends StringUtils
filter.add(new Pair<QName, String>(ContentModel.PROP_FIRSTNAME, term)); filter.add(new Pair<QName, String>(ContentModel.PROP_FIRSTNAME, term));
filter.add(new Pair<QName, String>(ContentModel.PROP_LASTNAME, term)); filter.add(new Pair<QName, String>(ContentModel.PROP_LASTNAME, term));
filter.add(new Pair<QName, String>(ContentModel.PROP_USERNAME, term)); filter.add(new Pair<QName, String>(ContentModel.PROP_USERNAME, term));
// In order to support queries for "Alan Smithee", we'll parse these tokens
// and add them in to the query.
Pair<String, String> tokenisedName = tokeniseName(term);
if (tokenisedName != null)
{
filter.add(new Pair<QName, String>(ContentModel.PROP_FIRSTNAME, tokenisedName.getFirst()));
filter.add(new Pair<QName, String>(ContentModel.PROP_LASTNAME, tokenisedName.getSecond()));
}
return filter; return filter;
} }
/**
* This method will tokenise a name string in order to extract first name, last name - if possible.
* The split is simple - it's made on the first whitespace within the trimmed nameFilter String. So
* <p/>
* "Luke Skywalker" becomes ["Luke", "Skywalker"].
* <p/>
* "Jar Jar Binks" becomes ["Jar", "Jar Binks"].
* <p/>
* "C-3PO" becomes null.
*
* @param nameFilter
* @return A Pair<firstName, lastName> if the String is valid, else <tt>null</tt>.
*/
private static Pair<String, String> tokeniseName(String nameFilter)
{
Pair<String, String> result = null;
if (nameFilter != null)
{
final String trimmedNameFilter = nameFilter.trim();
// We can only have a first name and a last name if we have at least 3 characters e.g. "A B".
if (trimmedNameFilter.length() > 3)
{
final String[] tokens = trimmedNameFilter.split(ON_FIRST_SPACE, 2);
if (tokens.length == 2)
{
result = new Pair<String, String>(tokens[0], tokens[1]);
}
}
}
return result;
}
/** /**
* How many results should a person search return up to? This is needed * How many results should a person search return up to? This is needed
* because the JSF components do paging differently. * because the JSF components do paging differently.

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2005-2011 Alfresco Software Limited. * Copyright (C) 2005-2013 Alfresco Software Limited.
* *
* This file is part of Alfresco * This file is part of Alfresco
* *
@@ -1032,15 +1032,9 @@ public abstract class BaseAssociationEditor extends UIInput
} }
else if(type.equals(ContentModel.TYPE_PERSON.toString())) else if(type.equals(ContentModel.TYPE_PERSON.toString()))
{ {
// If the association's target is the person type search on the List<Pair<QName,String>> filter = (contains != null && contains.trim().length() > 0)
// firstName and lastName properties instead of the name property ? Utils.generatePersonFilter(contains.trim())
List<Pair<QName,String>> filter = new ArrayList<Pair<QName,String>>(); : null;
if (contains != null && contains.length() > 0)
{
String search = contains.trim();
filter.add(new Pair<QName, String>(ContentModel.PROP_FIRSTNAME, search));
filter.add(new Pair<QName, String>(ContentModel.PROP_LASTNAME, search));
}
// Always sort by last name, then first name // Always sort by last name, then first name
List<Pair<QName,Boolean>> sort = new ArrayList<Pair<QName,Boolean>>(); List<Pair<QName,Boolean>> sort = new ArrayList<Pair<QName,Boolean>>();