<?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 Re: Surf Extension Module vs. share-config-custom.xml in Alfresco Forum</title>
    <link>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105577#M29866</link>
    <description>&lt;P&gt;If i understand correctly, you have trouble configuring indicators in extension module.&lt;/P&gt;
&lt;P&gt;You can denitely add each and every config in extension module which you can do in share-config-custom.xml.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Here is a sample:&amp;nbsp;&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;PRE&gt;&amp;lt;extension&amp;gt;
	&amp;lt;modules&amp;gt;
		&amp;lt;module&amp;gt;
			&amp;lt;id&amp;gt;MyShareExtension&amp;lt;/id&amp;gt;
			&amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;
			&amp;lt;auto-deploy&amp;gt;true&amp;lt;/auto-deploy&amp;gt;
			
			&amp;lt;customizations&amp;gt;		     
				&amp;lt;!-- About share component customization to load custom message in about share. --&amp;gt;
		        &amp;lt;customization&amp;gt;
		          &amp;lt;targetPackageRoot&amp;gt;org.alfresco.components.footer&amp;lt;/targetPackageRoot&amp;gt;
		          &amp;lt;sourcePackageRoot&amp;gt;com.demo.components.footer&amp;lt;/sourcePackageRoot&amp;gt;
		        &amp;lt;/customization&amp;gt;
			&amp;lt;/customizations&amp;gt;
			
			&amp;lt;configurations&amp;gt;
				&amp;lt;config evaluator="string-compare" condition="DocumentLibrary"&amp;gt;
				    &amp;lt;!-- Create custom type contents --&amp;gt;
					&amp;lt;create-content&amp;gt;
                        &amp;lt;content id="support-doc" label="create.supportdoc.menu.item.label" icon="supporting-doc" type="javascript"&amp;gt;
                            &amp;lt;param name="function"&amp;gt;onNewObject&amp;lt;/param&amp;gt;
							&amp;lt;param name="type"&amp;gt;demo:supportingDoc&amp;lt;/param&amp;gt;
                        &amp;lt;/content&amp;gt;
                    &amp;lt;/create-content&amp;gt;
					
					&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;&amp;lt;indicators&amp;gt;
						&amp;lt;indicator id="mycontent" index="10" icon="mycontent-16.png" label="type.demo_mycontent"&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMycontent&amp;lt;/evaluator&amp;gt;
						&amp;lt;/indicator&amp;gt;
						&amp;lt;indicator id="supporting-doc" index="11" icon="supporting-doc-16.png" label="type.demo_supportingDoc"&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isSupportingDoc&amp;lt;/evaluator&amp;gt;
						&amp;lt;/indicator&amp;gt;
						
					&amp;lt;/indicators&amp;gt;&lt;/STRONG&gt;&lt;/FONT&gt;
					
					&amp;lt;aspects&amp;gt;
						
						&amp;lt;visible&amp;gt;
							&amp;lt;aspect name="demo:webReferencesAspect" /&amp;gt;
							&amp;lt;aspect name="smf:customConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="smf:systemConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="cm:indexControl" /&amp;gt;
							&amp;lt;aspect name="dp:restrictable" /&amp;gt;
							&amp;lt;aspect name="cm:generalclassifiable" /&amp;gt;
							&amp;lt;aspect name="cm:complianceable" /&amp;gt;
							&amp;lt;aspect name="cm:dublincore" /&amp;gt;
							&amp;lt;aspect name="cm:effectivity" /&amp;gt;
							&amp;lt;aspect name="cm:summarizable" /&amp;gt;
							&amp;lt;aspect name="cm:versionable" /&amp;gt;
							&amp;lt;aspect name="cm:templatable" /&amp;gt;
							&amp;lt;aspect name="cm:emailed" /&amp;gt;
							&amp;lt;aspect name="app:inlineeditable"/&amp;gt;
						&amp;lt;/visible&amp;gt;
						
						&amp;lt;addable&amp;gt;
							&amp;lt;aspect name="demo:webReferencesAspect" /&amp;gt;
							&amp;lt;aspect name="smf:customConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="smf:systemConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="cm:indexControl" /&amp;gt;
							&amp;lt;aspect name="dp:restrictable" /&amp;gt;
							&amp;lt;aspect name="cm:generalclassifiable" /&amp;gt;
							&amp;lt;aspect name="cm:complianceable" /&amp;gt;
							&amp;lt;aspect name="cm:dublincore" /&amp;gt;
							&amp;lt;aspect name="cm:effectivity" /&amp;gt;
							&amp;lt;aspect name="cm:summarizable" /&amp;gt;
							&amp;lt;aspect name="cm:versionable" /&amp;gt;
							&amp;lt;aspect name="cm:templatable" /&amp;gt;
							&amp;lt;aspect name="cm:emailed" /&amp;gt;
							&amp;lt;aspect name="app:inlineeditable"/&amp;gt;
						&amp;lt;/addable&amp;gt;
						
						&amp;lt;removable&amp;gt;
							&amp;lt;aspect name="demo:webReferencesAspect" /&amp;gt;
							&amp;lt;aspect name="smf:customConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="smf:systemConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="cm:indexControl" /&amp;gt;
							&amp;lt;aspect name="dp:restrictable" /&amp;gt;
							&amp;lt;aspect name="cm:generalclassifiable" /&amp;gt;
							&amp;lt;aspect name="cm:complianceable" /&amp;gt;
							&amp;lt;aspect name="cm:dublincore" /&amp;gt;
							&amp;lt;aspect name="cm:effectivity" /&amp;gt;
							&amp;lt;aspect name="cm:summarizable" /&amp;gt;
							&amp;lt;aspect name="cm:versionable" /&amp;gt;
							&amp;lt;aspect name="cm:templatable" /&amp;gt;
							&amp;lt;aspect name="cm:emailed" /&amp;gt;
							&amp;lt;aspect name="app:inlineeditable"/&amp;gt;
						&amp;lt;/removable&amp;gt;
					&amp;lt;/aspects&amp;gt;
					&amp;lt;types&amp;gt;
						&amp;lt;type name="cm:content"&amp;gt;
							&amp;lt;subtype name="demo:myContent"/&amp;gt;
							&amp;lt;subtype name="demo:supportingDoc"/&amp;gt;
						&amp;lt;/type&amp;gt;
						&amp;lt;type name="demo:myContent"&amp;gt;
							&amp;lt;subtype name="demo:supportingDoc"/&amp;gt;
						&amp;lt;/type&amp;gt;
						&amp;lt;type name="demo:supportingDoc"&amp;gt;
							&amp;lt;subtype name="demo:myContent"/&amp;gt;
						&amp;lt;/type&amp;gt;
					&amp;lt;/types&amp;gt;
				&amp;lt;/config&amp;gt;
				
				&amp;lt;config evaluator="string-compare" condition="DocLibActions"&amp;gt;
					&amp;lt;!-- Actions are defined in the &amp;lt;actions&amp;gt; subsection under 
					     '&amp;lt;config evaluator="string-compare"  condition="DocLibActions"&amp;gt;' 
					     There are 3 types of Doc Lib Actions: 
					     1- link – URL to a page on the Internet
						 2- pagelink – URL to a Share page 
						 3- javascript – Executes client side JS --&amp;gt;
					&amp;lt;actions&amp;gt;
						&amp;lt;!-- Link type action --&amp;gt;
						&amp;lt;action id="launch-abhinav-javaworld" type="link"
							label="abhinav.javaworld.link.action.label" icon="javaworld-action"&amp;gt;
							&amp;lt;param name="href"&amp;gt;https://javaworld-abhinav.blogspot.com&amp;lt;/param&amp;gt;
							&amp;lt;param name="target"&amp;gt;_blank&amp;lt;/param&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMyContentOrSupportingDoc&amp;lt;/evaluator&amp;gt;	
						&amp;lt;/action&amp;gt;
						
						&amp;lt;!-- Pagelink type actions --&amp;gt;
						&amp;lt;action id="launch-demo-surf-page" type="pagelink" 
							label="demo.surf.pagelink.action.label" icon="demo-surf-page"&amp;gt;
							&amp;lt;param name="page"&amp;gt;surf-pages/demo-surf-page&amp;lt;/param&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMyContentOrSupportingDoc&amp;lt;/evaluator&amp;gt;	
						&amp;lt;/action&amp;gt;
						&amp;lt;action id="launch-demo-aikau-page" type="pagelink" 
							label="demo.aikau.pagelink.action.label" icon="demo-aikau-page"&amp;gt;
							&amp;lt;param name="page"&amp;gt;/hdp/ws/demo-aikau-page&amp;lt;/param&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMyContentOrSupportingDoc&amp;lt;/evaluator&amp;gt;	
						&amp;lt;/action&amp;gt;
						
						&amp;lt;!-- Configure action with custom JavaScript function:  
						     See config evaluator="string-compare" condition="DocLibCustom" which is  used to inject the js file where 'showCustomMessage' javascript function is defined --&amp;gt;
						&amp;lt;action id="show-custom-message-javascript-action" type="javascript"
							label="show.custom.message.action.label" icon="show-custom-message"&amp;gt;
							&amp;lt;param name="function"&amp;gt;showCustomMessage&amp;lt;/param&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMyContentOrSupportingDoc&amp;lt;/evaluator&amp;gt;
						&amp;lt;/action&amp;gt;
						
						&amp;lt;action id="update-comments" type="javascript" label="updateComments.action.label" icon="update-comments"&amp;gt;
							&amp;lt;param name="function"&amp;gt;onActionFormDialog&amp;lt;/param&amp;gt;
							&amp;lt;permissions&amp;gt;
						       &amp;lt;!-- Permission to write to the node --&amp;gt;
						       &amp;lt;!-- allow: If the permission specifies, the action is allowed
								    deny: If the permission specifies, the action is hidden
								    Only one of the "allow" or "deny" permissions can be specified for Read/Write--&amp;gt;
						       &amp;lt;permission allow="true"&amp;gt;Write&amp;lt;/permission&amp;gt;
						    &amp;lt;/permissions&amp;gt;
						    &amp;lt;!-- Additional params for form dialog on action --&amp;gt;
						    &amp;lt;!-- The kind of item the form is for (node, action, task, type) --&amp;gt;
						    &amp;lt;param name="itemKind"&amp;gt;action&amp;lt;/param&amp;gt;
						    &amp;lt;!-- Item identifier, for action it is the Spring Bean ID.  
						    Check the string-compare config evaluator with condition as 'update-comments' which will be used to launch the popup form --&amp;gt;
						    &amp;lt;param name="itemId"&amp;gt;update-comments&amp;lt;/param&amp;gt;
						    &amp;lt;!-- Form mode (create, edit , view)--&amp;gt;
						    &amp;lt;param name="mode"&amp;gt;create&amp;lt;/param&amp;gt;
						    &amp;lt;!-- Node on which operation will be performed --&amp;gt;
						    &amp;lt;param name="destination"&amp;gt;{node.nodeRef}&amp;lt;/param&amp;gt;
						    &amp;lt;param name="successMessage"&amp;gt;update-comments.success.message&amp;lt;/param&amp;gt;
						    &amp;lt;param name="failureMessage"&amp;gt;update-comments.failure.message&amp;lt;/param&amp;gt;
						    &amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMyContentOrSupportingDoc&amp;lt;/evaluator&amp;gt;				
						&amp;lt;/action&amp;gt;
			
					&amp;lt;/actions&amp;gt;
					&amp;lt;actionGroups&amp;gt;
						&amp;lt;actionGroup id="document-browse"&amp;gt;
							&amp;lt;action id="launch-abhinav-javaworld" index="100"/&amp;gt;
							&amp;lt;action id="launch-demo-surf-page" index="101"/&amp;gt;
							&amp;lt;action id="launch-demo-aikau-page" index="102"/&amp;gt;
							&amp;lt;action id="update-comments" index="103"/&amp;gt;
						&amp;lt;/actionGroup&amp;gt;
						&amp;lt;actionGroup id="document-details"&amp;gt;
							&amp;lt;action id="launch-abhinav-javaworld" index="100"/&amp;gt;
							&amp;lt;action id="launch-demo-surf-page" index="101"/&amp;gt;
							&amp;lt;action id="launch-demo-aikau-page" index="102"/&amp;gt;
							&amp;lt;action id="show-custom-message-javascript-action" index="103"/&amp;gt;
							&amp;lt;action id="update-comments" index="104"/&amp;gt;
						&amp;lt;/actionGroup&amp;gt;
					&amp;lt;/actionGroups&amp;gt;
				&amp;lt;/config&amp;gt;
				
				&amp;lt;config evaluator="string-compare" condition="DocLibCustom"&amp;gt;
				  &amp;lt;dependencies&amp;gt;
				     &amp;lt;!-- CSS and JS dependencies can be injected using this config --&amp;gt;
				     &amp;lt;!-- &amp;lt;css src="share-module/components/documentlibrary/custom-actions/show-custom-message.css/&amp;gt;--&amp;gt;
				     &amp;lt;js src="share-module/components/documentlibrary/custom-actions/show-custom-message.js"/&amp;gt;
				   &amp;lt;/dependencies&amp;gt;
				&amp;lt;/config&amp;gt;
								
				&amp;lt;!-- Form definition for update-comments action --&amp;gt;
				&amp;lt;config evaluator="string-compare" condition="update-comments"&amp;gt;
					&amp;lt;forms&amp;gt;
						&amp;lt;form&amp;gt;
							&amp;lt;field-visibility&amp;gt;
								&amp;lt;show id="comment"/&amp;gt;
							&amp;lt;/field-visibility&amp;gt;
							&amp;lt;appearence&amp;gt;
								&amp;lt;field id="comment"&amp;gt;
									&amp;lt;control template="/org/alfresco/components/form/controls/textfield.ftl" /&amp;gt;
								&amp;lt;/field&amp;gt;
							&amp;lt;/appearence&amp;gt;
						&amp;lt;/form&amp;gt;
					&amp;lt;/forms&amp;gt;
				&amp;lt;/config&amp;gt;
				
			
			 &amp;lt;/configurations&amp;gt;
		&amp;lt;/module&amp;gt;
	&amp;lt;/modules&amp;gt;
