cancel
Showing results for 
Search instead for 
Did you mean: 

Llamar una plantilla de carpetas desde javascript

pacosantos
Star Contributor
Star Contributor

Buenos días...

Estoy investigando pero no veo nada al respecto. Quisiera saber si es posible invocar desde javascript (u otro medio), la creación de una plantilla de carpetas en lugar de hacerlo desde el menú de usuario "Crear carpeta a través de plantilla"?

Me sirve la funcionalidad aplicada en el menú, pero sería mucho más funcional si pudiese invocarla como evento dentro de otra secuencia de acciones.

Gracias de antemano. Saludos

1 ACCEPTED ANSWER

Sigo contestandome a mi mismo... el problema está en el orden del origen y el destino

El script al final debe quedar más o menos así:

//CARPETA A COPIAR
var origen = search.findNode('workspace://SpacesStore/c56f8edd-f54b-4b19-83af-b6f48b6259dd');

//CARPETA DONDE VA A SER COPIADA
var destino = search.findNode('workspace://SpacesStore/be41b8a1-a671-4a2c-ae49-8e81bb014756');

var copy = origen.copy(destino);
copy.save();

Solo hay que cambiar el orden en el copy, de modo que traducido para newbies como yo....

var copy = que_nodo_quieres_copiar.copy(donde_lo_quieres_copiar)

Si es una carpeta y quieres que se copie todo lo que le cuelga....

var copy = que_nodo_quieres_copiar.copy(donde_lo_quieres_copiar, true)

donde true = copia profunda...

Saludos

View answer in original post

5 REPLIES 5

cesarista
World-Class Innovator
World-Class Innovator

Buenas Paco:

Desde JS API es posible que con un "copy" ya te valga, sobre la carpeta correspondiente dentro de /Dictionary Data/Space Templates , donde están las plantillas de espacio. 

Saludos.

--C

Hola Ángel.

Estoy intentando ver varios tipos de soluciones, en contreto para lo que planteas y una vez que estoy en la carpeta a la que quiero traer la plantilla, mediante una regla que valida las condiciones ejecuto un scrip similar a esto:

var origen = search.findNode('workspace://SpacesStore/c56f8edd-f54b-4b19-83af-b6f48b6259dd');

var copy = document.copy(origen);
copy.save();

El script no arroja ningún error pero tampoco copia el contenido que espero se traiga... evidentemente hay algo mal, muy mal o regular pero ya no se que és.

NOTA: Las carpetas que quiero copiar en ocasiones contienen subcarpetas, no se si debo aplicar también algo especial para esto...

Gracias por tu ayuda. Saludos

Hola de nuevo. @cesarista .. buffff, si está haciendo cosas el script pero no es lo esperado...

Lo que está copiando no es la carpeta que quiero copiar y está en una zona del repositorio a la carpeta donde se ejecuta la regla, es justamente todo lo contrario.

El copy envía la carpeta donde estoy ubicado a la carpeta del repositorio... Smiley Tongue, evidentemente eso no es lo que busco.

Alguna solución para implementar la funcionalidad que busco...?

Gracias por vuestra ayuda. Saludos

Sigo contestandome a mi mismo... el problema está en el orden del origen y el destino

El script al final debe quedar más o menos así:

//CARPETA A COPIAR
var origen = search.findNode('workspace://SpacesStore/c56f8edd-f54b-4b19-83af-b6f48b6259dd');

//CARPETA DONDE VA A SER COPIADA
var destino = search.findNode('workspace://SpacesStore/be41b8a1-a671-4a2c-ae49-8e81bb014756');

var copy = origen.copy(destino);
copy.save();

Solo hay que cambiar el orden en el copy, de modo que traducido para newbies como yo....

var copy = que_nodo_quieres_copiar.copy(donde_lo_quieres_copiar)

Si es una carpeta y quieres que se copie todo lo que le cuelga....

var copy = que_nodo_quieres_copiar.copy(donde_lo_quieres_copiar, true)

donde true = copia profunda...

Saludos

Se me olvidaba...

Por último y no menos importante..., la resolución de mi "caso", el script hubiese funcionado correctamente solo con este cambio...

var origen = search.findNode('workspace://SpacesStore/c56f8edd-f54b-4b19-83af-b6f48b6259dd');

var copy = origen.copy(document);
copy.save();

Donde document es el nodo en el que estamos situados..., y origen el nodo que queremos copiar...