diff options
author | Lisa Junger <ljunger@thoughtworks.com> | 2014-12-04 16:25:53 +0100 |
---|---|---|
committer | Lisa Junger <ljunger@thoughtworks.com> | 2014-12-09 15:43:33 +0100 |
commit | 695b5a035be7c5ceeba289f1613b5e0e5b6d2aba (patch) | |
tree | 6c54ff63763d1609d565783f563c7ec33b677074 /web-ui/app/js/helpers | |
parent | b636c1d8c3c4fe86f08a141d6009603163597059 (diff) |
issue #172 added timeout monitoring to ajax calls.
Diffstat (limited to 'web-ui/app/js/helpers')
-rw-r--r-- | web-ui/app/js/helpers/monitored_ajax.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/web-ui/app/js/helpers/monitored_ajax.js b/web-ui/app/js/helpers/monitored_ajax.js new file mode 100644 index 00000000..7fdd568a --- /dev/null +++ b/web-ui/app/js/helpers/monitored_ajax.js @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2014 ThoughtWorks, Inc. + * + * Pixelated is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Pixelated is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Pixelated. If not, see <http://www.gnu.org/licenses/>. + */ +/*global _ */ + +define( + ['page/events', + 'views/i18n'], + function(events, i18n) { + function monitoredAjax(on, url, config) { + if (config) { + config.timeout = 5*1000; + } + return $.ajax(url, config).fail(function(xmlhttprequest, textstatus, message) { + console.log("fails for reason: " + textstatus); + msg = "" + switch (textstatus) { + case "timeout": + msg = "a timeout occurred"; + break; + case "error": + msg = "problems talking to server"; + break; + case "parseerror": + msg = "got invalid response from server"; + break; + default: + msg = "unexpected problem while talking to server"; + } + on.trigger(document, events.ui.userAlerts.displayMessage, { message: i18n(msg) }); + }.bind(this)); + } + + return monitoredAjax; + } +); |