<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Create site from Java api  and set Dashlets to dashboard in Alfresco Forum</title>
    <link>https://connect.hyland.com/t5/alfresco-forum/create-site-from-java-api-and-set-dashlets-to-dashboard/m-p/133875#M36043</link>
    <description>&lt;P&gt;Hi guys,&lt;/P&gt;&lt;P&gt;I have followed the following guide &lt;A href="https://angelborroy.wordpress.com/2017/12/28/how-to-create-a-site-for-alfresco-using-java-api/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://angelborroy.wordpress.com/2017/12/28/how-to-create-a-site-for-alfresco-using-java-api/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;In doing so i got an empty dashboard after setting some user permissions.&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;private void createDefaultDashboard(SiteInfo siteInfo) {
     

behaviourFilter.disableBehaviour(ContentModel.TYPE_CONTENT);

NodeService nodeService = serviceRegistry.getNodeService();


    NodeService nodeService = serviceRegistry.getNodeService();
    FileFolderService fileFolderService = serviceRegistry.getFileFolderService();
    ContentService contentService = serviceRegistry.getContentService();
     
    FileInfo surfConfig = fileFolderService.create(siteInfo.getNodeRef(), "surf-config", ContentModel.TYPE_FOLDER);
    Map&amp;lt;QName, Serializable&amp;gt; properties = new HashMap&amp;lt;QName, Serializable&amp;gt;();
    properties.put(ContentModel.PROP_CASCADE_HIDDEN, Boolean.TRUE);
    properties.put(ContentModel.PROP_CASCADE_INDEX_CONTROL, Boolean.TRUE);
    nodeService.addAspect(surfConfig.getNodeRef(), ContentModel.ASPECT_HIDDEN, properties);
    // Hint from Bertrand Forest
    properties = new HashMap&amp;lt;QName, Serializable&amp;gt;();
    properties.put(ContentModel.PROP_IS_INDEXED, Boolean.FALSE);
    properties.put(ContentModel.PROP_IS_CONTENT_INDEXED, Boolean.FALSE);
    nodeService.addAspect(surfConfig.getNodeRef(), ContentModel.ASPECT_INDEX_CONTROL, properties);
     
    FileInfo pages = fileFolderService.create(surfConfig.getNodeRef(), "pages", ContentModel.TYPE_FOLDER);
    FileInfo site = fileFolderService.create(pages.getNodeRef(), "site", ContentModel.TYPE_FOLDER);
    FileInfo siteName = fileFolderService.create(site.getNodeRef(), siteInfo.getShortName(), ContentModel.TYPE_FOLDER);
     
    Map&amp;lt;QName, Serializable&amp;gt; props = new HashMap&amp;lt;QName, Serializable&amp;gt;(1);
    props.put(ContentModel.PROP_NAME, "dashboard.xml"); 

    NodeRef node = nodeService.createNode(
                            siteName.getNodeRef(),
                        ContentModel.ASSOC_CONTAINS,
                        QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "dashboard.xml"),
                        ContentModel.TYPE_CONTENT,
                        props).getChildRef();
                         
    ContentWriter writer = contentService.getWriter(node, ContentModel.PROP_CONTENT, true);
    writer.setMimetype(MimetypeMap.MIMETYPE_XML);
    writer.setEncoding("UTF-8");
    // TODO Create dashboard.xml file by using an external file resource instead of a hand-coded String
    writer.putContent("&amp;lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&amp;gt;\n" +
            "&amp;lt;page&amp;gt;\n" +
            "      &amp;lt;title&amp;gt;Collaboration Site Dashboard&amp;lt;/title&amp;gt;\n" +
            "      &amp;lt;title-id&amp;gt;page.siteDashboard.title&amp;lt;/title-id&amp;gt;\n" +
            "      &amp;lt;description&amp;gt;Collaboration site's dashboard page&amp;lt;/description&amp;gt;\n" +
            "      &amp;lt;description-id&amp;gt;page.siteDashboard.description&amp;lt;/description-id&amp;gt;\n" +
            "      &amp;lt;authentication&amp;gt;user&amp;lt;/authentication&amp;gt;\n" +
            "      &amp;lt;template-instance&amp;gt;dashboard-2-columns-wide-left&amp;lt;/template-instance&amp;gt;\n" +
            "      &amp;lt;properties&amp;gt;\n" +
            "        &amp;lt;sitePages&amp;gt;[{\"pageId\":\"dashboard\"},{\"pageId\": \"documentlibrary\"}]&amp;lt;/sitePages&amp;gt;\n" +
            "      &amp;lt;theme/&amp;gt;&amp;lt;dashboardSitePage&amp;gt;true&amp;lt;/dashboardSitePage&amp;gt;&amp;lt;/properties&amp;gt;\n" +
            "    &amp;lt;page-type-id&amp;gt;generic&amp;lt;/page-type-id&amp;gt;&amp;lt;/page&amp;gt;");
     
}&lt;/PRE&gt;Now i want to add Dashlets to the created site-dashboard.&lt;/DIV&gt;&lt;DIV class=""&gt;We have to create a /components folder and write an .xml file to it in order for the site to pick up these dashlets.&lt;/DIV&gt;&lt;DIV class=""&gt;Can someone help me with how the .xml file has to look like? And if i need to make any changes to my share page to make it work.&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Tue, 31 Jan 2023 10:02:01 GMT</pubDate>
    <dc:creator>bvandersmissen</dc:creator>
    <dc:date>2023-01-31T10:02:01Z</dc:date>
    <item>
      <title>Create site from Java api  and set Dashlets to dashboard</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/create-site-from-java-api-and-set-dashlets-to-dashboard/m-p/133875#M36043</link>
      <description>&lt;P&gt;Hi guys,&lt;/P&gt;&lt;P&gt;I have followed the following guide &lt;A href="https://angelborroy.wordpress.com/2017/12/28/how-to-create-a-site-for-alfresco-using-java-api/" target="_blank" rel="noopener nofollow noreferrer"&gt;https://angelborroy.wordpress.com/2017/12/28/how-to-create-a-site-for-alfresco-using-java-api/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;In doing so i got an empty dashboard after setting some user permissions.&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;private void createDefaultDashboard(SiteInfo siteInfo) {
     

