diff --git a/app/coffee/modules/resources/attachments.coffee b/app/coffee/modules/resources/attachments.coffee index af639ccd..ef30ebd5 100644 --- a/app/coffee/modules/resources/attachments.coffee +++ b/app/coffee/modules/resources/attachments.coffee @@ -48,8 +48,6 @@ resourceProvider = ($rootScope, $config, $urls, $model, $repo, $auth, $q) -> defered.reject(response) return defered.promise - xhr = new XMLHttpRequest() - uploadProgress = (evt) => $rootScope.$apply => file.status = "in-progress" @@ -60,18 +58,20 @@ resourceProvider = ($rootScope, $config, $urls, $model, $repo, $auth, $q) -> uploadComplete = (evt) => $rootScope.$apply -> file.status = "done" + + status = evt.target.status try data = JSON.parse(evt.target.responseText) catch data = {} - model = $model.make_model(urlName, data) - if xhr.status >= 200 and xhr.status < 400 + if status >= 200 and status < 400 + model = $model.make_model(urlName, data) defered.resolve(model) else response = { - status: xhr.status, - data: {_error_message: JSON.parse(xhr.response)['attached_file']?[0]} + status: status, + data: {_error_message: data['attached_file']?[0]} } defered.reject(response) @@ -85,6 +85,7 @@ resourceProvider = ($rootScope, $config, $urls, $model, $repo, $auth, $q) -> data.append("object_id", objectId) data.append("attached_file", file) + xhr = new XMLHttpRequest() xhr.upload.addEventListener("progress", uploadProgress, false) xhr.addEventListener("load", uploadComplete, false) xhr.addEventListener("error", uploadFailed, false)