&amp;lt;/extension&amp;gt;&lt;/PRE&gt;
&lt;P&gt;You can see some details here as well:&amp;nbsp;&lt;A href="https://docs.alfresco.com/6.0/concepts/dev-extensions-share-module-dynamic-configuration.html" target="_blank" rel="nofollow noopener noreferrer"&gt;https://docs.alfresco.com/6.0/concepts/dev-extensions-share-module-dynamic-configuration.html&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 11 May 2020 20:30:08 GMT</pubDate>
    <dc:creator>abhinavmishra14</dc:creator>
    <dc:date>2020-05-11T20:30:08Z</dc:date>
    <item>
      <title>Surf Extension Module vs. share-config-custom.xml</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105576#M29865</link>
      <description>&lt;P&gt;I'm working with ACS 6.2 and have two questions:&lt;/P&gt;&lt;P&gt;1.&lt;/P&gt;&lt;P&gt;I can manage aspects and types of the document library by adding them to the share-config-custom.xml. But indicators for example can be defined in the extension module XML.&lt;/P&gt;&lt;P&gt;The XML Element in both cases is:&lt;/P&gt;&lt;PRE&gt;&amp;lt;config evaluator="string-compare" condition="DocumentLibrary"&amp;gt;&lt;/PRE&gt;&lt;P&gt;It seems that I can't put aspects and types in the extension module XML as well to have a single point of configuration. Why? Is it simply not possible or is it a question of tag sequence? Can someone point me to the XMS of the extension module?&lt;/P&gt;&lt;P&gt;2.&lt;/P&gt;&lt;P&gt;The same question for form definitions of types. How can I add tags like&lt;/P&gt;&lt;PRE&gt;&amp;lt;config evaluator="node-type" condition="xyz:myCustomType"&amp;gt;&lt;/PRE&gt;&lt;P&gt;to the extension module XML?&lt;/P&gt;&lt;P&gt;From my perspective all module related stuff should be configured in the module and not in the global share-config-custom. I just can't figure out the concept of "What goes where..."&lt;/P&gt;</description>
      <pubDate>Fri, 08 May 2020 15:32:14 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105576#M29865</guid>
      <dc:creator>akreienbring</dc:creator>
      <dc:date>2020-05-08T15:32:14Z</dc:date>
    </item>
    <item>
      <title>Re: Surf Extension Module vs. share-config-custom.xml</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105577#M29866</link>
      <description>&lt;P&gt;If i understand correctly, you have trouble configuring indicators in extension module.&lt;/P&gt;
