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
* Give advancedTextSearch all search terms at one
The additional conditions for assets had some problems, since they were joining tables for the additional attributes. The method was called once for every search term, so the join was added multiple times if the user entered multiple search terms.
* Allows search to handle multiple search terms better
The search now better handles multiple search terms, adding additional orWhere clauses, instead of duplicating all queries.
* Fixing typo
* Adds the ability to search by dates
Adding extra „where“-conditions to the „TextSearch“ queries, allowing the users to search by dates
* Adds missing dates to $dates in models
* Removes duplicated „where“ conditions
* Adds the Searchable trait to models, defining the searchable attributes and relations
* Removes the old text search methods
* Adds back additional conditions to the search
These conditions could not be modeled in the „attributes“ or „relations“, so we include them here
* Removes unnecessary check for the deleted_at attribute
* Fixes typo in comments
* suppresses errors from Codacy
We can safely ignore the error codacy is throwing here, since this method is a standin/noop for models who need to implement more advanced searches