diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml index d030f80f98..21905bc79a 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-patch-context.xml @@ -49,5 +49,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2SavedSearchPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2SavedSearchPatch.java new file mode 100644 index 0000000000..076ec3860c --- /dev/null +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/RMv2SavedSearchPatch.java @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2005-2011 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ +package org.alfresco.module.org_alfresco_module_rm.patch; + +import java.util.List; + +import org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model; +import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; +import org.alfresco.module.org_alfresco_module_rm.search.RecordsManagementSearchService; +import org.alfresco.module.org_alfresco_module_rm.search.SavedSearchDetails; +import org.alfresco.repo.module.AbstractModuleComponent; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.BeanNameAware; + +/** + * RM v2.0 Saved Search Patch + * + * + * @author Roy Wetherall + */ +public class RMv2SavedSearchPatch extends AbstractModuleComponent + implements BeanNameAware, RecordsManagementModel, DOD5015Model +{ + /** Logger */ + private static Log logger = LogFactory.getLog(RMv2SavedSearchPatch.class); + + /** RM site id */ + private static final String RM_SITE_ID = "rm"; + + /** Records management search service */ + private RecordsManagementSearchService recordsManagementSearchService; + + /** + * @param recordsManagementSearchService records management search service + */ + public void setRecordsManagementSearchService(RecordsManagementSearchService recordsManagementSearchService) + { + this.recordsManagementSearchService = recordsManagementSearchService; + } + + /** + * @see org.alfresco.repo.module.AbstractModuleComponent#executeInternal() + */ + @Override + protected void executeInternal() throws Throwable + { + if (logger.isDebugEnabled() == true) + { + logger.debug("RM Module RMv2SavedSearchPatch ..."); + } + + // get the saved searches + List savedSearches = recordsManagementSearchService.getSavedSearches(RM_SITE_ID); + + if (logger.isDebugEnabled() == true) + { + logger.debug(" ... updating " + savedSearches.size() + " saved searches"); + } + + for (SavedSearchDetails savedSearchDetails : savedSearches) + { + // re-save each search so that the query is regenerated correctly + recordsManagementSearchService.deleteSavedSearch(RM_SITE_ID, savedSearchDetails.getName()); + recordsManagementSearchService.saveSearch(RM_SITE_ID, + savedSearchDetails.getName(), + savedSearchDetails.getDescription(), + savedSearchDetails.getSearch(), + savedSearchDetails.getSearchParameters(), + savedSearchDetails.isPublic()); + } + + if (logger.isDebugEnabled() == true) + { + logger.debug(" ... complete"); + } + + } +} diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/SavedSearchDetails.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/SavedSearchDetails.java index 53d6923a03..8be1c3d2a6 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/SavedSearchDetails.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/search/SavedSearchDetails.java @@ -95,7 +95,7 @@ public class SavedSearchDetails extends ReportDetails private String siteId; /** Indicates whether the saved search is public or not */ - private boolean isPublic; + private boolean isPublic = true; /** Indicates whether the saved search is a report */ private boolean isReport = false; @@ -103,8 +103,10 @@ public class SavedSearchDetails extends ReportDetails /** Namespace service */ NamespaceService namespaceService; + /** Records management search service */ RecordsManagementSearchServiceImpl searchService; + /** Saves search details compatibility */ private SavedSearchDetailsCompatibility compatibility; /** @@ -178,7 +180,7 @@ public class SavedSearchDetails extends ReportDetails } // Determine whether the saved query is public or not - boolean isPublic = false; + boolean isPublic = true; if (search.has(PUBLIC) == true) { isPublic = search.getBoolean(PUBLIC);