cancel
Showing results for 
Search instead for 
Did you mean: 

Share-related tutorials & resources

jpotts
World-Class Innovator
World-Class Innovator
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
5 REPLIES 5

erikwinlof
Confirmed Champ
Confirmed Champ
….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

jpfi
Champ in-the-making
Champ in-the-making
Hi,
our code-google project includes a bunch of Share extensions:
http://code.google.com/p/fme-alfresco-extensions/
Cheers, jan

erikwinlof
Confirmed Champ
Confirmed Champ
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.

ratomickey
Champ in-the-making
Champ in-the-making
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

abhinav
Champ on-the-rise
Champ on-the-rise
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
   });
}