#114: show success message

* after creating a vault
* after changing password
* after upgrade
This commit is contained in:
Marc Stammerjohann
2017-12-20 15:50:31 +01:00
parent 8e1bb121bb
commit e808db51a5
5 changed files with 58 additions and 8 deletions

View File

@@ -396,7 +396,7 @@ public class MainController implements ViewController {
} else if (newValue.isValidVaultDirectory() && upgradeStrategyForSelectedVault.isPresent()) {
this.showUpgradeView();
} else if (newValue.isValidVaultDirectory()) {
this.showUnlockView();
this.showUnlockView(UnlockController.State.UNLOCKING);
} else {
this.showInitializeView();
}
@@ -446,7 +446,7 @@ public class MainController implements ViewController {
}
public void didInitialize() {
showUnlockView();
showUnlockView(UnlockController.State.INITIALIZED);
activeController.get().focus();
}
@@ -458,13 +458,13 @@ public class MainController implements ViewController {
}
public void didUpgrade() {
showUnlockView();
showUnlockView(UnlockController.State.UPGRADED);
activeController.get().focus();
}
private void showUnlockView() {
private void showUnlockView(UnlockController.State state) {
final UnlockController ctrl = viewControllerLoader.load("/fxml/unlock.fxml");
ctrl.setVault(selectedVault.get());
ctrl.setVault(selectedVault.get(), state);
ctrl.setListener(this::didUnlock);
activeController.set(ctrl);
}
@@ -486,7 +486,7 @@ public class MainController implements ViewController {
public void didLock(UnlockedController ctrl) {
unlockedVaults.remove(ctrl.getVault());
showUnlockView();
showUnlockView(UnlockController.State.UNLOCKING);
activeController.get().focus();
}
@@ -499,7 +499,7 @@ public class MainController implements ViewController {
}
public void didChangePassword() {
showUnlockView();
showUnlockView(UnlockController.State.PASSWORD_CHANGED);
activeController.get().focus();
}

View File

@@ -94,6 +94,9 @@ public class UnlockController implements ViewController {
@FXML
private Button unlockButton;
@FXML
private Label successMessage;
@FXML
private CheckBox savePassword;
@@ -160,7 +163,7 @@ public class UnlockController implements ViewController {
passwordField.requestFocus();
}
void setVault(Vault vault) {
void setVault(Vault vault, State state) {
vaultSubs.unsubscribe();
vaultSubs = Subscription.EMPTY;
@@ -175,6 +178,10 @@ public class UnlockController implements ViewController {
advancedOptions.setVisible(false);
advancedOptionsButton.setText(localization.getString("unlock.button.advancedOptions.show"));
progressIndicator.setVisible(false);
successMessage.setVisible(didChange(state));
if (successMessage.isVisible()) {
successMessage.setText(localization.getString(state.successMessage()));
}
if (SystemUtils.IS_OS_WINDOWS) {
winDriveLetter.valueProperty().removeListener(driveLetterChangeListener);
winDriveLetter.getItems().clear();
@@ -225,6 +232,7 @@ public class UnlockController implements ViewController {
@FXML
private void didClickAdvancedOptionsButton(ActionEvent event) {
successMessage.setVisible(false);
advancedOptions.setVisible(!advancedOptions.isVisible());
if (advancedOptions.isVisible()) {
advancedOptionsButton.setText(localization.getString("unlock.button.advancedOptions.hide"));
@@ -389,6 +397,15 @@ public class UnlockController implements ViewController {
}).run();
}
private boolean didChange(State state) {
switch (state) {
case UNLOCKING:
return false;
default:
return true;
}
}
/* callback */
public void setListener(UnlockListener listener) {
@@ -400,4 +417,27 @@ public class UnlockController implements ViewController {
void didUnlock(Vault vault);
}
/* state */
public enum State {
UNLOCKING(empty()),
INITIALIZED("unlock.successLabel.vaultCreated"),
PASSWORD_CHANGED("unlock.successLabel.passwordChanged"),
UPGRADED("unlock.successLabel.upgraded");
private static String empty() {
return "";
}
private String successMessage;
State(String successMessage) {
this.successMessage = successMessage;
}
public String successMessage() {
return successMessage;
}
}
}

View File

@@ -46,6 +46,9 @@
<Button fx:id="unlockButton" text="%unlock.button.unlock" defaultButton="true" prefWidth="150.0" onAction="#didClickUnlockButton" disable="true" cacheShape="true" cache="true" />
</HBox>
<!-- Row 3 -->
<Label fx:id="successMessage" cacheShape="true" cache="true" visible="true" GridPane.rowIndex="3" GridPane.columnIndex="0" GridPane.columnSpan="2"/>
<!-- Row 3 -->
<GridPane fx:id="advancedOptions" vgap="12.0" hgap="12.0" prefWidth="400.0" GridPane.rowIndex="3" GridPane.columnIndex="0" GridPane.columnSpan="2" visible="false" cacheShape="true" cache="true">
<padding>

View File

@@ -34,6 +34,10 @@ unlock.errorMessage.wrongPassword = Falsches Passwort
unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware = Tresor nicht unterstützt. Der Tresor wurde mit einer älteren Version von Cryptomator erstellt.
unlock.errorMessage.unsupportedVersion.softwareOlderThanVault = Tresor nicht unterstützt. Der Tresor wurde mit einer neueren Version von Cryptomator erstellt.
unlock.messageLabel.startServerFailed = Starten des WebDAV-Servers fehlgeschlagen.
unlock.successLabel.vaultCreated = Der Tresor wurde erfolgreich erstellt.
unlock.successLabel.passwordChanged = Das Passwort wurde erfolgreich geändert.
unlock.successLabel.upgraded = Cryptomator wurde erfolgreich geupdated.
# change_password.fxml
changePassword.label.oldPassword = Altes Passwort
changePassword.label.newPassword = Neues Passwort

View File

@@ -82,6 +82,9 @@ unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware=Unsupported vault.
unlock.errorMessage.unsupportedVersion.softwareOlderThanVault=Unsupported vault. This vault has been created with a newer version of Cryptomator.
unlock.errorMessage.unauthenticVersionMac=Could not authenticate version MAC.
unlock.messageLabel.startServerFailed=Starting WebDAV server failed.
unlock.successLabel.vaultCreated=Vault was successfully created.
unlock.successLabel.passwordChanged=Password was successfully changed.
unlock.successLabel.upgraded=Cryptomator was successfully upgraded.
# change_password.fxml
changePassword.label.oldPassword=Old Password