&lt;P&gt;You can denitely add each and every config in extension module which you can do in share-config-custom.xml.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Here is a sample:&amp;nbsp;&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;PRE&gt;&amp;lt;extension&amp;gt;
	&amp;lt;modules&amp;gt;
		&amp;lt;module&amp;gt;
			&amp;lt;id&amp;gt;MyShareExtension&amp;lt;/id&amp;gt;
			&amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;
			&amp;lt;auto-deploy&amp;gt;true&amp;lt;/auto-deploy&amp;gt;
			
			&amp;lt;customizations&amp;gt;		     
				&amp;lt;!-- About share component customization to load custom message in about share. --&amp;gt;
		        &amp;lt;customization&amp;gt;
		          &amp;lt;targetPackageRoot&amp;gt;org.alfresco.components.footer&amp;lt;/targetPackageRoot&amp;gt;
		          &amp;lt;sourcePackageRoot&amp;gt;com.demo.components.footer&amp;lt;/sourcePackageRoot&amp;gt;
		        &amp;lt;/customization&amp;gt;
			&amp;lt;/customizations&amp;gt;
			
			&amp;lt;configurations&amp;gt;
				&amp;lt;config evaluator="string-compare" condition="DocumentLibrary"&amp;gt;
				    &amp;lt;!-- Create custom type contents --&amp;gt;
					&amp;lt;create-content&amp;gt;
                        &amp;lt;content id="support-doc" label="create.supportdoc.menu.item.label" icon="supporting-doc" type="javascript"&amp;gt;
                            &amp;lt;param name="function"&amp;gt;onNewObject&amp;lt;/param&amp;gt;
							&amp;lt;param name="type"&amp;gt;demo:supportingDoc&amp;lt;/param&amp;gt;
                        &amp;lt;/content&amp;gt;
                    &amp;lt;/create-content&amp;gt;
					
					&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;&amp;lt;indicators&amp;gt;
						&amp;lt;indicator id="mycontent" index="10" icon="mycontent-16.png" label="type.demo_mycontent"&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMycontent&amp;lt;/evaluator&amp;gt;
						&amp;lt;/indicator&amp;gt;
						&amp;lt;indicator id="supporting-doc" index="11" icon="supporting-doc-16.png" label="type.demo_supportingDoc"&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isSupportingDoc&amp;lt;/evaluator&amp;gt;
						&amp;lt;/indicator&amp;gt;
						
					&amp;lt;/indicators&amp;gt;&lt;/STRONG&gt;&lt;/FONT&gt;
					
					&amp;lt;aspects&amp;gt;
						
						&amp;lt;visible&amp;gt;
							&amp;lt;aspect name="demo:webReferencesAspect" /&amp;gt;
							&amp;lt;aspect name="smf:customConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="smf:systemConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="cm:indexControl" /&amp;gt;
							&amp;lt;aspect name="dp:restrictable" /&amp;gt;
							&amp;lt;aspect name="cm:generalclassifiable" /&amp;gt;
							&amp;lt;aspect name="cm:complianceable" /&amp;gt;
							&amp;lt;aspect name="cm:dublincore" /&amp;gt;
							&amp;lt;aspect name="cm:effectivity" /&amp;gt;
							&amp;lt;aspect name="cm:summarizable" /&amp;gt;
							&amp;lt;aspect name="cm:versionable" /&amp;gt;
							&amp;lt;aspect name="cm:templatable" /&amp;gt;
							&amp;lt;aspect name="cm:emailed" /&amp;gt;
							&amp;lt;aspect name="app:inlineeditable"/&amp;gt;
						&amp;lt;/visible&amp;gt;
						
						&amp;lt;addable&amp;gt;
							&amp;lt;aspect name="demo:webReferencesAspect" /&amp;gt;
							&amp;lt;aspect name="smf:customConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="smf:systemConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="cm:indexControl" /&amp;gt;
							&amp;lt;aspect name="dp:restrictable" /&amp;gt;
							&amp;lt;aspect name="cm:generalclassifiable" /&amp;gt;
							&amp;lt;aspect name="cm:complianceable" /&amp;gt;
							&amp;lt;aspect name="cm:dublincore" /&amp;gt;
							&amp;lt;aspect name="cm:effectivity" /&amp;gt;
							&amp;lt;aspect name="cm:summarizable" /&amp;gt;
							&amp;lt;aspect name="cm:versionable" /&amp;gt;
							&amp;lt;aspect name="cm:templatable" /&amp;gt;
							&amp;lt;aspect name="cm:emailed" /&amp;gt;
							&amp;lt;aspect name="app:inlineeditable"/&amp;gt;
						&amp;lt;/addable&amp;gt;
						
						&amp;lt;removable&amp;gt;
							&amp;lt;aspect name="demo:webReferencesAspect" /&amp;gt;
							&amp;lt;aspect name="smf:customConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="smf:systemConfigSmartFolder" /&amp;gt;
							&amp;lt;aspect name="cm:indexControl" /&amp;gt;
							&amp;lt;aspect name="dp:restrictable" /&amp;gt;
							&amp;lt;aspect name="cm:generalclassifiable" /&amp;gt;
							&amp;lt;aspect name="cm:complianceable" /&amp;gt;
							&amp;lt;aspect name="cm:dublincore" /&amp;gt;
							&amp;lt;aspect name="cm:effectivity" /&amp;gt;
							&amp;lt;aspect name="cm:summarizable" /&amp;gt;
							&amp;lt;aspect name="cm:versionable" /&amp;gt;
							&amp;lt;aspect name="cm:templatable" /&amp;gt;
							&amp;lt;aspect name="cm:emailed" /&amp;gt;
							&amp;lt;aspect name="app:inlineeditable"/&amp;gt;
						&amp;lt;/removable&amp;gt;
					&amp;lt;/aspects&amp;gt;
					&amp;lt;types&amp;gt;
						&amp;lt;type name="cm:content"&amp;gt;
							&amp;lt;subtype name="demo:myContent"/&amp;gt;
							&amp;lt;subtype name="demo:supportingDoc"/&amp;gt;
						&amp;lt;/type&amp;gt;
						&amp;lt;type name="demo:myContent"&amp;gt;
							&amp;lt;subtype name="demo:supportingDoc"/&amp;gt;
						&amp;lt;/type&amp;gt;
						&amp;lt;type name="demo:supportingDoc"&amp;gt;
							&amp;lt;subtype name="demo:myContent"/&amp;gt;
						&amp;lt;/type&amp;gt;
					&amp;lt;/types&amp;gt;
				&amp;lt;/config&amp;gt;
				
				&amp;lt;config evaluator="string-compare" condition="DocLibActions"&amp;gt;
					&amp;lt;!-- Actions are defined in the &amp;lt;actions&amp;gt; subsection under 
					     '&amp;lt;config evaluator="string-compare"  condition="DocLibActions"&amp;gt;' 
					     There are 3 types of Doc Lib Actions: 
					     1- link – URL to a page on the Internet
						 2- pagelink – URL to a Share page 
						 3- javascript – Executes client side JS --&amp;gt;
					&amp;lt;actions&amp;gt;
						&amp;lt;!-- Link type action --&amp;gt;
						&amp;lt;action id="launch-abhinav-javaworld" type="link"
							label="abhinav.javaworld.link.action.label" icon="javaworld-action"&amp;gt;
							&amp;lt;param name="href"&amp;gt;https://javaworld-abhinav.blogspot.com&amp;lt;/param&amp;gt;
							&amp;lt;param name="target"&amp;gt;_blank&amp;lt;/param&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMyContentOrSupportingDoc&amp;lt;/evaluator&amp;gt;	
						&amp;lt;/action&amp;gt;
						
						&amp;lt;!-- Pagelink type actions --&amp;gt;
						&amp;lt;action id="launch-demo-surf-page" type="pagelink" 
							label="demo.surf.pagelink.action.label" icon="demo-surf-page"&amp;gt;
							&amp;lt;param name="page"&amp;gt;surf-pages/demo-surf-page&amp;lt;/param&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMyContentOrSupportingDoc&amp;lt;/evaluator&amp;gt;	
						&amp;lt;/action&amp;gt;
						&amp;lt;action id="launch-demo-aikau-page" type="pagelink" 
							label="demo.aikau.pagelink.action.label" icon="demo-aikau-page"&amp;gt;
							&amp;lt;param name="page"&amp;gt;/hdp/ws/demo-aikau-page&amp;lt;/param&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMyContentOrSupportingDoc&amp;lt;/evaluator&amp;gt;	
						&amp;lt;/action&amp;gt;
						
						&amp;lt;!-- Configure action with custom JavaScript function:  
						     See config evaluator="string-compare" condition="DocLibCustom" which is  used to inject the js file where 'showCustomMessage' javascript function is defined --&amp;gt;
						&amp;lt;action id="show-custom-message-javascript-action" type="javascript"
							label="show.custom.message.action.label" icon="show-custom-message"&amp;gt;
							&amp;lt;param name="function"&amp;gt;showCustomMessage&amp;lt;/param&amp;gt;
							&amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMyContentOrSupportingDoc&amp;lt;/evaluator&amp;gt;
						&amp;lt;/action&amp;gt;
						
						&amp;lt;action id="update-comments" type="javascript" label="updateComments.action.label" icon="update-comments"&amp;gt;
							&amp;lt;param name="function"&amp;gt;onActionFormDialog&amp;lt;/param&amp;gt;
							&amp;lt;permissions&amp;gt;
						       &amp;lt;!-- Permission to write to the node --&amp;gt;
						       &amp;lt;!-- allow: If the permission specifies, the action is allowed
								    deny: If the permission specifies, the action is hidden
								    Only one of the "allow" or "deny" permissions can be specified for Read/Write--&amp;gt;
						       &amp;lt;permission allow="true"&amp;gt;Write&amp;lt;/permission&amp;gt;
						    &amp;lt;/permissions&amp;gt;
						    &amp;lt;!-- Additional params for form dialog on action --&amp;gt;
						    &amp;lt;!-- The kind of item the form is for (node, action, task, type) --&amp;gt;
						    &amp;lt;param name="itemKind"&amp;gt;action&amp;lt;/param&amp;gt;
						    &amp;lt;!-- Item identifier, for action it is the Spring Bean ID.  
						    Check the string-compare config evaluator with condition as 'update-comments' which will be used to launch the popup form --&amp;gt;
						    &amp;lt;param name="itemId"&amp;gt;update-comments&amp;lt;/param&amp;gt;
						    &amp;lt;!-- Form mode (create, edit , view)--&amp;gt;
						    &amp;lt;param name="mode"&amp;gt;create&amp;lt;/param&amp;gt;
						    &amp;lt;!-- Node on which operation will be performed --&amp;gt;
						    &amp;lt;param name="destination"&amp;gt;{node.nodeRef}&amp;lt;/param&amp;gt;
						    &amp;lt;param name="successMessage"&amp;gt;update-comments.success.message&amp;lt;/param&amp;gt;
						    &amp;lt;param name="failureMessage"&amp;gt;update-comments.failure.message&amp;lt;/param&amp;gt;
						    &amp;lt;evaluator&amp;gt;evaluator.doclib.action.isMyContentOrSupportingDoc&amp;lt;/evaluator&amp;gt;				
						&amp;lt;/action&amp;gt;
			
					&amp;lt;/actions&amp;gt;
					&amp;lt;actionGroups&amp;gt;
						&amp;lt;actionGroup id="document-browse"&amp;gt;
							&amp;lt;action id="launch-abhinav-javaworld" index="100"/&amp;gt;
							&amp;lt;action id="launch-demo-surf-page" index="101"/&amp;gt;
							&amp;lt;action id="launch-demo-aikau-page" index="102"/&amp;gt;
							&amp;lt;action id="update-comments" index="103"/&amp;gt;
						&amp;lt;/actionGroup&amp;gt;
						&amp;lt;actionGroup id="document-details"&amp;gt;
							&amp;lt;action id="launch-abhinav-javaworld" index="100"/&amp;gt;
							&amp;lt;action id="launch-demo-surf-page" index="101"/&amp;gt;
							&amp;lt;action id="launch-demo-aikau-page" index="102"/&amp;gt;
							&amp;lt;action id="show-custom-message-javascript-action" index="103"/&amp;gt;
							&amp;lt;action id="update-comments" index="104"/&amp;gt;
						&amp;lt;/actionGroup&amp;gt;
					&amp;lt;/actionGroups&amp;gt;
				&amp;lt;/config&amp;gt;
				
				&amp;lt;config evaluator="string-compare" condition="DocLibCustom"&amp;gt;
				  &amp;lt;dependencies&amp;gt;
				     &amp;lt;!-- CSS and JS dependencies can be injected using this config --&amp;gt;
				     &amp;lt;!-- &amp;lt;css src="share-module/components/documentlibrary/custom-actions/show-custom-message.css/&amp;gt;--&amp;gt;
				     &amp;lt;js src="share-module/components/documentlibrary/custom-actions/show-custom-message.js"/&amp;gt;
				   &amp;lt;/dependencies&amp;gt;
				&amp;lt;/config&amp;gt;
								
				&amp;lt;!-- Form definition for update-comments action --&amp;gt;
				&amp;lt;config evaluator="string-compare" condition="update-comments"&amp;gt;
					&amp;lt;forms&amp;gt;
						&amp;lt;form&amp;gt;
							&amp;lt;field-visibility&amp;gt;
								&amp;lt;show id="comment"/&amp;gt;
							&amp;lt;/field-visibility&amp;gt;
							&amp;lt;appearence&amp;gt;
								&amp;lt;field id="comment"&amp;gt;
									&amp;lt;control template="/org/alfresco/components/form/controls/textfield.ftl" /&amp;gt;
								&amp;lt;/field&amp;gt;
							&amp;lt;/appearence&amp;gt;
						&amp;lt;/form&amp;gt;
					&amp;lt;/forms&amp;gt;
				&amp;lt;/config&amp;gt;
				
			
			 &amp;lt;/configurations&amp;gt;
		&amp;lt;/module&amp;gt;
	&amp;lt;/modules&amp;gt;
