Archivo de la categoría: api

[Tutorial] Aprendiendo javascript para Alfresco – Capitulo Final

Muy buenas a todos.

Hace algún tiempo empecé a escribir un tutorial sobre cómo empezar a bichear los javascripts en alfresco. Pues bien, mi meta con este post es un poco el haceros un resumen sobre los pasos finales que os pueda recomendar para poder abordar los pequeños desarrollos con mayor agilidad y facilidad e intentar facilitaros un poco el trabajo.

Documentación & entorno de trabajo
Antes de nada, tened siempre a mano abierto los siguientes links que os servirán de apoyo para realizar vuestros scripts:

  1. APIs Javascripts en Alfresco. Dependiendo de la versión de alfresco que utilices, seleccionala dentro de la wiki para ver las funciones o métodos que hay disponible para esa versión.
  2. Cookbook de javascript. Dentro de la wiki, está este «libro de recetas» con muchos ejemplos con javascript.
  3. MADEJA. Sección proporcionada por la Junta de Andalucía con el contenido en Castellano =) (además tienes mucha información de Alfresco).
  4. Por supuesto, tener siempre acitvada nuestra consola de depuración para ver qué hace nuestro script. También existe para el Share (en vez de http://localhost:8080/alfresco/service/api/javascript/debugger, es http://localhost:8080/share/service/api/javascript/debugger) a partir de la 3.3.x
  5. La Comunidad de Alfresco. Sé que muchos preguntáis allí, pero lo que debemos entre todos es intentar cada día ayudarnos. Recordad eso de «hoy por tí, mañana por mí» ;)

Consejo: Además de todo esto, si usáis Firefox os recomiendo que os bajéis la extensión «Firebug» que sirve para mostraros el código fuente de una página que estáis visualizando (observad las fotos del enlace). Esto sirve, sobre todo, para ver qué valores tiene o adquiere un elemento cuando lo modificáis.
Un ejemplo sencillo: Imaginad que queréis quitar de la parte de abajo el logo de Alfresco y el Copyright porque os ha pedido el cliente que pongáis el suyo, pues bien con esta aplicación, sobre el banner/logo si pulsáis el botón derecho del ratón y le dáis a inspeccionar elemento, os saldrá la url de donde está cargando esa imagen y como se llama, así podréis buscarla en vuestro despliegue para una manipulación libre =)Nota: Chrome, trae ya por defecto en sus últimas versiones una utilidad similar a esta nativamente y sin necesidad de descargar nada adicional.

Una vez preparado vuestro entorno, ¡es hora de desarrollar! =)

Aportaciones
Ya sabéis que soy bastante partidaria de la colaboración (pensad que es ahorrar trabajo y no malgastar tiempo en cosas que ya se han hecho), así que en este apartado os voy a poner script o trozos de código para que los podáis reutilizar.

Consejo: Cuando se os plantee algún desarrollo «grande», tened presente eso de «Divide y Vencerás«: Intentad dividirlo en otros más pequeños, así se te hará bastante más sencillo el realizar el desarrollo y depurarlo.

Aquí algunos ejemplos que os comparto:

  • Contar los documentos de forma recursiva.
contar(companyhome.childByNamePath("mi_espacio"));

function contar(nodeVar) {
    if (nodeVar.isDocument) {
       if(nodeVar.mimetype == "application/pdf" )
             arrayTipos[0]++;
       else if (nodeVar.mimetype == "application/msword" )
             arrayTipos[1]++;
      else
             arrayTipos[2]++;
        contadorDocs++;               
      } else if (nodeVar.isContainer) {
        var childrenList = nodeVar.children;
        for (var i = 0; i < childrenList.length; i++) {
            contar(childrenList[i]);
        }
    }
}
  • Obtener categoria «Empresas» y sus hijos utilizando lucene.
var catName="Empresas";
var srchQuery = "+TYPE:"cm:category" +PATH:"/cm:generalclassifiable//*"";
srchQuery += " +@cm\:name:""+catName+"//*"";
var categoria = search.luceneSearch(srchQuery);
var catHijos = categoria.children;

Sigue leyendo