ChatSession.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // wrapped by build app
  2. define("dojox/xmpp/widget/ChatSession", ["dijit","dojo","dojox","dojo/require!dijit/layout/LayoutContainer,dijit/_Templated"], function(dijit,dojo,dojox){
  3. dojo.provide("dojox.xmpp.widget.ChatSession");
  4. dojo.require("dijit.layout.LayoutContainer");
  5. dojo.require("dijit._Templated");
  6. dojo.declare("dojox.xmpp.widget.ChatSession",
  7. [dijit.layout.LayoutContainer, dijit._Templated],
  8. {
  9. templateString: dojo.cache("dojox.xmpp.widget", "templates/ChatSession.html", "<div>\n<div dojoAttachPoint=\"messages\" dojoType=\"dijit.layout.ContentPane\" layoutAlign=\"client\" style=\"overflow:auto\">\n</div>\n<div dojoType=\"dijit.layout.ContentPane\" layoutAlign=\"bottom\" style=\"border-top: 2px solid #333333; height: 35px;\"><input dojoAttachPoint=\"chatInput\" dojoAttachEvent=\"onkeypress: onKeyPress\" style=\"width: 100%;height: 35px;\" /></div>\n</div>"),
  10. enableSubWidgets: true,
  11. widgetsInTemplate: true,
  12. widgetType: "ChatSession",
  13. chatWith: null,
  14. instance: null,
  15. postCreate: function(){
  16. //console.log("Neato!");
  17. },
  18. displayMessage: function(message, type) {
  19. //console.log("displayMessage", this, message);
  20. if(message) {
  21. var name = message.from ? this.chatWith : "me";
  22. this.messages.domNode.innerHTML += "<b>" + name + ":</b> " + message.body + "<br/>";
  23. this.goToLastMessage();
  24. }
  25. },
  26. goToLastMessage: function() {
  27. this.messages.domNode.scrollTop = this.messages.domNode.scrollHeight;
  28. },
  29. onKeyPress: function(e){
  30. var key = e.keyCode || e.charCode;
  31. if ((key == dojo.keys.ENTER) && (this.chatInput.value != "")){
  32. this.instance.sendMessage({body: this.chatInput.value});
  33. this.displayMessage( {body: this.chatInput.value}, "out");
  34. this.chatInput.value = "";
  35. }
  36. }
  37. });
  38. });