diff options
author | Robin Appelman <robin@icewind.nl> | 2017-03-22 14:32:26 +0100 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2017-03-22 14:32:26 +0100 |
commit | 11ee0b14bba1d9a88d1d49072771ba7bc8273f51 (patch) | |
tree | 5003217eebf6966e9a014e1008fc390c19128d52 /apps | |
parent | 11c4875190aced582f23b2041664972a3769008f (diff) | |
download | nextcloud-server-11ee0b14bba1d9a88d1d49072771ba7bc8273f51.tar.gz nextcloud-server-11ee0b14bba1d9a88d1d49072771ba7bc8273f51.zip |
replace autosave with a save button for external storage configuration
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files_external/js/settings.js | 14 | ||||
-rw-r--r-- | apps/files_external/templates/settings.php | 8 | ||||
-rw-r--r-- | apps/files_external/tests/js/settingsSpec.js | 13 |
3 files changed, 17 insertions, 18 deletions
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js index 0270b7a6957..976c0c00b89 100644 --- a/apps/files_external/js/settings.js +++ b/apps/files_external/js/settings.js @@ -719,6 +719,10 @@ MountConfigListView.prototype = _.extend({ self.deleteStorageConfig($(this).closest('tr')); }); + this.$el.on('click', 'td.save>img', function () { + self.saveStorageConfig($(this).closest('tr')); + }); + this.$el.on('click', 'td.mountOptionsToggle>img', function() { self._showMountOptionsDropdown($(this).closest('tr')); }); @@ -737,13 +741,6 @@ MountConfigListView.prototype = _.extend({ highlightInput($target); var $tr = $target.closest('tr'); this.updateStatus($tr, null); - - var timer = $tr.data('save-timer'); - clearTimeout(timer); - timer = setTimeout(function() { - self.saveStorageConfig($tr, null, timer); - }, 2000); - $tr.data('save-timer', timer); }, _onSelectBackend: function(event) { @@ -813,8 +810,7 @@ MountConfigListView.prototype = _.extend({ $tr.data('storageConfig', storageConfig); $tr.show(); - $tr.find('td').last().attr('class', 'remove'); - $tr.find('td.mountOptionsToggle').removeClass('hidden'); + $tr.find('td.mountOptionsToggle, td.save, td.remove').removeClass('hidden'); $tr.find('td').last().removeAttr('style'); $tr.removeAttr('id'); $tr.find('select#selectBackend'); diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php index 53d2412425c..9d8c179dd32 100644 --- a/apps/files_external/templates/settings.php +++ b/apps/files_external/templates/settings.php @@ -150,13 +150,19 @@ /> <input type="hidden" class="mountOptions" value="" /> </td> - <td class="hidden"> + <td class="remove hidden"> <img class="svg" alt="<?php p($l->t('Delete')); ?>" title="<?php p($l->t('Delete')); ?>" src="<?php print_unescaped(image_path('core', 'actions/delete.svg')); ?>" /> </td> + <td class="save hidden"> + <img alt="<?php p($l->t('Save')); ?>" + title="<?php p($l->t('Save')); ?>" + src="<?php print_unescaped(image_path('core', 'actions/checkmark.svg')); ?>" + /> + </td> </tr> </tbody> </table> diff --git a/apps/files_external/tests/js/settingsSpec.js b/apps/files_external/tests/js/settingsSpec.js index 8f01c16b38c..2639f634b26 100644 --- a/apps/files_external/tests/js/settingsSpec.js +++ b/apps/files_external/tests/js/settingsSpec.js @@ -46,7 +46,8 @@ describe('OCA.External.Settings tests', function() { '<input type="hidden" class="applicableUsers">' + '</td>' + '<td class="mountOptionsToggle"><input type="hidden" class="mountOptions"/><img class="svg action"/></td>' + - '<td><img alt="Delete" title="Delete" class="svg action"/></td>' + + '<td class="remove"><img alt="Delete" title="Delete" class="svg action"/></td>' + + '<td class="save"><img alt="Save" title="Save" class="svg action"/></td>' + '</tr>' + '</tbody>' + '</table>' @@ -195,7 +196,7 @@ describe('OCA.External.Settings tests', function() { $tr = view.$el.find('tr:first'); selectBackend('\\OC\\TestBackend'); }); - it('saves storage after editing config', function() { + it('saves storage after clicking the save button', function() { var $field1 = $tr.find('input[data-parameter=field1]'); expect($field1.length).toEqual(1); $field1.val('test'); @@ -205,7 +206,8 @@ describe('OCA.External.Settings tests', function() { expect($mountOptionsField.length).toEqual(1); $mountOptionsField.val(JSON.stringify({previews:true})); - clock.tick(4000); + var $saveButton = $tr.find('td.save img'); + $saveButton.click(); expect(fakeServer.requests.length).toEqual(1); var request = fakeServer.requests[0]; @@ -242,11 +244,6 @@ describe('OCA.External.Settings tests', function() { // but after closing the dropdown expect(fakeServer.requests.length).toEqual(1); }); - // TODO: tests with "applicableUsers" and "applicableGroups" - // TODO: test with missing mount point value - // TODO: test with personal mounts (no applicable fields) - // TODO: test save triggers: paste, keyup, checkbox - // TODO: test "custom" field with addScript // TODO: status indicator }); describe('validate storage configuration', function() { |