Просмотр исходного кода

Improve restore from online UI. Fix #422.

FelisCatus 10 лет назад
Родитель
Сommit
13cadab9fa
2 измененных файлов с 21 добавлено и 10 удалено
  1. 19 9
      omega-web/src/omega/controllers/io.coffee
  2. 2 1
      omega-web/src/partials/io.jade

+ 19 - 9
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 = ->

+ 2 - 1
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"')