Modificación de metadatos de un espacio mediante javascript
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2009 06:50 AM
Hola,
No llevo mucho tiempo con Alfresco, y aunque me voy apañando tengo una duda que no sé como resolver. Os explico…
Estoy haciendo un proyecto donde los documentos van a ser una agrupación de documentos no definida (varios word, varios pdf… lo que quieran). Tomé la decisión de crear un espacio que contenga los documentos que el usuario quiera añadir. Una vez incluídos dentro del espacio hay una fase de aprobación que tengo solucionada. El espacio se va moviendo mediante reglas de aprobación a diferentes espacios, es decir trato el espacio (con un metadatos creados al efecto) como "un documento". Lo que quiero es, mediante javascript modificar los metadatos de dicho espacio según va pasando las fases de aprobación (fechas, estado…). He conseguido que funcione (afecta al espacio donde la regla es local), pero lo que quiero hacer es que funcione en los subespacios, y a pesar de que defino asi la regla no funciona. ¿Alguien me puede decir como forzar a que se ejecute en los subespacios? Es un poco lioso, espero haberlo explicado bien.
Muchas gracias
No llevo mucho tiempo con Alfresco, y aunque me voy apañando tengo una duda que no sé como resolver. Os explico…
Estoy haciendo un proyecto donde los documentos van a ser una agrupación de documentos no definida (varios word, varios pdf… lo que quieran). Tomé la decisión de crear un espacio que contenga los documentos que el usuario quiera añadir. Una vez incluídos dentro del espacio hay una fase de aprobación que tengo solucionada. El espacio se va moviendo mediante reglas de aprobación a diferentes espacios, es decir trato el espacio (con un metadatos creados al efecto) como "un documento". Lo que quiero es, mediante javascript modificar los metadatos de dicho espacio según va pasando las fases de aprobación (fechas, estado…). He conseguido que funcione (afecta al espacio donde la regla es local), pero lo que quiero hacer es que funcione en los subespacios, y a pesar de que defino asi la regla no funciona. ¿Alguien me puede decir como forzar a que se ejecute en los subespacios? Es un poco lioso, espero haberlo explicado bien.
Muchas gracias
Labels:
- Labels:
-
Archive
7 REPLIES 7
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2009 07:01 AM
Pues yo lo haria con una regla asociada al espacio que ejecutara un js.
Via js, puedes recorrer todos los subespacios que cuelgan del principal e ir modificando sus metadatos.
Saludos
Via js, puedes recorrer todos los subespacios que cuelgan del principal e ir modificando sus metadatos.
Saludos
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2009 07:11 AM
Hola,
Muchas gracias por responder tan rápido.
Había contemplado esa posibilidad, pero no sé muy bien como hacerlo. No sé el nombre exacto que el espacio va a tener y lo único que he encontrado es esto childByNamePath("nombre_espacio"). ¿Hay una forma más genérica de conseguirlo?
Gracias de nuevo.
Muchas gracias por responder tan rápido.
Había contemplado esa posibilidad, pero no sé muy bien como hacerlo. No sé el nombre exacto que el espacio va a tener y lo único que he encontrado es esto childByNamePath("nombre_espacio"). ¿Hay una forma más genérica de conseguirlo?
Gracias de nuevo.
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2009 07:19 AM
Pues se me ocurre que al ejecutarse en una espacio determainado, el objecto space es el espacio donde estas, y para buscar los descendientes bastaria con iterar haciendo uso de la propiedad children y comprobando si es un espacio para cambiarles las propiedades.
Entiendo que deberia ser algo asi
Saludos
Entiendo que deberia ser algo asi
for (i in space.children)En los ejemplos de la API de javascript tienes ejemplos.
Comprobar si es espacio y si si…. asignar nuevos metadatos
Saludos
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2009 07:22 AM
Gracias, lo pruebo y te cuento
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-10-2009 06:35 AM
Hola,
Bueno… he conseguido que recorra los espacios hijos, pero no consigo que me cambie las propiedades. Paso el código por si alguien me puede ayudar. No casca, pero me temo que la sintaxis no es la correcta. He estado mirando por aqui por el foro y no veo código que se asemeje. ¿Me podéis echar un cable? Gracias por anticipado.
for (i=1;i<space.children.length;i++){
var nodo = space.children;
var nome=space.children.name;
if(nodo){
nodo.properties["ero:WFlowAsociado"] = "Texto—————–texto";
space.save();
}
space.save();
}
Bueno… he conseguido que recorra los espacios hijos, pero no consigo que me cambie las propiedades. Paso el código por si alguien me puede ayudar. No casca, pero me temo que la sintaxis no es la correcta. He estado mirando por aqui por el foro y no veo código que se asemeje. ¿Me podéis echar un cable? Gracias por anticipado.
for (i=1;i<space.children.length;i++){
var nodo = space.children;
var nome=space.children.name;
if(nodo){
nodo.properties["ero:WFlowAsociado"] = "Texto—————–texto";
space.save();
}
space.save();
}
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-10-2009 07:05 AM
A ver site podemos ayudar:
for (i=1;i<space.children.length;i++){
var nodo = space.children; Aqui cojes el nodo hijo
var nome=space.children.name; ESto para que???
if(!nodo.isDocument ){ Si el nodo no es un documento entonces sera un espacio.Pero revisa si el ! se lo traga
nodo.properties["ero:WFlowAsociado"] = "Texto—————–texto";
space.save();
}
space.save(); Sobraria ya
}
for (i=1;i<space.children.length;i++){
var nodo = space.children; Aqui cojes el nodo hijo
var nome=space.children.name; ESto para que???
if(!nodo.isDocument ){ Si el nodo no es un documento entonces sera un espacio.Pero revisa si el ! se lo traga
nodo.properties["ero:WFlowAsociado"] = "Texto—————–texto";
space.save();
}
space.save(); Sobraria ya
}
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-10-2009 07:14 AM
Por fin!! lo conseguí!!
Lo que pasaba es que no estaba haciendo correctamente el "save". Lo estaba haciendo a nivel del espacio padre (el que ejecuta la regla) y debía de hacerlo a nivel del hijo (el que hace dispararse la regla)
Muchísimas gracias por tu ayuda.
Lo que pasaba es que no estaba haciendo correctamente el "save". Lo estaba haciendo a nivel del espacio padre (el que ejecuta la regla) y debía de hacerlo a nivel del hijo (el que hace dispararse la regla)
Muchísimas gracias por tu ayuda.
![](/skins/images/03B8A94CA56FA229F89023906A8B0EC4/responsive_peak/images/icon_anonymous_message.png)