From e44a7e37b6c7b5961adaffc62b9042b8d442938e Mon Sep 17 00:00:00 2001 From: mensonge Date: Thu, 13 Nov 2008 09:49:11 +0000 Subject: New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f --- includes/js/dijit/demos/chat/chat.css | 40 +++++++ .../js/dijit/demos/chat/chat.css.commented.css | 46 ++++++++ includes/js/dijit/demos/chat/client.html | 65 +++++++++++ includes/js/dijit/demos/chat/community.html | 114 ++++++++++++++++++ includes/js/dijit/demos/chat/operator.html | 83 ++++++++++++++ includes/js/dijit/demos/chat/room.js | 127 +++++++++++++++++++++ 6 files changed, 475 insertions(+) create mode 100644 includes/js/dijit/demos/chat/chat.css create mode 100644 includes/js/dijit/demos/chat/chat.css.commented.css create mode 100644 includes/js/dijit/demos/chat/client.html create mode 100644 includes/js/dijit/demos/chat/community.html create mode 100644 includes/js/dijit/demos/chat/operator.html create mode 100644 includes/js/dijit/demos/chat/room.js (limited to 'includes/js/dijit/demos/chat') diff --git a/includes/js/dijit/demos/chat/chat.css b/includes/js/dijit/demos/chat/chat.css new file mode 100644 index 0000000..9dde485 --- /dev/null +++ b/includes/js/dijit/demos/chat/chat.css @@ -0,0 +1,40 @@ +.chatroom +{ + position:relative; + height:240px; + background-color: #e0e0e0; + border: 0px solid black; +} +.chat +{ + height: 200px; + overflow: auto; + background-color: #fff; + padding: 4px; + border: 0px solid black; +} +.dijitTabContainer .chat { + height:auto; +} +.input { + position:absolute; + bottom:0px; + display:block; + padding: 4px; + border: 0px solid black; + border-top: 1px solid black; +} +.phrase +{ + width:200px; + background-color:#ededed; +} +.username +{ + width:145px; + background-color: #ededed; +} +.hidden { display: none; } +.from { font-weight: bold; } +.alert { font-style: italic; } +.dijitTitlePaneContentInner { padding:0px !important; } diff --git a/includes/js/dijit/demos/chat/chat.css.commented.css b/includes/js/dijit/demos/chat/chat.css.commented.css new file mode 100644 index 0000000..0874a53 --- /dev/null +++ b/includes/js/dijit/demos/chat/chat.css.commented.css @@ -0,0 +1,46 @@ +.chatroom +{ + position:relative; + height:240px; + background-color: #e0e0e0; + border: 0px solid black; +} + +.chat +{ + height: 200px; + overflow: auto; + background-color: #fff; + padding: 4px; + border: 0px solid black; +} +.dijitTabContainer .chat { + height:auto; +} + +.input { + position:absolute; + bottom:0px; + display:block; + padding: 4px; + border: 0px solid black; + border-top: 1px solid black; +} + +.phrase +{ + width:200px; + background-color:#ededed; +} + +.username +{ + width:145px; + background-color: #ededed; +} + +.hidden { display: none; } +.from { font-weight: bold; } +.alert { font-style: italic; } +.dijitTitlePaneContentInner { padding:0px !important; } + diff --git a/includes/js/dijit/demos/chat/client.html b/includes/js/dijit/demos/chat/client.html new file mode 100644 index 0000000..5471272 --- /dev/null +++ b/includes/js/dijit/demos/chat/client.html @@ -0,0 +1,65 @@ + + + Sample built in tech-support demonstration | The Dojo Toolkit + + + + + + + +

I am a Sample page

+

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam facilisis enim. Pellentesque in elit et lacus euismod dignissim. Aliquam dolor pede, convallis eget, dictum a, blandit ac, urna. Pellentesque sed nunc ut justo volutpat egestas. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. In erat. Suspendisse potenti. Fusce faucibus nibh sed nisi. Phasellus faucibus, dui a cursus dapibus, mauris nulla euismod velit, a lobortis turpis arcu vel dui. Pellentesque fermentum ultrices pede. Donec auctor lectus eu arcu. Curabitur non orci eget est porta gravida. Aliquam pretium orci id nisi. Duis faucibus, mi non adipiscing venenatis, erat urna aliquet elit, eu fringilla lacus tellus quis erat. Nam tempus ornare lorem. Nullam feugiat.

+ +

Need help?

+ + + +

Sed congue. Aenean blandit sollicitudin mi. Maecenas pellentesque. Vivamus ac urna. Nunc consequat nisi vitae quam. Suspendisse sed nunc. Proin suscipit porta magna. Duis accumsan nunc in velit. Nam et nibh. Nulla facilisi. Cras venenatis urna et magna. Aenean magna mauris, bibendum sit amet, semper quis, aliquet nec, sapien. Aliquam aliquam odio quis erat. Etiam est nisi, condimentum non, lacinia ac, vehicula laoreet, elit. Sed interdum augue sit amet quam dapibus semper. Nulla facilisi. Pellentesque lobortis erat nec quam.

+

Sed arcu magna, molestie at, fringilla in, sodales eu, elit. Curabitur mattis lorem et est. Quisque et tortor. Integer bibendum vulputate odio. Nam nec ipsum. Vestibulum mollis eros feugiat augue. Integer fermentum odio lobortis odio. Nullam mollis nisl non metus. Maecenas nec nunc eget pede ultrices blandit. Ut non purus ut elit convallis eleifend. Fusce tincidunt, justo quis tempus euismod, magna nulla viverra libero, sit amet lacinia odio diam id risus. Ut varius viverra turpis. Morbi urna elit, imperdiet eu, porta ac, pharetra sed, nisi. Etiam ante libero, ultrices ac, faucibus ac, cursus sodales, nisl. Praesent nisl sem, fermentum eu, consequat quis, varius interdum, nulla. Donec neque tortor, sollicitudin sed, consequat nec, facilisis sit amet, orci. Aenean ut eros sit amet ante pharetra interdum.

+

Fusce rutrum pede eget quam. Praesent purus. Aenean at elit in sem volutpat facilisis. Nunc est augue, commodo at, pretium a, fermentum at, quam. Nam sit amet enim. Suspendisse potenti. Cras hendrerit rhoncus justo. Integer libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam erat volutpat. Sed adipiscing mi vel ipsum.

+ + + + + diff --git a/includes/js/dijit/demos/chat/community.html b/includes/js/dijit/demos/chat/community.html new file mode 100644 index 0000000..4c208a0 --- /dev/null +++ b/includes/js/dijit/demos/chat/community.html @@ -0,0 +1,114 @@ + + + Cometd chat / Operator Page + + + + + + + + + +
+
+
+
+

Dojo community chat demo

+

NON-WORKING PROTOTYPE

+ + + +
+
+
+
+ bottom. (input area) +
+
+
+
+ Name: + +
+ + diff --git a/includes/js/dijit/demos/chat/operator.html b/includes/js/dijit/demos/chat/operator.html new file mode 100644 index 0000000..594fc6e --- /dev/null +++ b/includes/js/dijit/demos/chat/operator.html @@ -0,0 +1,83 @@ + + + Cometd chat / Operator Page + + + + + + + +

Tech Support Operator Page:

+ +
+ +
+

Welcome Operator

+

It is your job to respond to incoming Support Requests. Sit here, and watch the screen.

+

Please Login as an operator: +

+ Name: +

+
+ +
+
+ + diff --git a/includes/js/dijit/demos/chat/room.js b/includes/js/dijit/demos/chat/room.js new file mode 100644 index 0000000..b1847f4 --- /dev/null +++ b/includes/js/dijit/demos/chat/room.js @@ -0,0 +1,127 @@ +if(!dojo._hasResource["dijit.demos.chat.room"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.demos.chat.room"] = true; +dojo.provide("dijit.demos.chat.room"); + +dojo.require("dojox.cometd"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); + +dojo.declare("dijit.demos.chat.Room", + [dijit._Widget,dijit._Templated], + { + + _last: "", + _username: null, + roomId: "public", + isPrivate: false, + prompt: "Name:", + + templateString: '
' + +'
' + +'
' + +'
' + +'${prompt} ' + +'
' + +'' + +'
' + +'
', + + join: function(name){ + if(name == null || name.length==0){ + alert('Please enter a username!'); + }else{ + if(this.isPrivate){ this.roomId = name; } + this._username=name; + this.joining.className='hidden'; + this.joined.className=''; + this.phrase.focus(); + console.log(this.roomId); + dojox.cometd.subscribe("/chat/demo/" + this.roomId, this, "_chat"); + dojox.cometd.publish("/chat/demo/" + this.roomId, { user: this._username, join: true, chat : this._username+" has joined the room."}); + dojox.cometd.publish("/chat/demo", { user: this._username, joined: this.roomId }); + } + }, + + _join: function(/* Event */e){ + var key = (e.charCode == dojo.keys.SPACE ? dojo.keys.SPACE : e.keyCode); + if (key == dojo.keys.ENTER || e.type=="click"){ + this.join(this.username.value); + } + }, + + leave: function(){ + dojox.cometd.unsubscribe("/chat/demo/" + this.roomId, this, "_chat"); + dojox.cometd.publish("/chat/demo/" + this.roomId, { user: this._username, leave: true, chat : this._username+" has left the chat."}); + + // switch the input form back to login mode + this.joining.className=''; + this.joined.className='hidden'; + this.username.focus(); + this._username=null; + }, + + chat: function(text){ + // summary: publish a text message to the room + if(text != null && text.length>0){ + // lame attempt to prevent markup + text=text.replace(//g,'>'); + dojox.cometd.publish("/chat/demo/" + this.roomId, { user: this._username, chat: text}); + } + }, + + _chat: function(message){ + // summary: process an incoming message + if (!message.data){ + console.warn("bad message format "+message); + return; + } + var from=message.data.user; + var special=message.data.join || message.data.leave; + var text=message.data.chat; + if(text!=null){ + if(!special && from == this._last ){ from="..."; + }else{ + this._last=from; + from+=":"; + } + + if(special){ + this.chatNode.innerHTML += ""+from+" "+text+"
"; + this._last=""; + }else{ + this.chatNode.innerHTML += ""+from+" "+text+"
"; + this.chatNode.scrollTop = this.chatNode.scrollHeight - this.chatNode.clientHeight; + } + } + }, + + startup: function(){ + this.joining.className=''; + this.joined.className='hidden'; + //this.username.focus(); + this.username.setAttribute("autocomplete","OFF"); + if (this.registeredAs) { this.join(this.registeredAs); } + this.inherited("startup",arguments); + }, + + _cleanInput: function(/* Event */e){ + var key = (e.charCode == dojo.keys.SPACE ? dojo.keys.SPACE : e.keyCode); + if(key == dojo.keys.ENTER || key == 13){ + this.chat(this.phrase.value); + this.phrase.value=''; + } + }, + + _sendPhrase: function(/* Event */e){ + if (this.phrase.value){ + this.chat(this.phrase.value); + this.phrase.value=''; + } + } +}); + +} -- cgit v1.2.3-54-g00ecf