Merge branch 'develop' into livewire4

This commit is contained in:
Marcus Moore
2026-02-05 10:39:56 -08:00
13 changed files with 84 additions and 57 deletions

View File

@@ -113,7 +113,7 @@ class UploadedFilesController extends Controller
$object->logUpload($file_name, $request->input('notes'));
}
if ($files) {
if (isset($files)) {
$file_results = Actionlog::select('action_logs.*')->where('action_type', '=', 'uploaded')
->where('item_type', '=', self::$map_object_type[$object_type])
->where('item_id', '=', $id)->whereIn('filename', $files)

View File

@@ -56,7 +56,7 @@ class UsersController extends Controller
public function create(Request $request)
{
$this->authorize('create', User::class);
$groups = Group::pluck('name', 'id');
$groups = Group::orderBy('name', 'asc')->pluck('name', 'id');
$userGroups = collect();
@@ -151,7 +151,9 @@ class UsersController extends Controller
}
if ($request->filled('groups')) {
$user->groups()->sync($request->input('groups'));
if (auth()->user()->can('canEditAuthFields', $user) && auth()->user()->can('editableOnDemo')) {
$user->groups()->sync($request->input('groups'));
}
} else {
$user->groups()->sync([]);
}
@@ -199,7 +201,7 @@ class UsersController extends Controller
}
$permissions = config('permissions');
$groups = Group::pluck('name', 'id');
$groups = Group::orderBy('name', 'asc')->pluck('name', 'id');
$userGroups = $user->groups()->pluck('name', 'id');
$user->permissions = $user->decodePermissions();

78
composer.lock generated
View File

@@ -5067,16 +5067,16 @@
},
{
"name": "nikic/php-parser",
"version": "v5.6.1",
"version": "v5.7.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2"
"reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
"reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82",
"reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82",
"shasum": ""
},
"require": {
@@ -5119,9 +5119,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v5.6.1"
"source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0"
},
"time": "2025-08-13T20:13:15+00:00"
"time": "2025-12-06T11:56:16+00:00"
},
{
"name": "nunomaduro/collision",
@@ -7495,16 +7495,16 @@
},
{
"name": "sebastian/comparator",
"version": "5.0.4",
"version": "5.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
"reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e"
"reference": "55dfef806eb7dfeb6e7a6935601fef866f8ca48d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e8e53097718d2b53cfb2aa859b06a41abf58c62e",
"reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e",
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55dfef806eb7dfeb6e7a6935601fef866f8ca48d",
"reference": "55dfef806eb7dfeb6e7a6935601fef866f8ca48d",
"shasum": ""
},
"require": {
@@ -7560,7 +7560,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
"security": "https://github.com/sebastianbergmann/comparator/security/policy",
"source": "https://github.com/sebastianbergmann/comparator/tree/5.0.4"
"source": "https://github.com/sebastianbergmann/comparator/tree/5.0.5"
},
"funding": [
{
@@ -7580,7 +7580,7 @@
"type": "tidelift"
}
],
"time": "2025-09-07T05:25:07+00:00"
"time": "2026-01-24T09:25:16+00:00"
},
{
"name": "sebastian/diff",
@@ -7651,16 +7651,16 @@
},
{
"name": "sebastian/exporter",
"version": "5.1.2",
"version": "5.1.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
"reference": "955288482d97c19a372d3f31006ab3f37da47adf"
"reference": "0735b90f4da94969541dac1da743446e276defa6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf",
"reference": "955288482d97c19a372d3f31006ab3f37da47adf",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0735b90f4da94969541dac1da743446e276defa6",
"reference": "0735b90f4da94969541dac1da743446e276defa6",
"shasum": ""
},
"require": {
@@ -7669,7 +7669,7 @@
"sebastian/recursion-context": "^5.0"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
"phpunit/phpunit": "^10.5"
},
"type": "library",
"extra": {
@@ -7717,15 +7717,27 @@
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
"source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2"
"source": "https://github.com/sebastianbergmann/exporter/tree/5.1.4"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
},
{
"url": "https://liberapay.com/sebastianbergmann",
"type": "liberapay"
},
{
"url": "https://thanks.dev/u/gh/sebastianbergmann",
"type": "thanks_dev"
},
{
"url": "https://tidelift.com/funding/github/packagist/sebastian/exporter",
"type": "tidelift"
}
],
"time": "2024-03-02T07:17:12+00:00"
"time": "2025-09-24T06:09:11+00:00"
},
{
"name": "sebastian/recursion-context",
@@ -14245,16 +14257,16 @@
},
{
"name": "phpunit/phpunit",
"version": "10.5.55",
"version": "10.5.63",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "4b2d546b336876bd9562f24641b08a25335b06b6"
"reference": "33198268dad71e926626b618f3ec3966661e4d90"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4b2d546b336876bd9562f24641b08a25335b06b6",
"reference": "4b2d546b336876bd9562f24641b08a25335b06b6",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/33198268dad71e926626b618f3ec3966661e4d90",
"reference": "33198268dad71e926626b618f3ec3966661e4d90",
"shasum": ""
},
"require": {
@@ -14275,10 +14287,10 @@
"phpunit/php-timer": "^6.0.0",
"sebastian/cli-parser": "^2.0.1",
"sebastian/code-unit": "^2.0.0",
"sebastian/comparator": "^5.0.4",
"sebastian/comparator": "^5.0.5",
"sebastian/diff": "^5.1.1",
"sebastian/environment": "^6.1.0",
"sebastian/exporter": "^5.1.2",
"sebastian/exporter": "^5.1.4",
"sebastian/global-state": "^6.0.2",
"sebastian/object-enumerator": "^5.0.0",
"sebastian/recursion-context": "^5.0.1",
@@ -14326,7 +14338,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.55"
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.63"
},
"funding": [
{
@@ -14350,7 +14362,7 @@
"type": "tidelift"
}
],
"time": "2025-09-14T06:19:20+00:00"
"time": "2026-01-27T05:48:37+00:00"
},
{
"name": "react/cache",
@@ -16454,16 +16466,16 @@
},
{
"name": "theseer/tokenizer",
"version": "1.2.3",
"version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
"reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
"reference": "b7489ce515e168639d17feec34b8847c326b0b3c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c",
"reference": "b7489ce515e168639d17feec34b8847c326b0b3c",
"shasum": ""
},
"require": {
@@ -16492,7 +16504,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
"source": "https://github.com/theseer/tokenizer/tree/1.2.3"
"source": "https://github.com/theseer/tokenizer/tree/1.3.1"
},
"funding": [
{
@@ -16500,7 +16512,7 @@
"type": "github"
}
],
"time": "2024-03-03T12:36:25+00:00"
"time": "2025-11-17T20:03:58+00:00"
}
],
"aliases": [],

