Releases: laravel-enso/enso
Release list
v3.9.5
3.9.5
front-end
accessories
- updated components to use the
Userresource format for avatar - added localization button for addresses
activity-log
- updated components to use the
Userresource format for avatar
calendar
- fixed
EventConfirmation - upgraded to
vue-cal 3 - fixed style
categories
- updated for the new BE
- added
laravel-validationas dependency
charts
- small refactor
commercial (private)
- added
laravel-validationas dependency - updated import of
Errorsclass inRowLineto use the newlaravel-validationpackage
contracts (private)
- updated
Cardcomponent to use theUserresource format for avatar - uses
Avatarcomponent instead of img inCard.vue
directives
- fixed
clickOutsidewhen the target isn't a child of container - for solving this issue, added a deep modifier to check
containswith positions - updated
clickOutside
dropdown
- removed stop propagation as it uses the improved
v-clickOutside - added
disable-controlsboolean prop - fixed
disableControlsreactivity
emails
- added
laravel-validationas dependency
files
- updated components to use the user resource format for avatar
- added clipboard to
Url.vue
financials (private)
- added
laravel-validationas dependency
forms
- added the ability to customize wysiwyg's toolbar
- extracted
Errorsin its own package - added a new
RevealPasswordcomponent - uses
RevealPasswordinInputField
inventory (private)
- added
laravel-validationas dependency
laravel-validation (new)
- new package that contains an
Errorsclass that maps on the LaravelValidationExceptionmessages
mixins
- parses number for type safety in
shortNumber - removed unneeded dependency
permissions
- added
cssClassfor menus
projects (private)
- added
laravel-validationas dependency
roles
- updated FE for the new BE
Permissionresource
tables
- merged custom and column internal filter and smalls fixes
- small refactor in label
- added in-place editing filter
- improved logic in
FiltersandLabelscomponents - fixed eslint
- small refactor
- fixed internal filters without custom
teams
- updated components to use the
Userresource format for avatar - uses
Avatarcomponent instead of img inAvatarList
textarea
- updated eslint
typeahead
- improved behaviour when no results are found
- added
min-query-lengthproperty - added search event when pressing enter
- fixed axios cancel token
- provided query on item slot
- added optional search button
ui
- fixed theme and rtl
- updated
preferences.js - updated
AuthFormto display error messages instead of toastr - uses the new
RevealPasswordcomponent inAuthForm
webshop (new) (private)
wysiwyg
- updated eslint
back-end
activity-log
- updated
Timelineresponse to useUserresource instead ofTrackWho
addresses
- updated validator: changes
is_defaultto be required - removed unnecessary query
- removed form builder region label usage
- added rememberable in address
- fixed one liner
- added localisation functionality with google maps integration
- uses laravel Http instead of guzzle; refactor and cleanup
calendar
- added fixes such that:
- when an event in the middle of the sequence is deleted, then it should break the sequence first then delete events
- when series of events are updated in the middle of the sequence then it should not change the frequency
- when a sequence of events is deleted, then the cache will be invalid
- fixed frequency update, type equality in
ValidateEventRequest.phpand edge case when update date of an event in the middle of the sequence
categories
- improved recursive relations
- renamed
recursiveParentsrelation torecursiveParent - added
currentAndBelowIdsand relations trait - updated self relations to static
- added
parentTreehelper
commercial (private)
- updated client stock import
- cleanup in company service provider
contracts (private)
- updated
AdditionalActresource to useUserresource instead ofTrackWho
core
- added products and localize upgrade
- updated
LoginControllerto useValidationExceptioninstead ofAuthentication - fixed
ValidatePasswordRequestandForgotPasswordController
countries
- added region label model helper
discussions
- updated resources to use
Userresource instead ofTrackWho
documentation
- updated documentation for categories and products
dynamic-methods
- added scope support
files
- updated
Fileresource to useUserresource instead ofTrackWho - added new
publicPathmethod in trait & contract
io
- updated
IOresource to useUserresource instead ofTrackWho
measurement-units
- renamed
UNITSconstant from seeder toUnits
permissions
- improved permissions types, added
Permissionresource
products
- added
html_description, dynamic scopes to product and dynamic relations to category - removed unused
hasMappedProductsand addsmanufacturedProductsfor companies
roles
- improved roles validation
- uses resource in permission tree
tables
- fixed export edge case
- updated
Enum.php
teams
- updated
Teamresource to useUserresource instead ofTrackWho
Upgrade steps
To upgrade:
- run
composer updatein the project's root - run
yarn, yarn upgrade && yarnto ensure you have the latest versions and patches are applied. If necessary, update your patches - update the Enso version to 3.9.5 in
config/enso/config.php - the
Errorsclass was extracted fromenso-ui/formsto it's own packageenso-ui/laravel-validation. If using it locally, make sure to update the imports. - ensure that the
php artisan enso:upgradecommand is run - there is a new
localizeaddresses route added, please ensure that the roles/permissions are correctly configured for your projects and then save the roles configurations - update the
client/src/js/enso.jsfile using the package version as reference - make sure to have
vuex-router-syncdependency inpackage.json
3.9.4
front-end
accessories
- updated the user options route used for tagging
charts
- added a short number option to the
Chart.vuecomponent
commercial
- updated the bundled products index sample page
emag
- added a products index sample page
financials
- updated the index pages' filters to filter on
dateinstead ofdue date
inventory
- updated the bundled products index sample page
- switched from using the
RoAddressescomponent to using theAddressescomponent - updated the Addresses related components: cleanup and refactor due to new structure & fields
modal
- test if we are ready to release the new refactored modal
products
- added a product picture column for the index table
- made the product image clickable, which opens the image in a new tab
quick-view
- updated the default size (width)
roles
- fixed the configure and save buttons in role edit form
search-mode
- added Algolia support
tables
- fixes custom boolean internal table filters
ui
- fixed duplicate requests being made on language change
- removed deprecated media resources, which have been moved to the back-end
corepackage (and need to be published) - added custom modal for offering the choice of deleting a user simultaneously with its person
back-end
addresses
- the addresses package was completely refactored. It now supports regions and localities,
and some functionality was integrated from the ro-addresses package which will be deprecated. The update includes:- the addition of the region & locality model, relationships, routes, etc
- the
Countrymodel now has relationships with the above models - the update of the table and structure migrations
- the addition of an address select route/controller/resource
- the removal redundant country relationship load on the select options flow
- the update & enhancement of the address form and template
- the update of the address factory & seeders
- the addition of an unique index to regions
- the inclusion of a Region seeder for Romanian counties and US states
- the inclusion of a Locality seeder for Romanian localities
- the AddressFetch validator now uses the
TransformMorphMaptrait
avatars
- removed the
ensureFolderExistsmethod call - updated the
Filestest folder references as the config keyenso.files.paths.testing
has been updated toenso.files.testingFolder - the
Avatarmodel now uses theCascadesMorphMaptrait morphMapis now used for theAvatarmodel
calendar
- renamed notification template and updated button color
categories
- added a
hasChildrenscope and anisParenthelper method on theCategorymodel - updated request validator due to
MapsRequestKeysrefactor
core
- the
php artisan enso:storage:resetalso handles the creation of missing storage folders - the image resources previously present in the
@enso-ui/uipackage have been moved to the this package - renamed the resource publishing tag from
core-imagestocore-assets - added a FilesIndex upgrade service that attempts to set and unique index
on thefilestable to avoid any duplicates. If there are duplicated records present,
the upgrade will list the duplicates and skip adding the index - added upgrades for
Addresses,Documents,Files,Discussions,Comments, morphMap, which replaces class names with their corresponding short morph map keys - fixed user notifications which sometimes were not found
- added the ability to delete the attached person when deleting a user
- refreshed the email theme
- added an
Addressesmigrator due to the addresses' package refactor - removed the avatar label in the users table
- removed avatar label in users table
companies
- refactored to use
mapMorphs: theCompanymodel now uses theCascadesMorphMaptrait
comments
- added controller for customizing taggable users
- the
Commentmodel now uses theCascadesMorphMaptrait
countries
- added the
Relationstrait on the model, so it can support dynamic relationships
data-export
- refactored to use
mapMorphs: theDataExportmodel now uses theCascadesMorphMaptrait
data-import
- updated the
filestest folder references - refactored to use
mapMorphs - fixed rejected import deletion bug causing rejected files to not be deleted
- fixed rejected import file name bug causing the file to have the extension added twice
- added a cleanup upgrade for left-over rejected models & files in core
documents
- updated the
filestest folder references - added the
$foldervariable to theDocumentmodel - the request validator now uses the
TransformMorphMaptrait - the
Documentmodel now uses theCascadesMorphMaptrait morphMapis now used for theDocumentmodel
discussions
- the request validator now implements the
TransformsMorphMapinterface - refactored to use
mapMorphs: theDiscussionmodel now uses theCascadesMorphMaptrait
files
- refactored the paths config: now attachable models should have a
$folderproperty or afolder()method - updated the
Filestest folder references as the config keyenso.files.paths.testing
has been updated toenso.files.testingFolder - added handling logic for tests within the
HasFilefolder()method - refactored to use
mapMorphs: theUploadmodel now uses theCascadesMorphMaptrait
filters
- adds Algolia support in search mode
forms
- when building the form, the enums are now resolved from the service container
- fixed the toggling of tab visibility
- makes section's columns size customizable when building a form via the
columns(string $field, int $value)method,
where the$fieldparameter is used to identify the section to be modified
helpers
- added a searchable trait for Scout that makes sure that reindexing is performed only when indexed attributes are changed,
avoiding unnecessary Algolia operations - added the Sleep service class that can be used to sleep during code execution
!! - moved the
VatRatesenum from thefinancialspackage - improves
MapsRequestKeystrait - added
morphMapKey()method to theCascadesMorphMaptrait which determines the model's morph map key - added the
TransformMorphMaptrait
how-to
- refactored to use
mapMorphs: theVideomodel now uses theCascadesMorphMaptrait
localisation
- updated language resources
- fixed some bugs found when adding keys
- renamed
localisation-lang-filestag intoenso-localisation.
Under this tag we're publishing only Laravel's lang files - removed unused localisation files from the
appdirectory - local translations are now saved to the local
appdirectory when adding or updating - core translations are now saved to the enso localisation package directory when adding or updating
- local app localisation resource files are now merged with the enso package's localisation resource files
- added
SanitizeAppKeysclass in order to remove from app localisations the keys found also in enso localisations - added some missing translations
menus
- add the
isParent&isNotParentscopes on the Menu model
people
- added internal table filter for filtering people with/without users
- refactored to use
mapMorphs: addedCascadesMorphMapon thePersonmodel - optimizes the
company()helper query - person now touches user on each edit
products
- added
nameandpart_numberto the options builder$queryAttributesvariable - the
Picturemodel now implementsAuthorizesFileAccessand access is allowed by default - added validation to disallow the selection of a parent category in the product form
- added product pictures to the products table
- updated publish tag & paths from
'products-resources', 'enso-resources'to'products-assets', 'enso-assets' - updated the default image
- removed package's
VatRatesenum and switched to using theVatRatesfrom theHelperspackage - updates package product factory re: measurement units, causing the creation of a new measurement unit
if one was not provided to the factory - shortened the picture label in table template
- the picture now touches the product
ro-addresses (deprecated)
- the package is now deprecated, will not be maintained and should no longer be used
select
- added Algolia support, which is disabled by default
services
- updated
VatRatesimport post enum refactor - fixed service factory re: measurement units bug, causing the creation of a new measurement unit when one was
not provided - the vat percent is now a selectable value within the form
- fixed description field width (full column)
tables
- on big tables, totals are shown only when
forceInfoistrue - fixes raw total edge case when using bindings in the query select statement
- added Algolia support, which is disabled by default
- fixed internal bug in custom filters without server side options
upgrade
- small refactor & fixes; updated structure migration reported message
Upgrade steps
To upgrade:
- run
composer updatein the project's root - run
yarn,yarn upgrade && yarnto ensure you have the latest versions and patches are applied. If necessary, update your patches - update the Enso version to 3.9.4 in
config/enso/config.php - if using the
MapsRequestKeystrait, within the respective request validators, update the controllers to use$request->validated()instead of$request->mapped() - for all the enso models that use the
Addressable,Commentable,Discussable,Documentabletraits, we are now usingRelation::morphMap(...)
and short keys instea...
3.9.3
front-end
categories
- removed deprecated routes & pages
- added the
CategoryTreeVue component featuring an improved flow, CRUD & reorder abilities - updated dependencies
- updated move route
- now the selected category is cleared when destroying category
- fixed the package entry point
calendar
- added translation for the calendar's name
charts
- fixes typo/leftover regarding the label formatter function
- fixed data-labels with formatter
- fixed progress in info-panel
commercial
- added short numbers to the stats info panel
- added picture to items
- pictures are now vertically aligned in the product selection typeahead
control-panel
- removed unneeded dependency
- made all top columns narrow
emag
- updated routes
- ui updates
- adjusted for missing match's pictures
- refactor to make available more information in sub components
- fixed enum option name
- unmatched products with a selection of emag products are now styled differently
- refactored components
- fixed missing product id
- now modal is closed when match choice is made
- matching process fixes
- further tweak for the modal closing; removes published/is_published usage
financials
- added short-numbers to info panel
modal
- removed deregisteration from
close, added it tobeforeDestroy
products
- updated form for the new
CategoryTree.vuecomponent - added box on categories in form
- added picture gallery
- updated
BaseFormfor gallery - added missing dependency
- added missing import
select
- fixed bug related to the disabled selection of options while loading the option list
ui
- parses number for type safety for the
shortNumberformatter
uploader
- added support for manual uploading
back-end
categories
- updated factory
- fixed validation bug
- fixed moving of categories within the tree
- updated the move route
cli
- refactored to get rid of deprecation notice
core
- adds categories upgrade
- fixes user conflict exception
files
- changed resize / optimize order
image-transformer
- allows transformer to work with local files too
products
- added product pictures
- fixed reordering
- added a picture relation for the default picture (order_index 1)
- removed
activefilter from product options controller
roles
- updated to use injected service in command handle method
upgrade
- fixed default role permission syncing
- updated
Structure.php - fixed typo and default role query
- added a new
ShouldRunInConsolecontract - removes invalid logic
- removed deprecated exception
Upgrade steps
To upgrade:
- run
composer updatein the project's root - run
yarn,yarn upgrade && yarnto ensure you have the latest versions and patches are applied. If necessary, update your patches - update the Enso version to 3.9.3 in
config/enso/config.php - if using the
categoriespackage, ensure that thephp artisan enso:upgradecommand is run
v3.9.2
3.9.2
front-end
Front-end packages have had their yarn.lock file removed as it wasn't mandatory and fixed various automated depencency vulnerability warnings.
accessories
- removed
tooltip.jsas direct dependency - fixed comments' avatar display
- reverted to 'component'-wrapper class names for the
DiscussionsandCommentscomponents
categories (new)
- created a new package which is currently a dependency of the products package
charts
- added a new component, info panel to the package
- added slot for controls
- now performs fetch on source change
- added missing shortNumber filter
- added default min:0 for y axis ticks
- improved chart to use formatter function on y axis
commercial
- added stats example page
- added missing package dependencies
- fixed product select template
- updated
QuickViewcomponent import - added a github issue template to the repository
confirmation
- removes
tooltip.jsas direct dependency
data-import
- updated/fixed the Enum usage
- added a github issue template to the repository
departments
- updated menu icon
- updated ui dependency requirement
directives
- added a new
v-resizedirective, meant to be used with input fields, that resizes the field based on its content length
dropdown
- removed
popper.jsas dependency - cascaded the
hide()method; - fixed the proper closing of drop-downs when dealing with multiple drop-downs
- added stopPropagation for
clickevents - tweaked the component height to have it aligned with other Enso UI components
enums (new)
- micro package that exposes Enum functionality, similar the the back-end package with the same name
filters
- removed
tooltip.jsas direct dependency @enso-ui/stringswas added as a dependency as some utility methods are used withinCoreDateFilter
forms
- removes tiptap as dependency
hr
- added fa-pro dependency
- removed unneded dep
inventory
- added addresses to the warehouse edit form as a result of adding an address relationship to the warehouse model
- the
@enso-ui/productsdependency was updated to the new minor version - added a github issue template to the repository
permissions
- the
permission.jsmixin was converted to a module - added a github issue template to the repository
quick-view
- added a github issue template to the repository
- removes unneeded
@enso-ui/carddependency
roles
- updated the roles configuration component to work with the new permission module
- added a github issue template to the repository
search-mode (new)
- added support for
exactanddoesn't containmatching - added stopPropagation for the
clickevent
strings (new)
- micro package that contains a set of string manipulation methods
tables
- added support for configurable, state persistent, general filters
- addressed bug tooltip position bug for some tables with one or two rows
- translation support was added the column visibility selection
@enso-ui/selectwas added as dependency as dropdown usage was replaced by select@enso-ui/enumswas added as dependency as Enum computation was added to the front-end- added support for average totals
- extracted search in its own component
- fixed some layout problems in the top controls
- fixed a bug where a double fetch was performed when resetting preferences
- trimmed down request by removing garbage data
- fixed preferences handling
teams
- added a github issue template to the repository
- fixes team name padding in card
themes
- added the
sidebar.scsscomponent as part of the fix for the UI menu issue
tutorials
- updated column name in the index table
- updates enum slot to the new table
- added a github issue template to the repository
typeahead
itemEvents&highlightattributes are now exposed in items slot
products
- fixed directives requirement/import
- added category selection to the product form as the product model now has a category relationship
@enso-ui/categorieswas added as a dependency- added a github issue template to the repository
select
- updated the multi-select trigger css (set height & min-height)
- extended selection slot to also cover the 'no selection' or 'no options' scenarios
- fixed bug where select height was not matched with inputs
- fixed
select/deselectevents payload to include full object when working in objects mode
ui
- fixes collapsed sidebar label position on scroll
- removed
tooltip.jsas direct dep - fixed navbar search tag filtering
@enso-ui/enumswas added as a dependency- fixed bug related to missing a background color for the menu, on mobile usage mode
- used interpolation syntax for scss variables usage
back-end
addresses
- replaces helper with facade
- added checks for single vs multi address support
avatars
- now the supervisor can update the avatar of the impersonated user
- refactored Default Avatar service, the create method returns now the freshly created avatar
- improveed the logic in test
calendar
- removed event body from the birthday calendar
- refactored event request validator
- fixed logic in event policy causing users with the proper roles to not be able to edit certain events
categories (new)
- the package adds categories functionality and is currently a dependency of the products package
charts
- now axes are displayed by default
cli
- removed log
- fixed bug that was not allowing the creation of a parent menu with null route
control-panel
- fixed bug caused by url leading slashes
comments
- fixed the user resource used for displaying the avatar
companies
- fixed the publish tag
- added importer & excel seeder
- fixed enum usage
- updated the static Company model
ownermethod
currencies
- added slot for the symbol table column
data-import
- fixed rejected import download
- removed deprecated attribute from table select
- fixed enum usage in table
filters
- fixed Hour typo related bug
- added
TimeSegmentsenum & timeSegment getter and property in theIntervalservice - extended comparison operators with Equal, Is, IsNot, NotLike, NotILike
- extended search modes with exact and doesn't contain matching
- fixed a bug in the search service when having falsies as value
- adds tests for the new search modes
forms
- enums are now resolved from the service container
localisation
- updated a 'ro' translation value
permissions
- improved computed type by adding a Verbs enum
phpunit-pretty-print (new)
- created a phpunit pretty printer package
products
- added vat rates enum
- improved form
- added category attribute & functionality to the package
- added upgrade service to products
ro-addresses
- added missing facade import
- updated index controller for the new for scope
- refactors seeders
- added factory & tests
- fixes validator by adding missing attribute
select
- fixed resource instantiation via the usage of dependency injection
tables
- refactored optimal chunk service & its respective test
- enums are now resolved from the service container
- fixes enum localisation when building template
- added support for configurable, state persistent, general filters
- updated api version
filterableis now a supportedmetaattribute within the json table configuration files used to mark columns that are filterable using the new filtering functionalityaverageis now a supportedmetaattribute within the json table configuration files used to mark columns for which we want a average type of total- updates backend for the new trimmed request
- added some missing return types for methods
- fixed a bug in
rawTotalswhere the result was being cast toint - fixed an inconsistence where the columns was mapped in a Collection instead of a Obj
- added support for
exactanddoesn't containsearch modes - removed Enum computation in favor of front-end handling
- renamed the
fetchModemethod toserverSide - added enum transformation for front-end enum processing
upgrade
- fixed exception method signature
- fixed admin role syncing in production for structure upgrade
The new tables filters
While the new minimum configuration table filters are implemented and you may test drive them (by adding the "filterable" attribute in the table columns' meta arrays, and then configuring the filters from the table's UI), please note that some of the filters configuration options/values/structure may change. We therefore don't recommend using them just yet in production.
When this feature will reach what we consider a stable form, the various options will be explained and the documentation updated.
Upgrade steps
To upgrade:
- remove from
client/package.json:- extract-text-webpack-plugin
- popper.js
- postcss-cssnext
- add in client/package.json
- postcss-preset-env
- run `composer require --dev laravel-enso/phpunit-pretty-print
- add in
phpunit.xmlprinterClass="LaravelEnso\PHPUnitPrettyPrint\PrettyPrint" - run
composer updatein the project's root - run
yarn && yarn upgrade && yarnto ensure you have the latest versions and patches are applied. If necessary, update your patches - update the Enso version to 3.9.2 in
config/enso/config.php - in
config/enso/tables.phpupdate thecomparisonOperatorandsearchModeskeys to:
'comparisonOperator' => ComparisonOperators::Like,
'searchModes' => [
SearchModes::Full, SearchModes::StartsWith, SearchModes::EndsWith,
SearchModes::ExactMatch, SearchModes::DoesntContain,
],- in
config/enso/select.phpup...
v3.9.1
3.9.1
The release includes a complete refactor of the main Menu and many small changes and fixes both on the back-end and the front-end.
front-end
accessories
- updated avatarLink usage
- removes
quick-viewdue to extracting it to its own package
calendar
- switched
vuecalto default grey theme - added translation for the small calendar
card
- added
is-nakedon card control
checkbox
- updated the
CheckboxItems.vuecomponent class
commercial
- updated enso date filters usage
contracts
- fixed parties enum in
Index.vue - updated enso date filters usage
financials
- updated enso date filters usage
how-to
- fixed template upload vertical alignment
logs
- log card controls are now naked instead of success/info/danger
mixins
- updated last route / intended route mutation usage
modal
- small refactor
projects
- fixed icon for the
ProjectCardcomponent
quick-view (new)
- replaced hardcoded scss
topvalue with variable in order to detect navbar height
route-mapper (new)
- new micro package which contains the route mapping logic
tables
- fixed tag width on boolean columns
- removed unnecessary span around cells
- improved top controls
- updated search layout
- enhanced column visibility & style selector
- added helper for invisible columns
teams
- fixed team name padding in card
themes
- renamed the
is-hoverablehelper tois-hoverable-item - added a settings component
- improved the font import, made it easier to customize
- added
Mulias family secondary font, used for the refactored menu - adjusted shadows for
is-raised,raises-on-hover, box and card - made changes to improve contrast for both themes
typeahead
- drop down events are now cascaded
- exposed
itemEvents&highlightin theitemsslot
toastr
- vertically centered the message icon
ui
- removed deprecated
Route.js - refactored document title,
route.js - small refactor in
Loader.vue - now using intendedRoute & intendedPath when redirecting a logged out user after login
- renamed
MenuStatetoSidebarState - implemented sidebar and navbar variables
- updated aside shadow to be more discreet
- changed page header animations to simple fade
- updated navbar elements
- changed order for sidebar control
- added tooltip on env indicator
- removed arrow from notifications
- added a long awaited user dropdown when clicking the user profile link that allows quick logout
- upgraded search:
- by default it is hidden
- can be activated by clicking the search icon or using the
/key - on
esc& blur it hides itself
- updated sidebar / menu style:
- made the sidebar wider
- added a new font
- increased the menu-label & menu-item font
- updated highlighting and selected state of menu
- the parent menu now remains open when changing to a menu with a different parent
- added a visual indicator / handle for menu reorder
- refactored the way active menus are managed
- refactored store
- renamed
menusstore module tomenu - renamed
layout/menumodule tolayout/sidebar - renamed
layout/settingsBartolayout/settings - added a
layout/searchmodule for managing the global search state - integrated the logout request into the
auth.jsmodule
- renamed
- made the user group forms smaller
- updated the avatar component to use the user resource format
- added footer resize on sidebar collapse
- added footer transition
- made bookmarks shadow similar to that of the sidebar
- renamed sidebar related classes (menu => sidebar)
- set the menu font smaller (0.95em)
- fixed bug in search when selecting from list
- updated the sidebar state's label
back-end
All back-end packages have been updated due to renaming the app folder to App. You can find more information below.
avatars
- fixed trait folder name
- added unique constraint for the
user_idcolumn
cli
- refactored logic & tests as needed to support the generation of files in both local & package modes, using the correct case for the App folder
companies
- added a default, open/permissive policy for the controller actions
- project specific logic can be created locally when needed, by extending and binding a new policy
core
- added a
rolerelation to user group - adjusted the user group form
- updated the way the avatar is shown in users table
- added a unique constraint for the
user_idcolumn in theavatarstable - fixed namespace for the avatars upgrade command
currencies
- dropped Types from migrations
data import
- removed deprecated parameter from the
UploadedFileconstructor call
excel
- fixed namespace for ExcelExport from
LaravelEnso\Excel\App\ExportstoLaravelEnso\Excel\App\Services
filters
- fixed incorrect interval filtering by returning copies of the carbon objects
- adds a new search service to be used for query builder searching
helpers
- added a new
Whenhelper trait which can be used in a similar fashion to query builder style
localisation
- added translation keys for the Sentry front-end error report form
- small keys cleanup
- updated localisation form layout
- updated user translation for the 'ro' language files
menus
- moved attribute set from tree builder to resource
- added an
activeattribute to the resource
people
- added a default, open/permissive policy for the controller actions
- project specific logic can be created locally when needed, by extending and binding a new policy
- multi-tenant specific request authorization logic has been removed form the request validation
- fixed test
products
- fixes failing tests when suppliers are not given
searchable
- implemented the new search service from laravel-enso/filters; removed local logic
select
- refactored traits, used the new
Whenhelper trait for a more fluent, conditional flow
tables
- implemented the new search service from laravel-enso/filters; removed local logic
upgrade
- fixed the structure migration
- fixed the default role permission syncing
- refactored native php function to collection for better readability
Upgrade steps
It was necessary to rename the app folders as with newer composer versions,
the tool would complain (show notices) about the namespace not being psr4 compliant.
If these notices were to be present when deploying, Envoyer would stop the deploy process.
However, since the namespaces remained the same, these changes should not affect you.
To upgrade:
- run
composer updatein the project's root - run
yarn,yarn upgrade && yarnto ensure you have the latest versions and patches are applied. If necessary, update your patches - update the Enso version to 3.9.1 in
config/enso/config.php - if using the
ExcelExportclass locally, search & replaceLaravelEnso\Excel\App\Exports\ExcelExportwithLaravelEnso\Excel\App\Services\ExcelExport - if directly using import templates from any of the Enso packages, update the path to the JSON templates in
config/enso/imports.php
v3.9.0
3.9.0
This release includes many improvements and new features, bugfixes as well as the upgrade to Laravel 7.*.
Since the Laravel upgrade contains some pontetially breaking changes, you should take a look at the official upgrade instructions to see if/how you're affected.
front-end
bulma
- added components:
TreeView,CheckboxManager,CheckboxItems,QuickView
calendar
- fixed the event slot, due to the
VueCalupdate - fixed an UI template issue when the selected option was not ready
- added an update action when an event was modified via drag & drop due to the new VueCal feature
- fixed display for long calendar names
- refactored event update confirmation modal - now uses buttons instead of radio buttons
categories (new)
- created package that handles product categories
checkbox (new)
- created package with checkbox items & manager components - extracted from the roles package (role configurator)
clipboard
- added clipboard support for passing an argument to the copy method - the argument represents the value that you want copied to the clipboard
commercial
- small UI updates for the order lines
- cleanup of unused injection in
FormContent - implemented order lines reload when trying to add a line to an order with stale data
companies
- added a new
websiteattribute to the company model and as a result, a new column is visible and clickable in the index table - a corresponding upgrade was added to Enso (more information below)
discounts
- small refactor of the package's pages, removing duplicated code
dropdown
- updated dropdown item selector strategy
emag
- updated form content & extracted logic into the
EmagOrdercomponent - added check for the presence of the emag order id value
filters
- removed the deprecated SimpleDateFilter/ EnsoSimpleDateFilter components
- refactored & improved date filter to handle more intervals
financials
- improved payment type filtering logic, to work better with internationalization
- improved client filter to work better when used together with local state loading
mixins
- fixes throwing unkown errors
- makes
errorHandlermore readable
permissions
- permission
typewas extracted to a dynamic computed property and the db table's column was dropped - added mixin with the CSS class used for the different permission types
roles
Configure.vuenow uses the new@enso-io/checkboxfunctionality which was extracted to a distinct package that roles now depends on
search-mode (new)
- a new dependency package that permits switching between the different search modes (full, starts with, ends with)
- this new package is now utilized by select, typeahead and tables
select
- fixes the
shouldDisableDropdown/dropdownDisabledcomputed property - improves the reload handling
- added a
searchLimitproperty, with the default value fo 10 - added the new search mode functionality (hidden by default)
quick-view (new)
- a new dependency package that contains the
QuickViewcomponent, extracted from the accessories package - the quick view default width was updated (is a little larger)
tables
- enhances support for highlighting rows
- fixes tr
:keyattribute
themes
- added an
is-hoverablehelper class
toastr
- added a
whenmethod that allows fluent syntax while having conditionals
tree-view (new)
- added new package for the
TreeViewcomponent
typeahead
- fixed the display of the 'no results' message visible when there are no results available
- added ongoing request cancellation when multiple requests are made
- added the new search mode functionality (hidden by default)
ui
- fixed the
shortNumberfilter, so that it does not alter 0 as well negative numbers - fixed an edge case in
Enum.js - removed the dashboard route and page from the ui package (were moved to the local project)
- menus related components refactor (
has_childrenattribute usage changed tohasChildren) - refactored toastr usage in
Notifications.vue& fixed small bug when toaster level was not specified - adds support for redirect after login
- fixes edge case where error was sometimes not thrown when using the the
errorHandler - updated Sentry integration, the
RAVEN_DSNkey is no longer required
back-end
The type attribute has been deprecated for structure migrations - all the packages with such migrations have been updated and have had the attribute removed.
Also, dependencies were updated as required.
action logger
- adds index on
created_atcolumn
avatars
- adds avatar resource
calendar
- refactors tests, adds validation for event destroy, updates validation for event, refactors frequency and sequence logic
- adds formatting for reccurence end date for parent event
- adds check for sequence break so it is no longer performed when not needed, if performing update on first event in the sequence
- renames update type enum labels
- fixes bugs
categories (new)
- added new package that handles product categories
cli
- removes deprecated permission Types from stubs
commercial
- refactors
inCentsto decimal, small changes due to refactor - updates migrations
- client stocks supplier is now optional
- updates client stock import
companies
- adds new
websiteattribute (nullable)
core
- updates for Laravel 7
- removes
jessengers/date - adds DB upgrade for permissions
- adds
enso-aggregatorto composer.json - extracts upgrade logic in its own package
- update due to
JsonParsertoJsonReaderrename - adds companies upgrade command due to new
websiteattribute - updates failed jobs id to bigIncrements
- adds
User&Grupresources - refactors
AppStateto return resources
countries
- update due to
JsonParsertoJsonReaderrename
data import
- fixes edge case for cells that need trimming
- fixes tests to work with the new
UploadedFile - returns array from template show / store controllers
- update due to
JsonParsertoJsonReaderrename
discounts
- decimal discounts refactor
files
- adds a
modelhelper to the facade - refactors deprecated
getClientSizeandgetClientMimeTypeinFiles.php
filters (new)
- new package that can work in tandem with the front-end date filter component to generate date interval values for queries, graphs etc
forms
- update due to
JsonParsertoJsonReaderrename
financials
- refactors
inCents - modifies computors
- fixes supplier payment factory
- various small updates: updates suppplier payment validator, adds return types for methods, adds typed properties, updates factories, updates tests
- reverted to explicit asserts
helpers
JsonParserwas renamed toJsonReader- adds
Whenhelper trait
hr
- refactors
inCents
inventory
- fixes manual transactions for persistent processes
- refactors
inCents
localisation
- updates middleware to use
Carboninstead ofJessengers\Date - update due to
JsonParsertoJsonReaderrename - fixes typo in factory
menus
- adds a
Menuresource - updates tree builder to return collection
notifications
- fixes test to fit the new
Carbonserialization for models
people
- adds person resource
permissions
- small fixes
- refactors type into computed property
products
- refactors
inCentsto decimal - updates request validation by adding internal code unique rule
projects
- removes Types from migration
rememberable
- adds return null if id is null
roles
- refactors permission tree to work with permission computed type
- encapsulates config writing in model
- adds a role resource
select
- adds searchMode
services
- refactors
inCentsto decimal
tables
- fixes global button filtering
- uses
getCountForPaginationto fix count for queries that use group - update due to
JsonParsertoJsonReaderrename - adds datetime support
- adds a
dateTimeFormatconfig option
upgrade (new)
- new package, contains upgrade logic for your local project
Upgrade steps
- due to the upgrade to Laravel 7, there are quite a few small changes you have to do in your local project. Take a look at this commit and check the list of changes. You should ignore:
composer.lockclient/yarn.lock.styleci.yamltelescopeandhorizonassets (you will publish these in the next steps)
- you may safely remove the
RAVEN_DSNkey from your.env*files as it's no longer required - update
TelescopeServiceProviderusing this as example - update the sentry config file using this as example
- run
composer updatein the project's root - run
php artisan horizon:install - run
php artisan telescope:install - edit
client/package.jsonand- update
@enso-ui/uito2.5.x - update
pusher-jsto^5.0.0
- update
- rename in your .env* files
MAIL_DRIVERtoMAIL_MAILER - run yarn, yarn upgrade && yarn to ensure you have the latest versions and patches are applied. If necessary, update your patches
- update the Enso version to 3.9.0 in
config/enso/config.php - run
php artisan vendor:publish --tag=select-config" to publish theselect.php` config - note that the
typeattribute present in structure migrations has be...
v3.8.2
3.8.2
The release includes much needed UI vue-select / dropdown refactor.
These changes are breaking when customizing/building upon the @enso-ui/select components.
front-end
Most of the packages received a dependency list cleanup.
bulma
- added the dropdown item component
calendar
- updates color select for the new vue-select / dropdown
clipboard (new)
- a simple VueJS clipboard copy component
commercial
- small adjustment in Order.vue
contracts
- refactored ui imports
control-panel
- added ubuntu icon import
data-import
- refactored ui imports
datepicker
- adds is-small boolean prop
directives
- v-focus can now be active conditionally
dropdown
- adds arrow keys support
- updated selector strategy
emag
- components refactor
- loading flag enhancement
filters
- fixes format/altFormat small bug
- added input width for DateFilter
financials
- added documents & comments to client payments
projects
- refactored ui imports
select
- removes keyboard handling (moved to dropdown)
- updates the selection slot usage
- adds click modifier for tag / deselect
- improved tag handling
- fixed several edge cases
- adjusts search input size
- fixed dropdown indicator
- fixed tag delete button and label split when they did not fit the containing div
tables
- refactored dropdown use
- adjusted is-table-tag lateral padding
textarea (new)
- textarea component that can be easily integrated within the form
themes
- fixed small form-box overflow bug
typeahead
- upgrades dropdown usage
ui
- improves the main menu to handle indirect nested child pages
- fixes a small typo related bug in the notifications page
- upgrades dropdown usage
- adds a margin between tags and options for the navbar search dropdown menu items
wysiwyg
- removed premium plugins from the default configuration
back-end
avatars
- fixed manual transaction for persistent processes
calendar
- fixed factories
control-panel
- improved token management
control-panel-api
- refined memory extracting
- updated operating system label
- general refactor & improvements
- fixed total memory reporting
- refactored closures
- fixes OS sensor value
currencies
- improved seeder
- fixed manual transaction for persistent processes
core
- added index for created_at to action logs table
- updated the upgrade command
- added a protected
indexExists($index, $table)helper inDatabaseUpgrade - fixed
Authenticationexception namespace
countries
- refactored seeder to use
JsonParser
data-import
- added support for disabled imports (imports that are missing the template in imports.php config)
- fixed manual transaction for persistent processes
forms
- fixes test
- fixes error reporting for missing attributes
helpers
- enhanced
JsonParserto supportCollection&Obj - small refactor
how-to
- fixed manual transaction for persistent processes
localisation
- fixed manual transaction for persistent processes
measurement-units
- fixed factory edge case issue
people
- fixed the appellative helper
- added dynamic methods dependencies in composer.json
products
- fixes a validation error occurring when saving a product with suppliers but without a default supplier
roles
- fixes visible role scope
select
- refactors option list retrieval flow
- ensures options are sorted alphabetically
- improves the options list limit computation
services
- the
Servicemodel is nowRememberable
tables
- refactored leftover
appnamespaces toApp - refactored remaining
collect()usage toCollection - fixed stub publishing
- updated
ButtonTest.php - fixed
Meta$filteredtype frombooltoint - fixed count cache key implementation
- added new feature that supports Custom Cache Key for table counts
- fixed bug resulted from refactoring affecting multi-selection filtering
- removed unneeded name attribute from buttons
- added support for json resources / resource collections on table properties
- made rogue column exportable by default
versions
- adds
Versionexception - small refactor in trait
- fixed manual transaction for persistent processes
versioning
- fixed manual transaction for persistent processes
Upgrade steps:
- edit
client/package.jsonand update all @enso-ui packages to their next respective minor version
"@enso-ui/accessories": "2.4.x",
"@enso-ui/bulma": "2.3.x",
"@enso-ui/calendar": "1.4.x",
"@enso-ui/filters": "1.4.x",
"@enso-ui/forms": "1.4.x",
"@enso-ui/mixins": "1.1.x",
"@enso-ui/tables": "1.4.x",
"@enso-ui/ui": "2.4.x"- run yarn, yarn upgrade && yarn to ensure you have the latest versions and patches are applied
- run
composer updatein the project's root - update the version to 3.8.2 in
config/enso/config.php - if you have front-end customisations to Dropdown / VueSelect / EnsoSelect / Typeahead / EnsoTypeahead ensure that they're functioning okay and make changes if necessary
- if using
roguecolumns, unless you want those columns as exportable, mark each such column asnotExportablein the table templates meta, since they're now exportable by default
v3.8.1
3.8.1
With this release, we have upgraded sass-loader to the latest version(8.0.3)
front-end
currencies
- adds a Conversion.js service and a vuex store module
- adds allowed prop to currencies
- splits initialise in distinct actions for countries / currencies
divider
- centers title and slightly adjusts horizontal position
forms
- removed optional SelectField params attribute binding to field.meta.params
- adds slot in form field
modal
- adds ability to stack multiple modals w/o breaking close on esc
products
- small cleanup
projects
- adds projects status
- upgrades deps
roles
- extract hover to themes
- adds class
- revert
tables
- adds clearSelected Helper
- set pagesSelected to false directly
- refactors action slots
teams
- updated deps versions
themes
- fixes syntax
- move hover logic
- refactor content-manager
tutorials
- upgrades sass-loader
ui
- adds an Avatar.vue component that works with the backend TrackWho resource
- refactors users table to use the new avatar component
- updated dependencies version
back-end
core
- added migrations for morphable models namespaces
- adds currencies permission in upgrade command
- Spa and AppState flexibility #272
- made AppState private methods protected.
- Spa __invoke method will not instantiate with "new AppState" but with App::make
- adds missing import
- refactors Enso's Login event
countries
- adds avoids deletion conflicts trait
currencies
- fixes converter with default currency
- adds check for same currencies in converter; adds exception if no rate is found
- fix; needs refactor / rename
- renames Converter to Conversion; adds an endpoint for making conversions; refactors validators location;
- fixes typo in exchange rates table; adds an apiPrecision config option
data-export
- adds a purge command
- adds a retainFor config option
data-import
- fixes validation/import logic
- removed leftover/deprecated Validator methods
files
- fixes forUser scope check
forms
- adds option to customize label in form
- added taggable to the list of supported meta params
- removed params, pivotParams and customParams from the list of valid, optional meta attributes
helpers
- fixes db seed progress bars
- adds a DiskSize helper class for human readable values
image-transformer
- removed leftover exceptions
localisation
- removed leftover command
- added new translation keys
migrator
- removes leftover classes, improves structure migration rollback logic
- fixes rollback when parent menu is null; small refactor
- improves logic encapsulation
- adds validation on rollback for permissions
products
- improves syncSupplier method; improves validation
ro-addresses
- fixes method signature in AddressForm
select
- fixes bug when search is empty and the builder was making a comparison to %%
tables
- removes unneeded name attribute from buttons
- adds support for json resources on table properties
- adds support for resource collection
- adds comptesArrayColumns and computesModelColumns contracts
- adds Resource computor
- adds a strip template option that can receive an array of attributes that will be stripped from the response
- refactors config to Config
track-who
- fixes created by & updated by when no user is auth
Upgrade steps:
- update sass-loader in
client/packages.jsonfrom"sass-loader": "^6.0.0"to"sass-loader": "^8.0.0" - add
bulma-extensions+2.2.2.patchfrom the current repo to yourclient/patches - update
client/vue.config.jsto compile the view locally instead of under the vendor folder
filename: process.env.NODE_ENV === 'production'
? '../resources/views/index.blade.php'
: './index.html',
- update the default route in
routes/web.phpto
Route::view('/{any}', 'index')->where('any', '.*');
- add in
.gitignorethe local view (resources/views/index.blade.php) - since this version we went back on building the app for both legacy and modern browsers. To enable that you have to:
- update the
babel.config.jsfile to:
module.exports = { presets: [ '@vue/cli-plugin-babel/preset', ], };- add the
--modernflag inclient/package.jsonfor the build script
"build": "rm -rf ../public/{js,themes,themes-rtl,images} && vue-cli-service build --no-clean --modern", - update the
- run
yarn upgrade && yarnin/client - run
composer updatein project root - update the version to 3.8.1 in
config/enso/config.php
Note:
Besides what's mentioned above, you should go through these files in your project and align / adapt their content with the ones from the Enso repo:
- client/package.json
- client/vue.config.js
- client/babel.config.js
- .eslintrc.js and client/.eslintrc.js
v3.8.0
3.8.0
With this release, we have upgraded our back-end packages to require PHP7.4+. Consequently, we have made several changes to adapt our back-end code to the latest syntax such as:
- refactoring to short closures
- adding typed properties and method return types where necessary
Furthermore, we have also generally improved and refactored all of our packages in order for them to be consistent and more easily maintained. During this process we have aimed to:
- normalize package namespaces ( renamed
apptoApp) - replacing
collect()helpers in favor of instantiating theCollection()object - drop redundant suffixes for job, exception and policy classes where necessary
- refactor Exceptions to encapsulate error messages for consistency and reusability
- split route files
- add missing facade imports
- use array syntax for service provider tag publishing
- upgrade Enums to use the latest version
- improve overall logic where possible
front-end
commercial
- updates serialize-javascript from 1.9.1 to 2.1.1
- renames quick-view-controls to controls
- renames controls to actions
- adds controls, row-actions and filters slots
contracts
- adds icons
- refactors Form, Index, BaseForm, Card and List components
- adds ContractParties enum
- updates dependencies
- fixes bugs
departments
- updates icon and dependencies
forms
- routing to the edit page is now done asynchronously
hr
- drops Projects component
- updates dependencies
- fixes style for payrolls Index page
- renames
splitedtosplit - updates namespaces
projects
- fixes bugs and namespaces
roles
- updates permissions
tables
- adds icon
- improves custom slots handling
- exposes slots for both row and global buttons
- splits
scopedSlotsintoactionSlots,controlSlotsandbodySlots
ui
- updates dependencies
back-end
addresses
- renames
setDefaultpermission tomakeDefault
calendar
- overall refactors and removes
enso:calendar:send-reminderscommand from AppServiceProvider. This means that notifications will no longer be sent automatically.
cli
- makes the code DRYer
- reduces cyclomatic complexity
- improves writers
- extracts Cli trait in src/tests
- overall logic improvement
companies
- refactors company request validator's unique methods into a parameterised one
control-panel-api
- reverts statistics refactor
contracts
- reverts statistics refactor
core
- refactors state builders and adds return types for their methods
data()changes todata(): arrayinside the local state builder
- adds upgrade command for new roles structure
- fixes user group conflict exception
data-import
- adds a Finalize job
- adds in config unknownError key for customizing undetermined errors in rejected summaries
- makes the User available in custom validators via the
user()helper - shows duration in imports table for both mysql and sqlite
- fixes template validation message
- removes deprecated splittingQueue from config
- renames Policy to DataImport
discussions
- adds DiscussionConflict exception
- users DI in controllers
- refactors validators
documents
- adds DocumentConflict exception
- the
Policyclass was renamed toDocument
dynamic-methods
- adds contract and services for better managing the creation and binding of methods and relations to models
emails
- removes unused controller and routes ( Create )
- removes superfluous service ( Mail Manager)
- removes deprecated publish ( resources/js )
enums
- renames attributes() in data() to be consistent with the property name
$databecomes typed (array $data)- adds return type for
data()method (data(): array) - adds laravel as dependency in composer.json
excel
- adds ExcelExport exception
files
- improves file validation
helpers
- adds tests for InCents and MapsRequestKeys
- improves logic in InCents, JsonParser, Obj, Decimals
forms
- small refactor and logic improvement
helpers
- improves logic in InCents, JsonParser, Obj, Decimals
- adds test for InCents
- optimize imports
how-to
- renames VideoException to Video. It now extends ConflictHttpException
hr
- renames splited to split
inventory (PRIVATE)
- refactored dynamic methods to new style
localisation
- refactors unique fields in request validator
menus
- improves logic in Organizer and in TreeBuilder
- adds a Menu exception that extends ConflictHttpException and encapsulates error messages
multitenancy
- removed from core's dependencies ( becomes optional )
- fixes enums constant visibility
notifications
- refines broadcast service provider
people
- adds an appellative() helper on Person
permissions
- adds a Permission exception that extends ConflictHttpException and encapsulates error messages
products
- changes cents strategy
- refactors company relations using the new dynamic methods
roles
- renames permissions
- refactors controllers structure
- extracts command logic to service
searchable
- improves Finder.php
services
- improves Finder.php
tables
- adds new feature that supports Custom Cache Key for table counts
- adds optional
nameandslotattributes for button template object
teams
- removes unused trait from Team Model
Upgrade steps:
- within
composer.jsonupdate where necessary:laravel-enso/calendarto1.5.*( if using this package )laravel-enso/clito3.4.*laravel-enso/cnp-validatorto1.3.*( if using this package )laravel-enso/control-panel-apito2.4.*laravel-enso/coreto4.7.*laravel-enso/dynamic-methodsto1.1.*( if using this package )laravel-enso/enumsto1.2.*( if using this package )laravel-enso/excelto1.1.*laravel-enso/pdfto1.1.*laravel-enso/ro-addressesto3.3.*( if using this package )laravel-enso/versionsto1.1.*( if using this package )
- update in
client/package.json:- "@enso-ui/accessories": "2.3.x",
- "@enso-ui/tables": "1.3.x",
- "@enso-ui/ui": "2.3.x",
- within
client/src/js/enso.jsupdate theimport ('../sass/enso.scss');line toimport '../sass/enso.scss'; - remove from
composer.jsonthe following line since it is no longer required:
"LaravelEnso\\Cli\\tests\\": "vendor/laravel-enso/cli/tests/", - update your Enso classes imports ( search the whole project for
\app\and replace with\App\) - if you are implementing our state builder interface or extending our local state builder, make sure to update your
build()method signature (build(): array) - upgrade
Enumsaccordingly- rename
attributes()method todata()where required $databecomes a typed property (array $data= [..])
- rename
- if using/extending the
LaravelEnso\Documents\App\Policies\Policyclass, update any imports toLaravelEnso\Documents\App\Policies\Document - if using/extending the
use LaravelEnso\Files\App\Policies\FilePolicyclass, update any imports toLaravelEnso\Documents\App\Policies\File - if using/extending the
LaravelEnso\People\App\Http\Requests\ValidatePersonRequestclass, note that theuidUnique()&emailUnique()methods have been replaced by theunique($attribute)method - add the following block inside your
phpunit.xmlfile:
<testsuite name="helpers">
<directory suffix="Test.php">./vendor/laravel-enso/helpers/tests/units</directory>
</testsuite>
- if you wish to continue sending
calendarreminders, you need to handle this in your appsApp\Console\Kernel.php
protected function schedule(Schedule $schedule)
{
...
$schedule->command('enso:calendar:send-reminders')->everyMinute();
...
}
- remove from
config/enso/imports.phpthe deprecatedsplittingQueuekey, - run
composer update - run
yarn upgrade && yarnin/client - run
php artisan enso:upgrade - run
php artisan migrate - update telescope assets:
php artisan telescope:publish - update the version to 3.8.0 in
config/enso/config.php
(optional)
In order for the local project to be syntactically consistent with our ecosystem you should refactor as follows:
- use typed properties where necessary
- replace all
collect()helpers with theCollection()facade - refactor closures to the new PHP7.4+ short closure syntax
- split route files ( eg. https://github.com/laravel-enso/core/tree/master/src/routes )
- if using
phpinsights, don't forget to update the config file fromconfig/insights.php( https://github.com/laravel-enso/enso/blob/master/config/insights.php ) - we have moved the local
User::classfrom our Enso app underApp\Modelsnamespace. From now on, we have decided to keep the models in all of our projects under this namespace for better readability. If you wish to adopt this structure as well, don't forget to update yourconfig\auth.phpfile.
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
-
the local factories and seeders have been updated to use short closures as well. if you wish, you can force publish the updated versions ( careful, this will overwrite your local customisations ) with:
php artisan vendor:publish --force --tag=enso-factoriesphp artisan vendor:publish --force --tag=enso-seeders
-
if you wish to take advantage of the new tables feature which allows the use of custom cache keys for counts, your table builders must implement `...
v3.7.4
3.7.4
This release improves the quality of the back-end code addressing issues revealed by phpinsights (more info in the back-end section) as well as the usual small updates and fixes.
front-end
calendar
- added support for the spanish language
forms
- added in-page preview for PDF files
- fixed small styling issues and updated dependencies
- now emits a
template-fetch-errorwhen there is an error fetching the template from the API
products
- added missing measurement-units package dependency
tables
- added support for row global actions
backend-end
All packages were checked with the analitics tool and, where needed, the appropriate fixes and updates where implemented.
Most packages have had updates pertaining to:
- missing constants visibility
- unused variables
- string concatenation vs string templates
- using old school methods such as
get_classin favor of using::class - inconsistent array indentation
- class fields and methods ordering
and more.
In addition to the code, architecture and style changes, the route files have been broken down into smaller files to make management easier.
Apart from these updates, which are too many to list individually for each package, the packages below have had other additions.
cli
- fixed the generated method name used in the table builder stub
core
- added the missing doctype to the production tag, which fixes a TinyMCE issue
- the User model deletion is now handled by the
AvoidsDeletionConflictstrait
countries
- added the country code to the model's resource
currencies
- fixed the Currency resource
- fixed the seeder for testing cases
- improved the converter so as to use the most recent date as fallback if there is no rate available for a given day
laravel-enso/countriesis now a dependency for the package- the
short_nameattribute was refactored intocode
products
- changed content type for the product part number form input from number to text
teams
- the Team model now uses the
AvoidsDeletionConflictstrait for the delete process - the
Relationstrait is utilized to be able to support dynamic methods
Upgrade steps
This is a non breaking upgrade:
- run
composer update - run
yarn upgrade && yarnin/client - update the version to 3.7.4 in
config/enso/config.php - if using the
currenciespackage with a prior version to1.4.0, also runphp artisan enso:upgradein order to update theshort_nametable column