Tuesday, April 13, 2010

Preview: Alfresco Share Data Lists

If you don't have the time to download and setup the newly released Alfresco Share 3.3 Community version, here's a video that previews one of the new features in that release: Data Lists.



Transcript for the video can be downloaded here.
A high resolution version of this demonstration can be seen here.
The Alfresco 3.3 Community release can be downloaded here.


The video doesn't get into how the lists are defined using the Alfresco Content model. It's possible to create new Data List types or to modify the columns of the existing To Do List.

The To-Do List example that ships with Alfresco Share is shown in the video and the content model definition can be found in a file in the Alfresco war under models called datalistModel.xml.

<type name="dl:todoList">
         <title>To Do List</title>
         <parent>dl:dataListItem</parent>
         <properties>
            <property name="dl:todoTitle">
               <title>Title</title>
               <type>d:text</type>
               <mandatory>true</mandatory>
            </property>
            <property name="dl:todoDueDate">
               <title>Due Date</title>
               <type>d:datetime</type>
               <mandatory>false</mandatory>
            </property>
            <property name="dl:todoPriority">
               <title>Priority</title>
               <type>d:int</type>
               <mandatory>false</mandatory>
            </property>
            <property name="dl:todoNotes">
               <title>Notes</title>
               <type>d:text</type>
               <mandatory>false</mandatory>
            </property>
         </properties>
         <associations>
            <association name="dl:assignee">
               <title>Assignee</title>
               <source>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </source>
               <target>
                  <class>cm:person</class>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </target>
            </association>
            <association name="dl:attachments">
               <title>Attachments</title>
               <source>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </source>
               <target>
                  <class>cm:cmobject</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
            </association>
         </associations>
      </type>

The to-do list form is defined in the file share-form-config.xml:
<!-- dl:todoList type -->
   <config evaluator="model-type" condition="dl:todoList">
      <forms>
         <!-- Create item form -->
         <form>
            <field-visibility>
               <show id="dl:todoTitle" />
               <show id="dl:todoDueDate" />
               <show id="dl:todoPriority" />
               <show id="dl:todoNotes" />
               <show id="dl:assignee" />
               <show id="dl:attachments" />
            </field-visibility>
            <create-form template="../data-lists/forms/row-new.ftl" />
            <appearance>
               <field id="dl:todoNotes">
                  <control template="/org/alfresco/components/form/controls/textarea.ftl" />
               </field>
            </appearance>
         </form>

         <!-- Data Grid view -->
         <form id="datagrid">
            <field-visibility>
               <show id="dl:todoTitle" />
               <show id="dl:todoDueDate" />
               <show id="dl:todoPriority" />
               <show id="dl:assignee" />
               <show id="dl:attachments" />
            </field-visibility>
         </form>
      </forms>
   </config>

   <!-- dl_todoList type (existing nodes) -->
   <config evaluator="node-type" condition="dl:todoList">
      <forms>
         <!-- Data List pop-up edit form -->
         <form>
            <field-visibility>
               <show id="dl:todoTitle" />
               <show id="dl:todoDueDate" />
               <show id="dl:todoPriority" />
               <show id="dl:todoNotes" />
               <show id="dl:assignee" />
               <show id="dl:attachments" />
            </field-visibility>
            <edit-form template="../data-lists/forms/row-edit.ftl" />
            <appearance>
               <field id="dl:todoNotes">
                  <control template="/org/alfresco/components/form/controls/textarea.ftl" />
               </field>
            </appearance>
         </form>
      </forms>
   </config>

1 comment:

  1. Hi Dick,

    once had a discussion regarding todo-/issuelists for software projects in share. Problem imho is that in software projects, functionality provided by datalists can interfere with dedicated well established issue tracking systems like jira unless you have tight integration.

    regards
    Andreas

    ReplyDelete