View File

@@ -1,10 +1,10 @@
<?php
return array (
'app_version' => 'v8.3.7',
'full_app_version' => 'v8.3.7 - build 20803-gdba8cb83b',
'build_version' => '20803',
'full_app_version' => 'v8.3.7 - build 21025-ga8c268760',
'build_version' => '21025',
'prerelease_version' => '',
'hash_version' => 'gdba8cb83b',
'full_hash' => 'v8.3.7-250-gdba8cb83b',
'hash_version' => 'ga8c268760',
'full_hash' => 'v8.3.7-220-ga8c268760',
'branch' => 'develop',
);

View File

@@ -402,6 +402,7 @@ return [
'select_template' => 'Select a Template',
'label2_fields' => 'Field Definitions',
'label2_fields_help' => 'Fields can be added, removed, and reordered in the left column. For each field, multiple options for Label and DataSource can be added, removed, and reordered in the right column. Field changes made here will be reflected immediately in the preview below but must be saved for them to apply to new labels.',
"label2_label_preview" => 'Label Preview',
'purge_barcodes' => 'Purge Barcodes',
'help_asterisk_bold' => 'Text entered as <code>**text**</code> will be displayed as bold',
'help_blank_to_use' => 'Leave blank to use the value from <code>:setting_name</code>',

View File

@@ -51,11 +51,11 @@
@if ($api_url)
data-side-pagination="server"
data-url="{!! $api_url !!}"
data-url="{!! $api_url !!}"
@endif
data-export-options='{
"fileName": "{{ $export_filename }}",
"ignoreColumn": ["actions","available_actions", "image","change","checkbox","checkincheckout","icon"]
}'>
</table>
</table>

View File

