";
@@ -50,34 +125,10 @@ $(document).ready(function(){
"Restore content",
function() {
var files = $('#' + RESTORE_SETTINGS_FILE_ID).prop('files');
+ var file = files[0];
- var fileFormData = new FormData();
- fileFormData.append('restore-file', files[0]);
-
- showSpinnerAlert("Uploading content to restore");
-
- $.ajax({
- url: '/content/upload',
- type: 'POST',
- timeout: 3600000, // Set timeout to 1h
- cache: false,
- processData: false,
- contentType: false,
- data: fileFormData
- }).done(function(data, textStatus, jqXHR) {
- isRestoring = true;
-
- // immediately reload backup information since one should be restoring now
- reloadBackupInformation();
-
- swal.close();
- }).fail(function(jqXHR, textStatus, errorThrown) {
- showErrorMessage(
- "Error",
- "There was a problem restoring domain content.\n"
- + "Please ensure that the content archive or entity file is valid and try again."
- );
- });
+ showUploadProgress("Uploading " + file.name);
+ uploadNextChunk(file);
}
);
});
@@ -168,6 +219,11 @@ $(document).ready(function(){
checkBackupStatus();
});
+ function updateProgressBars($progressBar, value) {
+ $progressBar.attr('aria-valuenow', value).attr('style', 'width: ' + value + '%');
+ $progressBar.find('.ongoing-msg').html(" " + Math.round(value) + "%");
+ }
+
function reloadBackupInformation() {
// make a GET request to get backup information to populate the table
$.ajax({
@@ -204,11 +260,6 @@ $(document).ready(function(){
+ "
Delete";
}
- function updateProgressBars($progressBar, value) {
- $progressBar.attr('aria-valuenow', value).attr('style', 'width: ' + value + '%');
- $progressBar.find('.sr-only').html(value + "% Complete");
- }
-
// before we add any new rows and update existing ones
// remove our flag for active rows
$('.' + ACTIVE_BACKUP_ROW_CLASS).removeClass(ACTIVE_BACKUP_ROW_CLASS);
diff --git a/domain-server/src/DomainContentBackupManager.cpp b/domain-server/src/DomainContentBackupManager.cpp
index 518ed73f9e..3b8180e49e 100644
--- a/domain-server/src/DomainContentBackupManager.cpp
+++ b/domain-server/src/DomainContentBackupManager.cpp
@@ -348,6 +348,27 @@ void DomainContentBackupManager::recoverFromUploadedBackup(MiniPromise::Promise
});
}
+void DomainContentBackupManager::recoverFromUploadedFile(MiniPromise::Promise promise, QString uploadedFilename) {
+ if (QThread::currentThread() != thread()) {
+ QMetaObject::invokeMethod(this, "recoverFromUploadedFile", Q_ARG(MiniPromise::Promise, promise),
+ Q_ARG(QString, uploadedFilename));
+ return;
+ }
+
+ qDebug() << "Recovering from uploaded file -" << uploadedFilename;
+
+ QFile uploadedFile(uploadedFilename);
+ QuaZip uploadedZip { &uploadedFile };
+
+ QString backupName = MANUAL_BACKUP_PREFIX + "uploaded.zip";
+
+ bool success = recoverFromBackupZip(backupName, uploadedZip);
+
+ promise->resolve({
+ { "success", success }
+ });
+}
+
std::vector