behaviourFilter.disableBehaviour(ContentModel.TYPE_CONTENT);

NodeService nodeService = serviceRegistry.getNodeService();


    NodeService nodeService = serviceRegistry.getNodeService();
    FileFolderService fileFolderService = serviceRegistry.getFileFolderService();
    ContentService contentService = serviceRegistry.getContentService();
     
    FileInfo surfConfig = fileFolderService.create(siteInfo.getNodeRef(), "surf-config", ContentModel.TYPE_FOLDER);
    Map&amp;lt;QName, Serializable&amp;gt; properties = new HashMap&amp;lt;QName, Serializable&amp;gt;();
    properties.put(ContentModel.PROP_CASCADE_HIDDEN, Boolean.TRUE);
    properties.put(ContentModel.PROP_CASCADE_INDEX_CONTROL, Boolean.TRUE);
    nodeService.addAspect(surfConfig.getNodeRef(), ContentModel.ASPECT_HIDDEN, properties);
    // Hint from Bertrand Forest
    properties = new HashMap&amp;lt;QName, Serializable&amp;gt;();
    properties.put(ContentModel.PROP_IS_INDEXED, Boolean.FALSE);
    properties.put(ContentModel.PROP_IS_CONTENT_INDEXED, Boolean.FALSE);
    nodeService.addAspect(surfConfig.getNodeRef(), ContentModel.ASPECT_INDEX_CONTROL, properties);
     
    FileInfo pages = fileFolderService.create(surfConfig.getNodeRef(), "pages", ContentModel.TYPE_FOLDER);
    FileInfo site = fileFolderService.create(pages.getNodeRef(), "site", ContentModel.TYPE_FOLDER);
    FileInfo siteName = fileFolderService.create(site.getNodeRef(), siteInfo.getShortName(), ContentModel.TYPE_FOLDER);
     
    Map&amp;lt;QName, Serializable&amp;gt; props = new HashMap&amp;lt;QName, Serializable&amp;gt;(1);
    props.put(ContentModel.PROP_NAME, "dashboard.xml"); 

    NodeRef node = nodeService.createNode(
                            siteName.getNodeRef(),
                        ContentModel.ASSOC_CONTAINS,
                        QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "dashboard.xml"),
                        ContentModel.TYPE_CONTENT,
                        props).getChildRef();
                         
    ContentWriter writer = contentService.getWriter(node, ContentModel.PROP_CONTENT, true);
    writer.setMimetype(MimetypeMap.MIMETYPE_XML);
    writer.setEncoding("UTF-8");
    // TODO Create dashboard.xml file by using an external file resource instead of a hand-coded String
    writer.putContent("&amp;lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&amp;gt;\n" +
            "&amp;lt;page&amp;gt;\n" +
            "      &amp;lt;title&amp;gt;Collaboration Site Dashboard&amp;lt;/title&amp;gt;\n" +
            "      &amp;lt;title-id&amp;gt;page.siteDashboard.title&amp;lt;/title-id&amp;gt;\n" +
            "      &amp;lt;description&amp;gt;Collaboration site's dashboard page&amp;lt;/description&amp;gt;\n" +
            "      &amp;lt;description-id&amp;gt;page.siteDashboard.description&amp;lt;/description-id&amp;gt;\n" +
            "      &amp;lt;authentication&amp;gt;user&amp;lt;/authentication&amp;gt;\n" +
            "      &amp;lt;template-instance&amp;gt;dashboard-2-columns-wide-left&amp;lt;/template-instance&amp;gt;\n" +
            "      &amp;lt;properties&amp;gt;\n" +
            "        &amp;lt;sitePages&amp;gt;[{\"pageId\":\"dashboard\"},{\"pageId\": \"documentlibrary\"}]&amp;lt;/sitePages&amp;gt;\n" +
            "      &amp;lt;theme/&amp;gt;&amp;lt;dashboardSitePage&amp;gt;true&amp;lt;/dashboardSitePage&amp;gt;&amp;lt;/properties&amp;gt;\n" +
            "    &amp;lt;page-type-id&amp;gt;generic&amp;lt;/page-type-id&amp;gt;&amp;lt;/page&amp;gt;");
     
}&lt;/PRE&gt;Now i want to add Dashlets to the created site-dashboard.&lt;/DIV&gt;&lt;DIV class=""&gt;We have to create a /components folder and write an .xml file to it in order for the site to pick up these dashlets.&lt;/DIV&gt;&lt;DIV class=""&gt;Can someone help me with how the .xml file has to look like? And if i need to make any changes to my share page to make it work.&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 31 Jan 2023 10:02:01 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/create-site-from-java-api-and-set-dashlets-to-dashboard/m-p/133875#M36043</guid>
      <dc:creator>bvandersmissen</dc:creator>
      <dc:date>2023-01-31T10:02:01Z</dc:date>
    </item>
  </channel>
</rss>

