v7.1.16

grokability/snipe-itv7.1.16Jan 22, 2025by snipe

AI Summary

A quality of life release featuring saved custom report templates, mobile view improvements, and fixes for table display issues, while warning of future PHP 8.2 requirements.

Key Highlights

  • Saved custom report templates
  • Mobile view fixes and card view
  • Addresses blank table lists by recommending localStorage
  • Improved mobile and desktop UX
  • Warning about future PHP 8.2 requirement

New Features

  • Saved custom report templates
  • Mobile view fixes
  • Card view for mobile
  • Auto-detect character encoding for CSV imports
  • Hide reset password functionality for LDAP users

Full Release Notes

> [!CAUTION]  
>  **Future major versions of Snipe-IT will requires PHP 8.2.0 or greater. Please update as soon as possible to avoid delays updating Snipe-IT moving forward!**

![liz-lemon-wednesday](https://github.com/user-attachments/assets/59e484d8-8245-4827-adc0-e5fd24949fd5)

Happy Wednesday, Grokstars! This release adds several small quality of life improvements on both mobile and desktop view, as well as some refactoring to make sure we have tests and a smoother transition as we begin focusing on Snipe-IT v8. 

We've also added saved custom report templates, so if you find yourself running different custom asset reports frequently, you can now save them instead of adding filter criteria each time. 

> [!NOTE]  
> If you end up seeing some blank table lists, do the following:

- Clear your cookies
- In your .env changing `BS_TABLE_STORAGE=cookieStorage` to `BS_TABLE_STORAGE=localStorage`. 
- Clear your config cache (if you use it): `php artisan config:clear`

We're encouraging everyone to switch to `localStorage` for that value, as folks with a lot of custom fields, etc can end up stuffing the browser cookie full and getting errors, whereas `localStorage` can hold a lot more info. (The `BS_TABLE_STORAGE` env var determines whether it's cookies or local storage that holds your sorting, pagination, search, etc preferences within the table.)

As mentioned above, future major releases of Snipe-IT will require PHP version 8.2.0 or greater, so get those servers upgraded!

## What's Changed

