mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud)
80709: Merged WAT1 (5.0/Cloud) to HEAD-BUG-FIX (5.0/Cloud) 78667: ACE-1582: Made the facet config service and the relevant web scripts to accept single/multiple value(s) update (to support inline edits). git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@83007 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -170,6 +170,7 @@
|
|||||||
<property name="srftcustom:extraInformation">
|
<property name="srftcustom:extraInformation">
|
||||||
<title>Additional Facet Information</title>
|
<title>Additional Facet Information</title>
|
||||||
<type>d:any</type>
|
<type>d:any</type>
|
||||||
|
<mandatory>false</mandatory>
|
||||||
<multiple>true</multiple>
|
<multiple>true</multiple>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
|
@@ -326,7 +326,7 @@ public class SolrFacetConfig extends AbstractLifecycleBean
|
|||||||
{
|
{
|
||||||
if (additionalProps == null)
|
if (additionalProps == null)
|
||||||
{
|
{
|
||||||
return Collections.emptySet();
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Set<CustomProperties> customProps = new HashSet<>();
|
Set<CustomProperties> customProps = new HashSet<>();
|
||||||
|
@@ -69,7 +69,7 @@ public class SolrFacetProperties implements Serializable
|
|||||||
this.isEnabled = builder.isEnabled;
|
this.isEnabled = builder.isEnabled;
|
||||||
this.isDefault = builder.isDefault;
|
this.isDefault = builder.isDefault;
|
||||||
this.scopedSites = Collections.unmodifiableSet(new HashSet<String>(builder.scopedSites));
|
this.scopedSites = Collections.unmodifiableSet(new HashSet<String>(builder.scopedSites));
|
||||||
this.customProperties = Collections.unmodifiableSet(new HashSet<CustomProperties>(builder.customProperties));
|
this.customProperties = (builder.customProperties == null) ? null : Collections.unmodifiableSet(new HashSet<CustomProperties>(builder.customProperties));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -173,13 +173,13 @@ public class SolrFacetProperties implements Serializable
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an unmodifiable view of the custom properties set. Never null.
|
* Returns an unmodifiable view of the custom properties set or <i>null</i>.
|
||||||
*
|
*
|
||||||
* @return the customProperties
|
* @return the customProperties
|
||||||
*/
|
*/
|
||||||
public Set<CustomProperties> getCustomProperties()
|
public Set<CustomProperties> getCustomProperties()
|
||||||
{
|
{
|
||||||
return Collections.unmodifiableSet(new HashSet<CustomProperties>(this.customProperties));
|
return (this.customProperties == null) ? null : Collections.unmodifiableSet(new HashSet<CustomProperties>(this.customProperties));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -260,7 +260,7 @@ public class SolrFacetProperties implements Serializable
|
|||||||
private Set<String> scopedSites = Collections.emptySet();
|
private Set<String> scopedSites = Collections.emptySet();
|
||||||
private Boolean isEnabled;
|
private Boolean isEnabled;
|
||||||
private boolean isDefault;
|
private boolean isDefault;
|
||||||
private Set<CustomProperties> customProperties = Collections.emptySet();
|
private Set<CustomProperties> customProperties;
|
||||||
|
|
||||||
public Builder()
|
public Builder()
|
||||||
{
|
{
|
||||||
@@ -364,11 +364,8 @@ public class SolrFacetProperties implements Serializable
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Builder customProperties(Set<CustomProperties> customProperties)
|
public Builder customProperties(Set<CustomProperties> customProperties)
|
||||||
{
|
|
||||||
if (customProperties != null)
|
|
||||||
{
|
{
|
||||||
this.customProperties = customProperties;
|
this.customProperties = customProperties;
|
||||||
}
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -313,7 +313,8 @@ public class SolrFacetServiceImpl extends AbstractLifecycleBean implements SolrF
|
|||||||
|
|
||||||
Set<CustomProperties> extraProps = null;
|
Set<CustomProperties> extraProps = null;
|
||||||
Map<QName, Serializable> customProperties = getFacetCustomProperties(properties);
|
Map<QName, Serializable> customProperties = getFacetCustomProperties(properties);
|
||||||
if (customProperties.isEmpty())
|
boolean hasAspect = nodeService.hasAspect(nodeRef, SolrFacetModel.ASPECT_CUSTOM_PROPERTIES);
|
||||||
|
if (!hasAspect && customProperties.isEmpty())
|
||||||
{
|
{
|
||||||
extraProps = defaultFacet.getCustomProperties();
|
extraProps = defaultFacet.getCustomProperties();
|
||||||
}
|
}
|
||||||
@@ -433,7 +434,10 @@ public class SolrFacetServiceImpl extends AbstractLifecycleBean implements SolrF
|
|||||||
{
|
{
|
||||||
Map<QName, Serializable> properties = createNodeProperties(facetProperties);
|
Map<QName, Serializable> properties = createNodeProperties(facetProperties);
|
||||||
// Set the updated properties back onto the facet node reference
|
// Set the updated properties back onto the facet node reference
|
||||||
this.nodeService.setProperties(facetNodeRef, properties);
|
for (Entry<QName, Serializable> prop : properties.entrySet())
|
||||||
|
{
|
||||||
|
this.nodeService.setProperty(facetNodeRef, prop.getKey(), prop.getValue());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
{
|
{
|
||||||
@@ -441,51 +445,6 @@ public class SolrFacetServiceImpl extends AbstractLifecycleBean implements SolrF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private SolrFacetProperties makeValidFacetPropObj(SolrFacetProperties newFP)
|
|
||||||
{
|
|
||||||
|
|
||||||
SolrFacetProperties bootstraptedFP = defaultFacetsMap.get(newFP.getFilterID());
|
|
||||||
// null means there is no default facet
|
|
||||||
if(bootstraptedFP == null)
|
|
||||||
{
|
|
||||||
return new SolrFacetProperties.Builder(newFP).isDefault(false).build();
|
|
||||||
}
|
|
||||||
|
|
||||||
QName fieldQName = getValue(bootstraptedFP.getFacetQName(), newFP.getFacetQName(), null);
|
|
||||||
String displayName = getValue(bootstraptedFP.getDisplayName(), newFP.getDisplayName(), null);
|
|
||||||
String displayControl = getValue(bootstraptedFP.getDisplayControl(), newFP.getDisplayControl(), null);
|
|
||||||
int maxFilters = getValue(bootstraptedFP.getMaxFilters(), newFP.getMaxFilters(), -1);
|
|
||||||
int hitThreshold = getValue(bootstraptedFP.getHitThreshold(), newFP.getHitThreshold(), -1);
|
|
||||||
int minFilterValueLength = getValue(bootstraptedFP.getMinFilterValueLength(), newFP.getMinFilterValueLength(), -1);
|
|
||||||
String sortBy = getValue(bootstraptedFP.getSortBy(), newFP.getSortBy(), null);
|
|
||||||
String scope = getValue(bootstraptedFP.getScope(), newFP.getScope(), null);
|
|
||||||
Boolean isEnabled = getValue(bootstraptedFP.isEnabled(), newFP.isEnabled(), null);
|
|
||||||
Set<String> scopedSites = getValue(bootstraptedFP.getScopedSites(), newFP.getScopedSites(), null);
|
|
||||||
Set<CustomProperties> extraProps = getValue(bootstraptedFP.getCustomProperties(), newFP.getCustomProperties(), null);
|
|
||||||
// Construct the FacetProperty object
|
|
||||||
SolrFacetProperties fp = new SolrFacetProperties.Builder()
|
|
||||||
.filterID(newFP.getFilterID())
|
|
||||||
.facetQName(fieldQName)
|
|
||||||
.displayName(displayName)
|
|
||||||
.displayControl(displayControl)
|
|
||||||
.maxFilters(maxFilters)
|
|
||||||
.hitThreshold(hitThreshold)
|
|
||||||
.minFilterValueLength(minFilterValueLength)
|
|
||||||
.sortBy(sortBy)
|
|
||||||
.scope(scope)
|
|
||||||
.isEnabled(isEnabled)
|
|
||||||
.isDefault(true)
|
|
||||||
.scopedSites(scopedSites)
|
|
||||||
.customProperties(extraProps).build();
|
|
||||||
|
|
||||||
return fp;
|
|
||||||
}
|
|
||||||
|
|
||||||
private <T> T getValue(T originalValue, T newValue, T defaultValueIfEquals)
|
|
||||||
{
|
|
||||||
return (originalValue.equals(newValue) ? defaultValueIfEquals : newValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteFacet(String filterID)
|
public void deleteFacet(String filterID)
|
||||||
{
|
{
|
||||||
@@ -514,12 +473,11 @@ public class SolrFacetServiceImpl extends AbstractLifecycleBean implements SolrF
|
|||||||
throw new SolrFacetConfigException("Filter Id cannot be null.");
|
throw new SolrFacetConfigException("Filter Id cannot be null.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// construct a valid facet property object
|
boolean isDefaultFP = defaultFacetsMap.containsKey(facetProperties.getFilterID());
|
||||||
facetProperties = makeValidFacetPropObj(facetProperties);
|
|
||||||
Map<QName, Serializable> properties = new HashMap<QName, Serializable>(15);
|
Map<QName, Serializable> properties = new HashMap<QName, Serializable>(15);
|
||||||
|
|
||||||
properties.put(ContentModel.PROP_NAME, facetProperties.getFilterID());
|
properties.put(ContentModel.PROP_NAME, facetProperties.getFilterID());
|
||||||
properties.put(SolrFacetModel.PROP_IS_DEFAULT, facetProperties.isDefault());
|
properties.put(SolrFacetModel.PROP_IS_DEFAULT, isDefaultFP);
|
||||||
|
|
||||||
addNodeProperty(properties, SolrFacetModel.PROP_FIELD_TYPE, facetProperties.getFacetQName());
|
addNodeProperty(properties, SolrFacetModel.PROP_FIELD_TYPE, facetProperties.getFacetQName());
|
||||||
addNodeProperty(properties, SolrFacetModel.PROP_FIELD_LABEL, facetProperties.getDisplayName());
|
addNodeProperty(properties, SolrFacetModel.PROP_FIELD_LABEL, facetProperties.getDisplayName());
|
||||||
@@ -533,7 +491,7 @@ public class SolrFacetServiceImpl extends AbstractLifecycleBean implements SolrF
|
|||||||
addNodeProperty(properties, SolrFacetModel.PROP_IS_ENABLED, facetProperties.isEnabled());
|
addNodeProperty(properties, SolrFacetModel.PROP_IS_ENABLED, facetProperties.isEnabled());
|
||||||
|
|
||||||
Set<CustomProperties> customProperties = facetProperties.getCustomProperties();
|
Set<CustomProperties> customProperties = facetProperties.getCustomProperties();
|
||||||
if(customProperties.size() > 0)
|
if (customProperties != null)
|
||||||
{
|
{
|
||||||
properties.put(SolrFacetModel.PROP_EXTRA_INFORMATION, new ArrayList<>(customProperties));
|
properties.put(SolrFacetModel.PROP_EXTRA_INFORMATION, new ArrayList<>(customProperties));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user