Creación plantilla de carpetas por site

cancel
Showing results for 
Search instead for 
Did you mean: 
cromdm
Member II

Creación plantilla de carpetas por site

Hola!

estoy intentando realizar con alfresco share 3.4 un script que automaticamente cree una estructura de carpetas dentro del document library cada vez que creo un site,
he seguido este tutorial, que esta muy bien: http://zandadev.com/zach/alf/?p=37

pero no he conseguido que me funcione el script, la diferencia es que yo tengo el share en castella no, y no tengo la carpeta "Site Folders Templates" dentro del "Diccionario de datos", supongo que el problema debe venir de aquí..

¿Alguién puede ayudarme? ¿¿o alguna otra idea de como crear una plantilla de carpetas por cada site??

gracias!!
30 Replies
cristinamr
Advanced

Re: Creación plantilla de carpetas por site

Buenos días.

Mira, en el share, en tu dashboard, pincha arriba en "repositorio". A mano izquierda se te desplegará un árbol de carpetas, pincha en "Diccionario de datos", y una vez se te despliegue, la carpeta donde tienes que colocar tu archivo es en "Plantillas de correo electrónico" Smiley Wink

Espero que te haya servido de ayuda. Sino, pregunta y te intentamos echar un cable =)

¡¡Un saludo!!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
cromdm
Member II

Re: Creación plantilla de carpetas por site

Hola Cristina,

