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/monitored_ajax.js | |
| parent | b636c1d8c3c4fe86f08a141d6009603163597059 (diff) | |
issue #172 added timeout monitoring to ajax calls.
Diffstat (limited to 'web-ui/app/js/helpers/monitored_ajax.js')
| -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; +  } +); | 
