Share-related tutorials & resources
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-21-2012 11:42 AM
If you are new to customizing Alfresco Share, there are some resources you need to be aware of:
<ul>
<li><a href="http://ecmarchitect.com/alfresco-developer-series-tutorials/content/tutorial/tutorial.html">Custom Content Types tutorial</a> Includes instructions for configuring custom content types, aspects, and properties in Alfresco Share</li>
<li><a href="http://ecmarchitect.com/alfresco-developer-series-tutorials/actions/tutorial/tutorial.html">Custom Actions tutorial</a> Includes examples for using the new Share extensibility points in Alfresco 4 to create custom UI actions and shows how to extend the rule configuration in Share for custom actions.</li>
<li><a href="http://code.google.com/p/share-extras/">Share Extras</a> Includes over 35 examples of Share customizations and extensions as well as sample projects and build scripts.</li>
<li><a href="http://sharextras.org/jsdoc/share/">Client-side JavaScript Documentation</a> Documentation of Alfresco's client-side JavaScript components</li>
<li><a href="http://blogs.alfresco.com/wp/mikeh/">Mike Hatfield's Blog</a></li>
<li><a href="http://blogs.alfresco.com/wp/ddraper/">Dave Draper's Blog</a></li>
<li><a href="http://www.slideshare.net/alfresco/new-client-config-extension-points-in-share">DevCon 2011 Presentation on Share Extensibility</a></li>
<li><a href="http://www.slideshare.net/alfresco/share-document-library-extension-points">DevCon
2011 Presentation on Share Document Library Extension
Points</a></li>
</ul>
Jeff
<ul>
<li><a href="http://ecmarchitect.com/alfresco-developer-series-tutorials/content/tutorial/tutorial.html">Custom Content Types tutorial</a> Includes instructions for configuring custom content types, aspects, and properties in Alfresco Share</li>
<li><a href="http://ecmarchitect.com/alfresco-developer-series-tutorials/actions/tutorial/tutorial.html">Custom Actions tutorial</a> Includes examples for using the new Share extensibility points in Alfresco 4 to create custom UI actions and shows how to extend the rule configuration in Share for custom actions.</li>
<li><a href="http://code.google.com/p/share-extras/">Share Extras</a> Includes over 35 examples of Share customizations and extensions as well as sample projects and build scripts.</li>
<li><a href="http://sharextras.org/jsdoc/share/">Client-side JavaScript Documentation</a> Documentation of Alfresco's client-side JavaScript components</li>
<li><a href="http://blogs.alfresco.com/wp/mikeh/">Mike Hatfield's Blog</a></li>
<li><a href="http://blogs.alfresco.com/wp/ddraper/">Dave Draper's Blog</a></li>
<li><a href="http://www.slideshare.net/alfresco/new-client-config-extension-points-in-share">DevCon 2011 Presentation on Share Extensibility</a></li>
<li><a href="http://www.slideshare.net/alfresco/share-document-library-extension-points">DevCon
2011 Presentation on Share Document Library Extension
Points</a></li>
</ul>
Jeff
Labels:
- Labels:
-
Archive
5 REPLIES 5
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-22-2012 06:52 AM
….here are some more useful pages:
Share / Spring Surf cheat sheets
https://twitter.com/#!/erikwinlof/media/slideshow?url=pic.twitter.com%2FFZbz2CVW - pages, templates & components (webscripts)
https://twitter.com/#!/erikwinlof/media/slideshow?url=pic.twitter.com%2FJyWfvpkW - webscripts
Share Configurations/Customizations guides from docs & wiki
http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fch-customiz... - Share customizing introduction
http://wiki.alfresco.com/wiki/Enabling_Share_Repository_Document_Library - Show/hide the repository in Share
http://wiki.alfresco.com/wiki/Custom_Share_Workflow_UI - Share workflow filters & custom form
http://wiki.alfresco.com/wiki/Share_Advanced_Search - customize the advanced search form in Share
http://wiki.alfresco.com/wiki/Share_Header - Customize the links/buttons in the Share header
http://wiki.alfresco.com/wiki/Custom_Share_Action_UI - Make custom actions look nice pretty in the Shares "Rule management ui"
http://wiki.alfresco.com/wiki/Share_Custom_Pages - Create your own Share pages
http://blogs.alfresco.com/wp/ewinlof/2011/10/12/create-pages-in-alfresco-share-using-new-out-of-the-... - Simplify page creation using out of the box templates
http://blogs.alfresco.com/wp/ewinlof/2011/11/09/add-remove-or-replace-components-on-shares-document-... - Swap in/out components on the document details page
http://blogs.alfresco.com/wp/ewinlof/2010/11/23/display-pdf-files-in-your-browser-using-pdf2swf-alfr... - Use the Alfresco web previewer & pdf2ser outside of Alfresco
http://blogs.alfresco.com/wp/dwebster/2011/10/07/alfresco-example-extension-peerbind-demo/ - Create a real time chat extension in Share
http://loftux.com/2012/01/08/replace-alfresco-standard-flash-viewer-with-pdf-js/ - Document preview without flash player
WebScript introductions
http://wiki.alfresco.com/wiki/Web_Scripts_Examples - Webscript introduction
http://wiki.alfresco.com/wiki/FreeMarker_Template_Cookbook - Alfresco freemarker introduction
http://wiki.alfresco.com/wiki/JavaScript_API_Cookbook - Alfresco javascript objects available form server side javascript (Rhino)
Forms
http://wiki.alfresco.com/wiki/Forms - Alfresco share forms introduction
http://wiki.alfresco.com/wiki/Forms_Development_Kit - Useful when testing and creating new forms
More blogs on Share extensibility & Spring Surf
http://blogs.alfresco.com/wp/dwebster/ - Share extensibility, calender & jquey
http://blogs.alfresco.com/wp/kevinr/ - Spring Surf
http://blogs.alfresco.com/wp/wabson/ - Alfresco in general & Share customizations
http://blogs.alfresco.com/wp/ewinlof/ - Share extensibility & Spring Surf REST
http://jared.ottleys.net/ - Alfresco & Share in general
Share / Spring Surf cheat sheets
https://twitter.com/#!/erikwinlof/media/slideshow?url=pic.twitter.com%2FFZbz2CVW - pages, templates & components (webscripts)
https://twitter.com/#!/erikwinlof/media/slideshow?url=pic.twitter.com%2FJyWfvpkW - webscripts
Share Configurations/Customizations guides from docs & wiki
http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fch-customiz... - Share customizing introduction
http://wiki.alfresco.com/wiki/Enabling_Share_Repository_Document_Library - Show/hide the repository in Share
http://wiki.alfresco.com/wiki/Custom_Share_Workflow_UI - Share workflow filters & custom form
http://wiki.alfresco.com/wiki/Share_Advanced_Search - customize the advanced search form in Share
http://wiki.alfresco.com/wiki/Share_Header - Customize the links/buttons in the Share header
http://wiki.alfresco.com/wiki/Custom_Share_Action_UI - Make custom actions look nice pretty in the Shares "Rule management ui"
http://wiki.alfresco.com/wiki/Share_Custom_Pages - Create your own Share pages
http://blogs.alfresco.com/wp/ewinlof/2011/10/12/create-pages-in-alfresco-share-using-new-out-of-the-... - Simplify page creation using out of the box templates
http://blogs.alfresco.com/wp/ewinlof/2011/11/09/add-remove-or-replace-components-on-shares-document-... - Swap in/out components on the document details page
http://blogs.alfresco.com/wp/ewinlof/2010/11/23/display-pdf-files-in-your-browser-using-pdf2swf-alfr... - Use the Alfresco web previewer & pdf2ser outside of Alfresco
http://blogs.alfresco.com/wp/dwebster/2011/10/07/alfresco-example-extension-peerbind-demo/ - Create a real time chat extension in Share
http://loftux.com/2012/01/08/replace-alfresco-standard-flash-viewer-with-pdf-js/ - Document preview without flash player
WebScript introductions
http://wiki.alfresco.com/wiki/Web_Scripts_Examples - Webscript introduction
http://wiki.alfresco.com/wiki/FreeMarker_Template_Cookbook - Alfresco freemarker introduction
http://wiki.alfresco.com/wiki/JavaScript_API_Cookbook - Alfresco javascript objects available form server side javascript (Rhino)
Forms
http://wiki.alfresco.com/wiki/Forms - Alfresco share forms introduction
http://wiki.alfresco.com/wiki/Forms_Development_Kit - Useful when testing and creating new forms
More blogs on Share extensibility & Spring Surf
http://blogs.alfresco.com/wp/dwebster/ - Share extensibility, calender & jquey
http://blogs.alfresco.com/wp/kevinr/ - Spring Surf
http://blogs.alfresco.com/wp/wabson/ - Alfresco in general & Share customizations
http://blogs.alfresco.com/wp/ewinlof/ - Share extensibility & Spring Surf REST
http://jared.ottleys.net/ - Alfresco & Share in general

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-22-2012 07:16 AM
Hi,
our code-google project includes a bunch of Share extensions:
http://code.google.com/p/fme-alfresco-extensions/
Cheers, jan
our code-google project includes a bunch of Share extensions:
http://code.google.com/p/fme-alfresco-extensions/
Cheers, jan
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎04-25-2013 03:14 AM
Can be found in the links below (relevant for HEAD or Enterprise 4.1.4 and forward)
Share CSRF filter
http://blogs.alfresco.com/wp/ewinlof/2013/03/11/introducing-the-new-csrf-filter-in-alfresco-share/
If you use Alfresco classes for submitting data this doesn't affect your code, but if not you might need to add 3 lines of code. Also worth reading if you run alfresco behind a proxy server.
Share IFrame policy
http://blogs.alfresco.com/wp/ewinlof/2013/03/12/introducing-the-iframepolicy-in-alfresco-share/
Configure which domains that shall be allowed to be iframed, i.e. in the WebView. Note! The config shall be honoured by addons.
Share Security header filter
http://blogs.alfresco.com/wp/ewinlof/2013/03/12/introducing-the-securityheaderspolicy-in-alfresco-sh...
Configurable filter that sends HTTP response headers that improves the security for your SHare installation.
Share CSRF filter
http://blogs.alfresco.com/wp/ewinlof/2013/03/11/introducing-the-new-csrf-filter-in-alfresco-share/
If you use Alfresco classes for submitting data this doesn't affect your code, but if not you might need to add 3 lines of code. Also worth reading if you run alfresco behind a proxy server.
Share IFrame policy
http://blogs.alfresco.com/wp/ewinlof/2013/03/12/introducing-the-iframepolicy-in-alfresco-share/
Configure which domains that shall be allowed to be iframed, i.e. in the WebView. Note! The config shall be honoured by addons.
Share Security header filter
http://blogs.alfresco.com/wp/ewinlof/2013/03/12/introducing-the-securityheaderspolicy-in-alfresco-sh...
Configurable filter that sends HTTP response headers that improves the security for your SHare installation.

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-25-2014 06:59 AM
Hi all,
I am on 4.2.e Community, trying to customize Share advanced search.
I have a custom type, xxxx:doc defined, with a property named xxxx:docEntidadeNome defined as:
<type name="xxxx:doc">
<title>Documento xxxx</title>
<parent>cm:content</parent>
<archive>true</archive>
<properties>
<property name="xxxx:docAno">
<title>Ano documento</title>
<type>d:int</type>
<mandatory>true</mandatory>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
</property>
<property name="xxxx:docNumero">
<title>Numero documento</title>
<type>d:int</type>
<mandatory>true</mandatory>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
</property>
<property name="xxxx:docDate">
<title>Data de Documento xxxx Doc</title>
<type>d:date</type>
<mandatory>true</mandatory>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
</property>
<property name="xxxx:docEntidadeNome">
<title>Nome entidade</title>
<type>d:text</type>
<mandatory>true</mandatory>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
</property>
<property name="xxxx:docTypeGiim">
<title>Type xxxiim</title>
<type>d:text</type>
<mandatory>true</mandatory>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
</property>
<mandatory-aspects>
<aspect>cm:generalclassifiable</aspect>
</mandatory-aspects>
</type>
Using "Share Advanced Search"
Allow to do search using various "xxxx: docEntidadeNome" eg :
"David" OR "Adam" the result should be that all documents in property "xxxx: docEntidadeNome" David was equal or Adam.
It's possible to do this in the Advanced Share Share?
Thanks
Rato Mickry
I am on 4.2.e Community, trying to customize Share advanced search.
I have a custom type, xxxx:doc defined, with a property named xxxx:docEntidadeNome defined as:
<type name="xxxx:doc">
<title>Documento xxxx</title>
<parent>cm:content</parent>
<archive>true</archive>
<properties>
<property name="xxxx:docAno">
<title>Ano documento</title>
<type>d:int</type>
<mandatory>true</mandatory>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
</property>
<property name="xxxx:docNumero">
<title>Numero documento</title>
<type>d:int</type>
<mandatory>true</mandatory>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
</property>
<property name="xxxx:docDate">
<title>Data de Documento xxxx Doc</title>
<type>d:date</type>
<mandatory>true</mandatory>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
</property>
<property name="xxxx:docEntidadeNome">
<title>Nome entidade</title>
<type>d:text</type>
<mandatory>true</mandatory>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
</property>
<property name="xxxx:docTypeGiim">
<title>Type xxxiim</title>
<type>d:text</type>
<mandatory>true</mandatory>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
</property>
<mandatory-aspects>
<aspect>cm:generalclassifiable</aspect>
</mandatory-aspects>
</type>
Using "Share Advanced Search"
Allow to do search using various "xxxx: docEntidadeNome" eg :
"David" OR "Adam" the result should be that all documents in property "xxxx: docEntidadeNome" David was equal or Adam.
It's possible to do this in the Advanced Share Share?
Thanks
Rato Mickry

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-17-2015 06:16 AM
Hi all,
I was using Alfresco 5.0.a community for developing dashlets and java backed webscipts. Alfresco.util.Ajax.request with POST was working fine in 5.0.a. But when i upgraded to Alfresco 5.0.C, it stopped working. Parameters sent in dataObj ( as given below ) are not reaching to the java backed webscript, i am getting the null values from WebScriptRequest (request) object. Where in Alfresco 5.0.a its working fine.
(
dataObj: {
breadcrumb : selectedBreadcrumb,
id: id,
format : "html"
}
)
JavaWebscript:
public class DashletAction extends DeclarativeWebScript {
@Override
protected Map<String, Object> executeImpl(final WebScriptRequest request,
final Status status, final Cache cache) {
cache.setNeverCache(true);
// Retrieve and validate parameters
final String breadcrumb = request.getParameter("breadcrumb"); //GETTING NULL here in Alfresco 5.0.c
final String id = request.getParameter("id"); //GETTING NULL here in Alfresco 5.0.c
final String format = request.getParameter("html"); //GETTING NULL here in Alfresco 5.0.c
//……DO Something with these parameters
}
}
Ajax call from .ftl File:
function onDashletAction(obj){
var scriptURL = Alfresco.constants.PROXY_URI+"component/data-integration/dashlet-action;
var selectedID = document.getElementById(obj.id).value.split("|");
INPUTNAME = obj.name; // Set the input name to global INPUTNAME variable.
var breadcrumbId = selectedID[0];
var id=selectedID[1];
var selectedBreadcrumb = document.getElementById(breadcrumbId).value;
Alfresco.util.Ajax.request({
url: scriptURL,
method: Alfresco.util.Ajax.POST,
timeout:200000,
dataObj: {
breadcrumb : selectedBreadcrumb,
id: id,
format : "html"
},
successMessage: "Successfully retrieved the Hierarchy.",
successCallback: {
fn: this.handleSuccess,
scope: this
},
failureMessage: "Failed to retrieved the Hierarchy!",
failureCallback: {
fn: this.handleFailure,
scope: this
},
execScripts: true
});
}
I was using Alfresco 5.0.a community for developing dashlets and java backed webscipts. Alfresco.util.Ajax.request with POST was working fine in 5.0.a. But when i upgraded to Alfresco 5.0.C, it stopped working. Parameters sent in dataObj ( as given below ) are not reaching to the java backed webscript, i am getting the null values from WebScriptRequest (request) object. Where in Alfresco 5.0.a its working fine.
(
dataObj: {
breadcrumb : selectedBreadcrumb,
id: id,
format : "html"
}
)
JavaWebscript:
public class DashletAction extends DeclarativeWebScript {
@Override
protected Map<String, Object> executeImpl(final WebScriptRequest request,
final Status status, final Cache cache) {
cache.setNeverCache(true);
// Retrieve and validate parameters
final String breadcrumb = request.getParameter("breadcrumb"); //GETTING NULL here in Alfresco 5.0.c
final String id = request.getParameter("id"); //GETTING NULL here in Alfresco 5.0.c
final String format = request.getParameter("html"); //GETTING NULL here in Alfresco 5.0.c
//……DO Something with these parameters
}
}
Ajax call from .ftl File:
function onDashletAction(obj){
var scriptURL = Alfresco.constants.PROXY_URI+"component/data-integration/dashlet-action;
var selectedID = document.getElementById(obj.id).value.split("|");
INPUTNAME = obj.name; // Set the input name to global INPUTNAME variable.
var breadcrumbId = selectedID[0];
var id=selectedID[1];
var selectedBreadcrumb = document.getElementById(breadcrumbId).value;
Alfresco.util.Ajax.request({
url: scriptURL,
method: Alfresco.util.Ajax.POST,
timeout:200000,
dataObj: {
breadcrumb : selectedBreadcrumb,
id: id,
format : "html"
},
successMessage: "Successfully retrieved the Hierarchy.",
successCallback: {
fn: this.handleSuccess,
scope: this
},
failureMessage: "Failed to retrieved the Hierarchy!",
failureCallback: {
fn: this.handleFailure,
scope: this
},
execScripts: true
});
}
