From 13cadab9fab527e0f05a6d867ba56ad5f44e6079 Mon Sep 17 00:00:00 2001 From: FelisCatus Date: Fri, 1 May 2015 15:11:30 +0800 Subject: [PATCH] Improve restore from online UI. Fix #422. --- omega-web/src/omega/controllers/io.coffee | 28 +++++++++++++++-------- omega-web/src/partials/io.jade | 3 ++- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/omega-web/src/omega/controllers/io.coffee b/omega-web/src/omega/controllers/io.coffee index a3a5eb8..970769b 100644 --- a/omega-web/src/omega/controllers/io.coffee +++ b/omega-web/src/omega/controllers/io.coffee @@ -1,5 +1,9 @@ angular.module('omega').controller 'IoCtrl', ($scope, $rootScope, - $window, omegaTarget) -> + $window, $http, omegaTarget) -> + + omegaTarget.state('web.restoreOnlineUrl').then (url) -> + if url + $scope.restoreOnlineUrl = url $scope.exportOptions = -> $rootScope.applyOptionsConfirm().then -> @@ -21,6 +25,7 @@ angular.module('omega').controller 'IoCtrl', ($scope, $rootScope, $scope.importSuccess() ), -> $scope.restoreLocalError()).finally -> $scope.restoringLocal = false + $scope.restoreLocalError = -> $rootScope.showAlert( type: 'error' @@ -37,15 +42,20 @@ angular.module('omega').controller 'IoCtrl', ($scope, $rootScope, angular.element('#restore-local-file').click() return $scope.restoreOnline = -> - $.ajax( - url: $scope.restoreOnlineUrl, - success: (content) -> $scope.$apply -> - $scope.restoreLocal(content) - error: $scope.downloadError, - dataType: "text", - cache: false, + omegaTarget.state('web.restoreOnlineUrl', $scope.restoreOnlineUrl) + $scope.restoringOnline = true + $http( + method: 'GET' + url: $scope.restoreOnlineUrl + cache: false timeout: 10000 - ) + responseType: "text" + ).then(((result) -> + $rootScope.resetOptions(result.data).then (-> + $scope.importSuccess() + ), -> $scope.restoreLocalError() + ), $scope.downloadError).finally -> + $scope.restoringOnline = false $scope.enableOptionsSync = (args) -> enable = -> diff --git a/omega-web/src/partials/io.jade b/omega-web/src/partials/io.jade index f7faa5d..deeaee7 100644 --- a/omega-web/src/partials/io.jade +++ b/omega-web/src/partials/io.jade @@ -34,7 +34,8 @@ section.settings-group .input-group.width-limit input.form-control(type='url' ng-model='restoreOnlineUrl' placeholder="{{'options_restoreOnlinePlaceholder' | tr}}") span.input-group-btn - button.btn.btn-default(ng-click='restoreOnline()') {{'options_restoreOnlineSubmit' | tr}} + button.btn.btn-default(ng-click='restoreOnline()' ladda='restoringOnline' data-spinner-color="#000000") + | {{'options_restoreOnlineSubmit' | tr}} section.settings-group h3 {{'options_group_syncing' | tr}} div(ng-show='syncOptions == "pristine" || syncOptions == "disabled"')