Open IT Experts for Enterprise

Zylk empresa de desarrollo de ecommerce

Más sobre las plantillas de nodos y espacios en Alfresco Share

Cesar Capillas
Cesar Capillas

En más de una ocasión hemos hablado de
las plantillas
de nodos y espacios en Alfresco
. Hoy vamos a comentar como
potenciar esta característica Alfresco Share. En ciertas ocasiones es
necesario, que diferentes usuarios en Alfresco vean plantillas
diferentes y que además puedan editarlas convenientemente según sus
necesidades. Por ejemplo, considerad dos sitios de Alfresco, en donde
se agrupan dos conjuntos de usuarios de dos departamentos de una
organización completamente diferentes. Digamos por un lado, un
departamento de administración y otro dedicado al desarrollo de
software, por ejemplo. Los usuarios del departamento de administración
utilizan un sitio para las tareas administrativas, donde requieren de
plantillas de dietas, contratos u ofertas, mientras que los usuarios
de desarrollo utilizan plantillas de documentación de sus proyectos de
sofware o actas de las reuniones de equipo. La solución de fábrica por
parte de Alfresco para los documentos es ubicarlos en el espacio
Plantillas de nodos del Diccionario de datos y dar los permisos
adecuados en cada documento, uno a uno, a los grupos correspondientes.
Esto puede ser farragoso cuando el número de plantillas es grande. Una
solución es cambiar ligeramente la query para que ésta no sólo lea a
primer nivel y de esta manera poder crear una estructura de carpetas
por debajo del espacio Plantillas de nodo. Y de esta manera
aplicaremos los permisos por grupos a nivel de los espacios
correspondientes. Además de esta manera es posible dar permisos a
ciertos resposables de cada grupo para agregar y borrar sus plantillas
de manera conveniente, delegando el plantillado en cada grupo de trabajo.

Para ello se extendiende:

$TOMCAT_HOME/shared/classes/alfresco/extension/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.js

de manera que:

function main()
{
  var nodes  = search.luceneSearch("+TYPE:"cm:content" +PATH:"/app:company_home/app:dictionary/app:node_templates//*"");
  return nodes;
}

Por otro lado, en las versiones
recientes de Alfresco (4.2.0 EE y 4.2.c) se ha añadido la
funcionalidad de plantillas de espacio en Alfresco Share. Esto no
funciona sin embargo con las implantaciones de Alfresco 4.1.x EE y
4.2.c CE por ejemplo. Sin embargo, con unas pequeñas modificaciones
podemos tener una funcionalidad similar de plantillas de espacio,
gestionandolos en su ubicación original en Diccionario de datos >
Plantillas de espacio. Para ello modificamos dos ficheros esta vez.
Por un lado (de nuevo):

$TOMCAT_HOME/shared/classes/alfresco/extension/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.js

 

function main()
{
    var nodes  = search.luceneSearch("+TYPE:"cm:content" +PATH:"/app:company_home/app:dictionary/app:node_templates//*"");
   var nodes2 = search.luceneSearch("+TYPE:"cm:folder" +PATH:"/app:company_home/app:dictionary/app:space_templates/*"");

   for each(var n in nodes2) {
     nodes.push(n);
   }
  return nodes;
}


Y por otro:

$TOMCAT_HOME/shared/classes/alfresco/extension/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.js

cambiando la línea:

model.result = sourceNode.copy(parentNode);

por:

model.result = sourceNode.copy(parentNode, true);

para que haga deep copy. Por supuesto, veremos los espacios en
el mismo componente de las plantillas de nodo. Además en el caso de
las plantillas de espacio, de manera natural les podemos aplicar los
permisos adecuados para cada grupo. El resultado sería algo como esto,
donde en primer lugar vemos las plantillas de documento (las que
tienen extension) y después las plantillas de nodo (las que no tienen extensión).

Si te ha parecido interesante comparte este post en RRS

Facebook
LinkedIn
Telegram
Email

Leer más sobre temas relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *