Skip to content

Commit

Permalink
Add confirmation/error dialogs to save backup
Browse files Browse the repository at this point in the history
  • Loading branch information
Cu3PO42 committed Aug 7, 2015
1 parent 1e55e70 commit 8e065a6
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 17 deletions.
10 changes: 2 additions & 8 deletions app/elements/save-dumper/save-dumper.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,8 @@
</style>
<link rel="import" type="css" href="../../styles/paper-material.css">
<template>
<paper-dialog id="dialogInvalid" entry-animation="scale-up-animation" exit-animation="fade-out-animation">
<div>Sorry, but this is not a valid save file!</div>
<div class="buttons">
<paper-button dialog-confirm>Ok</paper-button>
</div>
</paper-dialog>
<paper-dialog id="dialogNokey" entry-animation="scale-up-animation" exit-animation="fade-out-animation">
<div>You have to break for this save first!</div>
<paper-dialog id="dialog" entry-animation="scale-up-animation" exit-animation="fade-out-animation">
<div>{{dialogMessage}}</div>
<div class="buttons">
<paper-button dialog-confirm>Ok</paper-button>
</div>
Expand Down
28 changes: 24 additions & 4 deletions app/elements/save-dumper/save-dumper.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ var path = require("path-extra");
});
this.ipcClient.on("dump-save-nokey", function () {
_this.path = "";
_this.$.dialogNokey.toggle();
_this.dialogMessage = "You have to break for this save first!";
_this.$.dialog.toggle();
});
}
SaveDumper.prototype.pathChange = function (newPath, oldPath) {
Expand All @@ -51,7 +52,8 @@ var path = require("path-extra");
fs.stat(newPath, function (err, stats) {
if (err) {
_this.path = oldPath;
_this.$.dialogInvalid.toggle();
_this.dialogMessage = "Sorry, but this is not a valid save file!";
_this.$.dialog.toggle();
}
else
switch (stats.size) {
Expand All @@ -64,13 +66,27 @@ var path = require("path-extra");
break;
default:
_this.path = oldPath;
_this.$.dialogInvalid.toggle();
_this.dialogMessage = "Sorry, but this is not a valid save file!";
_this.$.dialog.toggle();
break;
}
});
};
SaveDumper.prototype.backup = function () {
fs.createReadStream(this.path).pipe(fs.createWriteStream(path.join(backupDirectory, path.basename(this.path))));
var _this = this;
if (this.path)
fs.createReadStream(this.path).pipe(fs.createWriteStream(path.join(backupDirectory, path.basename(this.path))).on("error", function () {
_this.dialogMessage = "Couldn't backup save.";
_this.$.dialog.toggle();
}))
.on("error", function () {
_this.dialogMessage = "Couldn't backup save.";
_this.$.dialog.toggle();
})
.on("finish", function () {
_this.dialogMessage = "Save backupped!";
_this.$.dialog.toggle();
});
};
__decorate([
property({ type: Number }),
Expand All @@ -92,6 +108,10 @@ var path = require("path-extra");
property({ type: Object }),
__metadata('design:type', Object)
], SaveDumper.prototype, "fileOptions");
__decorate([
property({ type: String }),
__metadata('design:type', String)
], SaveDumper.prototype, "dialogMessage");
Object.defineProperty(SaveDumper.prototype, "pathChange",
__decorate([
observe("path"),
Expand Down
29 changes: 24 additions & 5 deletions app/elements/save-dumper/save-dumper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ class SaveDumper extends polymer.Base {
@property({type: Object})
fileOptions: GitHubElectron.Dialog.OpenDialogOptions;

@property({type: String})
dialogMessage: string;

ipcClient: IpcClient;

constructor() {
Expand All @@ -47,7 +50,8 @@ class SaveDumper extends polymer.Base {

this.ipcClient.on("dump-save-nokey", () => {
this.path = "";
this.$.dialogNokey.toggle();
this.dialogMessage = "You have to break for this save first!";
this.$.dialog.toggle();
});
}

Expand All @@ -57,8 +61,10 @@ class SaveDumper extends polymer.Base {
fs.stat(newPath, (err, stats) => {
if (err) {
this.path = oldPath;
this.$.dialogInvalid.toggle();
} else switch (stats.size) {
this.dialogMessage = "Sorry, but this is not a valid save file!";
this.$.dialog.toggle();
}
else switch (stats.size) {
case 0x100000:
case 0x10009C:
case 0x10019A:
Expand All @@ -68,14 +74,27 @@ class SaveDumper extends polymer.Base {
break;
default:
this.path = oldPath;
this.$.dialogInvalid.toggle();
this.dialogMessage = "Sorry, but this is not a valid save file!";
this.$.dialog.toggle();
break;
}
});
}

backup() {
fs.createReadStream(this.path).pipe(fs.createWriteStream(path.join(backupDirectory, path.basename(this.path))))
if (this.path)
fs.createReadStream(this.path).pipe(<NodeJS.WritableStream>fs.createWriteStream(path.join(backupDirectory, path.basename(this.path))).on("error", () => {
this.dialogMessage = "Couldn't backup save."
this.$.dialog.toggle();
}))
.on("error", () => {
this.dialogMessage = "Couldn't backup save."
this.$.dialog.toggle();
})
.on("finish", () => {
this.dialogMessage = "Save backupped!"
this.$.dialog.toggle();
});
}
}
polymer.createElement(SaveDumper);
Expand Down

0 comments on commit 8e065a6

Please sign in to comment.