RM-4199: after review changes

This commit is contained in:
Silviu Dinuta
2016-10-21 11:58:11 +03:00
parent ffdd4e70de
commit 3fd9de89a0
12 changed files with 88 additions and 51 deletions

View File

@@ -75,7 +75,7 @@
<cm:name>page.component-1-1.site~${siteId}~dashboard.xml</cm:name> <cm:name>page.component-1-1.site~${siteId}~dashboard.xml</cm:name>
<sys:store-identifier>SpacesStore</sys:store-identifier> <sys:store-identifier>SpacesStore</sys:store-identifier>
<sys:locale>en_US_</sys:locale> <sys:locale>en_US_</sys:locale>
<cm:content>contentUrl=surf-config/content3.bin|mimetype=application/octet-stream|size=326|encoding=UTF-8|locale=en_US_</cm:content> <cm:content>contentUrl=surf-config/content2.bin|mimetype=application/octet-stream|size=326|encoding=UTF-8|locale=en_US_</cm:content>
<sys:store-protocol>workspace</sys:store-protocol> <sys:store-protocol>workspace</sys:store-protocol>
<cm:isIndexed>false</cm:isIndexed> <cm:isIndexed>false</cm:isIndexed>
</view:properties> </view:properties>
@@ -91,7 +91,7 @@
<cm:name>page.component-2-1.site~${siteId}~dashboard.xml</cm:name> <cm:name>page.component-2-1.site~${siteId}~dashboard.xml</cm:name>
<sys:store-identifier>SpacesStore</sys:store-identifier> <sys:store-identifier>SpacesStore</sys:store-identifier>
<sys:locale>en_US_</sys:locale> <sys:locale>en_US_</sys:locale>
<cm:content>contentUrl=surf-config/content4.bin|mimetype=application/octet-stream|size=270|encoding=UTF-8|locale=en_US_</cm:content> <cm:content>contentUrl=surf-config/content3.bin|mimetype=application/octet-stream|size=270|encoding=UTF-8|locale=en_US_</cm:content>
<sys:store-protocol>workspace</sys:store-protocol> <sys:store-protocol>workspace</sys:store-protocol>
<cm:isIndexed>false</cm:isIndexed> <cm:isIndexed>false</cm:isIndexed>
</view:properties> </view:properties>
@@ -107,7 +107,7 @@
<cm:name>page.component-2-2.site~${siteId}~dashboard.xml</cm:name> <cm:name>page.component-2-2.site~${siteId}~dashboard.xml</cm:name>
<sys:store-identifier>SpacesStore</sys:store-identifier> <sys:store-identifier>SpacesStore</sys:store-identifier>
<sys:locale>en_US_</sys:locale> <sys:locale>en_US_</sys:locale>
<cm:content>contentUrl=surf-config/content5.bin|mimetype=application/octet-stream|size=272|encoding=UTF-8|locale=en_US_</cm:content> <cm:content>contentUrl=surf-config/content4.bin|mimetype=application/octet-stream|size=272|encoding=UTF-8|locale=en_US_</cm:content>
<sys:store-protocol>workspace</sys:store-protocol> <sys:store-protocol>workspace</sys:store-protocol>
<cm:isIndexed>false</cm:isIndexed> <cm:isIndexed>false</cm:isIndexed>
</view:properties> </view:properties>
@@ -174,7 +174,7 @@
<cm:name>dashboard.xml</cm:name> <cm:name>dashboard.xml</cm:name>
<sys:store-identifier>SpacesStore</sys:store-identifier> <sys:store-identifier>SpacesStore</sys:store-identifier>
<sys:locale>en_US_</sys:locale> <sys:locale>en_US_</sys:locale>
<cm:content>contentUrl=surf-config/content6.bin|mimetype=application/octet-stream|size=481|encoding=UTF-8|locale=en_US_</cm:content> <cm:content>contentUrl=surf-config/content5.bin|mimetype=application/octet-stream|size=481|encoding=UTF-8|locale=en_US_</cm:content>
<sys:store-protocol>workspace</sys:store-protocol> <sys:store-protocol>workspace</sys:store-protocol>
<cm:isIndexed>false</cm:isIndexed> <cm:isIndexed>false</cm:isIndexed>
</view:properties> </view:properties>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<component>
<guid>page.component-1-1.site~${siteId}~dashboard</guid>
<scope>page</scope>
<region-id>component-1-1</region-id>
<source-id>site/${siteId}/dashboard</source-id>
<url>/components/dashlets/colleagues</url>
<properties>
<height>504</height>
</properties>
</component>

View File

