From b060123155d82d59c981b89600a3a1b2c9f37bc9 Mon Sep 17 00:00:00 2001
From: Bjoern Schiessle <schiessle@owncloud.com>
Date: Tue, 7 Oct 2014 12:52:01 +0200
Subject: [PATCH] improved visual feedback if user enabled recovery key

---
 apps/files_encryption/ajax/userrecovery.php   |  8 ++++++-
 apps/files_encryption/js/settings-personal.js | 21 ++++++-------------
 .../templates/settings-personal.php           |  5 ++---
 3 files changed, 15 insertions(+), 19 deletions(-)

diff --git a/apps/files_encryption/ajax/userrecovery.php b/apps/files_encryption/ajax/userrecovery.php
index 0f3b973d69..a5b89fa723 100644
--- a/apps/files_encryption/ajax/userrecovery.php
+++ b/apps/files_encryption/ajax/userrecovery.php
@@ -13,6 +13,8 @@ use OCA\Encryption;
 \OCP\JSON::checkAppEnabled('files_encryption');
 \OCP\JSON::callCheck();
 
+$l = \OC::$server->getL10N('files_encryption');
+
 if (
 	isset($_POST['userEnableRecovery'])
 	&& (0 == $_POST['userEnableRecovery'] || '1' === $_POST['userEnableRecovery'])
@@ -38,4 +40,8 @@ if (
 }
 
 // Return success or failure
-($return) ? \OCP\JSON::success() : \OCP\JSON::error();
+if ($return) {
+	\OCP\JSON::success(array('data' => array('message' => $l->t('File recovery settings updated'))));
+} else {
+	\OCP\JSON::error(array('data' => array('message' => $l->t('Could not update file recovery'))));
+}
diff --git a/apps/files_encryption/js/settings-personal.js b/apps/files_encryption/js/settings-personal.js
index f857c2c9f0..b798ba7e4e 100644
--- a/apps/files_encryption/js/settings-personal.js
+++ b/apps/files_encryption/js/settings-personal.js
@@ -26,36 +26,27 @@ $(document).ready(function(){
 	// Trigger ajax on recoveryAdmin status change
 	$( 'input:radio[name="userEnableRecovery"]' ).change(
 		function() {
-			
-			// Hide feedback messages in case they're already visible
-			$('#recoveryEnabledSuccess').hide();
-			$('#recoveryEnabledError').hide();
-			
 			var recoveryStatus = $( this ).val();
-			
+			OC.msg.startAction('#userEnableRecovery .msg', 'Updating recovery keys. This can take some time...');
 			$.post(
 				OC.filePath( 'files_encryption', 'ajax', 'userrecovery.php' )
 				, { userEnableRecovery: recoveryStatus }
 				,  function( data ) {
-					if ( data.status == "success" ) {
-						$('#recoveryEnabledSuccess').show();
-					} else {
-						$('#recoveryEnabledError').show();
-					}
+					OC.msg.finishedAction('#userEnableRecovery .msg', data);
 				}
 			);
 			// Ensure page is not reloaded on form submit
 			return false;
 		}
 	);
-	
+
 	$("#encryptAll").click(
 		function(){
-			
+
 			// Hide feedback messages in case they're already visible
 			$('#encryptAllSuccess').hide();
 			$('#encryptAllError').hide();
-			
+
 			var userPassword = $( '#userPassword' ).val();
 			var encryptAll = $( '#encryptAll' ).val();
 
@@ -73,7 +64,7 @@ $(document).ready(function(){
 			// Ensure page is not reloaded on form submit
 			return false;
 		}
-		
+
 	);
 
 	// update private key password
diff --git a/apps/files_encryption/templates/settings-personal.php b/apps/files_encryption/templates/settings-personal.php
index a122124042..ce8cf6aec2 100644
--- a/apps/files_encryption/templates/settings-personal.php
+++ b/apps/files_encryption/templates/settings-personal.php
@@ -39,8 +39,9 @@
 
 	<?php elseif ( $_["recoveryEnabled"] && $_["privateKeySet"] &&  $_["initialized"] === \OCA\Encryption\Session::INIT_SUCCESSFUL ): ?>
 		<br />
-		<p>
+		<p id="userEnableRecovery">
 			<label for="userEnableRecovery"><?php p( $l->t( "Enable password recovery:" ) ); ?></label>
+			<span class="msg"></span>
 			<br />
 			<em><?php p( $l->t( "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" ) ); ?></em>
 			<br />
@@ -60,8 +61,6 @@
 			value='0'
 			<?php echo ( $_["recoveryEnabledForUser"] === false ? 'checked="checked"' : '' ); ?> />
 			<label for="userDisableRecovery"><?php p( $l->t( "Disabled" ) ); ?></label>
-			<div id="recoveryEnabledSuccess"><?php p( $l->t( 'File recovery settings updated' ) ); ?></div>
-			<div id="recoveryEnabledError"><?php p( $l->t( 'Could not update file recovery' ) ); ?></div>
 		</p>
 	<?php endif; ?>
 </form>
-- 
GitLab