Explorar el Código

#114: show success message

* after creating a vault
* after changing password
* after upgrade
Marc Stammerjohann hace 7 años
padre
commit
e808db51a5

+ 7 - 7
main/ui/src/main/java/org/cryptomator/ui/controllers/MainController.java

@@ -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();
 	}
 

+ 41 - 1
main/ui/src/main/java/org/cryptomator/ui/controllers/UnlockController.java

@@ -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;
+		}
+	}
+
 }

+ 3 - 0
main/ui/src/main/resources/fxml/unlock.fxml

@@ -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>

+ 4 - 0
main/ui/src/main/resources/localization/de.txt

@@ -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

+ 3 - 0
main/ui/src/main/resources/localization/en.txt

@@ -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