he probado lo que me has sugerido, he copiado la estructura de carpetas dentro de "plantillas para correo electronico" en el "document library", luego he vuelto a subir el archivo .js en la carpeta "script" y he creado la regla, tal y como dice en el tutorial.
entonces al crear un nuevo sitio me ha dado el siguiente error:
No se pudo crear el sitio
06250349 Failed to execute script 'workspace://SpacesStore/23a35f94-43f3-4532-b740-42eb8d42b18d': 06250348 TypeError: Cannot read property "sitePreset" from null (workspace://SpacesStore/23a35f94-43f3-4532-b740-42eb8d42b18d#34)


¿Deberia cambiar el path del script y poner la ruta en castellano?
la actual és var templateMap = [{preset: "site-dashboard", path: "Data Dictionary/Site Folder Templates/Project Site"}];
la verdad es que también lo he probado peró nada….

¡¡gracias de antemano!!
cristinamr
Advanced

Re: Creación plantilla de carpetas por site

El error ese lo que te dice es que el valor de  "sitePreset" es nulo. ¿Cómo lo especificas el valor?
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
cromdm
Member II

Re: Creación plantilla de carpetas por site

hola Cristina,

el codigo del .js del tutorial era este:


var docUrl = document.webdavUrl;
var docUrlArray = docUrl.split("/");
var siteName = "";

// parse site name from webdavUrl
for (var lcv = 0; lcv < docUrlArray.length; lcv++) {
   if (docUrlArray[lcv] == "Sites") siteName = docUrlArray[lcv + 1];
}

// get site reference from site service
var site = siteService.getSite(siteName);

// define folders to use as templates for each site preset type
var templateMap = [{preset: "site-dashboard", path: "Data Dictionary/Site Folder Templates/Project Site"}];

// loop through templateMap
for (var lcv = 0; lcv < templateMap.length; lcv++) {

   // act if site is of the desired preset
   if (site.sitePreset == templateMap[lcv].preset) {

      // set root node to copy child nodes from
      var templateNode = companyhome.childByNamePath(templateMap[lcv].path);

      // copy nodes from path to site
      for (var n = 0; n < templateNode.children.length; n++) {
         templateNode.children[n].copy(document, true);
      }

      // stop looping through templateMap
      lcv = templateMap.length;
   }
}

site.sitePreset la debe recuperar vacia….

la verdad es que no hace mucho que he empezado con Alfresco

¿alguna ideo de como arreglarlo?

¡mil gracias!
cristinamr
Advanced

Re: Creación plantilla de carpetas por site

Seguramente es por el path, porque lo introduces en inglés y fijo que te lo toma en castellano. ¿Has hecho la prueba? A mi hacepoco me pasó algo similar con un script, que no me pillaba una dirección y era por el tema del idioma.
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
cromdm
Member II

Re: Creación plantilla de carpetas por site

Lo acabo de probar ahora mismo, no me da ningún error, creo el site, pero en Repositorio del site no crea las carpetas automaticamente Smiley Sad

que complicado…

no sé que puedo hacer mal… ¿hay otra manera de hacerlo?
cristinamr
Advanced

Re: Creación plantilla de carpetas por site

¿No te dice nada el log? Smiley Frustrated ¿Has dado todos los pasos? Fijo que hay algo que se te escapa. Dime exactamente los pasos que has dado y si quieres facilitame los archivos y lo pruebo en el mío a ver si llegamos al fondo del problema.
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
cromdm
Member II

Re: Creación plantilla de carpetas por site

muchas gracias Cristina,

te escribo los pasos iniciales antes de las pruebas de esta mañana:


1 - en  Repositorio > Libreria de datos  creo carpeta "Site Folder Templates" y dentro de esta creo  "Project Site"

2 - creo un sitio temporal dondé creo la estructura de carpetas que deseo tener en el resto de sites
     nuevo sitio "tempSite"
     dentro de   Repositorio >Sitios > tempSite > DocumentLibrary creo dos carpetas resources y reports, dentro de resourse img y docs
     es decir la cosa queda así:
     Repositorio >Sitios > tempSite > DocumentLibrary> resources > img y Repositorio >Sitios > tempSite > DocumentLibrary> resources > docs
     Repositorio >Sitios > tempSite > DocumentLibrary> reports

3 - en el nivel de carpeta "tempSite" selecciono "links" y "documentLibrary"  y los copio en Repositorio > Libreria de datos > Site Folder Templates > Project Site  que he creado antes.

4 - creo el archivo .js en mi escritorio, que contiene:
[size=85]var docUrl = document.webdavUrl;
var docUrlArray = docUrl.split("/");
var siteName = "";

// parse site name from webdavUrl
for (var lcv = 0; lcv < docUrlArray.length; lcv++) {
   if (docUrlArray[lcv] == "Sites") siteName = docUrlArray[lcv + 1];
}

// get site reference from site service
var site = siteService.getSite(siteName);

// define folders to use as templates for each site preset type
var templateMap = [{preset: "site-dashboard", path: "Data Dictionary/Site Folder Templates/Project Site"}];

// loop through templateMap
for (var lcv = 0; lcv < templateMap.length; lcv++) {

   // act if site is of the desired preset
   if (site.sitePreset == templateMap[lcv].preset) {

      // set root node to copy child nodes from
      var templateNode = companyhome.childByNamePath(templateMap[lcv].path);

      // copy nodes from path to site
      for (var n = 0; n < templateNode.children.length; n++) {
         templateNode.children[n].copy(document, true);
      }

      // stop looping through templateMap
      lcv = templateMap.length;
   }
}[/size]

    entonces voy a  Repositorio > Libreria de datos > Scripts y subo este fichero js

5 -  voy al nivel de
     Repositorio
     selecciono "sitios" y le doy a "gestionar reglas"

    genero una regla nueva con estos atributos:
Cuando : Los elementos están creados o entran en esta carpeta
    Si se cumplen todos los criterios: Es del tipo (o subtipo) 'Carpeta'
    ejecutar Script: Selecciono el js que he creado antes


bueno esto es todo, como ves he seguido los pasos del tutorial que he mencionado en el primer post
a ver si encuntras dondé cometo el error…

¡¡¡¡muchisimas gracias!!!!
cristinamr
Advanced

Re: Creación plantilla de carpetas por site

A ver, mirando el tutorial pone:

You should start by creating the folder to store your templates in. Like I said, I put mine in the data dictionary. Once you have created that folder, you should create another folder inside of it. For this example, I created a template for my company’s project-related Sites in Data Dictionary/Site Folder Templates/Project Site.

Como ya sabes, esa ruta existe en español como Diccionario de Datos/Plantillas del Espacio (antes te lo especifiqué mal).

Esa dirección internamente está en inglés, por lo que en el paso 1 pones:

1 - en Repositorio > Libreria de datos creo carpeta "Site Folder Templates" y dentro de esta creo "Project Site"

Tú no tienes que crear "Site Folder Templates",porque esa carpeta ya está creada en "Diccionario de Datos/Plantillas del Espacio" (Plantillas del Espacio == Site Folder Templates). Entonces lo primero a corregir, es que crees la carpeta dentro de Diccionario de Datos/Plantillas del Espacio/Project Site.

Ojealo porque a ver si todo lo que te está ocurriendo es porque la ruta está mal y por eso se hace un lío. Sigo mirando mientras pero por lo que he revisado a simple vista no me suena que tengas nada mal.
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc