Releases: laravel-enso/enso
v4.6.0
4.6.0
This release includes improvements, bug fixes, and new features.
Front-end
io
- used new websocket getter
money
- improved focus & blur handling, fixed input event payload
- added the ability to have null value
notifications
- used new websocket getter
select
- added debounce for
addTag
tables
- added support for numbers
- added formatted filtered / count
- moved pagination logic to the BE
- added support for selection controls
- fixed pagination when full records info is false
tasks
- added permissions to register
- used new websocket getter
ui
- announce a new release on every chunk load failed error
- added permissions to register ref enso-ui/tasks#6
- fixed auth routes for guests
- removed predefined websocket channels
users
- fixed avatar display when no tooltip is needed
Back-end
addresses
- added new
addresses.created_bycolumn; added upgrade - added PHPMD config
- added factories for
Township,LocalityandRegion
avatars
- removed
HasAvatartrait in favor of dynamic method & observer
cli
- fixed routes stub
- fixed UI route component imports
- added common default for the route for the menu config
companies
- added policy for edit page
core
- removed
HasAvatartrait - removed the
laravel-enso/teamsdependency as the package can be added if required - binding
Faker\Generatorin production to Dummy laravel-enso/data-export#10 - added user profile policy
- fixed import in login controller
- added namespace to tests
data-export
- fixed notification path
- added sync excel attaching ability
- updated permission description in structure
data-import
- updated ExcelSeeder
- fixes serializing with postgres
documentation
- updated table docs: references to money vs number
- other table documentation small updates
files
- fixed file path upgrade for projects that don't use data-import
filters
- resolves comparison operators enum from App's container for improved flexibility; ref laravel-enso/filters#4
helpers
- added dummy
localisation
- updated out of stock
rotranslation
products
- updated test namespace
- updated url for pictures (route name remains the same)
roles
- rolls back ordering removal for the
synccommand
tables
- improved support for numbers; moved pagination on BE
- fixed test
- added 'selection' ability for global controls
- selection works only on selectable tables, and will send to the BE a selection payload with the selected rows
- buttons that work with selection will be rendered only when a selection is made
- fixed incorrect pages count, fixed incorrect middle pages
tasks
- added
taskablecontract & factory
private packages
webshop
- added about-us page
- added controller import
- added limited stock limit upgrade
- added favorites database persistent ref laravel-enso/webshop#33
- removed restricted/selective mfr load
emag
- fixed file save
- added authentication in job
- added fetch orders job
- added
FetchOrderscommand to the service provider
Upgrade steps
To upgrade:
app/Http/Controllers/Authwas removed from enso - if not customized locally, you may remove it as well- websocket getter changed, and there is a channel getter instead of specific channels getter now; if you are using websocket locally, you need to change the getter(like this)
- the
teamspackage is no longer included with enso by default. If you require it, add it back:- add
"laravel-enso/teams": "^3.0",tocomposer.json - add
"enso-ui/teams": "^2.0",toclient/package.json
- add
- remove
Broadcast::routes();fromapp/Providers/BroadcastServiceProvider.php(like this) - update the Enso version to
4.6.0inconfig/enso/config.php - 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 php artisan enso:upgrade --before-migrationphp artisan migratephp artisan enso:upgrade- as per every release, delete any local, deprecated upgrades
v4.5.0
4.5.0
The main reason for this release is the complete overhaul and refactor of the file management flow within Enso, including excel exports and imports. This also means potentially breaking changes, so please read through the entire changelog.
Front-end
auth
- added autocomplete suggestions on auth form
bulma
- added
Avatar.vueto the list of bulma components
calendar
- added browser state persisted calendar filter
commercial
- added missing dependencies
data-import
- improved param handling
- improved param structure
- improved page layout
financials
- added missing dependencies
forms
- updated lodash import style
io
- improved progress layout, with more information available and the option to cancel the supported operations
- left room for custom operations
notifications
- fixed dependencies
- fixed duplicated navigation
select
- updated lodash import style
strings
- added
lcfirst&ucfirsthelpers
tables
- implemented selectLabel for custom internal select filters
- updated lodash import style
- added a small padding between top controls
tasks
- added missing dependencies
- fixed duplicated navigation
- added avatars & updated the
allocated.optionsroute - updated
NavbarTasks.vueregistration order
typeahead
- updated lodash import style
ui
- the home screen for the
enter the applicationbutton is in focus by default, so you can now access the application using the keyboard - fixed NavbarItem vue component name
- added missing
favico.jsdependency - attempts to fix
chunkLoadErroron new releases - added
newReleasestate prop in global state - resolved dependency cycle for router -> store
- added initial login redirect for guests
users
- now avoids navigation duplicated error when visiting the profile page
- adds an
index.jsfile for easier components import - cleanup of dead styling
Back-end
action-logger
- improved response time by persisting the ActionLog after response
- fixed extra query by disabling guarded
activity-log
- fixed test name
- minor update to the
EnumServiceProvider
addresses
- added missing country relation in
Region
avatars
- added functionality to be able to add an externally hosted avatar
- improved generation flow and now the impersonator can change the user's avatar
- updated the package due to
filesrefactor
calendar
- the birthdays calendar is now visible depending on user roles
- added publishable calendar configuration for the roles
- updated tests
- calendar reminders are now scheduled from the package service provider and don't need to be added anymore to the local service provider
- renamed
readyToNotifyscope toshouldSend
cache-chain (new)
- package allows for the definition of a chain of caching layers and the retrieval of elements from within the cache, by going through the cache layers in the defined order
comments
- small refactor
- dropped ordered scope in favor of latest
cli
- now uses
newLine()instead ofline() - fixed table template path
- now also creates routes file
core
- added login route for auth users' state
- removed the
Uploadstrait usage - removes
Impersonatetrait usage - added job_batches migration
countries
- added active state:
is_activecolumn, scope, upgrade
control-panel
- added active property for apps
data-export
- major refactor in concert with the
filesupdate - uses the OptimalChunk functionality & removed the config
chunkoption - improved the notifications
- added per sheet progress
- allows for the cancellation of an in-progress export
- updated the notification text & added the ability to customize the default notification
- the
enso:data-export:purgecommand is being scheduled from within the package - the
DataExportmodel has anexpiredscope which takes into account the configuration value forenso.exports.retainFor
data-import
- complete re-write of the package
- improved before & after hook handling (now they actually run correctly in all cases)
- now uses Laravel's Job batch support
- rejected rows/chunks are now stored in the database vs files written on disk
- updated tests
- updated where impacted by
filesupdates - updated Model / table structure
- added per sheet progress
- allows for the cancellation of an in-progress import
departments
- fixed import
documents
- updated the package due to
filesrefactor
emails
- updated package to work with the new
files
enums
- small code style refactor
excel
- improved service to handle inline/download;
- renamed
pathtofolderinsavesToDiskcontract tempdirectory gets created if required & does not exist
files
- removed the
Uploadstrait and relation for user - added the
TEMPORARY_LINK_EXPIRATIONenv variable - upgraded
FileServiceProvider(breaking change) - updates the
Attachablecontract &HasFiletraits, which are now lighter. All the file operations will be made from now on using thefilerelation / model - renames
visiblescope tobrowsable, andforUserscope tofor - removed the
Filemodel'spathmethod - improved upload and attach flows
- improved tests and adds attach file test
- improved upgrade
helpers
- refactor: renamed internal property name
- changed
statictoselffor morphSiblings array in theCascadesMorphMaptrait - added the
OptimalChunkservice, extracted fromtables
how-to
- updated the package due to
filesrefactor
impersonate
- improves logic
- made use of dynamic methods and removed the
Impersonatestrait
io
- improved code
- added support for better progress reporting
- registered
IoTypesenum to app's state - improved
IOOperationcontract - removed
IOEventsenum - removed
HasIOStatusesenum - added missing person relationship load within the IOEvent class
menus
- reordered imports in test
products
- updated due to
filesupgrade
rememberable
- small cleanup
- removed layers
- now uses
cacheLifeTimeto limit the cached element lifespan
roles
- removed deprecated
orderattribute usage
searchable
- fixed code style
services
- fixed code style
tables
- updated the package due to
filesrefactor - renamed path key to folder in
config.exportarray - improved export blade
- added generic and enso specific export handling, including notifications
- moved
isEnsogetter in Config - added a
nameability to Config - improved fetcher to memoize count
- added fetchMode for Data builder to avoid building actions for exports
- updated optimal chunk logic to return lower values
- made use of the new DataExport
- extracted optimal chunk in helpers
tasks
- added role check when choosing user to allocate to
- added config for roles
- added tests
track-who
- small refactor
upgrade
- updated unsuccessful upgrade error message
Upgrade steps
Although this release contains breaking changes, unless you've been getting deep into the framework, there are high chances these will not affect you.
A files upgrade is included and should run together with any other relevant upgrades, but before running it please read all the notes below.
To upgrade:
- run
composer update - run
yarn,yarn upgrade && yarnto ensure you have the latest package versions and patches are applied. If necessary, update your patch files composer dump-autoloadphp artisan enso:upgrade --beforeMigrationphp artisan migratephp artisan enso:upgrade- as per every release, delete any local, old upgrades
- if using the
calendarpackage, you should remove the scheduling of theenso:calendar:send-reminderslocal command as it's being scheduled from within the package - if using the
data-exportpackage, you should remove the scheduling of theenso:data-export:purgelocal command as it's being scheduled from within the package - for table exports, data-import & data-exports templates may have changed slightly, if using internationalized texts, you may need to update your translations
- phpunit configuration has become more strict so ensure you have the proper path defided for the following packages:
helpers:
<directory suffix="Test.php">./vendor/laravel-enso/helpers/tests/unit</directory>
cnpvalidator/cnp-validator:
<directory suffix="Test.php">./vendor/laravel-enso/cnp-validator/tests/features</directory>
menu-manager/menus:
<directory suffix="Test.php">./vendor/laravel-enso/menus/tests/features</directory>
if running data imports programmatically
-
previously you had to create an
UploadedFileinstance, then pass it to theImportservice:$file = new UploadedFile(Storage::path($path), $filename, null, null, true); (new Import(self::Type, $file))->handle();
-
now, you should use the
DataImport->attach()method and pass the storage relative path to the file and the filename:DataImport::factory()->make(['type' => self::Type])->attach($path, $filename);
if generating exports using the data-export package
- the
ExportsExcelcontract has been updated to support generating multiple sheets:becomespublic function heading(): array
public function heading(string $sheet): array
becomespublic function query(): Builder
public function rows(string $sheet): array
becomespublic function attributes(): array
...
v4.4.0
4.4.0
The release further decouples ui packages and introduces automatic asset
discovery and registration, better files organization to help in the future with
adding a new CSS framework as well as various other improvements.
This also means breaking changes, so please read through the entire changelog.
Front-end
All packages which depend on the ui package have had their dependency versions updated.
Also, the icons.js files have been moved from the bulma folder one level up, since icons are css framework agnostic.
The packages thus affected have been updated to their next respective major version.
auth (new)
- extracted assets (components, pages, routes, store) from the ui package
bookmarks (new)
- extracted assets (components) from the ui package
charts
- improved chart update
- fixed chart redraw on dataset changes
- improves yAxis callback handling
data-import
- fixed select params label
datepicker
- added new 'value-updated' event on component value change
- improved enso datepicker alt-format handling
filters
- updated eslint config
forms
- implemented field related methods that controls the field's meta.hidden attributes by showField and hideField
- reused these methods inside the showTab/hideTab methods, while avoiding forceUpdate after each meta.hidden change
- fields methods are independent of tabs/sections and target all form fields
- adds ability to handle nested fields withing the form template
- displays default field for a custom field if the slot is empty
io (new)
- extracted assets (components) from the ui package
localisation
- extracted assets (components) from the ui package
notifications (new)
- extracted assets (components, pages, routes) from the ui package
tasks (new)
- front-end for the new task management package
themes
- added flags background color
- made options having warning text more visible in vue-filter
tutorials
- extracted assets (components) from the ui package
tree-view
- small cleanup
user-groups (new)
- extracted assets (pages, routes) from the ui package
users (new)
- extracted assets (components, pages, routes) from the ui package
ui
- implemented automatic registration for package:
- routes
- icons
- custom registration logic
- store
- extracted various assets to existing or new packages as required
Back-end
activity-log
- fixed test name
avatars
- improved avatar generation during tests, to use a locally generated avatar vs doing
a gravatar fetch, which speeds up tests - fixed gravatar warning message
charts
- added
autoYMin()helper - added support for gridlines
- switched
xAxisConfigparameter order and made dataset optional; - added
disableAutoRadius()in bubble; addeddatalabelsconfig setter - improved chart customization
- added method return types and typed parameters
cli
- the generated routes now use controller classes
departments
- removes leftover namespace
discussions
- refactored routes
- added xss sanitizer
enums
- added the option to have the key validated when getting a value (disabled by default)
- added the option to have localisation on/off per enum as opposed to all enums,
by adding a$localisationvariable with the desired value in your enum;
forms
- the Form service now uses the
whentrait so actions may be chained conditionally
io
- fixed the variable name within the
BroadcastServiceProvider
core
- data-import is no longer required and becomes optional
currencies
- fixed CurrencySeeder namespace
control-panel
- switched to using Laravel's Http instead of Guzzle
- refactored services & fixed invalid response edge case bug
helpers
- small refactor in
FactoryResolver
products
- added data-import missing dependency
select
- fixed bug for multiple select-filter where values were missing due to failed collection merging
tasks (new)
- task management package
tables
- refines export done notification
upgrade
- added pre-migration option for the upgrade command; upgrades that run pre-migration
are also visible in the status report - refactored the
MigratesStructurecontract - fixed missing
Prioritycolumn in the status report
Upgrade steps
As this new release cleaned up the @enso-ui/ui package and simplified icon and route
registration, a bit of cleanup is also required in the local project.
Also, a new php artisan enso:upgrade --before-migration command is available that
is meant be used to run upgrade commands before the php artisan migrate command,
which should help with complex upgrade scenarios.
To upgrade:
- within
client/.envthe following entry must be added:VUE_APP_PROFILE=bulma
The.envfile must also be available during the build stage,
so take that into account if using CI flows.
- the
@corealias has been renamed to@ui, so update all usages, including- local resources (pages, components)
- the
client/.eslintrc.jsfile
- bump at least the following dependencies within
client\package.json:"@enso-ui/activity-log": "^3.0"@enso-ui/bulma": "^4.0","@enso-ui/calendar": "^3.0","@enso-ui/data-import": "^3.0","@enso-ui/how-to": "^3.0","@enso-ui/tasks": "^2.0","@enso-ui/tutorials": "^3.0","@enso-ui/ui": "^4.0","eslint-config-airbnb-base": "14.2.0",
Depending on your project requirement, the following dependencies might also need bumping:"@enso-ui/categories": "^2.0","@enso-ui/commercial": "^4.0","@enso-ui/discounts": "^3.0","@enso-ui/emag": "^4.0","@enso-ui/financials": "^3.0","@enso-ui/inventory": "^3.0","@enso-ui/measurement-units": "^3.0","@enso-ui/products": "^3.0","@enso-ui/services": "^3.0","@enso-ui/themes": "^2.0",
- remove any package icon imports from
client/src/js/app.js, as they're no longer required - if using the dashboard page/component & menu, import the menu icon in
client/src/js/app.js:import { library } from '@fortawesome/fontawesome-svg-core'; import { faTachometerAlt } from '@fortawesome/free-solid-svg-icons'; library.add(faTachometerAlt); - unless using them in your local resources, you may remove package aliases from
client/vue.config.js - the avatar (
Avatar.vue) component has been moved from theuipackage to theuserspackage, if you're using it locally, update the imports. - within the
composer.jsonscripts/post-update-cmdsection add the command:"php artisan enso:upgrade:status"
- the
data-importpackage has been made optional, if you still require it, add it to:composer.json:"laravel-enso/data-import": "^5.0",package.json:"@enso-ui/data-import": "^3.0",
- the
taskspackage has been made optional, if you added it & still require it, add it to:composer.json:"laravel-enso/tasks": "^1.0",package.json:"@enso-ui/tasks": "^2.0",
- remove the following files as they're no longer required:
client/src/js/store.jsclient/src/js/router.js
- look within this PR and update:
client/src/js/enso.jsclient/src/js/localState.js
- run
composer update - run
yarn,yarn upgrade && yarnto ensure you have the latest package versions and patches are applied. If necessary, update your patch files php artisan migratecomposer dump-autoloadphp artisan enso:upgrade- publish the updated localisation assets with
php artisan vendor:publish --tag=enso-localisation
and copy theru.jsonfile from the above commit into the localresources/lang/appfolder - in
Envoyerand/or during your deployment process, add the new command:
php artisan enso:upgrade --before-migration - update the Enso version to
4.4.0inconfig/enso/config.php - as per every release, delete the old upgrades
v4.3.0
4.3.0
This release aims to upgrade the Enso ecosystem to Laravel 8.
Front-end
select
- the api request payload was cleaned up and null values are no longer sent to the back-end
Back-end
Where necessary, packages have been updated to add Laravel 8 compatibility. Changes affect:
- factories
- seeders
- routes (now using imported controller classes instead of strings & namespaces)
- tests
- upgrades (older upgrades were deleted)
- dependencies versions
Where possible, we've kept packages backwards compatible.
logs
- fixes multiple log file types edge case bug
products
- removed default supplier limitation, where previously the default supplier had to have the lowest aquisition price
forms
- added support for the
searchModemeta attribute, which can be used for select fields
Upgrade steps
First and foremost, be sure the to read the official Laravel 8 upgrade guide to understand all implications.
Since we liked the previous flow of publishing factories and customizing them, we've created a FactoryResolver class that is used to emulate the old behavior. Basically, when using a factory to create a model, we first search in the local project factories folder and try to find a suitable factory class, otherwise we search for a factory in the factories folder in the laravel-enso package which contains the respective model.
The limitation for the factory naming convention is that if you have two models with the same name, with different namespaces, you'll need to customize the models' newFactory() method and implement your own strategy.
Also, note that starting with this release we're no longer doing a yarn legacy build (only modern) so please take a look at package.json & babel.config.js and update if necessary.
To upgrade:
- within
composer.json- update the versions for the following
requirepackages
"fruitcake/laravel-cors": "^2.0", "guzzlehttp/guzzle": "^7.0.1", "laravel-enso/core": "^6.0", "laravel/horizon": "^5.0", "laravel/telescope": "^4.0", "laravel/ui": "^3.0",- update the versions for the following
require-devpackages
"facade/ignition": "^2.3.6", "nunomaduro/collision": "^5.0", "phpunit/phpunit": "^9.3"- add the following namespaces to the
autoload/psr-4section:
"Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/"- remove the
classmapblock and its contents from theautoloadsection
- update the versions for the following
- update where necessary by following this merge request for a list of other updated files (local factories and seeders cleanup, config files and more).
- run
composer update - run
yarn,yarn upgrade && yarnto ensure you have the latest package versions and patches are applied. If necessary, update your patch files php artisan migratecomposer dump-autoloadphp artisan enso:upgrade- update the Enso version to
4.3.0inconfig/enso/config.php
Remember:
- you can delete any non customized local seeders and import them from their package
- update factories & seeders to
- use namespaces
- convert to classes
- rename the 'seeds' folder to 'seeders'
- update models with factories and add the new trait
HasFactory - update tests to
- use the new factories
- refactor around the deprecated json methods
- update routes by importing controllers as per the new syntax
- after updating your routes by importing the controller classes, you need to remove the
protected $namespace = 'App\Http\Controllers';line inRouteServiceProvider
v4.2.0
4.2.0
This release includes many improvements, bug fixes and a few new features.
Front-end
accessories
- removed unused dependency
data-import
- improved date params usage
- added the missing
vuexdependency - added the functionality to cancel ongoing or stuck imports
date (new)
This package extracts a collection of date parsing and formatting helpers form enso-ui/ui.
datepicker
- fixed flatpickr timing error when setting the datepicker value to null
forms
- updated the
DateFieldcomponent to cascade the datepickerclear()method - added encrypt type which enables the ability to hide the currently stored value for fields of this type
mixins
- added handling for Axios request cancellation in
errorHandler
packaging-units (new)
The package creates the structure and includes the functionality for working with product packaging units.
- facilitates defining packaging units for products
- designed for better product management
products
- added
enso-ui/packaging-unitsas dependency
tables
- uses the new
enso-ui/date - added the date-picker dependency
- added ability to conditionally render row actions
typeahead
- added search label property for the search button
- updated the
CoreTypeaheadsearch method to no longer mutate the query before emitting the search event - added focus
ui
- removed date helpers and added
enso-ui/datedependency - translated hard-coded footer texts
PRIVATE REPOS:
commercial
- updated address select to include any params passed from the template
- updated sample products index page
- fixed translation keys
- updated index pages' filters
- added permission check for inventory quantity adjustment control
- fixed missing inject/import in
PositionsManager - added permission check for inventory quantity adjustment control
- added missing inject/import
- fixes editing fulfilled orders when the computed value had the wrong value
emag
- updated sample products index page
- updated the reference
FormContentcomponent - updated the Order component
- reverted the Order component field label
- added new fetch picture button & functionality
financials
- switched interval filters from using
dateto usingdue date
inventory
- added the
ProductLocationscomponent - updated sample products index page
Back-end
addresses
- updated region abbreviation column to support up to three characters
- added new states to USA
- added abbreviation as query attribute to address options
- added json file for romanian townships
- refreshed json files structures and updated values
- added townships table
- removed
sirutafrom localities - added
township_idcolumn to thelocalitiesandpostcodestables - renamed
townshiptotownship_name
avatars
- no longer passes the user as method parameter when attaching a newly generated avatar
- integrated Gravatar
cli
- added type properties when generating structure migrations
- fixed error when defining models with namespace
cnp-validator
- Added Laravel 8 support
core
- fixed password resetting
- fixed logout for inactive user
- adds region upgrade
- adds DataImport Upgrade
- added xss-sanitizer
- removed the
Upgradecommand fromAppServiceProvider.
Upgrades are now entirely handled by thelaravel-enso/upgradepackage - refactored namespace for existing upgrades to work with the new package
- purged old upgrade classes
data-import
- added
Authorizescontract for restricting users' ability to perform specific imports - added
paramscolumn todata_importstable for storing request parameters - improved postgres support
- added the option to cancel an import (both ongoing and 'stuck')
enums
- fixes translation issue with applications where using a different default language (not english)
files
- updated
attachmethod signature inHasFilestrait - the user parameter defaults to null
forms
- added encrypt type which enables the ability to hide the currently stored value for fields of this type
helpers
- added
Searchabletrait exclusion when running tests - added
Encrypthelper which aids in encrypting and decrypting values
localisation
- fixed json encoding
- removed leftover files
- added and updated many keys/translations
multitenancy
- refactored and upgraded for Enso v4
roles
- fixed default menu alias in query
- fixed role seeder
tables
- added default sort for all table queries
- added
notVisibleattribute for hiding specific columns by default - fixed export bug for nested columns when values don't exist
- fixed count when using group by
- fixed entries counting when exporting excel in non-Enso environments
- fixed when multiple filters exist for a field
- added new feature that supports conditional table row actions
therefore being able to further customize which actions apply to each row
upgrade
- implemented auto discovery of local and package upgrade classes when placed in app/Upgrades or src/Upgrades
- added the ability to set priorities for upgrades
- added new command:
enso:upgrade:statuswhich show the status of upgrades - added
MigratesPostDataMigrationinterface toStructure - added
Applicableinterface which should be used to define if an upgrade should run or not - added
ShouldRunManuallyoption - now uses an
Enumfor the upgrade status table header
PRIVATE REPOS:
commercial
- added invoice issued event
- updated the Sale & Sale return templates regarding the address select
- removes unused traits in
SaleInvoiceIssuedevent - small refactor
- added missing client order ref in the Sale form template
- added
update&deletepolicies to all line types; improved line update time limit handling - added check when creating a sale payment to ensure the sale is not already linked to a payment
discounts
- small refactor in the
SaleDiscountFordynamic method
emag
- updated Sale form template regarding the address select
- removed customizations to the Sale form & table regarding
client_order_referenceas they're no longer required - updated the
EmagPaymentsimport - added new functionality to fetch a product picture for products with valid Emag offers
financials
- updated invoiceable entity info to use the billing address; client invoice now support dynamic relations
- added generic invoice imports to the package
- updated all package index tables to include record create/update timestamp & user information
- added a new
Onlinepayment type - implemented conditional action for client payment (receipt) printing
inventory
- added
available()method on theStockmodel - small refactor
- added a new
StockUpdatedevent and a productemitStockUpdatedmethod
webshop
- improved internet explorer warning
- fixed company address deletion bug
- added toastr message when address cannot be deleted
- update orderConfirmation.blade.php
- added missing authorizations
- refactored translation method usage
- removed the address policy and its registration from the AuthServiceProvider
- improved form request validations
- added product
manufacturerNamedynamic method; updated templates - small changes & comments
- updates order payment_method keys to int; improved order validation => payment order
- extracted company & related scripts into partials from the cart form.blade.php blade
- updated stock computation
- cleaned up imports
- improved the settings form layout
- refactored
StockStatusesconstant fromOnDemandtoSupplierStock - translated hardcoded text
- added VueJS component for product prices
- refactored code to fluent syntax in
AuthServiceProvider - replace
spanwithtemplateinPrice.vue - translated hard-coded texts; fixed a company update bug
- fixed error on product show page when a suggested product did not have a manufacturer set
- removed the js nullish coalescing operator as it is not 100% supported
- moves cookieConsent to
cookieConsent.blade.php - added phone number as
requiredto user registration - adds clear cart command
- fixes N+1 case for product
ManufacturerNamevia usingRememberable - removed the
authorizePaymentmethod - added featured brand & label for the webshop brands
- updates scss for brand / logo
- integrated new User Registration Confirmation notification
- extracted hardcoded shipping cost mentions and replaced with partial
- added Terms and Conditions to the order review page
- various small fixes
- improved redirects from the
Payment&Paycontrollers to avoid infinite redirection edge cases - fixed the user password reset mechanism
- integrated the form field encryption where necessary
- added the new product webshop label feature
- added a new publish command, that publishes the compiled package assets
- small product card manufacturer logo render improvement
webshop-commercial
- moved email template notification table in the partials folder
- refactored the event listener to async and notification to sync
- updated 'pay later' orders storing process
- added missing providers
- added missing column to the migration file
- updated migration payment method column
- removed leftover provider inclusion
- fixed not translated / hard coded text in the blade templates
- updated model as per latest contract updates
- added shipping changes partial template
- updated contract implementations
- updated webshop dependency version
- corrected
PaymentIntentcallback due to flawed refactor - various other fixes and refactor
- added functionality to generate a Sale Payment when client makes a successful card payment...
v4.1.0
4.1.0
This release includes many improvements, bug fixes and also several new features.
Front-end
addresses
- added
postcodeaddress detection - added
locality_idinAddressForm - added
streetto postcode - added
isBilling&isShippingtoAddressCard; updatedAddresses - reordered fields in address form according to template
- added
formpayload to theform-loadedevent
bulma
- exported form field group
- fixed export
categories
- added level
maxNestingLevelproperty andlevelmethod inCategoryTree.vue - improved logic
- fixed dragging and nesting
- fixed max level validation error display
commercial (private)
- updated
FormContentdue tosupplier_numbertosupplier_order_referencerefactor
companies
- fixed company type in
Edit.vue
data-import
- added new
Params,String,Date,CustomSelectandBooleancomponents - uses the new
Paramscomponent inIndex.vue - small clean up
datepicker
- fixed disabled property in
CoreDatepicker
dropdown
- added
show()method
emag (private)
- updated due to
emag_numbertoclient_order_referencerefactor
forms
- added
form-field-groupfield forhas-addonsoris-groupedscenarios
laravel-validation
- added
first()method
people
- updated type in
Edit.vue
roles
- fixed route in
Edit.vue
select
- made dropdown available when no options but using taggable
- added
show()andhide()methods inEnsoSelectandVueSelectcomponents
ui
- added
sessions&tokenmanagement - updated
Edit.vue - updated
Sessions.vue
back-end
We have updated README.md and codacy badge for several packages.
addresses
- added
showroute - renamed permission
- added
postcodeauto complete - added romania postcodes
- added directory for
cities®ions - updated timestamps
- removed unused
StateSeeder - improved seeders logic
- added street to postcode
- added
is_billingandis_shipping - added casts
- updated factory & migration
- added
is_billingandis_shippingto options - updated
OneLiner.php - improved address form
- improved
is_default,is_shipping,is_billinghandling - enabled the bool flags in the address form
- added tests for billing & shipping
- added missing routes
- updated
makeDefault,makeBillingandtoggleShipping - made
makeBillingmethod public
categories
- improved max nesting level validation message
- fixed recursive relations
- fixed order in
tree()method - removed
hasChildrenscope - added
riskyin.stypeci.yml - added new
depth()method in model - removed
currentAndBelowIdsandflattenmethods - added
flattenCurrentAndBelow - added test
- renamed publishing tag from
categories-factoriestocategories-factory
cli
- added type for migration
commercial (private)
- renamed
supplier_numbertosupplier_order_reference - replaced
index()->unique()withunique()in migrations - removed timestamps from the history model
fillableattribute; renamed table column - updated client stocks import with the new
paramstemplate feature - updated the
Salemodel trait usage - updated
DailyUpdateStockValueslogic and rules
control-panel-api
- renamed routes
core
- updated
AddressPermissions - added
import.showpermission - added
core-apimiddleware group - added upgrade command to rename permissions
- added role filter in users
- added sessions (index & delete)
- added tokens (create & index & delete)
- added permission migration
- updated
UserTokenPermissions.php - updated
UserSessionPermissions.php - added postcode permission
- added postcode upgrade
- added street to postcode
- updated
Addressesupgrade command to addis_billingandis_shippingcolumns - added force to postcode seeder
- added post migration in
Addressesupgrade command
data-import
- fixed comment spacing
- added params validation
- added support for
paramsin template - small refactor
- added
import.showpermission - small refactor and clean up
- added
seederPathoption in config; updatedExcelSeeder
documentation
- added extra instructions regarding Sanctum's
SANCTUM_STATEFUL_DOMAINSenv value - updated data-import docs
inventory (private)
- updated positions import to use the new data-import template
paramsflow
localisation
- added language options controller
- simplified options controller
products
- added
riskyin.stypeci.yml - updated
categoriesdependency
roles
- fixed the scenario where roles without a default menu had the first parent menu
- skips an extra permission query
tables
- added default sort
- added
notVisiblecolumn andvisibilitymethod inColumnsbuilder - updates
ColumnTest - renamed sort classes
- added
defaultSortfor all queries.dtRowIdwill be used if not customized by template - fixed default sort when there are columns with same name
upgrade
- added foreign key helper
Upgrade steps
To upgrade:
- run
composer update - run
yarn,yarn upgrade && yarnto ensure you have the latest versions and patches are applied. If necessary, update your patch files - due to
control-panel-apiroutes rename, we need to updateControlPanelApiSeeder:php artisan vendor:publish --tag=control-panel-api-seeder --force - you need to publish addresses seeders by running:
php artisan vendor:publish --tag=addresses-seeds --force - publish also addresses factory:
php artisan vendor:publish --tag=addresses-factory --force - if using
categoriespackage, you need to:- update in
composer.jsonthe categories dependency"laravel-enso/categories": "^2.0" - publish factory by running:
php artisan vendor:publish --tag=categories-factory --force - add the categories test suite to
phpunit.xml:
<testsuite name="categories"> <directory suffix="Test.php">./vendor/laravel-enso/categories/tests</directory> </testsuite>
- update in
php artisan migratecomposer dump-autoloadphp artisan enso:upgrade- ensure that permissions are properly configured for each role and then save/refresh the roles configuration files
- update the Enso version to
4.1.0inconfig/enso/config.php
v4.0.1
4.0.1
This is a patch release, therefore it includes several bug fixes and very small changes.
front-end
We have updated in all our packages the animated dependency to 4.0.0
calendar
- fixed deleting event in a sequence
- fixed drag event in
EnsoCalendar
commercial (private)
- updated input clear
- added settings
financials (private)
- fixed VAT display, now shows numerical value
how-to
- updated
Index.vueto add tag only when having access to store route
mixins
- updated error code from
555to488
modal
- improved portal creation into instance root
back-end
We have updated DynamicsRelations namespace to DynamicRelations in order to be PSR4 compliant for all packages
and removed throttle
calendar
- drops create action from edit
commercial (private)
- removed
InvoiceableEntity - refactored position adjustment request
- replaced
onceUsingIdwithsetUser - sale now uses the
Methodstrait; fixed thePersonresource - added settings
- updated the settings form; updated virtual position id references; removed the package config file
control-panel-api
- improved logic in seeder
core
- fixed reset password
- added
PosterMorphKeyupgrade command
data-export
- fixed comment typo
data-import
- replaced
onceUsingIdwithsetUser - fixed comment spacing
discounts (private)
- fixed redirect on delete bug; fixed model import after refactor
financials (private)
- added new
InvoiceableEntityexception - updated
numbertype formunsignedIntegertostringfor payments and invoices - fixed client table filters bug; updated auto number; fixed model load issue after refactor
forms
- fixed typo in comment
how-to
- added
CascadesMorphMaptrait for Poster and updatedAppServiceProvider
impersonate
- fixed typo in middleware
- fixed middleware and added
providermethod - fix authentication
inventory (private)
- removed show button from the form as route is necessary
- improved the position form
tables
- replace
onceUsingIdwithsetUser - fixes mail driver
teams
- fixed namespaces in
AppServiceProviderandTeams
tutorials
- corrected folder name
Upgrade steps
To upgrade:
- run
composer update - run
yarn,yarn upgrade && yarnto ensure you have the latest versions and patches are applied. If necessary, update your patch files php artisan enso:upgrade- all
Auth:onceUsingId()uses should be updated toAuth::setUser($user)due to sanctum addition - remove
'throttle:60,1'fromApp\Http\Kernel - replace tables.export.notifications
emailtomail - upgrade
"animate.css": "^4.0.0"in package.json - update in
enso.scssanimate import toanimate.compat.cssinstead ofanimate.css - update
MAILGUN_ENDPOINTin your.envfiles toapi.mailgun.netinstead ofapi.eu.mailgun.net - ensure that permissions are properly configured for each role and then save/refresh the roles configuration files
- update the Enso version to 4.0.1 in
config/enso/config.php
v4.0.0
4.0.0
With this release we added sanctum to our core, opening the way for mobile applications and better integrations with external apis. We have also refactored all of our backend packages. Among the changes we have brought to our backend code, we have managed to:
- remove
Appnamespace from our backend packages. We started with our left foot regarding this when we split Enso into specialized packages and we carried the bad decision along the way. It was time to revert this - add typed properties to Structure Migrations
- gave up using
fillablein our models in favour of$guarded = ['id'] - many other punctual improvements and bug fixes which further hone our ecosystem.
- remove how-to, activity-log, tutorials, comments, documents, discussions as core dependencies. Made cli as dev-dependency
- move helpers from classes to services
- update the docker image
Since we consider that Enso has matured enough, starting with 4.0.0 we are going to use semver. As a result, we have updated all package dependencies and incremented the major version where the case.
front-end
Most of the packages received a dependency list update.
For all packages, we've refactored the modal uses according to its latest version by dropping the show control property.
We've also refactored the new toastr uses by injecting it where needed instead of using the globally available $toastr property.
accessories
- split accessories to new packages:
addresses,comments,discussionsanddocuments - removed
Appfrom namespace
addresses (new)
- created new
addressespackage, subtracted from theaccessories
bulma
- added the new
addresses,comments,discussionsanddocumentspackages as dependencies - removed
Appfrom namespace
calendar
- updated
vuecalevent creation
charts
- added
cancelTokenfor subsequent requests
comments (new)
- created new
commentspackage subtracted from theaccessories
commercial (private)
- added the
comments,documentspackages as dependencies - removed
Appfrom namespace
companies
- added the
addressespackage as dependency - removed
comments,discussionsanddocumentsfrom accessories - removed
Appfrom namespace
contracts (private)
- added the
documentspackage as dependency - removed
Appfrom namespace
discussions (new)
- created new
discussionspackage subtracted from theaccessories - removed
Appfrom namespace
documents (new)
- created new
documentspackage subtracted from theaccessories
dropdown
- exposed a bool selection flag in dropdown's render
erd
- updated readme
financials (private)
- added the
comments,documentspackages as dependencies - removed
Appfrom namespace
forms
- tweaked reveal password
- extracted toastr from CoreForm
- shows reveal password only when specified
hr (private)
- split accessories to new packages
- removed
Appfrom namespace
inventory (private)
- split accessories to new packages
- removed
Appfrom namespace
mixins
- removed
i18nand updated error handler to use the newtoastr
mobile-app (new)
- this is our first iteration of a ready to publish (IOS, Android) mobile app based on Expo.
modal
- improved the modal behaviour
- dropped the need for the
showcontrol prop. Now the modal will have to be controlled byv-if="something". This is breaking and need refactor in all uses - fixed a bug when the modal was open, and the router was used to switch the page, which let the modal hang forever and needed a page reload
- added a
transitionDurationprop that allows using the transition also for the above case - overall refactor
people
- split accessories to new packages
- removed
Appfrom namespace
products
- split accessories to new packages
- removed
Appfrom namespace
projects
- split accessories to new packages
- removed
Appfrom namespace - added project status
tables
- added
dateFormatfor the new internal filters
toastr
- improved
toastruse; now instead of defining it globally it can be imported / injected where is needed
typeahead
- improved the select logic; added in the select event the selected item, if any
- fixed edge case for query and min query length
ui
- changed
Authorizationfrom header to cookie - renamed
is-webviewtowebview - added generate token to user and checks for access permission
- added
RevealPasswordcomponent inAuthForm - fixed search bug,
ToastrPosition - refactored mixins
- updated the use of toastr by importing and providing it for injection, in App
- improved store by making use of
vue-router-sync-> this adds a breaking change for thesetPageTitlestore action that now requires only the new title as param
- removed how-to/activity-log/tutorials dependencies
- disabled impersonate in webview
- fixed style
- added pusher
- fixed navbar avatar, now we use
Avatarcomponent instead ofimginOperationcomponent
back-end
action-logger
- removed
ActionLogstrait and replaced it with a dynamic relation to user
activity-log
- fixed helpers services namespace
- updated web middleware group to api for sanctum
addresses
- dropped the
defaultAddress()method, instead, theaddress()relation will always return the default address - added return type in
isLocalizedhelper - added
isLocalizedhelper - replaced web middleware group with api for sanctum
- updated codacy badge
avatars
- dropped direct relation
- updated web middleware group to api for sanctum
calendar
- removed default value
parentMenu - changed
webmiddleware toapi
categories
- improved config
- removed unused
AuthServiceProvider - added
Abilitiestrait in model and removesRelations - renamed migrations
- updated web middleware group to api for sanctum
cli
- generate files & namespace according to v4
comments
- removed the old comments trait and adds dynamic relations to the core user
- updated web middleware group to api for sanctum
- fixed store controller
companies
- added abilities & routes notifications to company
- renamed
CompanyStatuseswithStatuses - replaced web middleware group with api
- renamed
obstonotes - added filters request to request validator and fixes store/update controllers
- fixed helpers services namespace
- removed accessories, leaves only addresses
control-panel
- updated controllers to use
Illuminate\Routing\Controllerinstead ofApp\Http\Controllers\Controller - fixed style
- added
FilterRequestinValidateApplicationRequest - updated
Applicationupdate controller to excepttokenfield from request
control-panel-api
- changed token to sanctum
- fixed conflicting routes
- added seeder for generating monitoring user
- changed
webmiddleware toapi - moved database to root
control-panel-common
- updated
codacybadge
core
- added
sanctum, new tests and authorization key to cookie - renamed
is-webviewtowebview - added
EnsureFrontendRequestsAreStatefulfor webview - added new
mapMorph - refactored services into controller
- added api group & monitoring user
- added route & refactor control panel
- changed
webmiddleware toapi - updated relations
- removed
activity-log,tutorials,how-todependencies. - renamed
obstonotes - added rename migration upgrade
countries
- changed
webmiddleware toapi
currencies
- replaced web middleware group with api for sanctum
- renamed migration
data-export
- refactored ASP
data-import
- replaced web middleware group with api for sanctum
- fixed helpers services namespace
departments
- renamed migrations
discussions
- updated relation
- changed
webmiddleware toapi
documents
- replaced web middleware group with api for sanctum
- updated codacy and style ci badges
dynamic-methods
- added an
Abilitiestrait suited for models, containing relations, scopes & mutators
enums
- fixed stub
files
- changed
webmiddleware toapi - updated relation
- updated codacy badge
- fixed namespaces
- renamed
publicPathtostoragePath - updated & casted env pagination key; refactored upload service provider;
filters
- updated codacy badge
helpers
- added
FiltersRequesttrait - improved filters request to receive array or argument list
- improved
CascadeMorphMapto always resolve the last model binding - improved
Searchableto detect changes in algolia camelCase keys also - updated enso exception error code to 488
history-tracker
- updated codacy badge
how-to
- changed
webmiddleware toapi - replaced direct relation traits with dynamic relations
- updated relation
- updated codacy badge
- removed storage folder that is now managed by core
- renamed migrations
impersonate
- added sanctum
io
- fixed avatar in
IOEvent - small refactor
- improved logic in
IOEventand updatedIOObserver
localisation
- changed
webmiddleware toapi
logs
- replaced web middleware group with api for sanctum
- fixed helpers services namespace
measurement-units
- changed
webmiddleware toapi - renamed migrations
menus
- changed
webmiddleware toapi
notifications
- changed
webmiddleware toapi - updated codacy badge
- updated codacy badge
people
- replaced web middleware group with api for sanctum
- updated codacy badge
- renamed obs to notes
permissions
- added abilities trait
- added comments and docume...
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...