]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fire up server request only on typing printed or modifying characters and when the...
authorArthur Schiwon <blizzz@owncloud.com>
Thu, 3 Apr 2014 16:46:16 +0000 (18:46 +0200)
committerArthur Schiwon <blizzz@owncloud.com>
Mon, 2 Jun 2014 10:53:55 +0000 (12:53 +0200)
settings/js/users/filter.js

index 493ce9917320797dade0385c86fa748bd933be5d..2c0eefe25d4590aa6b293bd3ff525f948342d6f8 100644 (file)
@@ -14,6 +14,7 @@ function UserManagementFilter(filterInput, userList) {
        this.filterInput = filterInput;
        this.userList = userList;
        this.thread = undefined;
+       this.oldval = this.filterInput.val();
 
        this.init();
 }
@@ -23,14 +24,33 @@ function UserManagementFilter(filterInput, userList) {
  */
 UserManagementFilter.prototype.init = function() {
        umf = this;
-       this.filterInput.keyup(function() {
-               clearTimeout(umf.thread);
-               umf.thread = setTimeout(
-                       function() {
-                               umf.run();
-                       },
-                       300
-               );
+       this.filterInput.keyup(function(e) {
+               console.log(e.keyCode);
+
+               //we want to react on any printable letter, plus on modyfing stuff like
+               //Backspace and Delete. extended https://stackoverflow.com/a/12467610
+               var valid =
+                       e.keyCode ===  0 || e.keyCode ===  8  || // like ö or ж; backspace
+                       e.keyCode ===  9 || e.keyCode === 46  || // tab; delete
+                       e.keyCode === 32                      || // space
+                       (e.keyCode >  47 && e.keyCode <   58) || // number keys
+                       (e.keyCode >  64 && e.keyCode <   91) || // letter keys
+                       (e.keyCode >  95 && e.keyCode <  112) || // numpad keys
+                       (e.keyCode > 185 && e.keyCode <  193) || // ;=,-./` (in order)
+                       (e.keyCode > 218 && e.keyCode <  223);   // [\]' (in order)
+
+               //besides the keys, the value must have been changed compared to last
+               //time
+               if(valid && umf.oldVal !== umf.getPattern()) {
+                       clearTimeout(umf.thread);
+                       umf.thread = setTimeout(
+                               function() {
+                                       umf.run();
+                               },
+                               300
+                       );
+               }
+               umf.oldVal = umf.getPattern();
        });
 }