Prechádzať zdrojové kódy

Remove "is typing" notification after 10 seconds. fixes #508

JC Brand 9 rokov pred
rodič
commit
b767051d9d
2 zmenil súbory, kde vykonal 11 pridanie a 1 odobranie
  1. 10 1
      converse.js
  2. 1 0
      docs/CHANGES.rst

+ 10 - 1
converse.js

@@ -1370,9 +1370,13 @@
                 return this;
                 return this;
             },
             },
 
 
+            clearStatusNotification: function () {
+                this.$content.find('div.chat-event').remove();
+            },
+
             showStatusNotification: function (message, keep_old) {
             showStatusNotification: function (message, keep_old) {
                 if (!keep_old) {
                 if (!keep_old) {
-                    this.$content.find('div.chat-event').remove();
+                    this.clearStatusNotification();
                 }
                 }
                 this.$content.append($('<div class="chat-info chat-event"></div>').text(message));
                 this.$content.append($('<div class="chat-info chat-event"></div>').text(message));
                 this.scrollDown();
                 this.scrollDown();
@@ -1575,9 +1579,14 @@
                  * Parameters:
                  * Parameters:
                  *    (Object) message - The message Backbone object that was added.
                  *    (Object) message - The message Backbone object that was added.
                  */
                  */
+                if (typeof this.clear_status_timeout !== 'undefined') {
+                    clearTimeout(this.clear_status_timeout);
+                    delete this.clear_status_timeout;
+                }
                 if (!message.get('message')) {
                 if (!message.get('message')) {
                     if (message.get('chat_state') === COMPOSING) {
                     if (message.get('chat_state') === COMPOSING) {
                         this.showStatusNotification(message.get('fullname')+' '+__('is typing'));
                         this.showStatusNotification(message.get('fullname')+' '+__('is typing'));
+                        this.clear_status_timeout = setTimeout(this.clearStatusNotification.bind(this), 10000);
                         return;
                         return;
                     } else if (message.get('chat_state') === PAUSED) {
                     } else if (message.get('chat_state') === PAUSED) {
                         this.showStatusNotification(message.get('fullname')+' '+__('has stopped typing'));
                         this.showStatusNotification(message.get('fullname')+' '+__('has stopped typing'));

+ 1 - 0
docs/CHANGES.rst

@@ -7,6 +7,7 @@ Changelog
 * #493 Refactor previous bugfix and now an event is emitted when a roster push event from server happens. [teseo]
 * #493 Refactor previous bugfix and now an event is emitted when a roster push event from server happens. [teseo]
 * #502. Chat room not opened in non_amd version. [rjanbiah]
 * #502. Chat room not opened in non_amd version. [rjanbiah]
 * #505 Typo caused [object Object] in room info [gromiak]
 * #505 Typo caused [object Object] in room info [gromiak]
+* #508 "Is typing" doesn't automatically disappear [jcbrand]
 * #510 MUC room memberlist is being cleared with page reload when keepalive option is set. [jcbrand]
 * #510 MUC room memberlist is being cleared with page reload when keepalive option is set. [jcbrand]
 * Add the ability to also drag-resize chat boxes horizontally. [jcbrand]
 * Add the ability to also drag-resize chat boxes horizontally. [jcbrand]