2011-10-19 17 views
7

Sto cercando di capire come eseguire alcune comunicazioni tra trattini con Alfresco Share. Ecco un caso d'uso semplice:Share Alfresco fornisce alcun mecanismo per Inter Dashlet Communication?

Abbiamo 2 trattini, chiamiamoli A e B. Voglio essere in grado di compilare un campo "nome" (diciamo con valore "Toto") in A e fare clic sul pulsante di invio. Dopo aver fatto clic sul pulsante di invio in A. B dovrebbe essere aggiornato con un saluto come "Good Morning Toto".

Grazie per le risposte.

Grazie per la risposta. Puoi approfondire la questione "lascia dashlet_b.get.html.ftl postare qualcosa su dashlet_a.post.html.ftl"?

In dashlet_b.get.html.ftl hai qualcosa di simile immagino:

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

Quando si invia il modulo è sguardo andando per dashlet_b.post.js giuste? Come si fa a dire di inviare il modulo a dashlet_a.post.js?

+0

Stai ancora cercando un'altra risposta? Per rispondere alla domanda aggiornata per il web script di destinazione:

ma questo invierà solo dati al server e non aggiornerà il dashlet A nel browser. – Florian

risposta

0

Questo è abbastanza semplice, immagino.

Ogni Dashlet è in realtà un webscript. In questo modo è possibile avere più pagine Web per un utilizzo diverso. Come se avessi dashlet_a. get .html.ftl e dashlet_a. post .html.ftl. In effetti questi due sono la stessa webscript, uno si limita ad agire su un post e l'altro su get.

Quindi ciò che si potrebbe fare è lasciare dashlet_b. get .html.ftl pubblica qualcosa su dashlet_a.post.html.ftl. Quindi stai inviando valore (s) da b a a.

Il passaggio successivo è l'aggiornamento di dashlet_a, in un modo è possibile eseguire un aggiornamento a pagina intera, ma non è bello. Cosa c'è di meglio è il seguente: in dashlet_a. post .html.ftl è sufficiente impostare tramite YUI/JQuery il valore del campo definito in dashlet_a. get .html.ftl.

Dai un'occhiata a come funziona il dashlet configurabile predefinito, come la webview. Se metti qualcosa nella configurazione, viene mostrato direttamente il valore.

7

Per creare questi dashlet dinamici non è sufficiente utilizzare il webscript del dashlet lato server. È necessaria la logica javascript nel browser per notificare l'altro dashlet di modifiche. Questo è il modo di Alfresco di solito non che:

Browser Javascript Dashlet A:

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

Browser 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 
}); 

Questo invierà il messaggio da dashlet A alla dashlet B utilizzando un personalizzato evento chiamato "interDashletMessage".

Se il dashlet B visualizza solo alcuni messaggi, potrebbe essere sufficiente inviare i dati utilizzando gli eventi. Se è più complesso, il dashlet A deve prima inviare i dati al repository, quindi attivare l'evento "refresh" e fare in modo che il dashlet B aggiorni il contenuto dal repository. Ciò comporterà più webscripts che potresti dover scrivere.