&amp;lt;/extension&amp;gt;&lt;/PRE&gt;
&lt;P&gt;You can see some details here as well:&amp;nbsp;&lt;A href="https://docs.alfresco.com/6.0/concepts/dev-extensions-share-module-dynamic-configuration.html" target="_blank" rel="nofollow noopener noreferrer"&gt;https://docs.alfresco.com/6.0/concepts/dev-extensions-share-module-dynamic-configuration.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 11 May 2020 20:30:08 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105577#M29866</guid>
      <dc:creator>abhinavmishra14</dc:creator>
      <dc:date>2020-05-11T20:30:08Z</dc:date>
    </item>
    <item>
      <title>Re: Surf Extension Module vs. share-config-custom.xml</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105578#M29867</link>
      <description>&lt;P&gt;Thank you! But it's exactly the opposite. I wonder how I can put everything (types, apects...) in the extension module XML.&lt;/P&gt;&lt;P&gt;share-config-custom.xml is the central configuration for the whole share app. Whereas the module xml is, thinking of modularization, the place where modulespecific customizations should go.&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2020 07:39:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105578#M29867</guid>
      <dc:creator>akreienbring</dc:creator>
      <dc:date>2020-05-12T07:39:00Z</dc:date>
    </item>
    <item>
      <title>Re: Surf Extension Module vs. share-config-custom.xml</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105579#M29868</link>
      <description>&lt;P&gt;You are not limited to put any configuration in either of the approaches. I gave an example of module extension configuration containing some configurations for reference. There is no fight between the two approaches. It depends on your requirement. You can define a&lt;SPAN&gt;spects, types, indicators etc. in share-config-custom.xml as well as in an extension module as well. Again its up to your requirement how you want to handle and what use cases you have.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Surf extensions can be deployed/un-deployed dynamically giving benefit that if you want to disable an extension, you can do it dynamically from share module extension console "&lt;A href="http://127.0.0.1:8081/share/page/modules/deploy" target="_blank" rel="noopener nofollow noreferrer"&gt;http://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/share/page/modules/deploy&lt;/A&gt;"&lt;/P&gt;
