Settings: Add Reset button

This commit is contained in:
slawkens
2026-04-12 10:43:09 +02:00
parent f51211d47a
commit 7104c2258f
3 changed files with 22 additions and 3 deletions

View File

@@ -46,6 +46,15 @@ if (!is_array($settingsFile)) {
return; return;
} }
if (isset($_POST['reset']) && $_POST['reset'] == '1') {
$settings = Settings::getInstance();
$settings->deleteFromDatabase($plugin);
$settings->clearCache();
success('Settings for this plugin has been reset.');
}
$settingsKeyName = ($plugin == 'core' ? $plugin : $settingsFile['key']); $settingsKeyName = ($plugin == 'core' ? $plugin : $settingsFile['key']);
$title = ($plugin == 'core' ? 'Settings' : 'Plugin Settings - ' . $settingsFile['name']); $title = ($plugin == 'core' ? 'Settings' : 'Plugin Settings - ' . $settingsFile['name']);

View File

@@ -367,6 +367,7 @@ class Settings implements \ArrayAccess
</div> </div>
<div class="box-footer"> <div class="box-footer">
<button name="save" type="submit" class="btn btn-primary">Save</button> <button name="save" type="submit" class="btn btn-primary">Save</button>
<button form="reset-settings-form" name="reset" type="submit" class="btn btn-warning position-absolute" style="right: 0; bottom: 0" onclick="return confirm('Are you sure? This will clear all settings for this plugin!')">Reset</button>
</div> </div>
<?php <?php

View File

@@ -9,7 +9,10 @@
<div class="box"> <div class="box">
<div class="box-body"> <div class="box-body">
<button name="save" type="submit" class="btn btn-primary">Save</button> <button name="save" type="submit" class="btn btn-primary">Save</button>
<button form="reset-settings-form" name="reset" type="submit" class="btn btn-warning position-absolute" style="right: 0; top: 0" onclick="return confirm('Are you sure? This will clear all settings for this plugin!')">Reset</button>
</div> </div>
<br/> <br/>
{{ settingsParsed|raw }} {{ settingsParsed|raw }}
</div> </div>
@@ -18,6 +21,12 @@
</form> </form>
</div> </div>
</div> </div>
<form id="reset-settings-form" method="post" action="{{ constant('ADMIN_URL') }}?p=settings&plugin={{ settingsKeyName }}">
{{ csrf() }}
<input type="hidden" name="reset" value="1">
</form>
<style> <style>
.setting-default { .setting-default {
white-space: pre-wrap; white-space: pre-wrap;
@@ -95,12 +104,12 @@
.on('change input', function(){ .on('change input', function(){
const disable = $(this).serialize() === $(this).data('serialized'); const disable = $(this).serialize() === $(this).data('serialized');
$(this) $(this)
.find('input:submit, button:submit') .find('button[name="save"]')
.prop('disabled', disable) .prop('disabled', disable)
.prop('title', disable ? noChangesText : '') .prop('title', disable ? noChangesText : '')
; ;
}) })
.find('input:submit, button:submit') .find('button[name="save"]')
.prop('disabled', true) .prop('disabled', true)
.prop('title', noChangesText) .prop('title', noChangesText)
; ;
@@ -123,7 +132,7 @@
let $settings = $('#settings'); let $settings = $('#settings');
$settings.data('serialized', $settings.serialize()); $settings.data('serialized', $settings.serialize());
$settings $settings
.find('input:submit, button:submit') .find('button[name="save"]')
.prop('disabled', true) .prop('disabled', true)
.prop('title', noChangesText); .prop('title', noChangesText);
}, },