summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2016-05-02 17:34:24 +0200
committerVincent Petry <pvince81@owncloud.com>2016-05-20 09:33:59 +0200
commitdb4c7fe743d7cd2019612c9acd732ca0ec4467ea (patch)
tree6be66c74ff5f41aa75819eadd1c75213abfdc94e /apps
parent63bbbf29f4b8fc49faf8aafd7ebf27a12e892a06 (diff)
downloadnextcloud-server-db4c7fe743d7cd2019612c9acd732ca0ec4467ea.tar.gz
nextcloud-server-db4c7fe743d7cd2019612c9acd732ca0ec4467ea.zip
Add encoding wrapper as opt-in mount option
The encoding wrapper is now only applied when the mount option is set, disabled by default.
Diffstat (limited to 'apps')
-rw-r--r--apps/files_external/js/settings.js32
-rw-r--r--apps/files_external/templates/settings.php1
-rw-r--r--apps/files_external/tests/js/settingsSpec.js3
3 files changed, 24 insertions, 12 deletions
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index 55c12cc0ac9..91f5f8d8118 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">{{t "files_external" "Enable encoding compatibility (decreases performance)"}}</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();
}
@@ -492,7 +496,7 @@ MountOptionsDropdown.prototype = {
var $el = $(template());
this.$el = $el;
- this.setOptions(mountOptions, enabledOptions);
+ this.setOptions(mountOptions, visibleOptions);
this.$el.appendTo($container);
MountOptionsDropdown._last = this;
@@ -538,9 +542,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 +560,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 +887,8 @@ MountConfigListView.prototype = _.extend({
'encrypt': true,
'previews': true,
'enable_sharing': false,
- 'filesystem_check_changes': 1
+ 'filesystem_check_changes': 1,
+ 'encoding_compatibility': false
}));
}
@@ -1253,11 +1258,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/templates/settings.php b/apps/files_external/templates/settings.php
index c9cc40b0ba0..16e0e629bdb 100644
--- a/apps/files_external/templates/settings.php
+++ b/apps/files_external/templates/settings.php
@@ -10,6 +10,7 @@
$l->t("Check for changes");
$l->t("Never");
$l->t("Once every direct access");
+ $l->t("Enable encoding compatibility (decreases performance)");
script('files_external', 'settings');
style('files_external', 'settings');
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
});
});
});