* Fixed Users API `update` from clearing `location_id` unnecessarily by @Godmartinz in https://github.com/snipe/snipe-it/pull/15889
* Use transformer for model files by @snipe in https://github.com/snipe/snipe-it/pull/16101
* Mobile view fix by @Godmartinz in https://github.com/snipe/snipe-it/pull/15890
* Hardened asset checkout validation by requiring integer by @marcusmoore in https://github.com/snipe/snipe-it/pull/15892
* Fixed #15901 - re-added required indicator on text and select custom fields by @snipe in https://github.com/snipe/snipe-it/pull/15904
* Revert "Hardened asset checkout validation by requiring integer" by @marcusmoore in https://github.com/snipe/snipe-it/pull/15908
* Included `MAIL_FROM_ADDR` in phpunit configuration by @marcusmoore in https://github.com/snipe/snipe-it/pull/15910
* Fixed general webhook option notifications not firing by @Godmartinz in https://github.com/snipe/snipe-it/pull/15909
* Added `MAIL_FROM_NAME` to mail envelope by @Godmartinz in https://github.com/snipe/snipe-it/pull/15918
* Added: Added Category to User Inventory Emails by @akemidx in https://github.com/snipe/snipe-it/pull/15920
* Fixed: `snipeit:acceptance-reminder` command, adds Mail class, adds acceptance reminder tests by @Godmartinz in https://github.com/snipe/snipe-it/pull/15925
* Fixed Vague Error Messages In Setting Asset Model Default Values by @spencerrlongg in https://github.com/snipe/snipe-it/pull/15565
* Only update asset locations to assets checked out to users. [Fixes: fd-45583 and fd-45702] by @uberbrady in https://github.com/snipe/snipe-it/pull/15939
* Fixed Unaccepted Assets Reports Resend acceptance reminder email function by @Godmartinz in https://github.com/snipe/snipe-it/pull/15914
* Added null safe operator to accepter reminder command by @Godmartinz in https://github.com/snipe/snipe-it/pull/15954
* Fixes `league/commonmark`'s quadratic complexity bugs may lead to a DoS by @joelpittet in https://github.com/snipe/snipe-it/pull/15955
* Set appropriate category for licenses when seeding by @marcusmoore in https://github.com/snipe/snipe-it/pull/15956
* Reversed order of the acceptance and note parameters in Mail listener by @Godmartinz in https://github.com/snipe/snipe-it/pull/15957
* Fixed frontend validation messages on create asset page by @marcusmoore in https://github.com/snipe/snipe-it/pull/15944
* Fixes to backup-restore 'clean' mode to better handle character sets and zero-values [Fixes: fd-45757, fd-44714, fd-44737, fd-44692] by @uberbrady in https://github.com/snipe/snipe-it/pull/15960
* Check for assigned (not `assigned_to`) before trying to `present()` the name of the assignee on bulk delete by @snipe in https://github.com/snipe/snipe-it/pull/15962
* Updated font awesome by @snipe in https://github.com/snipe/snipe-it/pull/15972
* Refactored Barcode Settings into Label Settings by @Godmartinz in https://github.com/snipe/snipe-it/pull/15446
* Next try accessories to locations rebased by @uberbrady in https://github.com/snipe/snipe-it/pull/15973
* Added `string` to Password Reset Username Rules by @spencerrlongg in https://github.com/snipe/snipe-it/pull/15987
* Renamed variables to match columns for label settings by @Godmartinz in https://github.com/snipe/snipe-it/pull/15986
* Added a few order options on audit report by @snipe in https://github.com/snipe/snipe-it/pull/15991
* Updated Checkout Button Permission for Predefined Kits by @spencerrlongg in https://github.com/snipe/snipe-it/pull/15982
* Added simple front end render tests by @marcusmoore in https://github.com/snipe/snipe-it/pull/15976
* Added tests around license checkin by @marcusmoore in https://github.com/snipe/snipe-it/pull/15975
* Added Consumable UI tests by @marcusmoore in https://github.com/snipe/snipe-it/pull/15965
* Added Accessory UI tests by @marcusmoore in https://github.com/snipe/snipe-it/pull/15964
* Hardened asset checkout validation by @marcusmoore in https://github.com/snipe/snipe-it/pull/15912
* Saved Custom Report Templates by @marcusmoore in https://github.com/snipe/snipe-it/pull/15714
* Fixed reset demo command by @marcusmoore in https://github.com/snipe/snipe-it/pull/15992
* Added check for valid asset before accessing properties by @snipe in https://github.com/snipe/snipe-it/pull/16003
* Fixed `tecnickcom/tcpdf` security CVEs by @joelpittet in https://github.com/snipe/snipe-it/pull/16013
* Fixed  #15977 - Set order by on companies by @snipe in https://github.com/snipe/snipe-it/pull/16024
* Removed the `table-responsive` div from several index blades by @Godmartinz in https://github.com/snipe/snipe-it/pull/15919
* Fixed migration causing issues with mariadb by @marcusmoore in https://github.com/snipe/snipe-it/pull/16028
* Pull `backup:clean` settings into config by @snipe in https://github.com/snipe/snipe-it/pull/16031
* Fixes the mail locale check by @Godmartinz in https://github.com/snipe/snipe-it/pull/16034
* Fixed acceptance reminder email formatting by @marcusmoore in https://github.com/snipe/snipe-it/pull/16035
* Fixed default values for label types in the DB by @Godmartinz in https://github.com/snipe/snipe-it/pull/16033
* Check for blank OR null on asset tag/serial formatter by @snipe in https://github.com/snipe/snipe-it/pull/16047
* Fixes : Following docs on running the project in production mode with docker defaulting to v6.1.4 by @AnouarTouati in https://github.com/snipe/snipe-it/pull/16009
* Update related asset when checkout acceptance created via factory by @marcusmoore in https://github.com/snipe/snipe-it/pull/16051
* Adds try/catch around notification failing with an inactive webhook for better user experience by @Godmartinz in https://github.com/snipe/snipe-it/pull/16050
* Added: Brother TZe 24mm D label by @aHVzY2g in https://github.com/snipe/snipe-it/pull/16018
* Fixed #16054: fix incorrect compose service name in the APP_KEY generation command of the Docker env file by @brlin-tw in https://github.com/snipe/snipe-it/pull/16053
* Added #15107: Customizable 2D Barcode Content for Asset Labels by @NebelKreis in https://github.com/snipe/snipe-it/pull/15747
* Moved keywords in language file by @snipe in https://github.com/snipe/snipe-it/pull/16061
* Conditionally update assets when user's location moves via LDAP by @uberbrady in https://github.com/snipe/snipe-it/pull/16046
* Fixed Asset Count on Users Index Page Counting Soft Deleted Items by @akemidx in https://github.com/snipe/snipe-it/pull/15981
* Docker Improvement: Change the logging channel to storage/logs/laravel.log file by @AnouarTouati in https://github.com/snipe/snipe-it/pull/16011
* Fixed debug mode disabled and composer dev dependencies not installed in docker dev container  by @AnouarTouati in https://github.com/snipe/snipe-it/pull/16010
* Fixed unaccepted assets report memory exhaustion bug, Optimized query by @Godmartinz in https://github.com/snipe/snipe-it/pull/16036
* Fixed `zerofill_count` field being ignored during set up by @marcusmoore in https://github.com/snipe/snipe-it/pull/16081
* Fixes #15017 - card view for mobile by @snipe in https://github.com/snipe/snipe-it/pull/16089
* Better hide reset password functionality for LDAP users by @snipe in https://github.com/snipe/snipe-it/pull/16091
* Automatically detect character encoding of CSV import files by @uberbrady in https://github.com/snipe/snipe-it/pull/16096
* Fixed #16000 - add S3 support for eula PDF downloads by @snipe in https://github.com/snipe/snipe-it/pull/16090
* Fixed #16097 - added location ID to location importer by @snipe in https://github.com/snipe/snipe-it/pull/16099
* Added `serial` as relation search by @snipe in https://github.com/snipe/snipe-it/pull/16102
* Added fragment to uploads for redirect by @snipe in https://github.com/snipe/snipe-it/pull/16105
* Migrate `Form::submit` helper by @marcusmoore in https://github.com/snipe/snipe-it/pull/16108
* Updated language files by @snipe in https://github.com/snipe/snipe-it/pull/16115
* Replace calls to `Form::password` by @marcusmoore in https://github.com/snipe/snipe-it/pull/16107

## New Contributors
* @AnouarTouati made their first contribution in https://github.com/snipe/snipe-it/pull/16009
* @aHVzY2g made their first contribution in https://github.com/snipe/snipe-it/pull/16018
* @brlin-tw made their first contribution in https://github.com/snipe/snipe-it/pull/16053

**Full Changelog**: https://github.com/snipe/snipe-it/compare/v7.1.15...v7.1.16