summaryrefslogtreecommitdiffstats
path: root/apps/files_external
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2016-05-23 13:45:33 +0200
committerVincent Petry <pvince81@owncloud.com>2016-05-23 13:45:33 +0200
commitbd87f6747376063b05ad5f1f7ce12446dddd5697 (patch)
tree26675acaa2c5e33728df746642aa071213744f99 /apps/files_external
parent862d8f43e5d89a2549d6ffb324e4450bc0fd536d (diff)
parentbac8e13324f888e3d23851528943c9ae9f34cf12 (diff)
downloadnextcloud-server-bd87f6747376063b05ad5f1f7ce12446dddd5697.tar.gz
nextcloud-server-bd87f6747376063b05ad5f1f7ce12446dddd5697.zip
Merge pull request #24349 from owncloud/nfd-storagewrapper
Add wrapper for NFD encoding workaround
Diffstat (limited to 'apps/files_external')
-rw-r--r--apps/files_external/js/settings.js36
-rw-r--r--apps/files_external/tests/js/settingsSpec.js3
2 files changed, 26 insertions, 13 deletions
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index 55c12cc0ac9..8d2cb52d67c 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -33,8 +33,12 @@ var MOUNT_OPTIONS_DROPDOWN_TEMPLATE =
' <option value="1" selected="selected">{{t "files_external" "Once every direct access"}}</option>' +
' </select>' +
' </div>' +
+ ' <div class="optionRow">' +
+ ' <input id="mountOptionsEncoding" name="encoding_compatibility" type="checkbox" value="true"/>' +
+ ' <label for="mountOptionsEncoding">{{mountOptionsEncodingLabel}}</label>' +
+ ' </div>' +
'</div>';
-
+
/**
* Returns the selection of applicable users in the given configuration row
*
@@ -476,9 +480,9 @@ MountOptionsDropdown.prototype = {
*
* @param {Object} $container container
* @param {Object} mountOptions mount options
- * @param {Array} enabledOptions enabled mount options
+ * @param {Array} visibleOptions enabled mount options
*/
- show: function($container, mountOptions, enabledOptions) {
+ show: function($container, mountOptions, visibleOptions) {
if (MountOptionsDropdown._last) {
MountOptionsDropdown._last.hide();
}
@@ -489,10 +493,12 @@ MountOptionsDropdown.prototype = {
MountOptionsDropdown._template = template;
}
- var $el = $(template());
+ var $el = $(template({
+ mountOptionsEncodingLabel: t('files_external', 'Compatibility with Mac NFD encoding (slow)')
+ }));
this.$el = $el;
- this.setOptions(mountOptions, enabledOptions);
+ this.setOptions(mountOptions, visibleOptions);
this.$el.appendTo($container);
MountOptionsDropdown._last = this;
@@ -538,9 +544,9 @@ MountOptionsDropdown.prototype = {
* Sets the mount options to the dropdown controls
*
* @param {Object} options mount options
- * @param {Array} enabledOptions enabled mount options
+ * @param {Array} visibleOptions enabled mount options
*/
- setOptions: function(options, enabledOptions) {
+ setOptions: function(options, visibleOptions) {
var $el = this.$el;
_.each(options, function(value, key) {
var $optionEl = $el.find('input, select').filterAttr('name', key);
@@ -556,7 +562,7 @@ MountOptionsDropdown.prototype = {
$el.find('.optionRow').each(function(i, row){
var $row = $(row);
var optionId = $row.find('input, select').attr('name');
- if (enabledOptions.indexOf(optionId) === -1) {
+ if (visibleOptions.indexOf(optionId) === -1) {
$row.hide();
} else {
$row.show();
@@ -883,7 +889,8 @@ MountConfigListView.prototype = _.extend({
'encrypt': true,
'previews': true,
'enable_sharing': false,
- 'filesystem_check_changes': 1
+ 'filesystem_check_changes': 1,
+ 'encoding_compatibility': false
}));
}
@@ -1253,11 +1260,16 @@ MountConfigListView.prototype = _.extend({
var storage = this.getStorageConfig($tr);
var $toggle = $tr.find('.mountOptionsToggle');
var dropDown = new MountOptionsDropdown();
- var enabledOptions = ['previews', 'filesystem_check_changes', 'enable_sharing'];
+ var visibleOptions = [
+ 'previews',
+ 'filesystem_check_changes',
+ 'enable_sharing',
+ 'encoding_compatibility'
+ ];
if (this._encryptionEnabled) {
- enabledOptions.push('encrypt');
+ visibleOptions.push('encrypt');
}
- dropDown.show($toggle, storage.mountOptions || [], enabledOptions);
+ dropDown.show($toggle, storage.mountOptions || [], visibleOptions);
$('body').on('mouseup.mountOptionsDropdown', function(event) {
var $target = $(event.target);
if ($toggle.has($target).length) {
diff --git a/apps/files_external/tests/js/settingsSpec.js b/apps/files_external/tests/js/settingsSpec.js
index 462407e9540..7aa49b2c82a 100644
--- a/apps/files_external/tests/js/settingsSpec.js
+++ b/apps/files_external/tests/js/settingsSpec.js
@@ -370,7 +370,8 @@ describe('OCA.External.Settings tests', function() {
encrypt: true,
previews: true,
enable_sharing: false,
- filesystem_check_changes: 0
+ filesystem_check_changes: 0,
+ encoding_compatibility: false
});
});
});