diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/facet/solr-facet-config-admin.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/facet/solr-facet-config-admin.get.json.ftl index d7f848fbd7..6d185a82c0 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/facet/solr-facet-config-admin.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/facet/solr-facet-config-admin.get.json.ftl @@ -9,13 +9,35 @@ "minFilterValueLength" : ${facet.minFilterValueLength?c}, "sortBy" : "${facet.sortBy}", "scope" : "${facet.scope}", + <#if facet.scopedSites?size != 0> "scopedSites" : [ - <#if facet.scopedSites??> <#list facet.scopedSites as site> "${site}"<#if site_has_next>, - - ], + ], + + <#if facet.customProperties?size != 0> + "customProperties" : + { + <#list facet.customProperties as propDetails> + "${propDetails.name.localName?string}": + { + "name" : "${propDetails.name?string}", + <#if propDetails.value?is_enumerable> + "value" : [ + <#list propDetails.value as v> + "${v?string}"<#if v_has_next>, + + ], + <#else> + "value" : "${propDetails.value?string}", + + "type" : <#if propDetails.type??>"${propDetails.type}"<#else>null, + "title" : <#if propDetails.title??>"${propDetails.title}"<#else>null + }<#if propDetails_has_next>, + + }, + "index" : ${facet.index?c}, "isEnabled" : ${facet.enabled?c}, "isDefault" : ${facet.default?c} diff --git a/source/java/org/alfresco/repo/web/scripts/solr/facet/AbstractSolrFacetConfigAdminWebScript.java b/source/java/org/alfresco/repo/web/scripts/solr/facet/AbstractSolrFacetConfigAdminWebScript.java index a3a4a3854f..6a40a83bb6 100644 --- a/source/java/org/alfresco/repo/web/scripts/solr/facet/AbstractSolrFacetConfigAdminWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/solr/facet/AbstractSolrFacetConfigAdminWebScript.java @@ -112,7 +112,7 @@ public abstract class AbstractSolrFacetConfigAdminWebScript extends DeclarativeW final int minFilterValueLength = json.getInt(PARAM_MIN_FILTER_VALUE_LENGTH); final String sortBy = json.getString(PARAM_SORT_BY); final String scope = json.getString(PARAM_SCOPE); - final int index = getValue(Integer.class, json.opt(PARAM_INDEX), 0); //FIXME get the index from the service + final int index = getValue(Integer.class, json.opt(PARAM_INDEX), facetService.getNextIndex()); final boolean isEnabled = getValue(Boolean.class, json.opt(PARAM_IS_ENABLED), true); JSONArray scopedSitesJsonArray = json.getJSONArray(PARAM_SCOPED_SITES); Set scopedSites = null; diff --git a/source/java/org/alfresco/repo/web/scripts/solr/facet/SolrFacetConfigAdminGet.java b/source/java/org/alfresco/repo/web/scripts/solr/facet/SolrFacetConfigAdminGet.java index 78a6c7b5e1..b9af1ff86f 100644 --- a/source/java/org/alfresco/repo/web/scripts/solr/facet/SolrFacetConfigAdminGet.java +++ b/source/java/org/alfresco/repo/web/scripts/solr/facet/SolrFacetConfigAdminGet.java @@ -19,9 +19,7 @@ package org.alfresco.repo.web.scripts.solr.facet; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import org.alfresco.repo.search.impl.solr.facet.SolrFacetProperties; @@ -52,8 +50,7 @@ public class SolrFacetConfigAdminGet extends AbstractSolrFacetConfigAdminWebScri if (filterID == null) { - List filters = new ArrayList<>(facetService.getFacets().values()); - model.put("filters", filters); + model.put("filters", facetService.getFacets()); } else {