diff --git a/settings/Panels/Admin/PersistentLocking.php b/settings/Panels/Admin/PersistentLocking.php
index 04e3cfd4d828..ab5a73675658 100644
--- a/settings/Panels/Admin/PersistentLocking.php
+++ b/settings/Panels/Admin/PersistentLocking.php
@@ -47,6 +47,7 @@ public function getPanel() {
$tmpl = new Template('settings', 'panels/admin/persistentlocking');
$tmpl->assign('defaultTimeout', $this->config->getAppValue('core', 'lock_timeout_default', LockManager::LOCK_TIMEOUT_DEFAULT));
$tmpl->assign('maximumTimeout', $this->config->getAppValue('core', 'lock_timeout_max', LockManager::LOCK_TIMEOUT_MAX));
+ $tmpl->assign('manualFileLockOnWebUIEnabled', $this->config->getAppValue('files', 'enable_lock_file_action', 'no'));
return $tmpl;
}
diff --git a/settings/js/panels/persistentlocking.js b/settings/js/panels/persistentlocking.js
index b16bb0bf0a99..f0d9335f13c5 100644
--- a/settings/js/panels/persistentlocking.js
+++ b/settings/js/panels/persistentlocking.js
@@ -3,22 +3,34 @@ $(document).ready(function() {
$('#persistentlocking input').change(function () {
var currentInput = $(this);
var name = currentInput.attr('name');
- var value = currentInput.val();
+ var isValid = true;
+ var app = '';
+ var value = '';
- var minRange = currentInput.attr('min');
- var maxRange = currentInput.attr('max');
+ if (name === 'enable_lock_file_action') {
+ app = 'files';
+ if (this.checked) {
+ value = 'yes';
+ } else {
+ value = 'no';
+ }
+ } else {
+ app = 'core';
+ value = currentInput.val();
+ var minRange = currentInput.attr('min');
+ var maxRange = currentInput.attr('max');
- // range validation (mainly for firefox) to prevent saving wrong values
- var isValid = true;
- if (minRange !== undefined && value < minRange) {
- isValid = false;
- }
- if (maxRange !== undefined && value > maxRange) {
- isValid = false;
+ // range validation (mainly for firefox) to prevent saving wrong values
+ if (minRange !== undefined && value < minRange) {
+ isValid = false;
+ }
+ if (maxRange !== undefined && value > maxRange) {
+ isValid = false;
+ }
}
if (isValid) {
- OC.AppConfig.setValue('core', name, value);
+ OC.AppConfig.setValue(app, name, value);
}
// browser should take care of the visual indication if the value
// isn't in the range
diff --git a/settings/templates/panels/admin/persistentlocking.php b/settings/templates/panels/admin/persistentlocking.php
index 52781cc5add4..6107922179cf 100644
--- a/settings/templates/panels/admin/persistentlocking.php
+++ b/settings/templates/panels/admin/persistentlocking.php
@@ -17,4 +17,10 @@
min="0"
value="" />
+ />
+
+