Merge remote-tracking branch 'origin/develop'

This commit is contained in:
snipe 2023-08-14 23:12:07 +01:00
commit 642a09f139
4 changed files with 76 additions and 206 deletions

View file

@ -30,7 +30,7 @@ class UserFactory extends Factory
'locale' => 'en',
'notes' => 'Created by DB seeder',
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'permissions' => '{"user":"0"}',
'permissions' => '{}',
'phone' => $this->faker->phoneNumber(),
'state' => $this->faker->stateAbbr(),
'username' => $this->faker->username(),
@ -81,11 +81,7 @@ class UserFactory extends Factory
public function superuser()
{
return $this->state(function () {
return [
'permissions' => '{"superuser":"1"}',
];
});
return $this->appendPermission(['superuser' => '1']);
}
public function admin()
@ -102,342 +98,204 @@ class UserFactory extends Factory
public function viewAssets()
{
return $this->state(function () {
return [
'permissions' => '{"assets.view":"1"}',
];
});
return $this->appendPermission(['assets.view' => '1']);
}
public function createAssets()
{
return $this->state(function () {
return [
'permissions' => '{"assets.create":"1"}',
];
});
return $this->appendPermission(['assets.create' => '1']);
}
public function editAssets()
{
return $this->state(function () {
return [
'permissions' => '{"assets.edit":"1"}',
];
});
return $this->appendPermission(['assets.edit' => '1']);
}
public function deleteAssets()
{
return $this->state(function () {
return [
'permissions' => '{"assets.delete":"1"}',
];
});
return $this->appendPermission(['assets.delete' => '1']);
}
public function checkinAssets()
{
return $this->state(function () {
return [
'permissions' => '{"assets.checkin":"1"}',
];
});
return $this->appendPermission(['assets.checkin' => '1']);
}
public function checkoutAssets()
{
return $this->state(function () {
return [
'permissions' => '{"assets.checkout":"1"}',
];
});
return $this->appendPermission(['assets.checkout' => '1']);
}
public function viewRequestableAssets()
{
return $this->state(function () {
return [
'permissions' => '{"assets.view.requestable":"1"}',
];
});
return $this->appendPermission(['assets.view.requestable' => '1']);
}
public function viewAccessories()
{
return $this->state(function () {
return [
'permissions' => '{"accessories.view":"1"}',
];
});
return $this->appendPermission(['accessories.view' => '1']);
}
public function createAccessories()
{
return $this->state(function () {
return [
'permissions' => '{"accessories.create":"1"}',
];
});
return $this->appendPermission(['accessories.create' => '1']);
}
public function editAccessories()
{
return $this->state(function () {
return [
'permissions' => '{"accessories.edit":"1"}',
];
});
return $this->appendPermission(['accessories.edit' => '1']);
}
public function deleteAccessories()
{
return $this->state(function () {
return [
'permissions' => '{"accessories.delete":"1"}',
];
});
return $this->appendPermission(['accessories.delete' => '1']);
}
public function checkinAccessories()
{
return $this->state(function () {
return [
'permissions' => '{"accessories.checkin":"1"}',
];
});
return $this->appendPermission(['accessories.checkin' => '1']);
}
public function checkoutAccessories()
{
return $this->state(function () {
return [
'permissions' => '{"accessories.checkout":"1"}',
];
});
return $this->appendPermission(['accessories.checkout' => '1']);
}
public function viewConsumables()
{
return $this->state(function () {
return [
'permissions' => '{"consumables.view":"1"}',
];
});
return $this->appendPermission(['consumables.view' => '1']);
}
public function createConsumables()
{
return $this->state(function () {
return [
'permissions' => '{"consumables.create":"1"}',
];
});
return $this->appendPermission(['consumables.create' => '1']);
}
public function editConsumables()
{
return $this->state(function () {
return [
'permissions' => '{"consumables.edit":"1"}',
];
});
return $this->appendPermission(['consumables.edit' => '1']);
}
public function deleteConsumables()
{
return $this->state(function () {
return [
'permissions' => '{"consumables.delete":"1"}',
];
});
return $this->appendPermission(['consumables.delete' => '1']);
}
public function checkinConsumables()
{
return $this->state(function () {
return [
'permissions' => '{"consumables.checkin":"1"}',
];
});
return $this->appendPermission(['consumables.checkin' => '1']);
}
public function checkoutConsumables()
{
return $this->state(function () {
return [
'permissions' => '{"consumables.checkout":"1"}',
];
});
return $this->appendPermission(['consumables.checkout' => '1']);
}
public function viewDepartments()
{
return $this->state(function () {
return [
'permissions' => '{"departments.view":"1"}',
];
});
return $this->appendPermission(['departments.view' => '1']);
}
public function viewLicenses()
{
return $this->state(function () {
return [
'permissions' => '{"licenses.view":"1"}',
];
});
return $this->appendPermission(['licenses.view' => '1']);
}
public function createLicenses()
{
return $this->state(function () {
return [
'permissions' => '{"licenses.create":"1"}',
];
});
return $this->appendPermission(['licenses.create' => '1']);
}
public function editLicenses()
{
return $this->state(function () {
return [
'permissions' => '{"licenses.edit":"1"}',
];
});
return $this->appendPermission(['licenses.edit' => '1']);
}
public function deleteLicenses()
{
return $this->state(function () {
return [
'permissions' => '{"licenses.delete":"1"}',
];
});
return $this->appendPermission(['licenses.delete' => '1']);
}
public function checkoutLicenses()
{
return $this->state(function () {
return [
'permissions' => '{"licenses.checkout":"1"}',
];
});
return $this->appendPermission(['licenses.checkout' => '1']);
}
public function viewKeysLicenses()
{
return $this->state(function () {
return [
'permissions' => '{"licenses.keys":"1"}',
];
});
return $this->appendPermission(['licenses.keys' => '1']);
}
public function viewComponents()
{
return $this->state(function () {
return [
'permissions' => '{"components.view":"1"}',
];
});
return $this->appendPermission(['components.view' => '1']);
}
public function createComponents()
{
return $this->state(function () {
return [
'permissions' => '{"components.create":"1"}',
];
});
return $this->appendPermission(['components.create' => '1']);
}
public function editComponents()
{
return $this->state(function () {
return [
'permissions' => '{"components.edit":"1"}',
];
});
return $this->appendPermission(['components.edit' => '1']);
}
public function deleteComponents()
{
return $this->state(function () {
return [
'permissions' => '{"components.delete":"1"}',
];
});
return $this->appendPermission(['components.delete' => '1']);
}
public function checkinComponents()
{
return $this->state(function () {
return [
'permissions' => '{"components.checkin":"1"}',
];
});
return $this->appendPermission(['components.checkin' => '1']);
}
public function checkoutComponents()
{
return $this->state(function () {
return [
'permissions' => '{"components.checkout":"1"}',
];
});
return $this->appendPermission(['components.checkout' => '1']);
}
public function viewUsers()
{
return $this->state(function () {
return [
'permissions' => '{"users.view":"1"}',
];
});
return $this->appendPermission(['users.view' => '1']);
}
public function createUsers()
{
return $this->state(function () {
return [
'permissions' => '{"users.create":"1"}',
];
});
return $this->appendPermission(['users.create' => '1']);
}
public function editUsers()
{
return $this->state(function () {
return [
'permissions' => '{"users.edit":"1"}',
];
});
return $this->appendPermission(['users.edit' => '1']);
}
public function deleteUsers()
{
return $this->state(function () {
return [
'permissions' => '{"users.delete":"1"}',
];
});
return $this->appendPermission(['users.delete' => '1']);
}
public function canEditOwnLocation()
{
return $this->state(function () {
return [
'permissions' => '{"self.edit_location":"1"}',
];
});
return $this->appendPermission(['self.edit_location' => '1']);
}
public function canViewReports()
{
return $this->state(function () {
return $this->appendPermission(['reports.view' => '1']);
}
private function appendPermission(array $permission)
{
return $this->state(function ($currentState) use ($permission) {
return [
'permissions' => '{"reports.view":"1"}',
'permissions' => json_encode(
array_merge(
json_decode($currentState['permissions'], true),
$permission
)
),
];
});
}

View file

@ -59,9 +59,9 @@ Form::macro('date_display_format', function ($name = 'date_display_format', $sel
];
foreach ($formats as $format) {
$date_display_formats[$format] = Carbon::parse(date('Y').'-'.date('m').'-25')->format($format);
$date_display_formats[$format] = Carbon::parse(date('Y-m-d'))->format($format);
}
$select = '<select name="'.$name.'" class="'.$class.'" style="min-width:250px" aria-label="'.$name.'">';
$select = '<select name="'.$name.'" class="'.$class.'" style="min-width:100%" aria-label="'.$name.'">';
foreach ($date_display_formats as $format => $date_display_format) {
$select .= '<option value="'.$format.'"'.($selected == $format ? ' selected="selected" role="option" aria-selected="true"' : ' aria-selected="false"').'">'.$date_display_format.'</option> ';
}

View file

@ -38,7 +38,7 @@
<div class="box-body">
<div class="col-md-11 col-md-offset-1">
<div class="col-md-12">
<!-- Language -->
<div class="form-group {{ $errors->has('site_name') ? 'error' : '' }}">
@ -52,18 +52,21 @@
</div>
</div>
<!-- Date format -->
<div class="form-group {{ $errors->has('time_display_format') ? 'error' : '' }}">
<div class="col-md-3">
{{ Form::label('time_display_format', trans('general.time_and_date_display')) }}
</div>
<div class="col-md-9">
<div class="col-md-5">
{!! Form::date_display_format('date_display_format', Request::old('date_display_format', $setting->date_display_format), 'select2') !!}
{!! Form::time_display_format('time_display_format', Request::old('time_display_format', $setting->time_display_format), 'select2') !!}
{!! $errors->first('time_display_format', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
<div class="col-md-3">
{!! Form::time_display_format('time_display_format', Request::old('time_display_format', $setting->time_display_format), 'select2') !!}
</div>
{!! $errors->first('time_display_format', '<div class="col-md-9 col-md-offset-3"><span class="alert-msg" aria-hidden="true">:message</span> </div>') !!}
</div>
<!-- Currency -->

View file

@ -111,25 +111,34 @@
}
function statusLabelTypeFormatter (row, value) {
switch (value.type) {
case 'deployed':
text_color = 'blue';
icon_style = 'fa-circle';
break;
case 'deployable':
text_color = 'green';
icon_style = 'fa-circle';
trans = '{{ strtolower(trans('admin/hardware/general.deployable')) }}';
break;
case 'pending':
text_color = 'orange';
icon_style = 'fa-circle';
trans = '{{ strtolower(trans('general.pending')) }}';
break;
case 'undeployable':
text_color = 'red';
icon_style = 'fa-circle';
trans ='{{ trans('admin/statuslabels/table.undeployable') }}';
break;
default:
text_color = 'red';
icon_style = 'fa-times';
trans = '{{ strtolower(trans('general.archived')) }}';
}
var typename_lower = value.type;
var typename_lower = trans;
var typename = typename_lower.charAt(0).toUpperCase() + typename_lower.slice(1);
return '<i class="fa ' + icon_style + ' text-' + text_color + '"></i> ' + typename;