@@ -21,8 +21,7 @@
</div>
</div><!-- /.box-header -->
<div class="box-body">
<table
name="fieldsets" id="sort" class="table table-responsive todo-list">
<table id="sort" class="table table-responsive table-striped snipe-table table-no-bordered todo-list">
<thead>
<tr>
{{-- Hide the sorting handle if we can't update the fieldset --}}

View File

@@ -157,7 +157,7 @@
{!! $errors->first('note', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
</div>
</div>
<!-- Custom fields -->
@include("models/custom_fields_form", [
'model' => $asset->model,
@@ -167,7 +167,8 @@
@if ($asset->requireAcceptance() || $asset->getEula() || ($snipeSettings->webhook_endpoint!=''))
<div class="form-group notification-callout">
<div class="row">
<div class="notification-callout">
<div class="col-md-8 col-md-offset-3">
<div class="callout callout-info">
@@ -190,6 +191,7 @@
</div>
</div>
</div>
</div>
@endif
</div> <!--/.box-body-->

View File

@@ -175,6 +175,11 @@
border: 1px solid hsl(from var(--btn-theme-base) h s calc(l - 15)) !important;
}
.btn-theme.active
{
background-color: var(--btn-theme-hover) !important;
}
.btn-theme:focus {
color: var(--nav-primary-text-color) !important;
}
@@ -529,14 +534,18 @@
.table-striped > tbody > tr:nth-of-type(even),
.row-new-striped > .row:nth-of-type(even),
.row-new-striped > .div:nth-of-type(odd) {
.row-new-striped > .div:nth-of-type(odd),
.cansort
{
background-color: var(--table-stripe-bg) !important;
border-top: var(--table-border-row-top) !important;
color: var(--nav-primary-text-color) !important;
}
.table-striped > tbody > tr:nth-of-type(odd),
.row-new-striped > .row:nth-of-type(even),
.row-new-striped > .div:nth-of-type(odd)
.row-new-striped > .div:nth-of-type(odd),
.cansort
{
background-color: var(--table-stripe-bg-alt) !important;
border-top: var(--table-border-row-top) !important;
@@ -729,8 +738,9 @@
.table > tfoot > tr > td
{
border-top-color: var(--box-header-bottom-border-color) !important;
border-top-color: var(--box-bg) !important;
border-bottom-color: var(--box-header-bottom-border-color) !important;
color: var(--color-fg);
}
@@ -1826,7 +1836,7 @@
<a target="_blank" href="https://bsky.app/profile/snipeitapp.com" rel="noopener" data-tooltip="true" data-title="Join us on Bluesky">
<i class="fa-brands fa-square-bluesky fa-fw"></i>
</a>
<a target="_blank" href="https://hachyderm.io/@grokability" rel="noopener" data-tooltip="true" data-title="Join us on Github">
<a target="_blank" href="https://github.com/grokability/snipe-it/" rel="noopener" data-tooltip="true" data-title="Join us on Github">
<i class="fa-brands fa-square-github fa-fw"></i>
</a>
<a target="_blank" href="https://hachyderm.io/@grokability" rel="noopener" data-tooltip="true" data-title="Join us on Mastodon">

View File

@@ -355,9 +355,9 @@
<x-slot:content>
<x-table
name="locationHistory"
api_url="{{ route('api.activity.index', ['target_id' => $location->id, 'target_type' => 'location']) }}"
api_url="{{ route('api.activity.index', ['item_id' => $location->id, 'item_type' => 'location']) }}"
:presenter="\App\Presenters\HistoryPresenter::dataTableLayout()"
export_filename="export-children-locations-{{ str_slug($location->name) }}-{{ date('Y-m-d') }}"
export_filename="export-locations-history-{{ str_slug($location->name) }}-{{ date('Y-m-d') }}"
/>
</x-slot:content>
</x-tabs.pane>

View File

@@ -4,7 +4,7 @@
<div class="btn-group" data-toggle="buttons">
@if ((isset($user_select)) && ($user_select!='false'))
<label class="btn btn-default{{ (session('checkout_to_type') ?: 'user') == 'user' ? ' active' : '' }}">
<label class="btn btn-theme{{ (session('checkout_to_type') ?: 'user') == 'user' ? ' active' : '' }}">
<input name="checkout_to_type" value="user" aria-label="checkout_to_type"
type="radio" {{ (session('checkout_to_type') ?: 'user') == 'user' ? 'checked' : '' }}>
<x-icon type="user" />
@@ -12,7 +12,7 @@
</label>
@endif
@if ((isset($asset_select)) && ($asset_select!='false'))
<label class="btn btn-default{{ session('checkout_to_type') == 'asset' ? ' active' : '' }}">
<label class="btn btn-theme{{ session('checkout_to_type') == 'asset' ? ' active' : '' }}">
<input name="checkout_to_type" value="asset" aria-label="checkout_to_type"
type="radio" {{ session('checkout_to_type') == 'asset' ? 'checked': '' }}>
<i class="fas fa-barcode" aria-hidden="true"></i>
@@ -20,7 +20,7 @@
</label>
@endif
@if ((isset($location_select)) && ($location_select!='false'))
<label class="btn btn-default{{ session('checkout_to_type') == 'location' ? ' active' : '' }}">
<label class="btn btn-theme{{ session('checkout_to_type') == 'location' ? ' active' : '' }}">
<input name="checkout_to_type" value="location" aria-label="checkout_to_type"
type="radio" {{ session('checkout_to_type') == 'location' ? 'checked' : '' }}>
<i class="fas fa-map-marker-alt" aria-hidden="true"></i>

View File

@@ -382,7 +382,7 @@
<fieldset name="label-preview">
<x-form.legend>
Label Preview
{{ trans('admin/settings/general.label2_label_preview') }}: <code>{{ $setting->label2_template}}</code>
</x-form.legend>
<div class="col-md-12" style="margin-bottom: 10px;">
@include('partials.label2-preview')

View File

@@ -600,6 +600,7 @@
<div class="controls">
<select
name="groups[]"
size="{{ ($groups->count() > 25) ? '25' : '10' }}"
aria-label="groups[]"
id="groups[]"
multiple="multiple"