1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
backupApp.controller('RestoreDirectController', function ($rootScope, $scope, $location, AppService, AppUtils, SystemInfo, ServerStatus, DialogService) {
$scope.SystemInfo = SystemInfo.watch($scope);
$scope.AppUtils = AppUtils;
$scope.ServerStatus = ServerStatus;
$scope.serverstate = ServerStatus.watch($scope);
$scope.connecting = false;
$scope.HideEditUri = function() {
$scope.EditUriState = false;
};
$scope.doConnect = function() {
$scope.connecting = true;
$scope.ConnectionProgress = 'Registering temporary backup ...';
var opts = {};
var obj = {'Backup': {'TargetURL': $scope.TargetURL } };
if (($scope.EncryptionPassphrase || '') == '')
opts['--no-encryption'] = 'true';
else
opts['passphrase'] = $scope.EncryptionPassphrase;
if (!AppUtils.parse_extra_options($scope.ExtendedOptions, opts))
return false;
obj.Backup.Settings = [];
for(var k in opts) {
obj.Backup.Settings.push({
Name: k,
Value: opts[k]
});
}
AppService.post('/backups?temporary=true', obj, {'headers': {'Content-Type': 'application/json'}}).then(
function(resp) {
$scope.ConnectionProgress = 'Listing backup dates ...';
$scope.BackupID = resp.data.ID;
$scope.fetchBackupTimes();
}, function(resp) {
var message = resp.statusText;
if (resp.data != null && resp.data.Message != null)
message = resp.data.Message;
$scope.connecting = false;
$scope.ConnectionProgress = '';
DialogService.dialog('Error', 'Failed to connect: ' + message);
}
);
};
$scope.fetchBackupTimes = function() {
AppService.get('/backup/' + $scope.BackupID + '/filesets').then(
function(resp) {
// Pass the filesets through a global variable
if ($rootScope.filesets == null)
$rootScope.filesets = {};
$rootScope.filesets[$scope.BackupID] = resp.data;
$location.path('/restore/' + $scope.BackupID);
},
function(resp) {
var message = resp.statusText;
if (resp.data != null && resp.data.Message != null)
message = resp.data.Message;
if (message == 'encrypted-storage')
message = 'The target folder contains encrypted files, please supply the passphrase';
$scope.connecting = false;
$scope.ConnectionProgress = '';
DialogService.dialog('Error', 'Failed to connect: ' + message);
}
);
};
});
|