@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<component> <component>
<guid>page.component-1-1.site~${siteId}~dashboard</guid> <guid>page.component-2-1.site~${siteId}~dashboard</guid>
<scope>page</scope> <scope>page</scope>
<region-id>component-1-1</region-id> <region-id>component-2-1</region-id>
<source-id>site/${siteId}/dashboard</source-id> <source-id>site/${siteId}/dashboard</source-id>
<url>/components/dashlets/colleagues</url> <url>/components/dashlets/docsummary</url>
<properties>
<height>504</height>
</properties>
</component> </component>

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<component> <component>
<guid>page.component-2-1.site~${siteId}~dashboard</guid> <guid>page.component-2-2.site~${siteId}~dashboard</guid>
<scope>page</scope> <scope>page</scope>
<region-id>component-2-1</region-id> <region-id>component-2-2</region-id>
<source-id>site/${siteId}/dashboard</source-id> <source-id>site/${siteId}/dashboard</source-id>
<url>/components/dashlets/docsummary</url> <url>/components/dashlets/activityfeed</url>
</component> </component>

View File

@@ -1,9 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<component> <page>
<guid>page.component-2-2.site~${siteId}~dashboard</guid> <title>Records Management Site Dashboard</title>
<scope>page</scope> <title-id>page.rmSiteDashboard.title</title-id>
<region-id>component-2-2</region-id> <description>Records Management site's dashboard page</description>
<source-id>site/${siteId}/dashboard</source-id> <description-id>page.rmSiteDashboard.description</description-id>
<url>/components/dashlets/activityfeed</url> <template-instance>dashboard-2-columns-wide-right</template-instance>
</component> <authentication>user</authentication>
<properties>
<sitePages>[{"pageId":"documentlibrary"}, {"pageId":"rm-search"}]</sitePages>
<pageMetadata>{"documentlibrary":{"titleId":"page.rmDocumentLibrary.title", "descriptionId":"page.rmDocumentLibrary.description", "type":"dod5015"}}</pageMetadata>
</properties>
</page>

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<page>
<title>Records Management Site Dashboard</title>
<title-id>page.rmSiteDashboard.title</title-id>
<description>Records Management site's dashboard page</description>
<description-id>page.rmSiteDashboard.description</description-id>
<template-instance>dashboard-2-columns-wide-right</template-instance>
<authentication>user</authentication>
<properties>
<sitePages>[{"pageId":"documentlibrary"}, {"pageId":"rm-search"}]</sitePages>
<pageMetadata>{"documentlibrary":{"titleId":"page.rmDocumentLibrary.title", "descriptionId":"page.rmDocumentLibrary.description", "type":"dod5015"}}</pageMetadata>
</properties>
</page>

View File

@@ -24,7 +24,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L% * #L%
*/ */
package org.alfresco.rm.rest.api.impl; package org.alfresco.rm.rest.api;
import org.alfresco.rest.api.Nodes; import org.alfresco.rest.api.Nodes;

View File

@@ -31,7 +31,21 @@ import org.alfresco.rest.api.Sites;
import org.alfresco.rest.framework.resource.parameters.Parameters; import org.alfresco.rest.framework.resource.parameters.Parameters;
import org.alfresco.rm.rest.api.model.RMSite; import org.alfresco.rm.rest.api.model.RMSite;
/**
* RM Sites API
*
* @author Silviu Dinuta
* @since 2.6
*
*/
public interface RMSites extends Sites public interface RMSites extends Sites
{ {
/**
* Creates RM site
*
* @param site
* @param parameters
* @return
*/
RMSite createRMSite(RMSite site, Parameters parameters); RMSite createRMSite(RMSite site, Parameters parameters);
} }

View File

@@ -46,6 +46,7 @@ import org.alfresco.rest.api.model.UserInfo;
import org.alfresco.rest.framework.core.exceptions.EntityNotFoundException; import org.alfresco.rest.framework.core.exceptions.EntityNotFoundException;
import org.alfresco.rest.framework.core.exceptions.InvalidArgumentException; import org.alfresco.rest.framework.core.exceptions.InvalidArgumentException;
import org.alfresco.rest.framework.resource.parameters.Parameters; import org.alfresco.rest.framework.resource.parameters.Parameters;
import org.alfresco.rm.rest.api.RMNodes;
import org.alfresco.rm.rest.api.model.CategoryNode; import org.alfresco.rm.rest.api.model.CategoryNode;
import org.alfresco.rm.rest.api.model.FileplanComponentNode; import org.alfresco.rm.rest.api.model.FileplanComponentNode;
import org.alfresco.rm.rest.api.model.RecordFolderNode; import org.alfresco.rm.rest.api.model.RecordFolderNode;

View File

