jueves, 17 de octubre de 2013

Personalización de Alfresco Share II - cómo deshabilitar custom actions

En nuestro último webinar mostramos cómo personalizar Alfresco Share mediante el uso de custom actions, templates y componentes. A lo largo de las próximas semanas explicaremos paso a paso los detalles que se mostraron en el webinar y llegaremos a comprender los conceptos claves para llevar a cabo la personalización que exponemos en nuestro ejemplo y cualquier otra de este tipo.

En esta entrada explicaremos de forma sencilla cómo eliminar custom actions, de la lista de opciones que los usuarios tienen disponible a través de Alfresco Share.

Objetivo: deshabilitar custom actions
Eliminar las opciones (custom actions) "Subir nueva versión" y  "Editar fuera de línea"


¿Qué es un custom action?
Una acción, ya sea en Share o en el propio repositorio de Alfresco, hace referencia a una función que puede ser ejecutada sobre un elemento del repositorio de forma unitaria, es decir, aquellas funciones que se llevan a cabo sobre un nodo dentro del repositorio, por ejemplo: copiar, mover, eliminar, editar, descargar, publicar, etc.

Las acciones que Alfresco Share trae de fábrica las podemos encontrar en el archivo share-documentlibrary-config.xml situado en <tomcat>/webapps/share/WEB-INF/classes/alfresco. Revisando este archivo localizamos los identificadores de las acciones que queremos eliminar:
  • document-upload-new-version
  • document-edit-offline
Deshabilitar custom actions
Crearemos nuestro propio archivo de configuración de Share (share-config-custom.xml) para incluir nuestros cambios. Utilizaremos el id de estas acciones e indicaremos su deshabilitación mediante un evaluador (evaluator) para que no se muestren:

<config evaluator="string-compare" condition="DocLibActions">
  <actions>
    <!--Disable Upload New Version Action-->
    <action id="document-upload-new-version">
      <evaluator>evaluator.doclib.action.disableAction</evaluator></action>
    <!--Disable Edit Offline Action-->
    <action id="document-edit-offline">
      <evaluator>evaluator.doclib.action.disableAction</evaluator>
    </action>
  </actions>
</config> 

El evaluador que estamos utilizando es uno de los que Alfresco trae por defecto y sirve exclusivamente para deshabilitar acciones (Referencia: https://wiki.alfresco.com/wiki/Document_Library_Predefined_Evaluators#Evaluators)

Evaluador personalizado Debemos tener en cuenta que el evaluador "disableAction" oculta el custom action para cualquier tipo de contenido, en nuestro ejemplo vamos a ocultar las acciones sólo cuando el contenido sea una imagen. Para ello tendremos que crear un evaluador a medida que verifique el mime type de un archivo. Crearemos un archivo de contexto de Spring (evaluator-context.xml) donde definiremos nuestro evaluador personalizado para imágenes:

<bean id="imageTool.evaluator.mimeType" parent="evaluator.doclib.action.isMimetype">
  <property name="mimetypes">
    <list>
      <value>image/jpeg</value>
      <value>image/png</value>
      <value>image/bmp</value>
      <value>image/gif</value>
    </list>
  </property>
</bean>

En share-config-custom.xml haremos referencia al nuevo evaluador mediante su identificador e incluiremos el parámetro "negate" con valor "true" para deshabilitar las acciones cuando se cumpla el nuevo evaluador:

<config evaluator="string-compare" condition="DocLibActions">
  <actions>
    <!--Disable Upload New Version Action-->
    <action id="document-upload-new-version">
      <evaluator negate="true">imageTool.evaluator.mimeType</evaluator>
    <!--Disable Edit Offline Action-->
    <action id="document-edit-offline">
      <evaluator negate="true">imageTool.evaluator.mimeType</evaluator>
    </action>
  </actions>
</config> 

Cómo integrar nuestra personalización en Alfresco Share
Para incluir nuestros cambios en Alfresco Share debemos colocar los nuevos archivos, share-config-custom.xml y evaluator-context.xml, en el directorio de extensión de Alfresco, <tomcat>/shared/classes/alfresco/web-extension

Próximo paso
En nuestra próxima entrada explicaremos cómo añadir nuevos custom actions a la lista de opciones en Alfresco Share.

Código de ejemplo
Pueden bajar el código relacionado con este ejemplo de nuestro repositorio en LINE-OF-SIGHT

lunes, 14 de octubre de 2013

Personalizaciones útiles de Alfresco Share Parte I - Introducción


Alfresco Share
 es una excelente interfaz de usuario para el repositorio de contenido de Alfresco.  Fomenta un ambiente de colaboración alrededor de un contenido debidamente organizado.

Sin embargo, cuando queremos extender ese poder de colaboración que nos ofrece, tenemos a nuestra disposición una serie de herramientas que nos permitirán llevar las funcionalidades del producto a un nivel superior.

Esta serie de 4 publicaciones en nuestro Blog, te mostrarán paso a paso, cómo modificar el menú de opciones que trae la interfaz de Alfresco Share y cómo modificar los componentes de una de sus páginas, para añadir por ejemplo un carrusel de imágenes.

A continuación menciono la serie de 4 publicaciones y su contenido.

- Parte I - Introducción

La publicación está orientada a desarrolladores comenzando a trabajar en la personalización de Alfresco Share, sin embargo, para aquellos con un conocimiento más avanzado, hemos publicado el código de referencia aquí.

Esperamos que estas publicaciones te sean de utilidad en tus personalizaciones de Alfresco Share.