* Add manufacturer to licenses. Shows in table and edit. Need to improve manufacturer view to show lists beyond assets still.
* Remove extra closing tags, formatting
* Work on making the manufacturer view show more options. Need to figure out how to change the table dynamically.
* Cleanup formatting and fix a few weirdities in hardware/view.blade.php
* Standardize on two-space tabs in this file, as it seems the most
* common.
* Fix a few places where we call number_format without guaranteeing the
* item is a number and not a string.
* Show a "No Results" message on components page if there are no
* components.
* Show table of licenses on manufacturer view page.
This reworks the ManufacturersController::getDataView method to delegate
the view to a sub method (currently assets or licenses, but plan to
extend to consumables/accessories/components as well). We then put tabs
at the top of the view to show multiple tables. This just duplicates
the table layout from licenses/index.blade, but I wonder if theres a way
to centralize that code, maybe through partials, over time..
The only known missing part of manufacturers for licenses would be adding it
to the importer, but the license importer should probably migrate to
object importer before doing too much more...
* Add manufacturer to accessory.
* Add consumables to the manufacturer view page.
This does two main things:
1) The importer now imports as numbers, not parsed strings. This allows
is to format values on output instead of input, which is what was
happening in most places.
2) Add a Helper::parseCurrencyString method and port everything to use
this. This checks to see if the value is numeric or empty, and returns
the appropriate value in all cases. Should fix all known occurances of
number_format expections.
* Prevent multiple checkouts of the same asset.
This adds a new method to the Asset model, availableForCheckout.
Port getDataTable to use availableForCheckout instead of doing the
check manually.
Fixes Issue #2347
* Use availableForCheckout in categories controller. Also gate the checkin/checkout actions here.
* Use gate and availableForCheckout in manufactuers as well.
The importer already formatted/parsed numbers on input into the db
(maybe it shouldn't have?) so running number_format on that string
throws an exception. Check to make sure the value is numeric before
formatting it.
* components.view should point to view, not create
* Fix comment
* Rename variable to accurately reflect its responsibility
* Fix line breaks in serial key, remove places where adding line breaks makes no sense. Fixes#2344
* If a user doesn't belong to a company, when scoping to a company we should only show items that don't belong to a company.
* Scope tables/items to the company they belong to when fetching items for the index.
* Fix asset count to also scope to company. This fixes dashboard view
* Exempt super users from the child company check to be consistent. Fixes license count on dashboard now that we scope everything
LDAP no longer fails completely when the connection settings are wrong, or when app key is messed up. Rather than auth as the admin user and search, we auth as the user themselves. Admin auth is only for LDAP sync now.
This should mean much fewer problems with donked LDAP settings and login.
* Fix adding an image to an asset when public/uploads/assets does not exist.
First check to see if we can create directory and do so. If any errors occur, display the error string as an error on the page.
* Add the public/uploads/assets directory to new installs.
* Add some comments explaining this code so I remember what it does next time.
This is a little janky, as it breaks up the errors into multiple screens if you don't have a status label type AND don't have a name. This is because the model-level validation won't work since we transmogrify that dropdown list of status label types into boolean values for the DB. Should eventually find a less clunky way to handle this, but needed to get a fix in now.
* Add model number column to the hardware list and allow searching based on model number. Column is hidden by default.
* Fix sorting. Add scope to order by model number.
If the requestable checkbox was not checked, it did not exist in the request.
Setting requestable to null in such a case would cause a violation because it should be 0/1.
Also fix a copy/paste where we reset requestable after checking for rtd_location_id.
1) Missing $admin_user in AccessoriesController::postCheckout(). Fixes#2183
2) AssetsController::postCheckin used the hardware url for the user link, not the user url