From d2d568785c8e8f2d901f2baa26626d728e4cd80f Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 17 Jul 2020 16:10:36 +0545 Subject: [PATCH] Add admin setttings checkbox to 'Enable manual file locking on the web UI' --- settings/Panels/Admin/PersistentLocking.php | 1 + settings/js/panels/persistentlocking.js | 34 +++++++++++++------ .../panels/admin/persistentlocking.php | 6 ++++ 3 files changed, 30 insertions(+), 11 deletions(-) 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="" />
+ /> + +