&lt;P&gt;Surf extension also gives you flexibity to enable/disable a module based on evaluators as well.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Suppose i am using multiple site-presets (in general- its type of sites, one of which is which is Collaboration site with site preset named as "site-dashboard"), and all sites (based on specific presets) have some specific functionalities pertating to either aspect, indicator etc. It would make sense for me to create an extension per site-preset and put site specific configs in the extensions and keep all general configurations in share-config-custom.xml.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Remote, debug, csrf filerting, any global config are most common for share-config-custom.xml, however you are not limited to just use it for these configs only.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would suggest to read this documentation in detail in case you want to understand more:&amp;nbsp;&lt;A href="https://docs.alfresco.com/6.2/concepts/dev-extensions-share-surf-extension-modules.html" target="_blank" rel="noopener nofollow noreferrer"&gt;https://docs.alfresco.com/6.2/concepts/dev-extensions-share-surf-extension-modules.html&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2020 20:45:05 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105579#M29868</guid>
      <dc:creator>abhinavmishra14</dc:creator>
      <dc:date>2020-05-12T20:45:05Z</dc:date>
    </item>
    <item>
      <title>Re: Surf Extension Module vs. share-config-custom.xml</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105580#M29869</link>
      <description>&lt;P&gt;OK! I see... thank you!&lt;/P&gt;&lt;P&gt;I will try to move the config sections to the module.xml again based on your example and come back to give feedback with my results.&lt;/P&gt;</description>
      <pubDate>Fri, 15 May 2020 14:38:50 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105580#M29869</guid>
      <dc:creator>akreienbring</dc:creator>
      <dc:date>2020-05-15T14:38:50Z</dc:date>
    </item>
    <item>
      <title>Re: Surf Extension Module vs. share-config-custom.xml</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105581#M29870</link>
      <description>&lt;P&gt;I now managed to copy all configurations to the Module XML. I guess that it is a matter of the sequence of the tags.&lt;/P&gt;&lt;P&gt;For others, who may have problems, here is the sequence of tags that works for me in the extension module:&lt;/P&gt;&lt;PRE&gt;&amp;lt;config evaluator="string-compare" condition="DocumentLibrary"&amp;gt; &lt;BR /&gt;    &amp;lt;indicators&amp;gt; ... &amp;lt;/indicators&amp;gt;&lt;BR /&gt;    &amp;lt;aspects&amp;gt; ... &amp;lt;/aspects&amp;gt;&lt;BR /&gt;    &amp;lt;types&amp;gt; ... &amp;lt;/types&amp;gt;&lt;BR /&gt;&amp;lt;/config&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;config evaluator="string-compare" condition="DocLibActions"&amp;gt;&lt;BR /&gt;    &amp;lt;actions&amp;gt; ... &amp;lt;/actions&amp;gt;&lt;BR /&gt;    &amp;lt;actionGroups&amp;gt; ... &amp;lt;/actionGroups&amp;gt;&lt;BR /&gt;&amp;lt;/config&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;config evaluator="string-compare" condition="AdvancedSearch" replace="true"&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;config evaluator="string-compare" condition="activiti$SomeWorkflowForm"&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;config evaluator="node-type" condition="xy:SomeType"&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;config evaluator="aspect" condition="xy:AnyAspect"&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;P&gt;,&lt;/P&gt;</description>
      <pubDate>Sat, 16 May 2020 17:09:47 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/surf-extension-module-vs-share-config-custom-xml/m-p/105581#M29870</guid>
      <dc:creator>akreienbring</dc:creator>
      <dc:date>2020-05-16T17:09:47Z</dc:date>
    </item>
  </channel>
</rss>

