Added default_avatar to settings

Signed-off-by: snipe <snipe@snipe.net>
This commit is contained in:
snipe 2024-07-04 13:22:36 +01:00
parent 96be1e1275
commit e372527d13
3 changed files with 38 additions and 25 deletions

View file

@ -393,10 +393,11 @@ class SettingsController extends Controller
* *
* @since [v1.0] * @since [v1.0]
* *
* @return View * @return \Illuminate\Contracts\View\View | \Illuminate\Http\RedirectResponse
*/ */
public function postBranding(ImageUploadRequest $request) public function postBranding(ImageUploadRequest $request)
{ {
// Something has gone horribly wrong - no settings record exists!
if (is_null($setting = Setting::getSettings())) { if (is_null($setting = Setting::getSettings())) {
return redirect()->to('admin')->with('error', trans('admin/settings/message.update.error')); return redirect()->to('admin')->with('error', trans('admin/settings/message.update.error'));
} }
@ -407,51 +408,53 @@ class SettingsController extends Controller
$setting->version_footer = $request->input('version_footer'); $setting->version_footer = $request->input('version_footer');
$setting->footer_text = $request->input('footer_text'); $setting->footer_text = $request->input('footer_text');
$setting->skin = $request->input('skin'); $setting->skin = $request->input('skin');
$setting->allow_user_skin = $request->input('allow_user_skin'); $setting->allow_user_skin = $request->input('allow_user_skin', '0');
$setting->show_url_in_emails = $request->input('show_url_in_emails', '0'); $setting->show_url_in_emails = $request->input('show_url_in_emails', '0');
$setting->logo_print_assets = $request->input('logo_print_assets', '0'); $setting->logo_print_assets = $request->input('logo_print_assets', '0');
// Only allow the site name and CSS to be changed if lock_passwords is false // Only allow the site name, images, and CSS to be changed if lock_passwords is false
// Because public demos make people act like dicks // Because public demos make people act like dicks
if (! config('app.lock_passwords')) { if (!config('app.lock_passwords')) {
$request->validate(['site_name' => 'required']);
$setting->site_name = $request->input('site_name'); $setting->site_name = $request->input('site_name');
$setting->custom_css = $request->input('custom_css'); $setting->custom_css = $request->input('custom_css');
$setting = $request->handleImages($setting, 600, 'logo', '', 'logo');
// Logo upload
$setting = $request->handleImages($setting, 600, 'logo', '', 'logo');
if ('1' == $request->input('clear_logo')) { if ('1' == $request->input('clear_logo')) {
Storage::disk('public')->delete($setting->logo); Storage::disk('public')->delete($setting->logo);
$setting->logo = null; $setting->logo = null;
$setting->brand = 1; $setting->brand = 1;
} }
// Email logo upload
$setting = $request->handleImages($setting, 600, 'email_logo', '', 'email_logo'); $setting = $request->handleImages($setting, 600, 'email_logo', '', 'email_logo');
if ('1' == $request->input('clear_email_logo')) { if ('1' == $request->input('clear_email_logo')) {
Storage::disk('public')->delete($setting->email_logo); Storage::disk('public')->delete($setting->email_logo);
$setting->email_logo = null; $setting->email_logo = null;
// If they are uploading an image, validate it and upload it // If they are uploading an image, validate it and upload it
} }
// Label logo upload
$setting = $request->handleImages($setting, 600, 'label_logo', '', 'label_logo'); $setting = $request->handleImages($setting, 600, 'label_logo', '', 'label_logo');
if ('1' == $request->input('clear_label_logo')) { if ('1' == $request->input('clear_label_logo')) {
Storage::disk('public')->delete($setting->label_logo); Storage::disk('public')->delete($setting->label_logo);
$setting->label_logo = null; $setting->label_logo = null;
} }
// Favicon upload
$setting = $request->handleImages($setting, 600, 'favicon', '', 'favicon'); $setting = $request->handleImages($setting, 100, 'favicon', '', 'favicon');
// If the user wants to clear the favicon...
if ('1' == $request->input('clear_favicon')) { if ('1' == $request->input('clear_favicon')) {
Storage::disk('public')->delete($setting->favicon); Storage::disk('public')->delete($setting->favicon);
$setting->favicon = null; $setting->favicon = null;
} }
// Default avatar upload
$setting = $request->handleImages($setting, 500, 'default_avatar', 'avatars', 'default_avatar');
if ($request->input('clear_default_avatar') == '1') {
Storage::disk('public')->delete('avatars/'.$setting->default_avatar);
$setting->default_avatar = null;
}
} }
if ($setting->save()) { if ($setting->save()) {

View file

@ -9,7 +9,7 @@
<div class="col-md-9"> <div class="col-md-9">
<label class="btn btn-default{{ (config('app.lock_passwords')) ? ' disabled' : '' }}"> <label class="btn btn-default{{ (config('app.lock_passwords')) ? ' disabled' : '' }}">
{{ trans('button.select_file') }} {{ trans('button.select_file') }}
<input type="file" name="{{ $logoVariable }}" class="js-uploadFile" id="{{ $logoId }}" accept="{{ (isset($allowedTypes) ? $allowedTypes : "image/gif,image/jpeg,image/webp,image/png,image/svg,image/svg+xml") }}" data-maxsize="{{ $maxSize ?? Helper::file_upload_max_size() }}" <input type="file" name="{{ $logoVariable }}" class="js-uploadFile" id="{{ $logoId }}" accept="{{ $allowedTypes ?? "image/gif,image/jpeg,image/webp,image/png,image/svg,image/svg+xml" }}" data-maxsize="{{ $maxSize ?? Helper::file_upload_max_size() }}"
style="display:none; max-width: 90%"{{ (config('app.lock_passwords')) ? ' disabled' : '' }}> style="display:none; max-width: 90%"{{ (config('app.lock_passwords')) ? ' disabled' : '' }}>
</label> </label>
@ -28,13 +28,12 @@
</div> </div>
<div class="col-md-9 col-md-offset-3"> <div class="col-md-9 col-md-offset-3">
@if (($setting->$logoVariable!='') && (Storage::disk('public')->exists(($logoPath ?? ''). $snipeSettings->$logoVariable)))
@if (($setting->$logoVariable!='') && (Storage::disk('public')->exists(e($snipeSettings->$logoVariable)))) <div class="pull-left" style="padding-right: 20px;">
<div class="pull-left" style="padding-right: 20px;"> <a href="{{ Storage::disk('public')->url(e(($logoPath ?? '').$snipeSettings->$logoVariable)) }}"{!! ($logoVariable!='favicon') ? ' data-toggle="lightbox"' : '' !!}>
<a href="{{ Storage::disk('public')->url(e($snipeSettings->$logoVariable)) }}"{!! ($logoVariable!='favicon') ? ' data-toggle="lightbox"' : '' !!}> <img id="{{ $logoId }}-imagePreview" style="height: 80px; padding-bottom: 5px;" alt="" src="{{ Storage::disk('public')->url(e(($logoPath ?? ''). $snipeSettings->$logoVariable)) }}">
<img id="{{ $logoId }}-imagePreview" style="height: 80px; padding-bottom: 5px;" alt="" src="{{ Storage::disk('public')->url(e($snipeSettings->$logoVariable)) }}"> </a>
</a> </div>
</div>
@endif @endif
<div id="{{ $logoId }}-previewContainer" style="display: none;"> <div id="{{ $logoId }}-previewContainer" style="display: none;">
@ -44,7 +43,7 @@
</div> </div>
@if (($setting->$logoVariable!='') && (Storage::disk('public')->exists(e($snipeSettings->$logoVariable)))) @if (($setting->$logoVariable!='') && (Storage::disk('public')->exists(($logoPath ?? '').$snipeSettings->$logoVariable)))
<div class="col-md-9 col-md-offset-3"> <div class="col-md-9 col-md-offset-3">
<label id="{{ $logoId }}-deleteCheckbox" for="{{ $logoClearVariable }}" style="font-weight: normal" class="form-control"> <label id="{{ $logoId }}-deleteCheckbox" for="{{ $logoClearVariable }}" style="font-weight: normal" class="form-control">

View file

@ -109,7 +109,18 @@
"maxSize" => 20000 "maxSize" => 20000
]) ])
<!-- Include logo in print assets --> <!-- Default Avatar -->
@include('partials/forms/edit/uploadLogo', [
"logoVariable" => "default_avatar",
"logoId" => "defaultAvatar",
"logoLabel" => trans('admin/settings/general.default_avatar'),
"logoClearVariable" => "clear_default_avatar",
"logoPath" => "avatars/",
"helpBlock" => trans('general.image_filetypes_help', ['size' => Helper::file_upload_max_size_readable()]),
])
<!-- Include logo in print assets -->
<div class="form-group"> <div class="form-group">
<div class="col-md-3"> <div class="col-md-3">
<strong>{{ trans('admin/settings/general.logo_print_assets') }}</strong> <strong>{{ trans('admin/settings/general.logo_print_assets') }}</strong>