FIX: don't break the message bus when restoring a backup

This commit is contained in:
Régis Hanol
2015-08-27 20:02:13 +02:00
parent 2589a75c46
commit 96c23d51a2
8 changed files with 78 additions and 109 deletions

View File

@ -0,0 +1,56 @@
const Backup = Discourse.Model.extend({
destroy() {
return Discourse.ajax("/admin/backups/" + this.get("filename"), { type: "DELETE" });
},
restore() {
return Discourse.ajax("/admin/backups/" + this.get("filename") + "/restore", {
type: "POST",
data: { client_id: window.MessageBus.clientId }
});
}
});
Backup.reopenClass({
find() {
return PreloadStore.getAndRemove("backups", () => Discourse.ajax("/admin/backups.json"))
.then(backups => backups.map(backup => Backup.create(backup)));
},
start(withUploads) {
if (withUploads === undefined) { withUploads = true; }
return Discourse.ajax("/admin/backups", {
type: "POST",
data: {
with_uploads: withUploads,
client_id: window.MessageBus.clientId
}
}).then(result => {
if (!result.success) { bootbox.alert(result.message); }
});
},
cancel() {
return Discourse.ajax("/admin/backups/cancel.json")
.then(result => {
if (!result.success) { bootbox.alert(result.message); }
});
},
rollback() {
return Discourse.ajax("/admin/backups/rollback.json")
.then(result => {
if (!result.success) {
bootbox.alert(result.message);
} else {
// redirect to homepage (session might be lost)
window.location.pathname = Discourse.getURL("/");
}
});
}
});
export default Backup;