Use callbacks and async processing in the demo scripts; this is important as otherwise things can get tangled up very easily.
git-svn-id: https://svn.apache.org/repos/asf/wookie/trunk@1584014 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/wookie-server/src/main/webapp/demo/wookie-connector.js b/wookie-server/src/main/webapp/demo/wookie-connector.js
index fdc06cd..9f0e62c 100644
--- a/wookie-server/src/main/webapp/demo/wookie-connector.js
+++ b/wookie-server/src/main/webapp/demo/wookie-connector.js
@@ -117,7 +117,7 @@
});
},
- getOrCreateInstance: function(id) {
+ getOrCreateInstance: function(id, callback, element) {
//
// Use default connection if not set
@@ -130,7 +130,7 @@
// Use default user if not set
//
if (Wookie.currentUser === null){
- Wookie.setCurrentUser("test","test user",null);
+ Wookie.setCurrentUser("test","test user",null,null);
}
var key = id + ":" + Wookie.currentUser.loginName;
@@ -176,10 +176,16 @@
instance.height = height;
instance.width = width;
Wookie.instances[key]=instance;
+
+ Wookie.setParticipant(id, callback, instance, element);
},
async: false
});
-
+ }
+ return Wookie.instances[key];
+ },
+
+ setParticipant: function(id, callback, instance, element){
var postdata = "api_key=";
postdata = postdata + encodeURI(Wookie.connection.apiKey);
postdata = postdata + "&nonce="+Math.random();
@@ -212,11 +218,10 @@
"Authorization":signature
},
success: function(data) {
+ callback(instance, element);
},
async: false
});
- }
- return Wookie.instances[key];
},
getSignature: function(method, uri, query){
diff --git a/wookie-server/src/main/webapp/demo/wookie.js b/wookie-server/src/main/webapp/demo/wookie.js
index 8d88509..45de0cb 100644
--- a/wookie-server/src/main/webapp/demo/wookie.js
+++ b/wookie-server/src/main/webapp/demo/wookie.js
@@ -87,20 +87,24 @@
function showWidget(id){
Wookie.setCurrentUser("alice","alice","/wookie/demo/alice.png", "host");
- var widgetInstance = Wookie.getOrCreateInstance(id);
- $('#preview_info').html('<br/>' + widgetInstance.title + '<br/>' + id);
- $("#preview_alice_widget").html('');
- $("#preview_alice_widget").append("<iframe src='"+widgetInstance.url+"' height='"+widgetInstance.height+"' width='"+widgetInstance.width+"'></iframe>");
- $("#preview_alice_tile").html('');
- $("#preview_alice_tile").append("<iframe src='"+widgetInstance.url+"' height='150' width='310'></iframe>");
- $("#alice_url").html("<a href='" + widgetInstance.url + "' target='_blank'>Full Screen</a>");
+
+ var title = "No title";
+ for (i in Wookie.widgets){
+ if (Wookie.widgets[i].id==id) title = Wookie.widgets[i].name;
+ }
+
+ $('#preview_info').html('<br/>' +name + '<br/>' + id);
+
+ Wookie.getOrCreateInstance(id, renderWidget, "#preview_alice_widget");
+ Wookie.getOrCreateInstance(id, renderWidget, "#preview_alice_tile");
Wookie.setPreference(id, "conference-manager","true");
Wookie.setCurrentUser("bob","bob","/wookie/demo/bob.png");
- var widgetInstance = Wookie.getOrCreateInstance(id);
- $("#preview_bob_widget").html('');
- $("#preview_bob_widget").append("<iframe src='"+widgetInstance.url+"' height='"+widgetInstance.height+"' width='"+widgetInstance.width+"'></iframe>");
- $("#preview_bob_tile").html('');
- $("#preview_bob_tile").append("<iframe src='"+widgetInstance.url+"' height='150' width='310'></iframe>");
- $("#bob_url").html("<a href='" + widgetInstance.url + "' target='_blank'>Full Screen</a>");
+ Wookie.getOrCreateInstance(id, renderWidget, "#preview_bob_widget");
+ Wookie.getOrCreateInstance(id, renderWidget, "#preview_bob_tile");
+}
+
+function renderWidget(widgetInstance, element){
+ $(element).html('');
+ $(element).append("<iframe src='"+widgetInstance.url+"' height='"+widgetInstance.height+"' width='"+widgetInstance.width+"'></iframe>");
}