This should allow us to add custom fields to just about anything we want to within Snipe-IT.
Below are the commits that have been squashed together:
Initial decoupling of custom field behavior from Assets for re-use
Add new DB columns to Custom Fields and fieldsets for 'type'
WIP: trying to figure out UI for custom fields for things other than Assets, find problematic places
Real progress towards getting to where this stuff might actually work...
Fix the table-name determining code for Custom Fields
Getting it closer to where Assets at least work
Rename the trait to it's new, even better name
Solid progress on the new Trait!
WIP: HasCustomFields, still working some stuff out
Got some basics working; creating custom fields and stuff
HasCustomFields now validates and saves
Starting to yank the other boilerplate code as things start to work (!)
Got the start of defaultValuesForCustomField() working
More progress (squash me!)
Add migrations for default_values_for_custom_fields table
WIP: more towards hasCustomFields trait
Progress cleaning up the PR, fixing FIXME's
New, passing HasCustomFieldsTrait test!
Fix date formatter helper for custom fields
Fixed more FIXME's
Newer Laravel uses Symfony mailer instead of SwiftMailer, and that means
that some configs and functionality have changed
In this change, we update config/mail.php with the new config layout and
name/functionality changes
of note:
* New configuration layout supporting lots of new/different mailers
* MAIL_DRIVER has become MAIL_MAILER, though we'll support both
* MAIL_ENCRYPTION is mostly useless, and we mark it as such -- symfony
mailer detects which type of encryption to use automagically.
* MAIL_TLS_VERIFY_PEER is now available in case of self-signed
certificates on the mail server, of if you want to access it by a
different name, or by IP
Accordingly, we also update the .env examples, docker configs, and
the .env builder in the snipeit.sh installation script with the above
changes
Our locale directories are named things like 'en-US'. But the pluralization
code used by Laravel (through Symfony) requires locale names to be
in the format en_US. This change introduces a new Translator,
SnipeTranslator, which is a tiny set of changes against the built-in
one. It additionally adds a SnipeTranslationServiceProvider, which
loads up the new Translator.