ChipMaster's trial hacks on C++CMS starting with v1.2.1. Not sure I'll follow on with the v2 since it looks to be breaking and mostly frivolous.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

92 lines
2.4 KiB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6. <script type="text/javascript" src="/scripts/json2.js"></script>
  7. <script type="text/javascript" src="/scripts/jsonrpc.js"></script>
  8. <title>Chat Room</title>
  9. <script type="text/javascript">
  10. // Global values:
  11. // RPC object with two methods:
  12. //
  13. // get(counter), returns array of objects with properties author and message
  14. // post(author,message) posts new chat message
  15. //
  16. rpc = new JsonRPC('/chat',['get'],['post']);
  17. // Messages counter - where to get new messages from, parameter for rpc.get
  18. message_count = 0;
  19. function make_error(what,e)
  20. {
  21. document.getElementById('error_message').innerHTML = what + ': ' + e.type +': ' + e.error;
  22. }
  23. rpc.get.on_result = function(messages) {
  24. var messagesHtml = document.getElementById('messages');
  25. for(var i=0;i<messages.length;i++) {
  26. m=messages[i];
  27. messagesHtml.innerHTML+='<dt>' + m.author +'</dt>' +
  28. '<dd>' + m.message + '</dd>';
  29. message_count++;
  30. }
  31. restart();
  32. }
  33. rpc.get.on_error = function(e) {
  34. make_error('Getting New Messages',e);
  35. document.getElementById('reconnect').disabled = false;
  36. }
  37. rpc.post.on_result = function() {
  38. // reset the form content
  39. document.getElementById("message").value = '';
  40. }
  41. rpc.post.on_error = function(e) {
  42. make_error('Posting New Messages',e);
  43. }
  44. function restart()
  45. {
  46. rpc.get(message_count);
  47. }
  48. function reconnect_to_server()
  49. {
  50. message_count = 0;
  51. document.getElementById('error_message').innerHTML = '';
  52. document.getElementById('messages').innerHTML = '';
  53. document.getElementById('reconnect').disabled = true;
  54. restart();
  55. return false;
  56. }
  57. function send_data() {
  58. author = document.getElementById('author').value;
  59. message = document.getElementById("message").value;
  60. rpc.post(author,message);
  61. return false;
  62. }
  63. </script>
  64. </head>
  65. <body onload='restart()'>
  66. <h1>Chat room</h1>
  67. <form id="theform" >
  68. <p>Name: <input id="author" type="text" value="" /></p>
  69. <p>
  70. Message: <input id="message" type="text" value="" /></p>
  71. <input type="submit" value="Send" onclick="return send_data()"/>
  72. <input disabled="disabled" id='reconnect' type='submit' value='Reconnect' onclick='return reconnect_to_server()'>
  73. </p>
  74. <p id='error_message'></p>
  75. </form>
  76. <dl id="messages">
  77. </dl>
  78. </body>