From 5d68e04e5a43d6d6f52ff511f899bc831a6aa4be Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Wed, 26 Dec 2012 13:45:22 -0500 Subject: Change callback url for dropbox as well --- apps/files_external/js/dropbox.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apps/files_external/js/dropbox.js') diff --git a/apps/files_external/js/dropbox.js b/apps/files_external/js/dropbox.js index c1e38640708..cc6a37d0511 100644 --- a/apps/files_external/js/dropbox.js +++ b/apps/files_external/js/dropbox.js @@ -61,7 +61,7 @@ $(document).ready(function() { var configured = $(this).parent().find('[data-parameter="configured"]'); var token = $(this).parent().find('[data-parameter="token"]'); var token_secret = $(this).parent().find('[data-parameter="token_secret"]'); - $.post(OC.filePath('files_external', 'ajax', 'dropbox.php'), { step: 1, app_key: app_key, app_secret: app_secret, callback: window.location.href }, function(result) { + $.post(OC.filePath('files_external', 'ajax', 'dropbox.php'), { step: 1, app_key: app_key, app_secret: app_secret, callback: location.protocol + '//' + location.host + location.pathname }, function(result) { if (result && result.status == 'success') { $(configured).val('false'); $(token).val(result.data.request_token); -- cgit v1.2.3 From 48a3966ea979a56e9277f588d6001c47e8a9c606 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Wed, 26 Dec 2012 14:04:02 -0500 Subject: Listen to paste events for dropbox configuration --- apps/files_external/js/dropbox.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'apps/files_external/js/dropbox.js') diff --git a/apps/files_external/js/dropbox.js b/apps/files_external/js/dropbox.js index cc6a37d0511..824c47d9f6d 100644 --- a/apps/files_external/js/dropbox.js +++ b/apps/files_external/js/dropbox.js @@ -36,9 +36,20 @@ $(document).ready(function() { } }); - $('#externalStorage tbody tr input').live('keyup', function() { - var tr = $(this).parent().parent(); - if ($(tr).hasClass('OC_Filestorage_Dropbox') && $(tr).find('[data-parameter="configured"]').val() != 'true') { + $('#externalStorage tbody tr.OC_Filestorage_Dropbox td').live('paste', function() { + var tr = $(this).parent(); + setTimeout(function() { + showButton(tr); + }, 20); + }); + + $('#externalStorage tbody tr.OC_Filestorage_Dropbox td').live('keyup', function() { + showButton($(this).parent().parent()); + + }); + + function showButton(tr) { + if ($(tr).find('[data-parameter="configured"]').val() != 'true') { var config = $(tr).find('.configuration'); if ($(tr).find('.mountPoint input').val() != '' && $(config).find('[data-parameter="app_key"]').val() != '' && $(config).find('[data-parameter="app_secret"]').val() != '') { if ($(tr).find('.dropbox').length == 0) { @@ -50,7 +61,7 @@ $(document).ready(function() { $(tr).find('.dropbox').hide(); } } - }); + } $('.dropbox').live('click', function(event) { event.preventDefault(); -- cgit v1.2.3 From d9ff3b68602d511ede1fd8bf2516a842dee2cfd1 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Wed, 26 Dec 2012 14:18:51 -0500 Subject: Fix last commit's variable --- apps/files_external/js/dropbox.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'apps/files_external/js/dropbox.js') diff --git a/apps/files_external/js/dropbox.js b/apps/files_external/js/dropbox.js index 824c47d9f6d..247d6bb8bb6 100644 --- a/apps/files_external/js/dropbox.js +++ b/apps/files_external/js/dropbox.js @@ -44,8 +44,7 @@ $(document).ready(function() { }); $('#externalStorage tbody tr.OC_Filestorage_Dropbox td').live('keyup', function() { - showButton($(this).parent().parent()); - + showButton($(this).parent()); }); function showButton(tr) { -- cgit v1.2.3 From a69de3a8f1dd3ef9a17b0f65b7058681eebb6145 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Tue, 1 Jan 2013 16:19:40 -0500 Subject: Turn off async for saving mount points, improve input detection for Google and Dropbox 'Grant Access' buttons --- apps/files_external/js/dropbox.js | 49 +++++++++++++----------- apps/files_external/js/google.js | 67 ++++++++++++++++---------------- apps/files_external/js/settings.js | 78 ++++++++++++++++++++++++++++++-------- 3 files changed, 123 insertions(+), 71 deletions(-) (limited to 'apps/files_external/js/dropbox.js') diff --git a/apps/files_external/js/dropbox.js b/apps/files_external/js/dropbox.js index 247d6bb8bb6..92a92467c79 100644 --- a/apps/files_external/js/dropbox.js +++ b/apps/files_external/js/dropbox.js @@ -24,14 +24,12 @@ $(document).ready(function() { $(tr).find('.configuration input').attr('disabled', 'disabled'); $(tr).find('.configuration').append(''+t('files_external', 'Access granted')+''); } else { - OC.dialogs.alert(result.data.message, - t('files_external', 'Error configuring Dropbox storage') - ); + OC.dialogs.alert(result.data.message, t('files_external', 'Error configuring Dropbox storage')); } }); } - } else if ($(this).find('.mountPoint input').val() != '' && $(config).find('[data-parameter="app_key"]').val() != '' && $(config).find('[data-parameter="app_secret"]').val() != '' && $(this).find('.dropbox').length == 0) { - $(this).find('.configuration').append(''+t('files_external', 'Grant access')+''); + } else { + onDropboxInputsChange($(this)); } } }); @@ -39,18 +37,27 @@ $(document).ready(function() { $('#externalStorage tbody tr.OC_Filestorage_Dropbox td').live('paste', function() { var tr = $(this).parent(); setTimeout(function() { - showButton(tr); + onDropboxInputsChange(tr); }, 20); }); $('#externalStorage tbody tr.OC_Filestorage_Dropbox td').live('keyup', function() { - showButton($(this).parent()); + onDropboxInputsChange($(this).parent()); }); - function showButton(tr) { + $('#externalStorage tbody tr.OC_Filestorage_Dropbox .chzn-select').live('change', function() { + onDropboxInputsChange($(this).parent().parent()); + }); + + function onDropboxInputsChange(tr) { if ($(tr).find('[data-parameter="configured"]').val() != 'true') { var config = $(tr).find('.configuration'); - if ($(tr).find('.mountPoint input').val() != '' && $(config).find('[data-parameter="app_key"]').val() != '' && $(config).find('[data-parameter="app_secret"]').val() != '') { + if ($(tr).find('.mountPoint input').val() != '' + && $(config).find('[data-parameter="app_key"]').val() != '' + && $(config).find('[data-parameter="app_secret"]').val() != '' + && ($(tr).find('.chzn-select').length == 0 + || $(tr).find('.chzn-select').val() != null)) + { if ($(tr).find('.dropbox').length == 0) { $(config).append(''+t('files_external', 'Grant access')+''); } else { @@ -64,8 +71,10 @@ $(document).ready(function() { $('.dropbox').live('click', function(event) { event.preventDefault(); + var tr = $(this).parent().parent(); var app_key = $(this).parent().find('[data-parameter="app_key"]').val(); var app_secret = $(this).parent().find('[data-parameter="app_secret"]').val(); + var statusSpan = $(tr).find('.status span'); if (app_key != '' && app_secret != '') { var tr = $(this).parent().parent(); var configured = $(this).parent().find('[data-parameter="configured"]'); @@ -76,25 +85,19 @@ $(document).ready(function() { $(configured).val('false'); $(token).val(result.data.request_token); $(token_secret).val(result.data.request_token_secret); - if (OC.MountConfig.saveStorage(tr)) { - window.location = result.data.url; - } else { - OC.dialogs.alert( - t('files_external', 'Fill out all required fields'), - t('files_external', 'Error configuring Dropbox storage') - ); - } + OC.MountConfig.saveStorage(tr); + statusSpan.removeClass(); + statusSpan.addClass('waiting'); + window.location = result.data.url; } else { - OC.dialogs.alert(result.data.message, - t('files_external', 'Error configuring Dropbox storage') - ); + OC.dialogs.alert(result.data.message, t('files_external', 'Error configuring Dropbox storage')); } }); } else { OC.dialogs.alert( - t('files_external', 'Please provide a valid Dropbox app key and secret.'), - t('files_external', 'Error configuring Dropbox storage') - ); + t('files_external', 'Please provide a valid Dropbox app key and secret.'), + t('files_external', 'Error configuring Dropbox storage') + ); } }); diff --git a/apps/files_external/js/google.js b/apps/files_external/js/google.js index f9fb8078612..a3b3e9cb3d2 100644 --- a/apps/files_external/js/google.js +++ b/apps/files_external/js/google.js @@ -3,8 +3,7 @@ $(document).ready(function() { $('#externalStorage tbody tr.OC_Filestorage_Google').each(function() { var configured = $(this).find('[data-parameter="configured"]'); if ($(configured).val() == 'true') { - $(this).find('.configuration') - .append(''+t('files_external', 'Access granted')+''); + $(this).find('.configuration').append(''+t('files_external', 'Access granted')+''); } else { var token = $(this).find('[data-parameter="token"]'); var token_secret = $(this).find('[data-parameter="token_secret"]'); @@ -22,37 +21,44 @@ $(document).ready(function() { OC.MountConfig.saveStorage(tr); $(tr).find('.configuration').append(''+t('files_external', 'Access granted')+''); } else { - OC.dialogs.alert(result.data.message, - t('files_external', 'Error configuring Google Drive storage') - ); + OC.dialogs.alert(result.data.message, t('files_external', 'Error configuring Google Drive storage')); } }); - } else if ($(this).find('.google').length == 0) { - $(this).find('.configuration').append(''+t('files_external', 'Grant access')+''); + } else { + onGoogleInputsChange(this); } } }); - $('#externalStorage tbody tr').live('change', function() { - if ($(this).hasClass('OC_Filestorage_Google') && $(this).find('[data-parameter="configured"]').val() != 'true') { - if ($(this).find('.mountPoint input').val() != '') { - if ($(this).find('.google').length == 0) { - $(this).find('.configuration').append(''+t('files_external', 'Grant access')+''); - } - } - } + $('#externalStorage tbody tr.OC_Filestorage_Google td').live('paste', function() { + var tr = $(this).parent(); + setTimeout(function() { + onGoogleInputsChange(tr); + }, 20); }); - $('#externalStorage tbody tr .mountPoint input').live('keyup', function() { - var tr = $(this).parent().parent(); - if ($(tr).hasClass('OC_Filestorage_Google') && $(tr).find('[data-parameter="configured"]').val() != 'true' && $(tr).find('.google').length > 0) { - if ($(this).val() != '') { - $(tr).find('.google').show(); - } else { + $('#externalStorage tbody tr.OC_Filestorage_Google td').live('keyup', function() { + onGoogleInputsChange($(this).parent()); + }); + + $('#externalStorage tbody tr.OC_Filestorage_Google .chzn-select').live('change', function() { + onGoogleInputsChange($(this).parent().parent()); + }); + + function onGoogleInputsChange(tr) { + if ($(tr).find('[data-parameter="configured"]').val() != 'true') { + var config = $(tr).find('.configuration'); + if ($(tr).find('.mountPoint input').val() != '' && ($(tr).find('.chzn-select').length == 0 || $(tr).find('.chzn-select').val() != null)) { + if ($(tr).find('.google').length == 0) { + $(config).append(''+t('files_external', 'Grant access')+''); + } else { + $(tr).find('.google').show(); + } + } else if ($(tr).find('.google').length > 0) { $(tr).find('.google').hide(); } } - }); + } $('.google').live('click', function(event) { event.preventDefault(); @@ -60,23 +66,18 @@ $(document).ready(function() { var configured = $(this).parent().find('[data-parameter="configured"]'); var token = $(this).parent().find('[data-parameter="token"]'); var token_secret = $(this).parent().find('[data-parameter="token_secret"]'); + var statusSpan = $(tr).find('.status span'); $.post(OC.filePath('files_external', 'ajax', 'google.php'), { step: 1, callback: location.protocol + '//' + location.host + location.pathname }, function(result) { if (result && result.status == 'success') { $(configured).val('false'); $(token).val(result.data.request_token); $(token_secret).val(result.data.request_token_secret); - if (OC.MountConfig.saveStorage(tr)) { - window.location = result.data.url; - } else { - OC.dialogs.alert( - t('files_external', 'Fill out all required fields'), - t('files_external', 'Error configuring Google Drive storage') - ); - } + OC.MountConfig.saveStorage(tr); + statusSpan.removeClass(); + statusSpan.addClass('waiting'); + window.location = result.data.url; } else { - OC.dialogs.alert(result.data.message, - t('files_external', 'Error configuring Google Drive storage') - ); + OC.dialogs.alert(result.data.message, t('files_external', 'Error configuring Google Drive storage')); } }); }); diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js index 25f6ed57984..b98fcf1b0ae 100644 --- a/apps/files_external/js/settings.js +++ b/apps/files_external/js/settings.js @@ -58,12 +58,25 @@ OC.MountConfig={ } users.push(applicable); } - $.post(OC.filePath('files_external', 'ajax', 'addMountPoint.php'), { mountPoint: mountPoint, class: backendClass, classOptions: classOptions, mountType: mountType, applicable: applicable, isPersonal: isPersonal }, function(result) { - statusSpan.removeClass(); - if (result && result.status == 'success' && result.data.message) { - statusSpan.addClass('success'); - } else { - statusSpan.addClass('error'); + $.ajax({type: 'POST', + url: OC.filePath('files_external', 'ajax', 'addMountPoint.php'), + data: { + mountPoint: mountPoint, + class: backendClass, + classOptions: classOptions, + mountType: mountType, + applicable: applicable, + isPersonal: isPersonal + }, + async: false, + success: function(result) { + statusSpan.removeClass(); + if (result && result.status == 'success' && result.data.message) { + status = true; + statusSpan.addClass('success'); + } else { + statusSpan.addClass('error'); + } } }); }); @@ -71,26 +84,61 @@ OC.MountConfig={ $(tr).find('.applicable').data('applicable-users', users); var mountType = 'group'; $.each(oldGroups, function(index, applicable) { - $.post(OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), { mountPoint: mountPoint, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); + $.ajax({type: 'POST', + url: OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), + data: { + mountPoint: mountPoint, + class: backendClass, + classOptions: classOptions, + mountType: mountType, + applicable: applicable, + isPersonal: isPersonal + }, + async: false + }); }); var mountType = 'user'; $.each(oldUsers, function(index, applicable) { - $.post(OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), { mountPoint: mountPoint, mountType: mountType, applicable: applicable, isPersonal: isPersonal }); + $.ajax({type: 'POST', + url: OC.filePath('files_external', 'ajax', 'removeMountPoint.php'), + data: { + mountPoint: mountPoint, + class: backendClass, + classOptions: classOptions, + mountType: mountType, + applicable: applicable, + isPersonal: isPersonal + }, + async: false + }); }); } else { var isPersonal = true; var mountType = 'user'; var applicable = OC.currentUser; - $.post(OC.filePath('files_external', 'ajax', 'addMountPoint.php'), { mountPoint: mountPoint, class: backendClass, classOptions: classOptions, mountType: mountType, applicable: applicable, isPersonal: isPersonal }, function(result) { - statusSpan.removeClass(); - if (result && result.status == 'success' && result.data.message) { - statusSpan.addClass('success'); - } else { - statusSpan.addClass('error'); + $.ajax({type: 'POST', + url: OC.filePath('files_external', 'ajax', 'addMountPoint.php'), + data: { + mountPoint: mountPoint, + class: backendClass, + classOptions: classOptions, + mountType: mountType, + applicable: applicable, + isPersonal: isPersonal + }, + async: false, + success: function(result) { + statusSpan.removeClass(); + if (result && result.status == 'success' && result.data.message) { + status = true; + statusSpan.addClass('success'); + } else { + statusSpan.addClass('error'); + } } }); } - return true; + return status; } } }; -- cgit v1.2.3 From 78043d73e83b95b0d1328598f59a1a65707f4ca6 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Wed, 9 Jan 2013 21:47:24 -0500 Subject: Set status to waiting for Dropbox and Google Drive while authenticating --- apps/files_external/js/dropbox.js | 3 +++ apps/files_external/js/google.js | 3 +++ 2 files changed, 6 insertions(+) (limited to 'apps/files_external/js/dropbox.js') diff --git a/apps/files_external/js/dropbox.js b/apps/files_external/js/dropbox.js index 92a92467c79..9314a4c7927 100644 --- a/apps/files_external/js/dropbox.js +++ b/apps/files_external/js/dropbox.js @@ -15,6 +15,9 @@ $(document).ready(function() { if (pos != -1 && window.location.search.substr(pos, $(token).val().length) == $(token).val()) { var token_secret = $(this).find('.configuration [data-parameter="token_secret"]'); var tr = $(this); + var statusSpan = $(tr).find('.status span'); + statusSpan.removeClass(); + statusSpan.addClass('waiting'); $.post(OC.filePath('files_external', 'ajax', 'dropbox.php'), { step: 2, app_key: app_key, app_secret: app_secret, request_token: $(token).val(), request_token_secret: $(token_secret).val() }, function(result) { if (result && result.status == 'success') { $(token).val(result.access_token); diff --git a/apps/files_external/js/google.js b/apps/files_external/js/google.js index 89daa0078e8..ad6fc6a0f9a 100644 --- a/apps/files_external/js/google.js +++ b/apps/files_external/js/google.js @@ -22,6 +22,9 @@ $(document).ready(function() { params[key] = value; }); if (params['oauth_token'] !== undefined && params['oauth_verifier'] !== undefined && decodeURIComponent(params['oauth_token']) == $(token).val()) { + var statusSpan = $(tr).find('.status span'); + statusSpan.removeClass(); + statusSpan.addClass('waiting'); $.post(OC.filePath('files_external', 'ajax', 'google.php'), { step: 2, oauth_verifier: params['oauth_verifier'], request_token: $(token).val(), request_token_secret: $(token_secret).val() }, function(result) { if (result && result.status == 'success') { $(token).val(result.access_token); -- cgit v1.2.3 From 5b50bc8c0aaa294bc982deea626e6d1d303c1c23 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Mon, 25 Feb 2013 19:45:01 -0500 Subject: Fix Dropbox and Google ui --- apps/files_external/js/dropbox.js | 8 ++++---- apps/files_external/js/google.js | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'apps/files_external/js/dropbox.js') diff --git a/apps/files_external/js/dropbox.js b/apps/files_external/js/dropbox.js index a8bbb7b02e2..957daeb4d1f 100644 --- a/apps/files_external/js/dropbox.js +++ b/apps/files_external/js/dropbox.js @@ -37,18 +37,18 @@ $(document).ready(function() { } }); - $('#externalStorage tbody').on('paste', 'tr.OC_Filestorage_Dropbox td', function() { + $('#externalStorage').on('paste', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Dropbox td', function() { var tr = $(this).parent(); setTimeout(function() { onDropboxInputsChange(tr); }, 20); }); - $('#externalStorage tbody').on('keyup', 'tr.OC_Filestorage_Dropbox td', function() { + $('#externalStorage').on('keyup', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Dropbox td', function() { onDropboxInputsChange($(this).parent()); }); - $('#externalStorage tbody').on('change', 'tr.OC_Filestorage_Dropbox .chzn-select', function() { + $('#externalStorage').on('change', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Dropbox .chzn-select', function() { onDropboxInputsChange($(this).parent().parent()); }); @@ -72,7 +72,7 @@ $(document).ready(function() { } } - $('.dropbox').on('click', function(event) { + $('#externalStorage').on('click', '.dropbox', function(event) { event.preventDefault(); var tr = $(this).parent().parent(); var app_key = $(this).parent().find('[data-parameter="app_key"]').val(); diff --git a/apps/files_external/js/google.js b/apps/files_external/js/google.js index 46333d89d68..7be1b338e90 100644 --- a/apps/files_external/js/google.js +++ b/apps/files_external/js/google.js @@ -1,11 +1,11 @@ $(document).ready(function() { - $('#externalStorage tbody tr.OC_Filestorage_Google').each(function(index, tr) { + $('#externalStorage tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Google').each(function(index, tr) { setupGoogleRow(tr); }); - $('#selectBackend').on('change', function() { - if ($(this).val() == 'OC_Filestorage_Google') { + $('#externalStorage').on('change', '#selectBackend', function() { + if ($(this).val() == '\\OC\\Files\\Storage\\Google') { setupGoogleRow($('#externalStorage tbody>tr:last').prev('tr')); } }); @@ -43,18 +43,18 @@ $(document).ready(function() { } } - $('#externalStorage tbody').on('paste', 'tr.OC_Filestorage_Google td', function() { + $('#externalStorage').on('paste', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Google td', function() { var tr = $(this).parent(); setTimeout(function() { onGoogleInputsChange(tr); }, 20); }); - $('#externalStorage tbody').on('keyup', 'tr.OC_Filestorage_Google td', function() { + $('#externalStorage').on('keyup', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Google td', function() { onGoogleInputsChange($(this).parent()); }); - $('#externalStorage tbody').on('change', 'tr.OC_Filestorage_Google .chzn-select', function() { + $('#externalStorage').on('change', 'tbody tr.\\\\OC\\\\Files\\\\Storage\\\\Google .chzn-select', function() { onGoogleInputsChange($(this).parent().parent()); }); @@ -73,7 +73,7 @@ $(document).ready(function() { } } - $('.google').on('click', function(event) { + $('#externalStorage').on('click', '.google', function(event) { event.preventDefault(); var tr = $(this).parent().parent(); var configured = $(this).parent().find('[data-parameter="configured"]'); -- cgit v1.2.3