@@ -61,10 +61,12 @@ import org.alfresco.service.namespace.QName;
*/ */
public class RMSitesImpl extends SitesImpl implements RMSites public class RMSitesImpl extends SitesImpl implements RMSites
{ {
private static final String RM_SITE_PRESET = "rm-site-dashboard";
private static final String RM_SITE_ID = "rm"; private static final String RM_SITE_ID = "rm";
private static final int SITE_MAXLEN_TITLE = 256; private static final int SITE_MAXLEN_TITLE = 256;
private static final int SITE_MAXLEN_DESCRIPTION = 512; private static final int SITE_MAXLEN_DESCRIPTION = 512;
@Override
public RMSite createRMSite(RMSite rmSite, Parameters parameters) public RMSite createRMSite(RMSite rmSite, Parameters parameters)
{ {
RMSiteCompliance compliance = rmSite.getCompliance(); RMSiteCompliance compliance = rmSite.getCompliance();
@@ -77,13 +79,15 @@ public class RMSitesImpl extends SitesImpl implements RMSites
} }
@Override @Override
public Site createSite(Site site, Parameters parameters) { public Site createSite(Site site, Parameters parameters)
{
site = validateSite(site); site = validateSite(site);
SiteInfo siteInfo = null; SiteInfo siteInfo = null;
try try
{ {
siteInfo = siteService.createSite("rm-site-dashboard", RM_SITE_ID, site.getTitle(), site.getDescription(), SiteVisibility.PUBLIC, getRMSiteType((RMSite) site)); siteInfo = siteService.createSite(RM_SITE_PRESET, RM_SITE_ID, site.getTitle(), site.getDescription(),
SiteVisibility.PUBLIC, getRMSiteType((RMSite) site));
} }
catch (SiteServiceException sse) catch (SiteServiceException sse)
{ {
@@ -106,8 +110,13 @@ public class RMSitesImpl extends SitesImpl implements RMSites
// pre-create doclib // pre-create doclib
siteService.createContainer(siteId, SiteService.DOCUMENT_LIBRARY, ContentModel.TYPE_FOLDER, null); siteService.createContainer(siteId, SiteService.DOCUMENT_LIBRARY, ContentModel.TYPE_FOLDER, null);
String personId = AuthenticationUtil.getFullyAuthenticatedUser(); // default false (if not provided)
favouritesService.addFavourite(personId, siteNodeRef); // ignore result boolean skipAddToFavorites = Boolean.valueOf(parameters.getParameter(PARAM_SKIP_ADDTOFAVORITES));
if (skipAddToFavorites == false)
{
String personId = AuthenticationUtil.getFullyAuthenticatedUser();
favouritesService.addFavourite(personId, siteNodeRef); // ignore result
}
return getSite(siteInfo, true); return getSite(siteInfo, true);
} }
@@ -217,11 +226,21 @@ public class RMSitesImpl extends SitesImpl implements RMSites
return site; return site;
} }
private QName getRMSiteType(RMSite rmSite) { /**
* Gets RM site type based on compliance.
*
* @param rmSite
* @return
*/
private QName getRMSiteType(RMSite rmSite)
{
RMSiteCompliance compliance = rmSite.getCompliance(); RMSiteCompliance compliance = rmSite.getCompliance();
if (compliance == null || compliance.equals(RMSiteCompliance.STANDARD)) { if (compliance == null || compliance.equals(RMSiteCompliance.STANDARD))
{
return RecordsManagementModel.TYPE_RM_SITE; return RecordsManagementModel.TYPE_RM_SITE;
} else { }
else
{
return DOD5015Model.TYPE_DOD_5015_SITE; return DOD5015Model.TYPE_DOD_5015_SITE;
} }
} }

View File

@@ -31,23 +31,28 @@ import org.alfresco.rest.api.model.Site;
import org.alfresco.service.cmr.site.SiteInfo; import org.alfresco.service.cmr.site.SiteInfo;
/** /**
* Concrete class carrying general information for RM site
* *
* @author Silviu Dinuta * @author Silviu Dinuta
* @since 2.6
* *
*/ */
public class RMSite extends Site public class RMSite extends Site
{ {
private RMSiteCompliance compliance; private RMSiteCompliance compliance;
public RMSiteCompliance getCompliance() { public RMSiteCompliance getCompliance()
{
return compliance; return compliance;
} }
public void setCompliance(RMSiteCompliance compliance) { public void setCompliance(RMSiteCompliance compliance)
{
this.compliance = compliance; this.compliance = compliance;
} }
public RMSite() { public RMSite()
{
super(); super();
} }
@@ -62,10 +67,12 @@ public class RMSite extends Site
this.compliance = compliance; this.compliance = compliance;
} }
public RMSite(SiteInfo siteInfo, String role, RMSiteCompliance compliance) { public RMSite(SiteInfo siteInfo, String role, RMSiteCompliance compliance)
{
super(siteInfo, role); super(siteInfo, role);
this.compliance = compliance; this.compliance = compliance;
} }
@Override @Override
public String toString() public String toString()
{ {
@@ -73,5 +80,4 @@ public class RMSite extends Site
+ title + ", description=" + description + ", visibility=" + title + ", description=" + description + ", visibility="
+ visibility + ", role=" + role + ", compliance="+ compliance +"]"; + visibility + ", role=" + role + ", compliance="+ compliance +"]";
} }
} }

View File

@@ -27,15 +27,12 @@
package org.alfresco.rm.rest.api.model; package org.alfresco.rm.rest.api.model;
import org.alfresco.api.AlfrescoPublicApi;
/** /**
* Enumeration representing rm site compliance * Enumeration representing rm site compliance
* *
* @author Silviu Dinuta * @author Silviu Dinuta
* * @since 2.6
*/ */
@AlfrescoPublicApi
public enum RMSiteCompliance public enum RMSiteCompliance
{ {
STANDARD, STANDARD,