Releases: laravel-enso/enso
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.js
as direct dependency - fixed comments' avatar display
- reverted to 'component'-wrapper class names for the
Discussions
andComments
components
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
QuickView
component import - added a github issue template to the repository
confirmation
- removes
tooltip.js
as 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-resize
directive, meant to be used with input fields, that resizes the field based on its content length
dropdown
- removed
popper.js
as dependency - cascaded the
hide()
method; - fixed the proper closing of drop-downs when dealing with multiple drop-downs
- added stopPropagation for
click
events - 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.js
as direct dependency @enso-ui/strings
was 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/products
dependency was updated to the new minor version - added a github issue template to the repository
permissions
- the
permission.js
mixin 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/card
dependency
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
exact
anddoesn't contain
matching - added stopPropagation for the
click
event
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/select
was added as dependency as dropdown usage was replaced by select@enso-ui/enums
was 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.scss
component 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
&highlight
attributes 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/categories
was 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
/deselect
events payload to include full object when working in objects mode
ui
- fixes collapsed sidebar label position on scroll
- removed
tooltip.js
as direct dep - fixed navbar search tag filtering
@enso-ui/enums
was 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
owner
method
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
TimeSegments
enum & timeSegment getter and property in theInterval
service - 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
filterable
is now a supportedmeta
attribute within the json table configuration files used to mark columns that are filterable using the new filtering functionalityaverage
is now a supportedmeta
attribute 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
rawTotals
where the result was being cast toint
- fixed an inconsistence where the columns was mapped in a Collection instead of a Obj
- added support for
exact
anddoesn't contain
search modes - removed Enum computation in favor of front-end handling
- renamed the
fetchMode
method 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.xml
printerClass="LaravelEnso\PHPUnitPrettyPrint\PrettyPrint"
- run
composer update
in the project's root - 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.2 in
config/enso/config.php
- in
config/enso/tables.php
update thecomparisonOperator
andsearchModes
keys to:
'comparisonOperator' => ComparisonOperators::Like,
'searchModes' => [
SearchModes::Full, SearchModes::StartsWith, SearchModes::EndsWith,
SearchModes::ExactMatch, SearchModes::DoesntContain,
],
- in
config/enso/select.php
up...
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-view
due to extracting it to its own package
calendar
- switched
vuecal
to default grey theme - added translation for the small calendar
card
- added
is-naked
on card control
checkbox
- updated the
CheckboxItems.vue
component 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
ProjectCard
component
quick-view (new)
- replaced hardcoded scss
top
value 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-hoverable
helper tois-hoverable-item
- added a settings component
- improved the font import, made it easier to customize
- added
Muli
as 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
&highlight
in theitems
slot
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
MenuState
toSidebarState
- 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
menus
store module tomenu
- renamed
layout/menu
module tolayout/sidebar
- renamed
layout/settingsBar
tolayout/settings
- added a
layout/search
module for managing the global search state - integrated the logout request into the
auth.js
module
- 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_id
column
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
role
relation 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_id
column in theavatars
table - fixed namespace for the avatars upgrade command
currencies
- dropped Types from migrations
data import
- removed deprecated parameter from the
UploadedFile
constructor call
excel
- fixed namespace for ExcelExport from
LaravelEnso\Excel\App\Exports
toLaravelEnso\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
When
helper 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
active
attribute 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
When
helper 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 update
in the project's root - 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.1 in
config/enso/config.php
- if using the
ExcelExport
class locally, search & replaceLaravelEnso\Excel\App\Exports\ExcelExport
withLaravelEnso\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
VueCal
update - 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
website
attribute 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
EmagOrder
component - 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
errorHandler
more readable
permissions
- permission
type
was 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.vue
now uses the new@enso-io/checkbox
functionality 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
/dropdownDisabled
computed property - improves the reload handling
- added a
searchLimit
property, 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
QuickView
component, extracted from the accessories package - the quick view default width was updated (is a little larger)
tables
- enhances support for highlighting rows
- fixes tr
:key
attribute
themes
- added an
is-hoverable
helper class
toastr
- added a
when
method that allows fluent syntax while having conditionals
tree-view (new)
- added new package for the
TreeView
component
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
shortNumber
filter, 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_children
attribute 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_DSN
key 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_at
column
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
inCents
to decimal, small changes due to refactor - updates migrations
- client stocks supplier is now optional
- updates client stock import
companies
- adds new
website
attribute (nullable)
core
- updates for Laravel 7
- removes
jessengers/date
- adds DB upgrade for permissions
- adds
enso-aggregator
to composer.json - extracts upgrade logic in its own package
- update due to
JsonParser
toJsonReader
rename - adds companies upgrade command due to new
website
attribute - updates failed jobs id to bigIncrements
- adds
User
&Grup
resources - refactors
AppState
to return resources
countries
- update due to
JsonParser
toJsonReader
rename
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
JsonParser
toJsonReader
rename
discounts
- decimal discounts refactor
files
- adds a
model
helper to the facade - refactors deprecated
getClientSize
andgetClientMimeType
inFiles.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
JsonParser
toJsonReader
rename
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
JsonParser
was renamed toJsonReader
- adds
When
helper trait
hr
- refactors
inCents
inventory
- fixes manual transactions for persistent processes
- refactors
inCents
localisation
- updates middleware to use
Carbon
instead ofJessengers\Date
- update due to
JsonParser
toJsonReader
rename - fixes typo in factory
menus
- adds a
Menu
resource - updates tree builder to return collection
notifications
- fixes test to fit the new
Carbon
serialization for models
people
- adds person resource
permissions
- small fixes
- refactors type into computed property
products
- refactors
inCents
to 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
inCents
to decimal
tables
- fixes global button filtering
- uses
getCountForPagination
to fix count for queries that use group - update due to
JsonParser
toJsonReader
rename - adds datetime support
- adds a
dateTimeFormat
config 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.lock
client/yarn.lock
.styleci.yaml
telescope
andhorizon
assets (you will publish these in the next steps)
- you may safely remove the
RAVEN_DSN
key from your.env*
files as it's no longer required - update
TelescopeServiceProvider
using this as example - update the sentry config file using this as example
- run
composer update
in the project's root - run
php artisan horizon:install
- run
php artisan telescope:install
- edit
client/package.json
and- update
@enso-ui/ui
to2.5.x
- update
pusher-js
to^5.0.0
- update
- rename in your .env* files
MAIL_DRIVER
toMAIL_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 the
select.php` config - note that the
type
attribute 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
Authentication
exception 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
JsonParser
to 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
Service
model is nowRememberable
tables
- refactored leftover
app
namespaces toApp
- refactored remaining
collect()
usage toCollection
- fixed stub publishing
- updated
ButtonTest.php
- fixed
Meta
$filtered
type frombool
toint
- 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
Version
exception - small refactor in trait
- fixed manual transaction for persistent processes
versioning
- fixed manual transaction for persistent processes
Upgrade steps:
- edit
client/package.json
and 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 update
in 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
rogue
columns, unless you want those columns as exportable, mark each such column asnotExportable
in 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.json
from"sass-loader": "^6.0.0"
to"sass-loader": "^8.0.0"
- add
bulma-extensions+2.2.2.patch
from the current repo to yourclient/patches
- update
client/vue.config.js
to 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.php
to
Route::view('/{any}', 'index')->where('any', '.*');
- add in
.gitignore
the 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.js
file to:
module.exports = { presets: [ '@vue/cli-plugin-babel/preset', ], };
- add the
--modern
flag inclient/package.json
for the build script
"build": "rm -rf ../public/{js,themes,themes-rtl,images} && vue-cli-service build --no-clean --modern",
- update the
- run
yarn upgrade && yarn
in/client
- run
composer update
in 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
app
toApp
) - 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
splited
tosplit
- 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
scopedSlots
intoactionSlots
,controlSlots
andbodySlots
ui
- updates dependencies
back-end
addresses
- renames
setDefault
permission tomakeDefault
calendar
- overall refactors and removes
enso:calendar:send-reminders
command 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(): array
inside 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
Policy
class 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
$data
becomes 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
name
andslot
attributes for button template object
teams
- removes unused trait from Team Model
Upgrade steps:
- within
composer.json
update where necessary:laravel-enso/calendar
to1.5.*
( if using this package )laravel-enso/cli
to3.4.*
laravel-enso/cnp-validator
to1.3.*
( if using this package )laravel-enso/control-panel-api
to2.4.*
laravel-enso/core
to4.7.*
laravel-enso/dynamic-methods
to1.1.*
( if using this package )laravel-enso/enums
to1.2.*
( if using this package )laravel-enso/excel
to1.1.*
laravel-enso/pdf
to1.1.*
laravel-enso/ro-addresses
to3.3.*
( if using this package )laravel-enso/versions
to1.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.js
update theimport ('../sass/enso.scss');
line toimport '../sass/enso.scss';
- remove from
composer.json
the 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
Enums
accordingly- rename
attributes()
method todata()
where required $data
becomes a typed property (array $data= [..]
)
- rename
- if using/extending the
LaravelEnso\Documents\App\Policies\Policy
class, update any imports toLaravelEnso\Documents\App\Policies\Document
- if using/extending the
use LaravelEnso\Files\App\Policies\FilePolicy
class, update any imports toLaravelEnso\Documents\App\Policies\File
- if using/extending the
LaravelEnso\People\App\Http\Requests\ValidatePersonRequest
class, note that theuidUnique()
&emailUnique()
methods have been replaced by theunique($attribute)
method - add the following block inside your
phpunit.xml
file:
<testsuite name="helpers">
<directory suffix="Test.php">./vendor/laravel-enso/helpers/tests/units</directory>
</testsuite>
- if you wish to continue sending
calendar
reminders, 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.php
the deprecatedsplittingQueue
key, - run
composer update
- run
yarn upgrade && yarn
in/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::class
from our Enso app underApp\Models
namespace. 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.php
file.
'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-factories
php 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-error
when 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_class
in 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
AvoidsDeletionConflicts
trait
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/countries
is now a dependency for the package- the
short_name
attribute 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
AvoidsDeletionConflicts
trait for the delete process - the
Relations
trait is utilized to be able to support dynamic methods
Upgrade steps
This is a non breaking upgrade:
- run
composer update
- run
yarn upgrade && yarn
in/client
- update the version to 3.7.4 in
config/enso/config.php
- if using the
currencies
package with a prior version to1.4.0
, also runphp artisan enso:upgrade
in order to update theshort_name
table column
v3.7.3
Laravel Enso's Changelog
3.7.3
This is the second to last release before upgrading Enso to PHP7.4.
front-end
bulma
- made available the new InputFilter & EnsoInputFilter components
- made available the new SimpleDateFilter & EnsoSimpleDateFilter components
calendar
- updated EnsoCalendar's resizing strategy
departments (new)
- a new package for managing departments
divider
- updated dependencies to address a security vulnerability
erd
- updated dependencies to address a security vulnerability
filters
- added two new filter components: InputFilter & SimpleDateFilter as well as their Enso counterparts: EnsoInputFilter & EnsoSimpleDateFilter
- fixed DateFilter's picker width
- date-filter refactor
how-to
- fixed the @enso-ui/uploader dependency restriction
measurement-units (new)
- a new package for managing measurement units
money
- updated dependencies to address a security vulnerability
people
- fixed the missing user buttons from person edit/create forms
projects (new)
- a new package for managing projects
tables
- you can now clear the search and change search mode while loading
themes
- updated deps to address mixin-deep security vulnerability
- updated the vue-filter css so that the components can be customized with is-* mod classes
uploader
- added the formatBytes.js helper
- fixed the file size reporting sometimes causing an undesired limitation
back-end
core
- added a
enso:storage:reset
command which can be ran after php artisan migrate:fresh to clear the storage (but before seeding)
countries
- removed broken relationship
- added currencyCode in the model's resource
- this package is now a dependency of the new
laravel-enso/measurement-units
package
cli
- added the TableCache trait to the generated model
- fixed the request validator namespace
- updated the
resources
folder toclient/src/
- updated the tests
departments (new)
- a new package for managing a departments
forms
- adds the ability to customize routeParams on edit
- fixed several form template validation error messages
measurement-units
- a new package for managing measurement units
- this package is now a dependency of the
laravel-enso/products
package
localisation
- added missing translation keys
ocr (new)
- new package that can perform optical character recognition for pdf files
- depends on the OCRmyPDF package - you should read its documentation for more information, requirements and limitations
products
- extracted measurement unit functionality to a distinct package and updated related code
- removed the
measurement_unit
column from Product and replaces it withmeasurement_unit_id
- added the upgrade
php artisan enso:products:upgrade
console command which will migrate your products table and seed either a defaultPiece
measurement unit or can use an optional Enum to seed the measurement units specified by the enum - added some missing meta attributes within the table template
select
- fixed the typeahead trait causing issues when the request did non contain custom parameters
- refactored the search strategy resulting in more concise code
- fixed relation attribute search
- updated the display of the selected options, showing them at the bottom of the option list (previously they were at the top) making it easier to set new options when in multi-select mode
services
- refactored the paths and routes structure
- updated the factory and the tests
tables
- the exported file name is now translated
- fixed the searching logic when having nested columns (relations) on the main model
- refactored the search strategy resulting in more concise code
Upgrade steps
This is a non breaking upgrade:
- run
composer update
- run
yarn upgrade && yarn
in/client
- update the version to 3.7.3 in
config/enso/config.php
If you are not using the products
package, there is nothing else for you to do.
Otherwise, you should run the products package's upgrade command, considering the following:
- the measurement units functionality was extracted to the
measurement-units
package andproducts
now depends on it - measurement units were stored in the products table's
measurement_units
column, and the values were taken from theMeasurementUnits
enum - that column is dropped and replaced with a
measurment_unit_id
column which points to themeasurement_units
table
If you did not customize the enum and were using the defaults, then you can simply run
php artisan enso:products:upgrade
and the command will handle the necessary changes.
If you had customized/extended the enum, then you should provide the enum as a parameter to the upgrade command, in which case it will be used to seed the new measurment units:
php artisan enso:products:upgrade --enum=App\\Enums\\MyEnum
v3.7.2
Laravel Enso's Changelog
3.7.2
The main purpose of this release was to switch from using tiptap to using tinyMCE for our what-you-see-is-what-you-get editor VueJS component.
Through its dependency chain, after running yarn upgrade
tiptap was breaking the build.
As a bonus, tinyMCE should be better supported and the VueJS wrapper components for it are slimmer and cleaner.
front-end
wysiwyg
- drops tiptap in favour of tinyMCE (see more below)
forms
- updates the wyisiwyg field for the new tinyMCE powered wyisiwyg component
calendar
- reverts the resizing strategy
back-end
companies
- within the static
owner
method the company model is resolved from the service container so that if you're extending & binding the package model to a local model, you will obtain the local instance
forms
- adds support for tinyMCE customization within the form configuration and the json templates
- fixes form params bug on create which caused the given parameter values to be ignored
localisation
- updated a couple of translation keys and values
Upgrade steps
This is a non breaking upgrade:
- run
composer update
- run
yarn upgrade && yarn
in/client
- update the version to 3.7.2 in
config/enso/config.php
- update the
config/enso/forms.php
configuration file and add the new key:
|--------------------------------------------------------------------------
| TinyMCE Api Key
|--------------------------------------------------------------------------
| If you're using the wysiwyg field you need to get a free api key from
| https://www.tiny.cloud/get-tiny/ first.
|
*/
'tinyMCEApiKey' => env('TINY_MCE_API_KEY', null),
If you were not using the wysiwyg
component, there is nothing else for you to do.
If you are using it, you will need to create an account on https://www.tiny.cloud/ ,
get an API key and add your application domains.
After obtaining your API key, add it to your .env
file:
TINY_MCE_API_KEY=my-api-key
v3.7.1
Laravel Enso's Changelog
3.7.1
front-end
calendar
- fixed request filter date format
filters
- fixes
fill
method for filter state - limits width for picker inputs in date filter
tables
- improves global button actions handling
ui
- small changes to the AppUpdate messages; removed the version check when updating
- missing icon import fix
back-end
companies
- added
Company::owner()
static helper method which returns the application owner company, based on the configured id (config('enso.config.ownerCompanyId')
- more information below
core
- changed the AppUpdated notification tooltip message
- added
ownerCompanyId
key inconfig.php
- updated the
config.php
configuration, so that the values that make sense are read from the.env
file if they provided - cleanup of some deprecated image files
currencies
- fixes exchange fetcher service
forms
- fixed setting the route params for create
- added support for
pivotParams
&customParams
meta properties for select
helpers
- fixed
filled
getter onObj
when value is an instance ofCollection
localisation
- updated/added a few translation keys and values
menus
- marked the computed icon not exportable in table thus fixing a table export issue
roles
- fixes role table to show users without default menu
- fixes config writer for users without role
deprecated
examples
- the package is being deprecated and will no longer be maintained
- for new projects, the relevant functionality (sample data for the dashboard charts) has been moved locally within Enso
Upgrade steps
This is a non breaking upgrade:
- run
composer update
- run
yarn upgrade && yarn
in/client
Company::owner()
The newly added method addresses the need to identify the Application's client or owner. Internally, we've handled this in various ways and, with this small update, we mean to provide an unified, consistent approach.
Since it makes sense that the Company model from the Companies package may be extended either in other packages or locally, the method's resulted class is resolved from the container.
Thus, if required, you can bind your desired/local implementation to the LaravelEnso\Companies\app\Models\Company
class in the service provider.
You may set the application owner's company id within the main Enso configuration file (enso.config.ownerCompanyId
).