Una de las características más interesantes de la interfaz de
Alfresco Share en cuanto a personalización son los filtros de
documentos. Están situados en el panel lateral izquierdo del
repositorio (o biblioteca de documentos para los sitios).
Se modifican en los dos sencillos archivos de configuración
(para Alfresco 3.4d)
/opt/alfresco34/tomcat/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/components/documentlibrary/
- repo-filter.get.config.xml
- filter.get.config.xml
donde:
<filters> <filter id="all" label="link.all" /> <filter id="editingMe" label="link.editingMe" /> <filter id="editingOthers" label="link.editingOthers" /> <filter id="recentlyModified" label="link.recentlyModified" /> <filter id="recentlyAdded" label="link.recentlyAdded" /> <filter id="favourites" label="link.favourites" /> </filters>
Además en los correspondientes archivos de properties tenemos:
## Title header.documents=Documents ## Filter Names link.all=All Documents link.recentlyModified=Recently Modified link.recentlyAdded=Recently Added link.editingMe=I'm Editing link.editingOthers=Others are Editing link.favourites=My Favorites
En los archivos xml podemos activar o definir los filtros
disponibles. En el archivo javascript filters.lib.js podremos añadir
nuevos fitros asociados a una query de lucene definida y generica,
adaptada a nuestras necesidades. Por ejemplo, documentos recientes con
un cierto tipado documental definido, por ejemplo, una oferta con una
determinada categoria o etiqueta (ganada). Otro ejemplo podría ser un
filtro de documentos tipo factura, con una etiqueta de
"pagada" por debajo de un path determinado en el repositorio
etc, etc…
De este modo:
case "editingMe": filterQuery = "+PATH:"" + parsedArgs.rootNode.qnamePath + "//*""; filterQuery += " +ASPECT:"workingcopy""; filterQuery += " +@cm\:workingCopyOwner:"" + person.properties.userName + '"'; filterParams.query = filterQuery; break; case "editingOthers": filterQuery = "+PATH:"" + parsedArgs.rootNode.qnamePath + "//*""; filterQuery += " +ASPECT:"workingcopy""; filterQuery += " -@cm\:workingCopyOwner:"" + person.properties.userName + '"'; filterParams.query = filterQuery; break;
Por supuesto, el sitio más indicado para modificar esos
archivos es en el directorio web-extension.