* WIP - beginning of improved requested assets
- Use Ajax tables for faster loading
- Use new notifications for requesting an asset
TODO:
- Use ajax tables for requestable asset models
- Use new notifications for canceling an asset request
- Expire requests once the asset has been checked out to the requesting user
* Only show asset name in email if it has one
* Refactor requested method to only include non-canceled requests
* Refactored requestable assets to log request and cancelation
* Added softdeletes on checkout requests
* Differentiate between canceling and deleting requests
* Added asset request cancelation notification
* Added timestamps and corrected unique key on requests table
* Improved requests view
* Re-use blade for cancel/request email
* Refactored BS table formatter for requested assets
* Location name min reduced to 2
* Added PAT test as maintenance option
This needs to be refactored into database-driven options with a UI
* Better slack message
* Added getImageUrl method for assets
* Include qty in request notifications
TODO:
- Try to pull requested info from original request for cancelation, otherwise it will default to 1
* Removed old asset request/cancel emails
* Added user profile asset request routes
* Added profile controller requested assets method
* Added blade link to requested assets for profile view
* Sort user history desc
* Added requested assets blade
* Added canceled at to checkoutRequest method
* Include qty in request
* Fixed comment, removed allowed_columns
* Removed Queable methods, since we don’t use a queue
* Fixed return type in method doc
* Fixed version number
* Changed id to user_id for clarity
* Added “show fields in email” to custom fields
* Added “show images in email” to settings
* Added nicer HTML emails
* Break notifications out into their own, instead of trying to mash them all together
* Remove old notification for accessory checkout
* Janky fix for #5076 - “The asset you have attempted to accept was not checked out to you”
* Add method for image url for accessories
* Added accessory checkout email blade
* Make accessory email notification on checkout screen consistent with assets
* Added native consumables notifications
* Fixes for asset notification
* Updated notification blades with correct-er fields
* Updated notifications
* License checkin notification - does not work yet
Need to figure out whether the license seat is assigned to a person or an asset before we can pass the target
* Added alternate “cc” email for admins
* Only try to trigger notifications if the target is a user
* Fix tests
* Fixed consumable URL
* Removed unused notification
* Pass target type in params
* Show slack status
* Pass additional parameters
There is a logic bug in this :( Will send to slack twice, since the admin CC and the user are both using the same notification. Fuckity fuck fuck fuck.
* Pass a variable to the notification to supress the duplicate slack message
* Slack is broken :( Trying to fix
Will try a git bisect
* Put preview back into checkout
* Pulled old archaic mail
* Removed debugging
* Fixed wrong email title
* Fixed slack endpoint not firing
* Poobot, we hardly knew ye.
* Removed old, manual mail from API
* Typo :-/
* Code cleanup
* Use defined formatted date in JSON
* Use static properties for checkin/checkout notifiers for cleaner code
* Removed debugging
* Use date formatter
* Fixed target_type
* Fixed language in consumable email
* 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
* 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.
* 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
* 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.