2011-10-19 8 views
7

Estoy tratando de averiguar cómo realizar una comunicación entre dashlets con Alfresco Share. Aquí un caso de uso simple:¿Alfresco Share proporciona algún mecanismo para la comunicación Inter Dashlet?

Tenemos 2 dashlets, llamémoslos A y B. Quiero poder rellenar un campo "nombre" (digamos con valor "Toto") en A y haga clic en el botón de enviar. Después de hacer clic en el botón de enviar en A. B debe actualizarse con un saludo como "Good Morning Toto".

Gracias por su respuesta.

Gracias por la respuesta. ¿Puedes elaborar un poco sobre "dejar que dashlet_b.get.html.ftl publique algo para dashlet_a.post.html.ftl"?

En dashlet_b.get.html.ftl usted tiene algo así, supongo:

<form id="..." action="" method="POST"> 
    <input id="name" type="text" name="name" value=""/> 
    <input type="submit" id="send" value="Send" /></form> 

Al enviar el formulario de su aspecto va a dashlet_b.post.js correctas? ¿Cómo dice que envíe el formulario a dashlet_a.post.js?

+0

¿Sigues buscando otra respuesta? Para responder a su pregunta actualizada para el sitio web de destino:

pero esto solo publicará datos en el servidor y no actualizará su dashlet A en el navegador. – Florian

Respuesta

0

Eso es bastante simple, supongo.

Cada Dashlet es de hecho un script web. Entonces puedes tener múltiples webscript para diferentes usos. Como si tuviera dashlet_a. obtener .html.ftl y dashlet_a. publicar .html.ftl. De hecho, estos dos son el mismo webscript, uno solo actúa en una publicación y el otro en get.

Entonces, lo que podrías hacer es dejar a dashlet_b. obtener .html.ftl publicar algo en dashlet_a.post.html.ftl. Por lo tanto, está enviando valor (es) de b a a.

El siguiente paso es actualizar dashlet_a, una forma es hacer una actualización de página completa, pero eso no es bueno. Cuál es mejor es el siguiente: En dashlet_a. publicar .html.ftl acaba de establecer a través de YUI/JQuery el valor del campo que se define en dashlet_a. obtener .html.ftl.

Observe cómo lo hace el dashlet configurable predeterminado, como la vista web. Si coloca algo en la configuración, se muestra el valor directamente.

7

Para crear estos dashlets dinámicos, no es suficiente utilizar el dashlet webscript del lado del servidor. Necesita la lógica de JavaScript en el navegador para notificar al otro dashlet de cambios. Así es como Alfresco por lo general que:

navegador Javascript Dashlet A:

YAHOO.Bubbling.fire("interDashletMessage", 
{ 
    message: "Hello World." 
}); 

navegador Javascript Dashlet B:

YAHOO.Bubbling.on("interDashletMessage", function(layer, args) { 
    var message = args[1].message; 
    alert(message); // or write it to the dashlets HTML content 
}); 

Esto enviará el mensaje de dashlet A a dashlet B usando una costumbre evento llamado "interDashletMessage".

Si su dashlet B solo muestra algunos mensajes, podría ser suficiente para enviar los datos sobre el uso de los eventos. Si es más complejo, su dashlet A debe publicar primero sus datos en el repositorio, luego activará el evento "refresh" y tendrá el dashlet B para actualizar su contenido desde el repositorio. Esto implicará múltiples secuencias de comandos web que puede necesitar para escribir.

Cuestiones relacionadas