New styles and additional help hints for LDAP

This commit is contained in:
snipe
2025-10-17 15:29:24 +01:00
parent 8947b667ae
commit 263cc3f7a1
19 changed files with 473 additions and 326 deletions

View File

@@ -195,6 +195,10 @@ class IconHelper
case 'note':
case 'notes':
return 'fas fa-sticky-note';
case 'tip':
return 'fa-solid fa-lightbulb';
case 'highlight':
return 'fa-solid fa-highlighter';
}
}
}

View File

@@ -1504,6 +1504,28 @@ caption.tableCaption {
input[name="columnsSearch"] {
width: 120px;
}
.callout.callout-legend {
background-color: #f4f4f4;
border-left: 5px solid #959495;
padding: 15px 30px 15px 15px;
font-size: 100%;
border-radius: 0px;
}
.callout.callout-legend h4 {
font-size: 16px;
font-weight: bold;
margin-top: 5px;
margin-bottom: 0px;
}
p.callout-subtext {
margin-top: 5px;
}
p.callout-subtext a:hover,
p.callout-subtext a:visited,
p.callout-subtext a:link {
color: #31708f;
text-decoration: none;
}
/*# sourceMappingURL=app.css.map*/

File diff suppressed because one or more lines are too long

View File

@@ -1128,6 +1128,28 @@ caption.tableCaption {
input[name="columnsSearch"] {
width: 120px;
}
.callout.callout-legend {
background-color: #f4f4f4;
border-left: 5px solid #959495;
padding: 15px 30px 15px 15px;
font-size: 100%;
border-radius: 0px;
}
.callout.callout-legend h4 {
font-size: 16px;
font-weight: bold;
margin-top: 5px;
margin-bottom: 0px;
}
p.callout-subtext {
margin-top: 5px;
}
p.callout-subtext a:hover,
p.callout-subtext a:visited,
p.callout-subtext a:link {
color: #31708f;
text-decoration: none;
}
/*# sourceMappingURL=overrides.css.map*/

File diff suppressed because one or more lines are too long

View File

@@ -22840,6 +22840,28 @@ caption.tableCaption {
input[name="columnsSearch"] {
width: 120px;
}
.callout.callout-legend {
background-color: #f4f4f4;
border-left: 5px solid #959495;
padding: 15px 30px 15px 15px;
font-size: 100%;
border-radius: 0px;
}
.callout.callout-legend h4 {
font-size: 16px;
font-weight: bold;
margin-top: 5px;
margin-bottom: 0px;
}
p.callout-subtext {
margin-top: 5px;
}
p.callout-subtext a:hover,
p.callout-subtext a:visited,
p.callout-subtext a:link {
color: #31708f;
text-decoration: none;
}
/*# sourceMappingURL=app.css.map*/
@@ -24455,6 +24477,28 @@ caption.tableCaption {
input[name="columnsSearch"] {
width: 120px;
}
.callout.callout-legend {
background-color: #f4f4f4;
border-left: 5px solid #959495;
padding: 15px 30px 15px 15px;
font-size: 100%;
border-radius: 0px;
}
.callout.callout-legend h4 {
font-size: 16px;
font-weight: bold;
margin-top: 5px;
margin-bottom: 0px;
}
p.callout-subtext {
margin-top: 5px;
}
p.callout-subtext a:hover,
p.callout-subtext a:visited,
p.callout-subtext a:link {
color: #31708f;
text-decoration: none;
}
/*# sourceMappingURL=overrides.css.map*/

View File

@@ -1775,7 +1775,7 @@ a.btn:visited {
background-color: #001F3F;
color: #FFF !important;
}
btn-success {
.btn-success {
background-color: #000d07;
}
input::-webkit-input-placeholder {

File diff suppressed because one or more lines are too long

View File

@@ -1775,7 +1775,7 @@ a.btn:visited {
background-color: #001F3F;
color: #FFF !important;
}
btn-success {
.btn-success {
background-color: #000d07;
}
input::-webkit-input-placeholder {

View File

@@ -211,7 +211,7 @@ a.btn:visited {
background-color: #001F3F;
color: #FFF !important;
}
btn-success {
.btn-success {
background-color: #000d07;
}
input::-webkit-input-placeholder {

File diff suppressed because one or more lines are too long

View File

@@ -211,7 +211,7 @@ a.btn:visited {
background-color: #001F3F;
color: #FFF !important;
}
btn-success {
.btn-success {
background-color: #000d07;
}
input::-webkit-input-placeholder {

View File

@@ -1,9 +1,9 @@
{
"/js/dist/all.js": "/js/dist/all.js?id=76d88f0f91b852f7eecbce357ab5858b",
"/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=42f97cd5b9ee7521b04a448e7fc16ac9",
"/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=d19cbaf13d14d5d69bb8d2d1e728cbda",
"/css/build/overrides.css": "/css/build/overrides.css?id=d6ec1f1e36c57f8cd96218d2a59a2580",
"/css/build/app.css": "/css/build/app.css?id=d591faf82795dc8151a6d3f84c26f5a4",
"/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=3e8b8221c159b829a0edd562eb717563",
"/css/build/overrides.css": "/css/build/overrides.css?id=03eb857d917f847b2e217f5da4fdccd9",
"/css/build/app.css": "/css/build/app.css?id=41485c02f3c1c2e7407a99aefcec351c",
"/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=ee0ed88465dd878588ed044eefb67723",
"/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=3d8a3d2035ea28aaad4a703c2646f515",
"/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=3979929a3423ff35b96b1fc84299fdf3",
@@ -15,11 +15,11 @@
"/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=42eb5a13297832949c99c16406daf0ad",
"/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=1989203aff5fafe6d4ae92ccba0e680e",
"/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=2a6e215685d0eb6225adde8fc5d233e9",
"/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=8e521da067a395b703aa2343e7200417",
"/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=bbb63798008f6f846f9883eb73eaec3f",
"/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=b2cd9f59d7e8587939ce27b2d3363d82",
"/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=7277edd636cf46aa7786a4449ce0ead7",
"/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=cbd06cc1d58197ccc81d4376bbaf0d28",
"/css/dist/all.css": "/css/dist/all.css?id=ff957e6cef08b72d32cf28fe50da645a",
"/css/dist/all.css": "/css/dist/all.css?id=4a00fb8a56de5ca4588584132099f17d",
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7",
"/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7",
"/js/select2/i18n/af.js": "/js/select2/i18n/af.js?id=4f6fcd73488ce79fae1b7a90aceaecde",
@@ -93,12 +93,12 @@
"/js/dist/bootstrap-table-locale-all.min.js": "/js/dist/bootstrap-table-locale-all.min.js?id=d300041b9e5038b45b68e036add83be4",
"/js/dist/bootstrap-table-en-US.min.js": "/js/dist/bootstrap-table-en-US.min.js?id=6d0de12d91548ba2cd80b868838ce5fa",
"/js/dist/Chart.min.js": "/js/dist/Chart.min.js?id=9b1ae20c4c7048d6e4a1b2e1aee7fb31",
"/css/dist/skins/_all-skins.min.css": "/css/dist/skins/_all-skins.min.css?id=d19cbaf13d14d5d69bb8d2d1e728cbda",
"/css/dist/skins/_all-skins.min.css": "/css/dist/skins/_all-skins.min.css?id=3e8b8221c159b829a0edd562eb717563",
"/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=42f97cd5b9ee7521b04a448e7fc16ac9",
"/css/dist/skins/skin-black.min.css": "/css/dist/skins/skin-black.min.css?id=cbd06cc1d58197ccc81d4376bbaf0d28",
"/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=7277edd636cf46aa7786a4449ce0ead7",
"/css/dist/skins/skin-blue.min.css": "/css/dist/skins/skin-blue.min.css?id=b2cd9f59d7e8587939ce27b2d3363d82",
"/css/dist/skins/skin-contrast.min.css": "/css/dist/skins/skin-contrast.min.css?id=8e521da067a395b703aa2343e7200417",
"/css/dist/skins/skin-contrast.min.css": "/css/dist/skins/skin-contrast.min.css?id=bbb63798008f6f846f9883eb73eaec3f",
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=2a6e215685d0eb6225adde8fc5d233e9",
"/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=1989203aff5fafe6d4ae92ccba0e680e",
"/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=42eb5a13297832949c99c16406daf0ad",

View File

@@ -1264,4 +1264,28 @@ caption.tableCaption {
input[name="columnsSearch"] {
width: 120px;
}
}
.callout.callout-legend {
background-color: #f4f4f4;
border-left: 5px solid #959495;
padding: 15px 30px 15px 15px;
font-size: 100%;
border-radius: 0px;
}
.callout.callout-legend h4 {
font-size: 16px;
font-weight: bold;
margin-top: 5px;
margin-bottom: 0px;
}
p.callout-subtext {
margin-top: 5px;
}
p.callout-subtext a:hover, p.callout-subtext a:visited, p.callout-subtext a:link {
color: #31708f;
text-decoration: none;
}

View File

@@ -157,7 +157,7 @@ a.btn {
color: #FFF!important;
}
btn-success {
.btn-success {
background-color: darken(@green, 30%);
}
@@ -181,6 +181,7 @@ input::-ms-input-placeholder { /* IE 10+ */
background-color: darken(@blue, 20%)!important;
}
.fixed-table-container tbody .selected td {
background-color: #fff8af;
}

View File

@@ -94,10 +94,12 @@ return [
'ldap_settings' => 'LDAP Settings',
'ldap_client_tls_cert_help' => 'Client-Side TLS Certificate and Key for LDAP connections are usually only useful in Google Workspace configurations with "Secure LDAP." Both are required.',
'ldap_location' => 'LDAP Location Field',
'ldap_location_help' => 'The LDAP Location field should be used if <strong>an OU is not being used in the Base Bind DN.</strong> Leave this blank if an OU search is being used.',
'ldap_location_help' => 'The LDAP Location field should be used if <strong>an OU is not being used in the Base Bind DN.</strong> Leave this blank if an OU search is being used.',
'ldap_login_test_help' => 'Enter a valid LDAP username and password from the base DN you specified above to test whether your LDAP login is configured correctly. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
'ldap_login_sync_help' => 'This only tests that LDAP can sync and that your fields are mapped correctly. If your LDAP Authentication query is not correct, users may still not be able to login. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
'ldap_manager' => 'LDAP Manager Field',
'ldap_mapping_help' => 'If your fields are not syncing correctly, try using the <strong>lower-case version</strong> of the field names. Display Name (<code>displayName</code>) in your LDAP/AD should be mapped here as <code>displayname</code>, <code>givenName</code> should be <code>givenname</code>, <code>sAMAccountName</code> as <code>samaccountname</code>, etc. <a href="https://snipe-it.readme.io/docs/ldap-sync-login#field-mapping-for-syncing"><i class="fa fa-external-link"></i></a>',
'save_ldap_first' => 'You must save your LDAP settings before testing. Save your settings on this page and then reload to test LDAP login and/or sync.',
'ldap_server' => 'LDAP Server',
'ldap_server_help' => 'This should start with ldap:// (for unencrypted) or ldaps:// (for TLS or SSL)',
'ldap_server_cert' => 'LDAP SSL certificate validation',

View File

@@ -0,0 +1,5 @@
<!-- Form Legend Help Component -->
<p class="callout-subtext">
<x-icon type="tip" class="text-info" />
{!! $slot !!}
</p>

View File

@@ -0,0 +1,15 @@
@props([
'help_text' => null,
])
<!-- Form Legend Component -->
<legend class="callout callout-legend">
<h4>
{{ $slot }}
</h4>
@if ($help_text)
<x-form-legend-help>
{!! $help_text !!}
</x-form-legend-help>
@endif
</legend>

View File

@@ -79,13 +79,14 @@
<div class="col-md-12">
<fieldset class="bottom-padded">
<legend class="highlight">
<fieldset>
<x-form-legend>
{{ trans('admin/settings/general.legends.server') }}
</legend>
</x-form-legend>
<!-- Enable LDAP -->
<div class="form-group {{ $errors->has('ldap_integration') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_enabled">{{ trans('admin/settings/general.ldap_integration') }}</label>
</div>
<div class="col-md-8">
@@ -107,7 +108,7 @@
<!-- AD Flag -->
<div class="form-group">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="is_ad">{{ trans('admin/settings/general.ad') }}</label>
</div>
<div class="col-md-8">
@@ -133,7 +134,7 @@
<!-- LDAP Password Sync -->
<div class="form-group">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_pw_sync">{{ trans('admin/settings/general.ldap_pw_sync') }}</label>
</div>
<div class="col-md-8">
@@ -162,7 +163,7 @@
<!-- AD Domain -->
<div class="form-group {{ $errors->has('ad_domain') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ad_domain">{{ trans('admin/settings/general.ad_domain') }}</label>
</div>
<div class="col-md-8">
@@ -186,7 +187,7 @@
<!-- LDAP Client-Side TLS key -->
<div class="form-group {{ $errors->has('ldap_client_tls_key') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_client_tls_key">
{{ trans('admin/settings/general.ldap_client_tls_key') }}
</label>
@@ -215,7 +216,7 @@
<!-- LDAP Client-Side TLS certificate -->
<div class="form-group {{ $errors->has('ldap_client_tls_cert') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_client_tls_cert">{{ trans('admin/settings/general.ldap_client_tls_cert') }}</label>
</div>
<div class="col-md-8">
@@ -243,7 +244,7 @@
<!-- LDAP Server -->
<div class="form-group {{ $errors->has('ldap_server') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_server">{{ trans('admin/settings/general.ldap_server') }}</label>
</div>
<div class="col-md-8">
@@ -268,7 +269,7 @@
<!-- Start TLS -->
<div class="form-group">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_tls">{{ trans('admin/settings/general.ldap_tls') }}</label>
</div>
<div class="col-md-8">
@@ -294,7 +295,7 @@
<!-- Ignore LDAP Certificate -->
<div class="form-group {{ $errors->has('ldap_server_cert_ignore') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_server_cert_ignore">{{ trans('admin/settings/general.ldap_server_cert') }}</label>
</div>
<div class="col-md-8">
@@ -323,7 +324,7 @@
<!-- LDAP Username -->
<div class="form-group {{ $errors->has('ldap_uname') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_uname">{{ trans('admin/settings/general.ldap_uname') }}</label>
</div>
<div class="col-md-8">
@@ -346,7 +347,7 @@
<!-- LDAP pword -->
<div class="form-group {{ $errors->has('ldap_pword') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_pword">{{ trans('admin/settings/general.ldap_pword') }}</label>
</div>
<div class="col-md-8">
@@ -369,7 +370,7 @@
<!-- LDAP basedn -->
<div class="form-group {{ $errors->has('ldap_basedn') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_basedn">{{ trans('admin/settings/general.ldap_basedn') }}</label>
</div>
<div class="col-md-8">
@@ -392,7 +393,7 @@
<!-- LDAP filter -->
<div class="form-group {{ $errors->has('ldap_filter') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_filter">{{ trans('admin/settings/general.ldap_filter') }}</label>
</div>
<div class="col-md-8">
@@ -415,7 +416,7 @@
<!-- LDAP Auth Filter Query -->
<div class="form-group {{ $errors->has('ldap_auth_filter_query') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_auth_filter_query">{{ trans('admin/settings/general.ldap_auth_filter_query') }}</label>
</div>
<div class="col-md-8">
@@ -440,7 +441,7 @@
<!-- Default LDAP Permissions Group Select -->
<div class="form-group{{ $errors->has('group') ? ' has-error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_default_group">{{ trans('admin/settings/general.ldap_default_group') }}</label>
</div>
@@ -480,13 +481,17 @@
</fieldset>
<fieldset class="bottom-padded">
<legend class="highlight">
<fieldset>
<x-form-legend
help_text="{!! trans('admin/settings/general.ldap_mapping_help') !!}">
{{ trans('admin/settings/general.legends.mapping') }}
</legend>
</x-form-legend>
<!-- LDAP username field-->
<div class="form-group {{ $errors->has('ldap_username_field') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_username_field">{{ trans('admin/settings/general.ldap_username_field') }}</label>
</div>
<div class="col-md-8">
@@ -503,7 +508,7 @@
<!-- LDAP Last Name Field -->
<div class="form-group {{ $errors->has('ldap_lname_field') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_lname_field">{{ trans('admin/settings/general.ldap_lname_field') }}</label>
</div>
<div class="col-md-8">
@@ -520,7 +525,7 @@
<!-- LDAP First Name field -->
<div class="form-group {{ $errors->has('ldap_fname_field') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_fname_field">{{ trans('admin/settings/general.ldap_fname_field') }}</label>
</div>
<div class="col-md-8">
@@ -537,7 +542,7 @@
<!-- LDAP Display Name Field -->
<div class="form-group {{ $errors->has('ldap_display_name') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_lname_field">{{ trans('admin/settings/general.ldap_display_name') }}</label>
</div>
<div class="col-md-8">
@@ -553,10 +558,274 @@
</div>
</div>
<!-- LDAP emp number -->
<div class="form-group {{ $errors->has('ldap_emp_num') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_emp_num">{{ trans('admin/settings/general.ldap_emp_num') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'employeenumber/employeeid' }}" name="ldap_emp_num" type="text" id="ldap_emp_num" value="{{ old('ldap_emp_num', $setting->ldap_emp_num) }}">
@error('ldap_emp_num')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP department -->
<div class="form-group {{ $errors->has('ldap_dept') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_dept">{{ trans('admin/settings/general.ldap_dept') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'department' }}" name="ldap_dept" type="text" id="ldap_dept" value="{{ old('ldap_dept', $setting->ldap_dept) }}">
@error('ldap_dept')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP Manager -->
<div class="form-group {{ $errors->has('ldap_dept') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_manager">{{ trans('admin/settings/general.ldap_manager') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder=" {{ trans('general.example') .'manager' }}" name="ldap_manager" type="text" value="{{ old('ldap_manager', $setting->ldap_manager) }}">
@error('ldap_manager')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP email -->
<div class="form-group {{ $errors->has('ldap_email') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_email">{{ trans('admin/settings/general.ldap_email') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'mail' }}" name="ldap_email" type="text" id="ldap_email" value="{{ old('ldap_email', $setting->ldap_email) }}">
@error('ldap_email')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP Phone -->
<div class="form-group {{ $errors->has('ldap_phone') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_phone">{{ trans('admin/settings/general.ldap_phone') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'telephonenumber' }}" name="ldap_phone" type="text" id="ldap_phone" value="{{ old('ldap_phone', $setting->ldap_phone_field) }}">
@error('ldap_phone')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP Mobile -->
<div class="form-group {{ $errors->has('ldap_mobile') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_mobile">{{ trans('admin/settings/general.ldap_mobile') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'mobile' }}" name="ldap_mobile" type="text" id="ldap_mobile" value="{{ old('ldap_mobile', $setting->ldap_mobile) }}">
@error('ldap_mobile')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
</div>
</div>
<!-- LDAP Job title -->
<div class="form-group {{ $errors->has('ldap_jobtitle') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_jobtitle">{{ trans('admin/settings/general.ldap_jobtitle') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'title' }}" name="ldap_jobtitle" type="text" id="ldap_jobtitle" value="{{ old('ldap_jobtitle', $setting->ldap_jobtitle) }}">
@error('ldap_jobtitle')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP address -->
<div class="form-group {{ $errors->has('ldap_address') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_address">{{ trans('admin/settings/general.ldap_address') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" name="ldap_address" placeholder="{{ trans('general.example') .'streetaddress' }}" type="text" id="ldap_address" value="{{ old('ldap_address', $setting->ldap_address) }}">
@error('ldap_address')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
</div>
</div>
<!-- LDAP city -->
<div class="form-group {{ $errors->has('ldap_city') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_city">{{ trans('admin/settings/general.ldap_city') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'l' }}" name="ldap_city" type="text" id="ldap_city" value="{{ old('ldap_city', $setting->ldap_city) }}">
@error('ldap_city')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
</div>
</div>
<!-- LDAP state -->
<div class="form-group {{ $errors->has('ldap_state') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_state">{{ trans('admin/settings/general.ldap_state') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'st' }}" name="ldap_state" type="text" id="ldap_state" value="{{ old('ldap_state', $setting->ldap_state) }}">
@error('ldap_state')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
</div>
</div>
<!-- LDAP zip -->
<div class="form-group {{ $errors->has('ldap_zip') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_zip">{{ trans('admin/settings/general.ldap_zip') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" name="ldap_zip" type="text" id="ldap_zip" placeholder="{{ trans('general.example') .'postalcode' }}" value="{{ old('ldap_zip', $setting->ldap_zip) }}">
@error('ldap_zip')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
</div>
</div>
<!-- LDAP Country -->
<div class="form-group {{ $errors->has('ldap_country') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_country">{{ trans('admin/settings/general.ldap_country') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'co' }}" name="ldap_country" type="text" id="ldap_country" value="{{ old('ldap_country', $setting->ldap_country) }}">
@error('ldap_country')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP Location -->
<div class="form-group {{ $errors->has('ldap_location') ? 'error' : '' }}">
<div class="col-md-3 text-right">
<label for="ldap_location">{{ trans('admin/settings/general.ldap_location') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'physicaldeliveryofficename' }}" name="ldap_location" type="text" id="ldap_location" value="{{ old('ldap_location', $setting->ldap_location) }}">
<p class="help-block">{!! trans('admin/settings/general.ldap_location_help') !!}</p>
@error('ldap_location')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP active flag -->
<div class="form-group {{ $errors->has('ldap_active_flag') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_active_flag">{{ trans('admin/settings/general.ldap_active_flag') }}</label>
</div>
<div class="col-md-8">
@@ -581,7 +850,7 @@
<!-- LDAP invert active flag -->
<div class="form-group">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="ldap_invert_active_flag">
{{ trans('admin/settings/general.ldap_invert_active_flag') }}
</label>
@@ -611,282 +880,18 @@
</div>
</div>
<!-- LDAP emp number -->
<div class="form-group {{ $errors->has('ldap_emp_num') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_emp_num">{{ trans('admin/settings/general.ldap_emp_num') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'employeenumber/employeeid' }}" name="ldap_emp_num" type="text" id="ldap_emp_num" value="{{ old('ldap_emp_num', $setting->ldap_emp_num) }}">
@error('ldap_emp_num')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP department -->
<div class="form-group {{ $errors->has('ldap_dept') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_dept">{{ trans('admin/settings/general.ldap_dept') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'department' }}" name="ldap_dept" type="text" id="ldap_dept" value="{{ old('ldap_dept', $setting->ldap_dept) }}">
@error('ldap_dept')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP Manager -->
<div class="form-group {{ $errors->has('ldap_dept') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_manager">{{ trans('admin/settings/general.ldap_manager') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder=" {{ trans('general.example') .'manager' }}" name="ldap_manager" type="text" value="{{ old('ldap_manager', $setting->ldap_manager) }}">
@error('ldap_manager')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP email -->
<div class="form-group {{ $errors->has('ldap_email') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_email">{{ trans('admin/settings/general.ldap_email') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'mail' }}" name="ldap_email" type="text" id="ldap_email" value="{{ old('ldap_email', $setting->ldap_email) }}">
@error('ldap_email')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP Phone -->
<div class="form-group {{ $errors->has('ldap_phone') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_phone">{{ trans('admin/settings/general.ldap_phone') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'telephonenumber' }}" name="ldap_phone" type="text" id="ldap_phone" value="{{ old('ldap_phone', $setting->ldap_phone_field) }}">
@error('ldap_phone')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP Mobile -->
<div class="form-group {{ $errors->has('ldap_mobile') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_mobile">{{ trans('admin/settings/general.ldap_mobile') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'mobile' }}" name="ldap_mobile" type="text" id="ldap_mobile" value="{{ old('ldap_mobile', $setting->ldap_mobile) }}">
@error('ldap_mobile')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
</div>
</div>
<!-- LDAP Job title -->
<div class="form-group {{ $errors->has('ldap_jobtitle') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_jobtitle">{{ trans('admin/settings/general.ldap_jobtitle') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'title' }}" name="ldap_jobtitle" type="text" id="ldap_jobtitle" value="{{ old('ldap_jobtitle', $setting->ldap_jobtitle) }}">
@error('ldap_jobtitle')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP address -->
<div class="form-group {{ $errors->has('ldap_address') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_address">{{ trans('admin/settings/general.ldap_address') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" name="ldap_address" placeholder="{{ trans('general.example') .'streetaddress' }}" type="text" id="ldap_address" value="{{ old('ldap_address', $setting->ldap_address) }}">
@error('ldap_address')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
</div>
</div>
<!-- LDAP city -->
<div class="form-group {{ $errors->has('ldap_city') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_city">{{ trans('admin/settings/general.ldap_city') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'l' }}" name="ldap_city" type="text" id="ldap_city" value="{{ old('ldap_city', $setting->ldap_city) }}">
@error('ldap_city')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
</div>
</div>
<!-- LDAP state -->
<div class="form-group {{ $errors->has('ldap_state') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_state">{{ trans('admin/settings/general.ldap_state') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'st' }}" name="ldap_state" type="text" id="ldap_state" value="{{ old('ldap_state', $setting->ldap_state) }}">
@error('ldap_state')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
</div>
</div>
<!-- LDAP zip -->
<div class="form-group {{ $errors->has('ldap_zip') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_zip">{{ trans('admin/settings/general.ldap_zip') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" name="ldap_zip" type="text" id="ldap_zip" placeholder="{{ trans('general.example') .'postalcode' }}" value="{{ old('ldap_zip', $setting->ldap_zip) }}">
@error('ldap_zip')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
</div>
</div>
<!-- LDAP Country -->
<div class="form-group {{ $errors->has('ldap_country') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_country">{{ trans('admin/settings/general.ldap_country') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'co' }}" name="ldap_country" type="text" id="ldap_country" value="{{ old('ldap_country', $setting->ldap_country) }}">
@error('ldap_country')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
<!-- LDAP Location -->
<div class="form-group {{ $errors->has('ldap_location') ? 'error' : '' }}">
<div class="col-md-3">
<label for="ldap_location">{{ trans('admin/settings/general.ldap_location') }}</label>
</div>
<div class="col-md-8">
<input class="form-control" placeholder="{{ trans('general.example') .'physicaldeliveryofficename' }}" name="ldap_location" type="text" id="ldap_location" value="{{ old('ldap_location', $setting->ldap_location) }}">
<p class="help-block">{!! trans('admin/settings/general.ldap_location_help') !!}</p>
@error('ldap_location')
<span class="alert-msg">
<x-icon type="x" />
{{ $message }}
</span>
@enderror
@if (config('app.lock_passwords')===true)
<p class="text-warning">
<x-icon type="locked" />
{{ trans('general.feature_disabled') }}
</p>
@endif
</div>
</div>
</fieldset>
<fieldset class="bottom-padded">
<legend class="highlight">
{{ trans('admin/settings/general.legends.test') }}
</legend>
<fieldset id="ldap_test_settings">
<x-form-legend
help_text="{{ trans('admin/settings/general.save_ldap_first') }}">
{{ trans('admin/settings/general.legends.test') }}
</x-form-legend>
@if ($setting->ldap_enabled)
<!-- LDAP Login test -->
<div class="form-group">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="test_ldap_login"> {{trans('admin/settings/general.ldap_test_login')}} </label>
</div>
<div class="col-md-8">
@@ -935,21 +940,20 @@
</div>
</div>
@endif
</fieldset>
<fieldset class="bottom-padded">
<legend class="highlight">
{{ trans('admin/settings/general.legends.misc') }}
<fieldset>
<legend class="callout callout-legend">
<h4>
{{ trans('admin/settings/general.legends.misc') }}
</h4>
</legend>
<!-- LDAP Forgotten password -->
<div class="form-group {{ $errors->has('custom_forgot_pass_url') ? 'error' : '' }}">
<div class="col-md-3">
<div class="col-md-3 text-right">
<label for="custom_forgot_pass_url">{{ trans('admin/settings/general.custom_forgot_pass_url') }}</label>
</div>
<div class="col-md-8">
@@ -1236,7 +1240,7 @@
$("#ldaptestloginicon").html('');
$("#ldaptestloginstatus").addClass('text-danger');
$("#ldaptestloginicon").html('<i class="fas fa-exclamation-triangle text-danger"></i>');
$("#ldaptestloginicon").html('');
if (data.status == 500) {
$('#ldaptestloginstatus').html('{{ trans('admin/settings/message.ldap.500') }}');
@@ -1244,13 +1248,17 @@
if (typeof errors !='string') {
for (i = 0; i < errors.length; i++) {
if (errors[i]) {
error_text += '<li>Error: ' + errors[i];
if (errors.length > 0) {
error_text += '<ul style="list-style: none; padding-left: 5px;">';
for (i = 0; i < errors.length; i++) {
if (errors[i]) {
error_text += '<li><i class="fas fa-exclamation-triangle text-danger"></i> Error: ' + errors[i] + '</li>';
}
}
error_text += '</ul>';
}
} else {
error_text = errors;
}