* Cleanup
* API tests for asset models and related cleanup/improvements
* Api license test. Tests incomplete because create/update/destroy are not implemented yet in the controller
* API Category tests.
* Manufacturers API Test.
* Implement License Create/Update/Delete Methods for API and enable test.
* Add missing gate for api. Fixes only superadmins being able to generate Personal Access Toekns
* Use the formated date helper to clean up verifications.
* Add Checkin/Checkout api tests.
* Accessories api test
* Add Companies API Test.
* Return ModelNotFound as a 404.
* Cleanups/simplficiations/updates.
* Locations api test.
* currency and image should be fillable on location.
* Update components api test.
* Use findOrFail so we return a 404 instead of a 200. Matches other item types.
* order_number should be fillable in component.
* Add updated_at and permissions to information returned from api for a user.
* Add users test and flesh out factory and fillable fields.
* Add test for assets method
* API status label test.
* Disable php7.2 for now on travis until the count(null) issues are remedied
* Add serial to update.
* API model not found should return a 200
* Work towards a functional travis. Step 1: Disable broken unit tests.
* Fix functional tests
This updates the login information and model factories to work with
changes to source.
* Importer name/full name fixes.
Fix a bug where "name" was used ambigously and mapping "item name" to
"name" would confuse the importer into thinking it should also be a user
name. Now we default to "full name" for the users name, and "item name"
for the item name. These are still both configurable through the custom
mapping.
Also update sample csvs and remove an outdated sample.
* Max length of supplier notes is 191, not 255, as per default laravel string length. Might make sense to change this to a text field in the future to match other places.
* Use sqlite/different db setup for unit tests.
* Fix assets api test.
* Fix Components API test.
* increase travis memory limit for functional tests.
* Use travis config for api tests as well.
* Fix memory limit file.
* Disable ApiComponentsAssetsCest until it's fixed.
* Added CSS for table toolbar
* Use maintenances API for table listings
* NIcer layout for allowed_columns in maintenances API
* Fixed#5014 - bootstrap cookie issues
* Fixed#5015 - bug when saving settings
* Refactored datatable code to use data attributes
* Updated dashboard with new table code
* Added - Order by group user count
* Updated groups to use new table attributes
* New license listing table code
* More bootstrap table implementations
* More BS table refactoring
* Improved bootstrap assigned assets
* New bootstrap for reports
* Misc BS fixes
* FIxed small issue with asset history display
* Removed multisort option
* JS refactor
* start work on fields in fieldset api
* revert CustomFieldsetsController
* fieldset associate / disassociate api
* fix variable names and payload
* fix variable name
* Add Asset Tag settings to Setup
* Add Locale Settings to Setup
* Add multiple company support to setup
* Changed the locale label name from 'site_name' to locale
Added default value for language to 'en' and multiple companies support
to 0 (false)
Switched out the old Input facade to the preferred $request->input
method for the setup page.
* Allow auto incrementing asset_id from the API when the setting is enabled
* Cleaned up the if else statement
* Added prefix to the orWhereRaw which causes a database error if the configuration uses a prefix
* Auto incrementing through the API
* Added form checkout selector partial
* Stupid stash
* Added radio button checkout selector javascript
* New compiled production assets
* Added $style override in form partials for select2 ajax lists
* Added checkout-to radio button selector
TODO: Fix for accessibility - currently cannot tab-select this radio button
* Added new checkout-to selector to hardware edit
* Added new checkout-to selector to asset checkout form
* Refactored postCheckout to use radio button submission
This defaults to user checkout if nothing is passed for some reason
* Better visual feedback on whether or not an asset is deployable in edit screen
* Migration - Labels Display Company Name setting
* Add Company Name to Labels
Add company name if it is turned on in settings and asset has a valid company
* Add Company Name checkbox to Label settings
* Add Company Name Lang
* Add display company name to postLabels
* Revert Add Company Name Lang
* Fix display company name in postLabels
* Change tinyInt to boolean for display company name
* Simplify checking for company and getting the name
* Change to square brackets for array notation
* Move divs inside if statements on optional fields
* More helpful text on how the custom validator works
* Clarified language of custom format, fixed regex example
* Fixed regex example in placeholder
* Added comments to custom fields
* Added regex validation string
* Added valid_regex validator in format requirements
* Removed useles comments
* Fixes#4236 - validate the regex custom validation
* Locations API support for image
* Added manufacturers API support for image
* Added manufacturers API support for image
* Added image support for locations add/update
* Added manufacturer image upload support to controller
* General image string
* Added blade support for image uploads/delete image
* Added $request support (from Input::)
* Added image support in API transformers
* Added image to Manufacturers presenter for data table
* Migration to create image fields
* Ignore the contents of the new image directories
* Create new image upload directories
* Created components/consumables uploads directory
* Fixed missing textSearch scope from companies
* Added ignore for companies uploads directory
* Added blade support for image upload
* Fixed path to upload directory on edit
* Added company image upport to transformers, controllers
* Added image support for categories
* Added support for images in Departments
* Added support for image in Consumables
* Added image support for components
* Ignore accesories uploads
* API: Allow searching accessories by supplier id
* Adds suppliers and image upload to accessories
* Allow sorting by counts for suppliers
* Validate supplier image uploads
* Remove purchase_date from protected accessory array, it was converting it to datetime in datepicker
* Fix old urls.
Still had some /admin/ urls floating around, which was causing bad
redirects in some instances. Should fix#4085
* The modal seems to be confusing license upload. be more explicit in the route we redirect to.
* Fix#4039. Use proper methods for location assets.
This also fixes a bunch of n+1 issues in the transformer. Also: curious
to know what Location::assets() does, because it doesn't do what I want
it to :)
When using the default Laravel auth routes, it expects a registration controller, even though we don’t have a concept of registration. This blank controller just prevents route caching from throwing errors.
* There is no notes field on accessories. Fixes Importer Test.
* Fix notification test. We should see a checkout not allowed exception when trying to check out to a location if the asset requires acceptance.
* Fix Custom field import.
Add a test for custom field import, and fix a few issues related to
importing custom fields. This will restore v3 functionality.
* Add UI support for mapping custom fields.
This still requires the field mappings to be created/assigned in
advance, but will fetch all custom field names and allow them to be
selected when setting up custom field mappings.
This commit also updates laravel-mix to v1.4.3 and other node
dependencies to fix some build issues.
* Fix some requestable asset page/assetloc issues. I'd love to know why laravel expections relationships to be in lower case... but thats a question for another day.
* Fix some n+1 problems
* Use route in notification dropdown to make sure we link to correct page
* Work on better UI support for checkout to non-user. Fix links on index bootstrap table, work towards eliminating assignedUser
* Remove Asset::assigneduser() relationship. Instead add a checkedOutToUser() method and/or port to using assignedTo()
* Adjust string to fit new reality
* Fix#3780. Move the consumables getDataView method to the ApiController. Not entirely RESTful, but it's a weird method that probably doesn't need its own controller and the functionality would be strange to stack on the userscontroller...
* Fix file uploads to assets and restore the delete route.
* Add asset maintence edit action to index.
* Suppliers asset list should link to the related asset, not to the supplier with same ID.
* Asset models page should use polymorphic formatter on assigned to to better handle assorted item types.
* Comment out more assigneduser fallacy until we figure out the query builder approach to searching for location text.
Working mail from notification. Still requires testing/cleaning
Add tests around checkout notification.
This also removes the ability to check out an asset to a location|asset
that requires acceptance/a Eula. For 4.1 we may think about how to
support such a thing, but at present it seems to make sense to only alow
such assets to be checked out to users, who can be responsible for the
items.
* Adds basic GET api support for CustomFieldsets
Currently there is not support for getting what fields a given fieldset contains
from the API. This commit creates a new API Controller for CustomFieldsets as
well as Transformers for CustomFields CustomFieldsets. Additionally, the api
route has been updated so that a show method can be access from
http://myapp/api/v1/fieldsets/{id}
* CustomFieldsetsTransformer only returns id and name of model
* Added index api method for CustomFieldsets
* Removes copy/paste error in CustomFieldsetController (including search)
* Added id to CustomFieldsetsTransformers
* Adds custom_fieldset_id as a field when storing and updating AssetModels
* Removed uncessesary parameter from CustomFieldsetsController.index
* Cleaned up CustomFieldset API
* Move importer to an inline-template, allows for translations and easier passing of data from laravel to vue.
* Pull the modal out into a dedicated partial, move importer to views/importer.
* Add document of CSV->importer mappings. Reorganize some code.
Progress.
* Add header_row and first_row to imports table, and process upon uploading a file
* Use an expandable table row instead of a modal for import processing. This should allow for field mapping interaction easier.
* Fix import processing after moving method.
* Frontend importer mapping improvements.
Invert display so we show found columns and allow users to select an
importer field to map to. Also implement sample data based on first row
of csv.
* Update select2. Maintain selected items properly.
* Backend support for importing. Only works on the web importer currently. Definitely needs testing and polish.
* We no longer use vue-modal plugin.
* Add a column to track field mappings to the imports table.
* Cleanup/rename methods+refactor
* Save field mappings and import type when attempting an import, and repopulate these values when returning to the page.
* Update debugbar to fix a bug in the debugbar code.
* Fix asset tag detection.
Also rename findMatch to be a bit clearer as to what it does.
Remove logging to file of imports for http imports because
it eats an incredible amouint of memory.
This commit also moves imports out of the hardware namespace and into
their own webcontroller and route prefix, remove dead code from
AssetController as a result.
* Dynamically limit options for select2 based on import type selected, and group them by item type.
* Add user importer.
Still need to implement emailing of passwords to new users, and probably
test a bit more.
This also bumps the memory limit for web imports up as well, I need to
profile memory usage here before too long.
* Query the db to find user matches rather than search the array. Performance is much much better.
* Speed/memory improvements in importers.
Move to querying the db rather than maintaining an array for all
importers. Also only store the id of items when we import, rather than
the full model. It saves a decent amount of memory.
* Remove grouping of items in select2
With the values being set dynamically, the grouping is redundant. It
also caused a regression with automatically guessing/matching field
names. This is starting to get close.
* Remove debug line on every create.
* Switch migration to be text field instead of json field for compatibility with older mysql/mariadb
* Fix asset import regression matching email address.
* Rearrange travis order in attempt to fix null settings.
* Use auth::id instead of fetching it off the user. Fixes a null object reference during seeding.
* Improvemenets to unit tests.
* Break up modelfactory into multiple files, populate many states.
* Begin testing validation at the unit test level, test relationships.
* Add tests for Asset::availableForCheckout.
* Model factories now generate all needed relationships on demand,
which allows us to unit test with a empty database.
* To faciliate the empty database, we move to using sqlite in memory as
the unit testing database.
* Fix bug with logs of checkouts to non users.
* Fix location finding for assets. Also Fix location show page to show users associated with location. Still need some work to show assets.
* More test and generator improvements
* More unit test fixes. PermissionsTest is borked still.
* More Updates
* Rewrite permissionstest. Check that we have access on the model level rather than via web requests. Also test delete permissions.
* Fix seeders.
* Make the default asset model factory generate assets that are rtd for testing.
* Save progress.
* Rebase tests, fix department unit test, update database for functional tests.
* Update functional and api tests to use new modelfactory signatures.
This is round one of the rethink of checkout-to-everything. A location
now has a manager field, and the manager (by default) be responsible for
assets checked out to the location.
If a user is disabled in your Active Directory, it should be deactivated in the licensing too.
The standard state is now deactivated for synced accounts.
Maybe we can change this throw a Setting for a standard state.
The codes comes from this site:
http://www.netvision.com/ad_useraccountcontrol.php
* Pave the imports table
* Format error response if file is the wrong type.
* If a custom field doesn't exist, don't insert a blank string into the custom fields table
* CustomField::db_column_name can return the stored name in the db. It's slugified when that value is set initially. This fixes a weird issue where _1 was replaced with _xx
* Refactored AssetsTransformer
Casted all ids to int, escaped all text values,
* Added warranty_expires attribute to Asset model
$asset->warranty_expires contains a Carbon object with the warranty
expiration date. Returns null when either purchase_date or
warranty_months are not set.
* Ignoring php-cs cache files
* Restored asset tests expectations
Work in progress - tests still fail
* API controller refactoring, fixed HTTP status codes in responses
* Restored $request->get - debugging
* Added further checks in ApiAssetsCest::updateAssetWithPatch
* /api_tests: Fixed bugs in update() method + code formatting
* /api_tests: Minor code formatting
* /api_tests: Mirrored test code for PATCH and PUT methods
* Removed repeated code
* Test cleanup
* Fixed issues with update() through PATCH and PUT methods
* Added API test suite to .travis.yml
* Refactored AssetsTransformer
Casted all ids to int, escaped all text values,
* Added warranty_expires attribute to Asset model
$asset->warranty_expires contains a Carbon object with the warranty
expiration date. Returns null when either purchase_date or
warranty_months are not set.
* Ignoring php-cs cache files
* Restored asset tests expectations
Work in progress - tests still fail
* API controller refactoring, fixed HTTP status codes in responses
* Restored $request->get - debugging
* Added further checks in ApiAssetsCest::updateAssetWithPatch
* Toggles the disabled state of auto_increment_prefix
To insert a prefix you had to toggle the checkbox, save the settings and reload. With this script it is immediate. Fixes#1390
* Delete asset image: made checkbox more visible
Related to #3153
* Added personal-access-token component
* Created basic API testing configuration
* First version of /components endpoind cest
* On-the-fly bearer token generation
* Completed testing of PATCH and PUT methods
* Added /components/{id}/assets route with tests
* Updated route and dataTable in view
* Completed test assertion
* Added links to assets in ComponentsAssets view
* Linked Company in AssetView page
* Bugfixes based on functional tests
* Removed unused function
* Marked tests as incomplete
* Added check for existence in groups/edit.blade.php
* Better error handling of failed file uploads. Also improve formatting of modal dialog
* Readd app.js to the js build, fixes collapsing sidebar
* Update JS
* Fix font size. We need to explicitly set the font size for the table because everywhere else that comes from bootstrap-tables
* Toggles the disabled state of auto_increment_prefix
To insert a prefix you had to toggle the checkbox, save the settings and reload. With this script it is immediate. Fixes#1390
* Delete asset image: made checkbox more visible
Related to #3153
* Added personal-access-token component
* Created basic API testing configuration
* First version of /components endpoind cest
* On-the-fly bearer token generation
* Completed testing of PATCH and PUT methods
* Added /components/{id}/assets route with tests
* Updated route and dataTable in view
* Completed test assertion
* Added links to assets in ComponentsAssets view
* Linked Company in AssetView page
* Begin work on vueifying the importer
* Beginning work on migrating the importer to use a vue/components for future interactivity
Update JS
More importer work. Move to a vue based modal, begin handling of processing. Still need to port error messages.
More importer work. Move to a vue based modal, begin handling of processing. Still need to port error messages.
Update importer. Add error display. Fix modal, update vue-strap to vue2
More progress. Add select2 vue bits.
* Move to querying the db to find importer matches. It scales better on large datasets.
Fix select2 related issues. We were trying to initialize it twice, which led to the custom data being overwritten.
* Better error handling on uploads and deletion of files. Restore progressbar on upload.
* Add support for generic exception reporting if app.debug is enabled.
* Handle Http 500 errors better. Display errors if debug is enabled. Assorted cleanups.
* Fix codacy issues, remove unused methods.
* Only bind vue to the importer for now.
* Load vue for passport as well.
* Major code simplification of the importers.
Move towards using Model::fill and Model::update rather than reinventing
the wheel. This makes the updating/creating logic a lot clearer, and
allows for the deletion of a lot of code. Also allows for supporting of
more fields in the future really easily.
* Cleanup constructors and use setters instead.
* Set the LC_MONETARY locale, and use it to strip currency symbols in Helper::parseFloat()
* Move licenseseat creation/deletion logic into an event handler on the model rather than the controller.
* Move the logging of parsed values to array_smart_fetch rather than writing it out everywhere
* Move to storing dates as carbon rather than strings. Allows for the parsing of more arbitrary strings from the importer
* Add a license importer with support for checking out to users or assets.
* Make a directory for sample/mock import csvs and populate it
* Adjust how we store/retrieve dates to fix some issues the tests found.