summaryrefslogtreecommitdiffstats
path: root/apps/files_external/js/google.js
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2013-12-06 17:23:51 +0100
committerVincent Petry <pvince81@owncloud.com>2013-12-06 17:25:09 +0100
commite13be94e56ec59d92b6c9cf67b7a17bd03438efb (patch)
treefa297d8540bcfc41a7edcb681eeab897e5e29922 /apps/files_external/js/google.js
parent4dd84b3627d5667b61638363244621ad93a5632f (diff)
downloadnextcloud-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.js21
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')