2011-10-19 11 views
7

Próbuję dowiedzieć się, jak przeprowadzić interakcję z Alfresco Share. Oto prosty przypadek użycia:Czy Alfresco Share zapewnia jakiekolwiek mechanizmy komunikacji Inter Dashlet?

Posiadamy 2 dashlety, nazwijmy je A i B. Chciałbym móc wypełnić pole "name" (powiedzmy o wartości "Toto") w A i kliknąć po przesłaniu przycisku. Po kliknięciu przycisku "Wyślij" w punkcie A. B powinien zostać zaktualizowany za pomocą powitania "Good Morning Toto".

Dziękuję za odpowiedzi.

Dzięki za odpowiedź. Czy możesz nieco rozwinąć temat "let dashlet_b.get.html.ftl opublikuj coś na dashlet_a.post.html.ftl"?

W dashlet_b.get.html.ftl masz coś takiego jak sądzę:

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

Po przesłaniu formularza to będzie spojrzeniem na dashlet_b.post.js prawda? Jak właściwie powiedzieć, aby wysłać formularz do dashlet_a.post.js?

+0

Nadal szukasz innej odpowiedzi? Aby odpowiedzieć na twoje zaktualizowane pytanie dotyczące docelowego skryptu:

, ale to spowoduje opublikowanie danych na serwerze i nie zaktualizuje twojej wersji A w przeglądarce. – Florian

Odpowiedz

0

To całkiem proste, jak sądzę.

Każda Dashlet jest w rzeczywistości skryptem internetowym. Możesz mieć wiele skryptów do różnych zastosowań. Jakbym miał dashlet_a. pobierz .html.ftl i dashlet_a. post .html.ftl. W rzeczywistości te dwa są tym samym skryptem internetowym, jeden działa tylko na post, a drugi na get.

Więc co możesz zrobić, to pozwól dashlet_b. pobierz .html.ftl opublikuj coś na dashlet_a.post.html.ftl. W związku z tym przesyłasz wartość (wartości) z b do a.

Następnym krokiem jest odświeżenie dashlet_a, jednym ze sposobów jest pełne odświeżenie strony, ale to nie jest miłe. Co jest lepsze: W dashlet_a. post .html.ftl wystarczy ustawić przez YUI/JQuery wartość pola, która jest zdefiniowana w dashlet_a. uzyskać .html.ftl.

Zobacz, jak działa dashlet konfigurowany domyślnie, na przykład widok internetowy. Jeśli umieścisz coś w konfiguracji, wyświetlana jest wartość bezpośrednio.

7

Do tworzenia tych dynamicznych dashletów nie wystarczy użycie webscriptu po stronie serwera. W przeglądarce wymagana jest logika javascript, aby powiadomić drugą stronę zmian. W ten sposób Alfresco zwykle powoduje, że:

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

to wyśle ​​wiadomość z dashlet A do dashlet B przy użyciu niestandardowego zdarzenie o nazwie "interDashletMessage".

Jeśli twój panel informacyjny B wyświetla tylko kilka komunikatów, może wystarczyć wysłanie danych przy użyciu zdarzeń. Jeśli jest bardziej skomplikowany, twój dashlet A musi najpierw opublikować dane w repozytorium, a następnie wywołać zdarzenie "odświeżania" i odświeżyć jego zawartość z repozytorium. Będzie to wymagało napisania wielu skryptów internetowych.

Powiązane problemy