Subversion Repositories Applications.papyrus

Rev

Details | Last modification | View Log | RSS feed

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