summary refs log tree commit diff
path: root/webclient/js/autofill-event.js
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2014-11-04 15:57:23 +0000
committerMark Haines <mark.haines@matrix.org>2014-11-04 15:57:23 +0000
commit89ba802b23bf1fd22afbc5e9a4b3b732264e3c18 (patch)
tree34b7803cf8dfb570165c1b1c6f674dc5ca4476c7 /webclient/js/autofill-event.js
parentMerge pull request #11 from matrix-org/webclient-room-data-restructure (diff)
downloadsynapse-89ba802b23bf1fd22afbc5e9a4b3b732264e3c18.tar.xz
Move webclient to a python module so that it can be installed
Diffstat (limited to 'webclient/js/autofill-event.js')
-rwxr-xr-xwebclient/js/autofill-event.js117
1 files changed, 0 insertions, 117 deletions
diff --git a/webclient/js/autofill-event.js b/webclient/js/autofill-event.js
deleted file mode 100755
index 006f83e1be..0000000000
--- a/webclient/js/autofill-event.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * Autofill event polyfill ##version:1.0.0##
- * (c) 2014 Google, Inc.
- * License: MIT
- */
-(function(window) {
-  var $ = window.jQuery || window.angular.element;
-  var rootElement = window.document.documentElement,
-    $rootElement = $(rootElement);
-
-  addGlobalEventListener('change', markValue);
-  addValueChangeByJsListener(markValue);
-
-  $.prototype.checkAndTriggerAutoFillEvent = jqCheckAndTriggerAutoFillEvent;
-
-  // Need to use blur and not change event
-  // as Chrome does not fire change events in all cases an input is changed
-  // (e.g. when starting to type and then finish the input by auto filling a username)
-  addGlobalEventListener('blur', function(target) {
-    // setTimeout needed for Chrome as it fills other
-    // form fields a little later...
-    window.setTimeout(function() {
-      findParentForm(target).find('input').checkAndTriggerAutoFillEvent();
-    }, 20);
-  });
-
-  window.document.addEventListener('DOMContentLoaded', function() {
-    // The timeout is needed for Chrome as it auto fills
-    // login forms some time after DOMContentLoaded!
-    window.setTimeout(function() {
-      $rootElement.find('input').checkAndTriggerAutoFillEvent();
-    }, 200);
-  }, false);
-
-  return;
-
-  // ----------
-
-  function jqCheckAndTriggerAutoFillEvent() {
-    var i, el;
-    for (i=0; i<this.length; i++) {
-      el = this[i];
-      if (!valueMarked(el)) {
-        markValue(el);
-        triggerChangeEvent(el);
-      }
-    }
-  }
-
-  function valueMarked(el) {
-    var val = el.value,
-         $$currentValue = el.$$currentValue;
-    if (!val && !$$currentValue) {
-      return true;
-    }
-    return val === $$currentValue;
-  }
-
-  function markValue(el) {
-    el.$$currentValue = el.value;
-  }
-
-  function addValueChangeByJsListener(listener) {
-    var jq = window.jQuery || window.angular.element,
-        jqProto = jq.prototype;
-    var _val = jqProto.val;
-    jqProto.val = function(newValue) {
-      var res = _val.apply(this, arguments);
-      if (arguments.length > 0) {
-        forEach(this, function(el) {
-          listener(el, newValue);
-        });
-      }
-      return res;
-    }
-  }
-
-  function addGlobalEventListener(eventName, listener) {
-    // Use a capturing event listener so that
-    // we also get the event when it's stopped!
-    // Also, the blur event does not bubble.
-    rootElement.addEventListener(eventName, onEvent, true);
-
-    function onEvent(event) {
-      var target = event.target;
-      listener(target);
-    }
-  }
-
-  function findParentForm(el) {
-    while (el) {
-      if (el.nodeName === 'FORM') {
-        return $(el);
-      }
-      el = el.parentNode;
-    }
-    return $();
-  }
-
-  function forEach(arr, listener) {
-    if (arr.forEach) {
-      return arr.forEach(listener);
-    }
-    var i;
-    for (i=0; i<arr.length; i++) {
-      listener(arr[i]);
-    }
-  }
-
-  function triggerChangeEvent(element) {
-    var doc = window.document;
-    var event = doc.createEvent("HTMLEvents");
-    event.initEvent("change", true, true);
-    element.dispatchEvent(event);
-  }
-
-})(window);