Fixed Advanced Config reset

This commit is contained in:
Julian Prieber 2023-12-15 00:30:57 +01:00
parent ce60ce8c17
commit 9796c09eaa
2 changed files with 28 additions and 31 deletions

View File

@ -422,9 +422,11 @@ public function SendTestMail(Request $request)
//Saves advanced config
public function editAC(request $request)
{
$AdvancedConfig = $request->AdvancedConfig;
file_put_contents('config/advanced-config.php', $AdvancedConfig);
if ($request->ResetAdvancedConfig == 'RESET_DEFAULTS') {
copy(base_path('storage/templates/advanced-config.php'), base_path('config/advanced-config.php'));
} else {
file_put_contents('config/advanced-config.php', $request->AdvancedConfig);
}
return redirect('/admin/config#2');
}

View File

@ -1,40 +1,35 @@
<p>{{__('messages.AC.description')}}</p>
<form action="{{ route('editAC') }}" method="post">
<form action="{{ route('editAC') }}" method="post" id="editForm">
@csrf
<div class="form-group">
<label>{{__('messages.Advanced Configuration file.')}}</label>
<textarea style="width:100%;display:none;" class="form-control" name="AdvancedConfig" rows="280">{{ file_get_contents('config/advanced-config.php') }}</textarea>
<div id="editor" style="width:100%; height:<?php echo count(file('config/advanced-config.php')) * 24 + 15;?>px; background-color:transparent !important;" class="form-control border-1 border-light" name="AdvancedConfig" rows="280">{{ file_get_contents('config/advanced-config.php') }}</div>
</div>
<button type="submit" class="btn btn-primary">{{__('messages.Save')}}</button>
<a class="btn btn-danger confirmation" href="{{url('/admin/advanced-config?restore-defaults')}}">{{__('messages.Restore defaults')}}</a>
<script type="text/javascript">
var elems = document.getElementsByClassName('confirmation');
var confirmIt = function (e) {
if (!confirm('Are you sure?')) e.preventDefault();
};
for (var i = 0, l = elems.length; i < l; i++) {
elems[i].addEventListener('click', confirmIt, false);
}
</script>
<button type="submit" class="btn btn-primary" id="saveBtn">{{__('messages.Save')}}</button>
<a class="btn btn-danger confirmation" href="#" id="restoreDefaultsBtn">{{__('messages.Restore defaults')}}</a>
</form>
<script src="{{ asset('assets/external-dependencies/ace.js') }}" type="text/javascript" charset="utf-8"></script>
<script>
var editor = ace.edit("editor");
//if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
if(!$('#toggle-switch').is(':checked')){
// dark mode
editor.setTheme("ace/theme/tomorrow_night");
} else {
editor.setTheme("ace/theme/xcode");
}
editor.getSession().setMode("ace/mode/javascript");
editor.session.setUseWorker(false);
</script>
<script>
editor.getSession().on('change', function(e) {
$('textarea[name=AdvancedConfig]').val(editor.getSession().getValue());
});
var editor = ace.edit("editor");
editor.getSession().on('change', function(e) {
$('textarea[name=AdvancedConfig]').val(editor.getSession().getValue());
});
$('#restoreDefaultsBtn').on('click', function(e) {
e.preventDefault();
var isAdvancedConfig = $(this).hasClass('confirmation');
var confirmationMessage = "Are you sure?";
if (isAdvancedConfig) {
$('#editForm').append('<input type="hidden" name="ResetAdvancedConfig" value="RESET_DEFAULTS">');
}
if (confirm(confirmationMessage)) {
$('#editForm').submit();
}
});
</script>