diff options
author | Vincent Petry <pvince81@owncloud.com> | 2013-12-06 17:23:51 +0100 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2013-12-06 17:25:09 +0100 |
commit | e13be94e56ec59d92b6c9cf67b7a17bd03438efb (patch) | |
tree | fa297d8540bcfc41a7edcb681eeab897e5e29922 /apps/files_external/js/google.js | |
parent | 4dd84b3627d5667b61638363244621ad93a5632f (diff) | |
download | nextcloud-server-e13be94e56ec59d92b6c9cf67b7a17bd03438efb.tar.gz nextcloud-server-e13be94e56ec59d92b6c9cf67b7a17bd03438efb.zip |
Fixed Dropbox/Google storage async save call
When clicking "Grant access", the settings for Dropbox/Google were saved
through a call that gets cancelled when redirecting to the grant page
(for example in Firefox)
This fix makes sure the "save settings" call finished before redirecting
to the grant page.
Fixes #6176
Diffstat (limited to 'apps/files_external/js/google.js')
-rw-r--r-- | apps/files_external/js/google.js | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/apps/files_external/js/google.js b/apps/files_external/js/google.js index b4be1c1dc41..068c2c13c66 100644 --- a/apps/files_external/js/google.js +++ b/apps/files_external/js/google.js @@ -32,11 +32,14 @@ $(document).ready(function() { if (result && result.status == 'success') { $(token).val(result.data.token); $(configured).val('true'); - OC.MountConfig.saveStorage(tr); - $(tr).find('.configuration input').attr('disabled', 'disabled'); - $(tr).find('.configuration').append($('<span/>') - .attr('id', 'access') - .text(t('files_external', 'Access granted'))); + OC.MountConfig.saveStorage(tr, function(status) { + if (status) { + $(tr).find('.configuration input').attr('disabled', 'disabled'); + $(tr).find('.configuration').append($('<span/>') + .attr('id', 'access') + .text(t('files_external', 'Access granted'))); + } + }); } else { OC.dialogs.alert(result.data.message, t('files_external', 'Error configuring Google Drive storage') @@ -99,7 +102,6 @@ $(document).ready(function() { var configured = $(this).parent().find('[data-parameter="configured"]'); var client_id = $(this).parent().find('[data-parameter="client_id"]').val(); var client_secret = $(this).parent().find('[data-parameter="client_secret"]').val(); - var statusSpan = $(tr).find('.status span'); if (client_id != '' && client_secret != '') { var token = $(this).parent().find('[data-parameter="token"]'); $.post(OC.filePath('files_external', 'ajax', 'google.php'), @@ -112,10 +114,9 @@ $(document).ready(function() { if (result && result.status == 'success') { $(configured).val('false'); $(token).val('false'); - OC.MountConfig.saveStorage(tr); - statusSpan.removeClass(); - statusSpan.addClass('waiting'); - window.location = result.data.url; + OC.MountConfig.saveStorage(tr, function(status) { + window.location = result.data.url; + }); } else { OC.dialogs.alert(result.data.message, t('files_external', 'Error configuring Google Drive storage') |