3 <title>Cometd chat / Operator Page</title>
5 <style type="text/css">
7 @import "../../tests/css/dijitTests.css";
8 @import "../../themes/tundra/tundra.css";
9 @import "../../../dojox/widget/SortList/SortList.css";
11 html, body { margin:0; padding:0; height:100%; width:100%; overflow:hidden; }
13 #status { position:absolute; top:5px; right:25px; }
14 #mainPane { background:#fff; }
17 <script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug:true, parseOnLoad:false"></script>
18 <script type="text/javascript" src="../../../dijit/tests/_testCommon.js"></script>
19 <script type="text/javascript" src="room.js"></script>
20 <script type="text/javascript">
21 dojo.require("dijit.Dialog");
22 dojo.require("dijit.layout.SplitContainer");
23 dojo.require("dijit.layout.LayoutContainer");
24 dojo.require("dijit.layout.TabContainer");
25 dojo.require("dijit.layout.ContentPane");
26 dojo.require("dijit.form.Button");
28 // custom widget created for this demo:
29 dojo.require("dojox.widget.SortList");
31 dojo.require("dojo.parser");
33 // not for production use?
34 //dojox.cometd.init("http://comet.sitepen.com:9000/cometd");
38 _getAlert: function(e){
40 if (!this._chats[(e.data.user)] && (operator != e.data.user)){
41 dojox.cometd.subscribe("/chat/demo/"+e.data.joined,this,"_privateChat");
43 var tabNode = document.createElement('div');
44 tabNode.id = "chatWith" + e.data.user;
45 var chatNode = document.createElement('div');
46 chatNode.id = e.data.user + "Widget";
47 tabNode.appendChild(chatNode);
48 var newTab = new dijit.layout.ContentPane({
52 dijit.byId('tabView').addChild(newTab);
53 var chat = new dijit.demos.chat.Room({
54 roomId: e.data.joined,
55 registeredAs: operator
58 this._chats[(e.data.user)]=true;
62 _privateChat: function(e){
63 var thisChat = dijit.byId(e.data.user+"Widget") || false;
64 if (thisChat) { thisChat._chat(e); }
68 function registerOperator(){
69 dijit.byId('loginDialog').hide();
73 dojo.addOnLoad(function(){
74 dojo.parser.parse(dojo.body());
75 // dojox.cometd.subscribe("/chat/demo/poundDojo",control,"_getAlert");
76 var widget = dijit.byId('userList');
77 for (var i = 0; i<50; i++){
78 var node = document.createElement('li');
79 node.innerHTML = i+": list item sample";
80 widget.containerNode.appendChild(node);
87 <div dojoType="dijit.layout.LayoutContainer" style="width:100%; height:100%;">
88 <div dojoType="dijit.layout.SplitContainer" orientation="vertical" style="height:100%" layoutAlign="client" sizerWidth="7">
89 <div dojoType="dijit.layout.SplitContainer" orientation="horizontal" sizerWidth="7" activeSizing="true" layoutAlign="top" sizeShare="80">
90 <div id="mainPane" dojoType="dijit.layout.ContentPane" title="Home" style="padding:8px;" sizeShare="80" layoutAlign="left" style="background:#fff;">
91 <h3>Dojo community chat demo</h3>
92 <h2>NON-WORKING PROTOTYPE</h2>
94 <button dojoType="dijit.form.Button">Login
95 <script type="dojo/method" event="onClick">
97 dijit.byId('loginDialog').show();
102 <div title="Users in #dojo" id="userList" dojoType="dojox.widget.SortList" sizeShare="20" sizeMin="15" layoutAlign="right"></div>
104 <div dojoType="dijit.layout.ContentPane" sizeShare="20" layoutAlign="bottom">
109 <div dojoType="dijit.Dialog" id="loginDialog" title="Select Username:">
110 Name: <input type="text" name="username" id="opName" value="" />
111 <input type="submit" value="login" onclick="registerOperator()"/>