diff options
Diffstat (limited to 'www/crm/wp-content/plugins/civicrm/civicrm/ang/crmCxn/CheckAddress.js')
-rw-r--r-- | www/crm/wp-content/plugins/civicrm/civicrm/ang/crmCxn/CheckAddress.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/ang/crmCxn/CheckAddress.js b/www/crm/wp-content/plugins/civicrm/civicrm/ang/crmCxn/CheckAddress.js new file mode 100644 index 00000000..2313ddd0 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/ang/crmCxn/CheckAddress.js @@ -0,0 +1,33 @@ +(function (angular, $, _) { + + angular.module('crmCxn').factory('crmCxnCheckAddr', function($q, $timeout) { + var TIMEOUT = 6000, CHECK_ADDR = 'https://mycivi.org/check-addr'; + return function(url) { + var dfr = $q.defer(), result = null; + + function onErr() { + if (result !== null) return; + result = {url: url, valid: false}; + dfr.resolve(result); + } + + $.ajax({ + url: CHECK_ADDR, + data: {url: url}, + jsonp: "callback", + dataType: "jsonp" + }).fail(onErr) + .done(function(response) { + if (result !== null) return; + result = {url: url, valid: response.result}; + dfr.resolve(result); + } + ); + // JSONP may not provide errors directly. + $timeout(onErr, TIMEOUT); + + return dfr.promise; + }; + }); + +})(angular, CRM.$, CRM._); |