Releases: laravel-enso/enso
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
).
v3.7.0
Laravel Enso's Changelog
3.7.0
The major purpose of this release is three fold:
- the switch to VueCli 4 which allows using the latest official VueJS tooling and should be more future-proof
- the date handling flow was simplified: we now expect that the front-end will send the date in the database's date format (usually
Y-m-d
orY-m-d H:i:s
) and on the back-end, all dates should be cast to Carbon\Carbon. - the back-end packages were updated to require PHP 7.3+
front-end
accessories
- default value for Documents.vue's disableUpload was fixed causing users to not be able to upload files
calendar
- added Event recurrency support
- small fixes and under the hood refactor
- import of VueCal language packs for the Enso supported languages which fixed translation issue
companies
- fixed small bug when assigning a person to the company, which caused the person to not be listed as assigned
confirmation
- fixed small styling issue with the control's position
currencies
- added filters on the index page
- for the currency display, symbols are used insteand of icons
datepicker
- default date format was updated from
'd-m-Y'
to'Y-m-d'
alt-format
&alt-input
parameter usage was fixed
filters
- DateFilter now has a
direction
parameter & control: you can now choose to filter from past & future presets - DateFilter also has a new
forward
boolean parameter which makes the component to start by default with the
future presets - under the hood date format handling has been improved
forms
- fixed the
alt-input
&alt-format
handling for the date field - instead of a single
actions
slot, the form now has a twoactions-left
&actions-right
slots. This is a breaking change - see the upgrade steps
products
- various small css fixes
select
- making another request when the last request is still in progress will trigger the existing request's cancellation
- fixed bug when using the select in Object mode
- improved serverSide checking strategy
- the CoreSelect's
value
parameter is now required
tables
- fixed issue with unneeded scrollbars appearing under some circumstances
- small cleanup
themes
- theme files were renamed due to switching to VueCli and using the style loader webpack plugin
- Bulma version was bumped to ^0.8.0
- button sizes are customized to appear smaller than the new Bulma default (and slightly smaller than the old default)
ui
- the media resources that belonged to the UI (such as notification image SVGs, some logos) were moved to the ui package and are copied on build
- a new component is available in the navbar and being used to notify the currently
logged in users whenever a new application update has been deployed - small changes made due to VueCli upgrade (routes, styles, themes)
- other small fixes
back-end
activity-log
- updated date parsing due to filters changes
avatar
- added support for gif files
calendar
- recurring events are now supported
- various bugs were fixed
- updated the tests
companies
- updated message when setting/updating an assigned person/mandatary
countries (new)
- functionality derives from 'addresses` which now is now better encapsulated
core
- some of the resources used during the VueCli build process have been moved to this package, namely:
- stubs for the index page
- images used in the emails
- a new command (
php artisan enso:announce-app-update
)and logic has been implemented that can be used to notify currently logged in users that a new application version has been deplyed - the older, deprecated upgrade commands where purged
- improved local state handling (breaking change)
- aded upgrade commands for calendar, countries & tutorials
- the themes' configuration was updated
currencies
- created a Converter service which can convert from one currency to another, at a given date
- refactores fixer currency API
- fixed exchange rate validation and more
- fixed config API link
- updated date parsing due to datepicker changes
- added seeders for 17 currencies
- added
exchange_rates
date index - various under the hood improvements
- updated the tests
enums
- updated PHP dependency to 7.3+
excel
- updated PHP dependency to 7.3+
files
- updated date parsing as required for latest filters usage
- fixed invalidMimeType exception message
forms
- updated date parsing for latest datepicker usage
- updated the config: the previous
dateFormat
parameter is now namedaltDateFormat
(breaking change) - fixed route generation in Builder
- updated the tests
helpers
- the
DateAttributes
trait was removed as a consequence of the new date handling flow (breaking change)
people
- updated date parsing as required for latest filters usage
permissions
- added menu related check when deleting permission
rememberable
- fixed caching bug when choosing to cache 'forever'
tables
- updated date filtering strategy which resulted in much simpler and robust code
- fixed default sort issue
- fixed rawTotal computation issue for empty tables
- fixed bug when exporting nested columns
tutorials
- the
show
route was renamed toload
- fixed small form bug
versions
- updated PHP dependency to 7.3+
Upgrade steps
Before getting into the actual upgrade steps, an overview of the changes is useful.
When switching from Laravel Mix to VueCli a few things happen:
- the front-end resources location will change from
resources/js
toclient/src/js
- the front-end dependecies location will change from
node_modules
toclient/node_modules
- the
package.json
configuration file location will change from project root toclient
- the front-end patches location will change from
patches
toclient/patches
- when installing dependencies using Yarn, building or serving the front-end, you will need to
cd
into the client folder first. - instead of using Laravel Mix's
webpack.mix.js
file to configure the build, we will be using VueCli'svue.config.js
- we can still use Valet to serve the back-end but we must use
yarn serve
to serve the front-end for
hot module replacement
VueCli upgrade related steps
-
copy the
client
folder from the Enso repo into your project root -
add any (package) aliases you had previously added to the
webpack.mix.js
file into:- the
settings.import-resolve.alias.map
section of theclient/.eslintrc.js
file - the
configureWebpack.resolve.alias
section of theclient/vue.config.js
file
- the
-
update/replace your project root
.eslintrc.js
with the contents fromclient/.eslintrc.js
and correct the aliases paths -
if you had customized the
.babelrc
file, move those customizations to theclient/.babelrc
file, and remove the root file -
move your patches from
patches
toclient/patches
-
move any local dependencies you had added to the
package.json
to theclient/package.json
file -
move any additions from the
resources/js/app.js
file to theclient/src/js/app.js
-
move any additions from the
resources/js/localState.js
file to theclient/src/js/localState.js
-
move any additions from the
resources/js/router.js
file to theclient/src/js/router.js
-
move your local components, pages, routes & store from
resources/js
toclient/src/js
-
once you have moved your js files, you may delete the
resources/js
folder -
if you have any local image resources in
resources/images
you can create aclient/src/images
folder and move them there. Afterwards, you should add a new CopyPlugin instance to theconfigureWebpack.plugins
section withinvue.config.js
so that the images are copied on build (and overwrite, if needed, the default Enso assets).You may then delete the
resources/images
folder (the image files provided with Enso, such as the ones in theemails
andcorners
have been extracted to their respective packages) -
move any addtions from within the
resources/sass
files to theclient/src/sass
files -
once you've moved everything, the
resources
folder should look like on the Enso repo here -
remove the
webpack.mix.js
file -
update
.gitignore
using Enso's as example and double checkclient/.gitignore
-
within
composer.json
update:laravel-enso/core
to4.6.*
laravel-enso/calendar
to1.4.*
(if using the calendar package)
-
run
composer update
in the project root to update the back-end packages -
cd into the
client
folder and runyarn
to install the front-end packages -
make a copy of the
client/.env.example
file, name it.env
, then edit it an set the url you're currently using with Valet, for your project -
update the themes' configuration (
config/enso/themes
) to:
return [
'light' => 'light',
'dark' => 'dark',
'light-rtl' => 'light-rtl',
'dark-rtl' => 'dark-rtl',
];
Enso upgrade related steps:
- search for any
DateAttributes
usages, remove the import and any date setters you might have added - when refactoring date attributes, you may use this commit as an example
- search and replace the
LaravelEnso\Addresses\app\Models\Country;
namespace withLaravelEnso\Countries\app\Models\Country;
- where using the
actions
slot within forms, replace theactions
slot withactions-left
and/oractions-right
slots as required - the local state implementation class should be bound in the service container to the
LaravelEnso\Core\app\Services\LocalState
- publish the updated
AddressFactory.php
:
php artisan vendor:publish --tag=addresses-factory --force
...
v3.6.1
Laravel Enso's Changelog
3.6.1
front-end
activity log
- keepAlive was removed form the index page
calendar
- as the package is no longer included in the UI package, if you want to continue using it, it should be manually installed
- previously, the calendar was more of a stub package with little functionality, now it has been rewritten and updated, with features such as:
- creating and managing local calendars
emails
- is a new package that can be used to compose emails for bulk sending (within the application)
files
- keepAlive was removed form the index page
filters
- fixed a bug in for the interval filters' computed value
products
- small cleanup
switch
- fixed readonly & disabled state
tables
- the 'Totals' footer is now collapsible, similar to the other columns
typeahead
- css styling was updated thus fixing some scrollbar issues and sub components sizing
ui
- various small changes
back-end
activity log
- small refactor
- the Events list now has better, user friendly labels
addresses
- the
Country
model now uses Rememberable (caching) - the Addresses factory should be force published as it has been updated - this now fixes
the tests which appeared to randomly fail
avatars
- the uploaded avatar now has the
created_by
attribute properly set
cli
- fixed page tiles for create, edit, show routes
companies
- the
Active
status is now selected by default in the form when creating a new company
control panel
- date handling was refactored
control panel api
- refactored the statistics building flow
core
- the
Calendar
package was removed as an implicit dependency - if required add it manually using composer - fixed the User seeder
- generates now the broadcast private channel name dynamically, suited for cases where the user is under a custom namespace
currencies (new)
- is a package that can be used to manage currencies and exchange rates
- various small changes and improvements
- improved request validation
- added Fixer Currency API integration so the current exchange rates can be automatically retrieved for your defined currencies
cli
- page titles for edit, create, show where fixed
- various small changes and improvements
data export
- the authenticated user is now passed in the
ExcelExport
service so that thecreated_by
flag can be accurately set for the generated files - the computation for the sheet limit has been fixed
data import
- fixes setting the
created_by
attribute for the rejected file
emails (new)
- various small changes
files
- the
File
model'sbetween
scope now includes the limits of the given interval whereas in the past they where excluded - the
Files
service'sattach
method should also receive a$user
model so we can properly set
thecreated_by
attribute on the model FilePolicy
'sownsFile
method visibility what changed from private to protected so it can be overwritten
if required
forms
- updated tests to use the configured user model
helpers
- updated the
InCents
trait to handlePivot
models - fixed the event name in the
ActiveState
trait (typo) - enhanced the date parsing strategy for the
DateAttributes
trait in that if the date cannot be parsed
using the available format(s),Carbon::parse
will be used as fallback
notifications
- generates now the broadcast private channel name dynamically, suited for cases where the user is under a custom namespace
products
- the product-supplier relationship has been enhanced with the use of Pivot model class for the pivot
- the supplier prices are now saved 'in cents' through the use of the
InCents
trait
rememberable
- the package has been rewritten for better code performance, readability & maintainability
- in addition to the existing Cache mechanism, a new Volatile transparent layer is used by default, which uses an in-memory cache (which is available during the request).
select
- a new
TypeaheadBuilder
trait has been added to the package, which acts like a shim between the typeahead front-end and the Options backend so we can have select-like ease of use when using typeaheads
tables
- various small changes, bug fixes and improvements
- a
DynamicTemplate
contract & mechanisms are now available that address a possible security issue when caching templates and having different templates and data for different users - enhanced interval filter handling
- updated tests to use the configured user model
- the exported file now has the
created_by
attribute properly set
teams
- removed deprecated loggable properties from the model
Upgrade steps
composer update
yarn upgrade && yarn
- the Addresses factory should be force published (pay attention if you've customized it):
php artisan vendor:publish --tag=addresses-factory --force
- update your User seeder or force publish the Core seeders (pay attention if you've customized them):
php artisan vendor:publish --tag=core-seeders --force
- update the Enso version within your config file to reflect the 3.6.1 version
- if you want to install the calendar package:
composer require laravel-enso/calendar:1.3.x
, then addyarn add @enso-ui/[email protected]
- read docs
php artisan enso:upgrade
php artisan migrate
For the next release we aim to move to Vue Cli from using Laravel mix.
v3.6.0
Laravel Enso's Changelog
3.6.0
front-end
accessories
- adds a
canAccess
a check in documents to avoid an error - fixes the uploader import in documents
activity-log
- major refactor for the new BE version, backward incompatible.
charts
- adds
Chart
to exports
datepicker
- adds support for
altInput
&altFormat
filters
- updates
date-filter
interval logic. Previously, "today" generated an interval between today@00:00:00 (AM) and tomorrow@00:00:00 (AM). Now the interval is between today@00:00:00 and today@23:59:59. The same principle applies for the other intervals. - all the filters had the
title
property renamed toname
(was causing unwanted native tooltip)
select
- adds
axios
request cancelling on concurrent requests - fixes a bug on handling the value when operating in
objects
mode - improves serverSide check strategy
- fixes bug where an error was thrown when using w/o server side
tables
- refactored for the new v3.0.0 BE
switch
- fixes disable and readonly states
back-end
activity-log
- rebuilt from scratch
- registration of events is made in `LoggerServiceProvider'
- all registerd / logged events use Laravel native Model events and Observers
- allows any number of custom events to be registered with models by extending the existing structures
- now the messages are properly translated
- for multi part events messages can be strings or arrays, (helps localisation)
- added a default
UpdatedActiveState
event - documentation will be updated soon
- adds tests
addresses
- fixes test that was sometimes causing problems
- adds a
label()
helper to theAddress
model - provides address
label
customization by config
companies
- adds unique index for
fiscal_code
andreg_com_nr
- consolidates the two request validators for
Company
in oneValidateCompanyRequest
- upgrades the table for v3.0.0
- when creating a company the active status is preselected
- fax and bank were removed from the index table
core
- consolidates the two request validators for
UserGroup
in oneValidateUserGroupReques
- upgrades the table for v3.0.0
- adds the new
dateTimeFormat
in config and in theAppState
builder - adds the
Activatable
contract on theUser
model
data-import
- adds an
Authenticates
contract that can be used by importer classes when the user that performs the import needs to be authenticated - fixes a bug occuring when generating the rejected file, which caused some validation errors to not be reported
excel (new)
- provides an
ExportsExcel
contract and theExcelExport
service that makes excel exports an easy task - package was added to the base Enso project
- package was added to the base Enso project
forms
- adds meta support for select's
objects
property - fixes a bug when manually set values were transformed by the builder for the selects operating in 'object' mode
- improves
needsValidation()
logic
helpers
- adds the
Activatable
contract - changes the
ActiveState
trait by renaming:- getter
isDisabled()
=>isInactive()
- helper
disable()
=>deactivate()
- scope
disabled()
=>inactive()
- getter
- fixes an edge case bug on
InCents
files
- fixes
FilePolicy
localisation
- consolidates the two request validators for
Language
in oneValidateLanguageRequest
- upgrades the table for v3.0.0
- adds the
Activatable
contract onLanguage
model
menus
- consolidates the two request validators for
Menu
in oneValidateMenuRequest
- upgrades the table for v3.0.0
people
- consolidates the two request validators for
Person
in oneValidatePersonRequest
- upgrades the table for v3.0.0
permissions
- consolidates the two request validators for
Permission
in oneValidatePermissionRequest
- upgrades the table for v3.0.0
roles
- consolidates the two request validators for
Role
in oneValidateRoleRequest
- upgrades the table for v3.0.0
tables
- the package was completely refactored
- the table builder class now has to implement a
Table
contract instead of extending a service class - adds a serie of contracts besides
Table
:AuthenticatesOnExport
=> should be used for tables where the logged user is needed for restricting visible rows or any other purpose. The exporter will make sure that the user who requested the export will be authenticated before any queries are performedCustomFilter
=> should be used for tables when custom filter logic is needed viaparams
. Will make sure that the correct count is displayed when custom filters are appliedRawTotal
=> should be used with tables where the total cannot be computed simply by adding up column values (e.g. `sum(price * quantity))Filter
=> can be used to register local filtersComputesColumns
=> can be used to register local computors
- improves exceptions
- adds template caching, configurable by global config or per table. Comes with a
php artisan enso:tables:clear
command that should be used on production when opting for cacheing templates - renamed
cache
tocountCache
. Can now be set globally in the config. The builder will notifiy the dev if certain models are missing theTableCache
trait - makes the
buttons
attribute mandatory in templates - date interval filters object must now contain the
dateFormat
prop representing the FE format of the date. If the dateFormat prop is null, theconfig('enso.config.dateFormat')
will be used dbDateFormat
was removed- improves the strategy for autodetecting the
model
property. The camel case of the model class short name is now used - determines the table's
name
property (if not provided in the template) by pluralising themodel
property (see above) - the notification channels should be present in config `['email', 'broadcast', 'database']
- all tests were refined
tutorials
- consolidates the two request validators for tutorial in one
ValidateTutorialRequest
- upgrades the table for v3.0.0
- adds
TableCache
on theTutorial
model
Upgrade Steps
-
update
composer.json
dependencies to:- "laravel-enso/cli": "3.3.*"
- "laravel-enso/core": "4.5.*"
- "laravel-enso/pdf": "1.0.*"
- "laravel-enso/excel": "1.0.*"
-
add in
composer.json
=>autoload-dev.psr-4
section:- "LaravelEnso\Cli\tests\": "vendor/laravel-enso/cli/tests/"
- "LaravelEnso\Tables\Tests\": "vendor/laravel-enso/tables/tests/"
-
update
package.json
dependencies to:- "@enso-ui/accessories": "2.1.x"
- "@enso-ui/bulma": "2.1.x"
- "@enso-ui/directives": "1.0.x"
- "@enso-ui/mixins": "1.0.x"
- "@enso-ui/tables": "1.2.x"
- "@enso-ui/themes": "1.0.x"
- "@enso-ui/transitions": "1.0.x"
- "@enso-ui/ui": "2.1.x"
-
remove from
package.json
- "@enso-ui/filters": "^1.1.1"
- "@enso-ui/forms": "~1.2.0"
- "@enso-ui/select": "~1.1.1"
-
run `composer update && yarn && yarn upgrade && yarn"
-
run
php artisan enso:upgrade
-
add in phpunit.xml the test suite for activity-log
<testsuite name="activity-log">
<directory suffix="Test.php">./vendor/laravel-enso/activity-log/tests/units</directory>
</testsuite>
- add in
config/enso/config.php
thedateTimeFormat
key
activity-log
- truncate the
activity_logs
table. Or if required, you can manually migrate the old data to the new format - publish the
LoggerServiceProvider
and configure it using the provider from this repo as an example:php artisan vendor:publish --tag=activity-log-provider
addresses
- add the to the addresses config file the
label
key
data-import
- add the new
Authenticates
contract to all imports that need the authenticated user
filters
-
replace the
title
prop withname
for all the usage instances of the following filters:BooleanFilter
,CoreSelectFilter
,EnsoFilter
,EnsoDateFilter
,DateFilter
,DateIntervalFilter
,EnsoSelectFilter
,IntervalFilter
,SelectFilter
VueFilter
.
To do this you can search the whole resources folder for
title="
. Make sure you only replace the prop for filters and not other components -
make sure that the change in
date-filter
(described above at the front-end > filters section) does not impact your local use cases -
whenever using date-filters with tables, remove
dbDateFormat
and make suredateFormat
is present in the interval object, so the back-end knows it's a date interval.dateFormat
should reflect the ui date format. If left null, the backend will considerconfig('enso.config.dateFormat')
.
helpers
- make sure that you replace
isDisabled()
&disable()
helpers usage withisInactive()
&deactivate()
anddisabled()
scope withinactive()
request validators
- most of the
ValidateModelStore
/ValidateModelUpdate
request validators were consolidated into oneValidateModelRequest
(see the changelog). Check all local classes that are extending Enso request validators and make sure they extend the right class.
tables
- remove the usage of the
Datatable
trait as it no longer exists. You may search foruse LaravelEnso\Tables\app\Traits\Datatable;
and remove any traces; - refactor all the table builders to implement the new
Table
contract and expose the requiredquery()
andtemplatePath()
methods. You can follow as example the refactor of the permissions table - the
protected $templatePath
property has becomeprotected const TemplatePath
; - if you have extended any of the...
v3.5.0
Changes
front-end
We've created individual packages for resources that map on their back-end siblings for:
- calendar
- files
- data-import
- activity-log
- people
- companies
- teams
- roles
- permissions
- menus
- localisation
- tutorials
- how-to
This allows much easier customisation...
switch
- fixes not clickable bug on IOS
tables
- cleansup vResponsive
- fixes file download on default download button
back-end
cli
- fixes menu creation w/o model bug
- updates table template stub
- updates form builder stub to use
static
vsself
- updates stubs for the new aliases in enso-ui 2.x
companies
- makes
status
required in form validator - fixes person form in edit mode, the user field is now readonly
core
- adds an upgrade for the new data-import
data-import
- refactors, cleans & increases accuracy for the progress tracking strategy
forms
- exposes
sectionVisibility
&tabVisiblity
helpers by making them public - fixes
unknownMetaAttributes()
validation error reporting
helpers
- fixes inCents when having null cent attributes
- adds
CarsadesMorphMap
trait. You can use this in combination with Laravel'sRelation::morphMap()
and have a single alias for all children classes. The convention is to use the singular camel case name of the model's table
rememberable
- refactored
self
vsstatic
in model retrieving
tables
- fixes
cents
flag appeared as true when no cent columns defined bug
Upgrade Steps
- update in
package.json
the following- "@enso-ui/accessories": "~2.0.0",
- "@enso-ui/bulma": "~2.0.0",
- "@enso-ui/directives": "~1.0.1",
- "@enso-ui/filters": "^1.1.1",
- "@enso-ui/mixins": "~1.0.0",
- "@enso-ui/select": "~1.1.1",
- "@enso-ui/themes": "~1.0.0",
- "@enso-ui/transitions": "~1.0.1",
- "@enso-ui/ui": "~2.0.0",
- replace in
webpack.mix.js
'@core-routes': `${__dirname}/node_modules/@enso-ui/ui/src/bulma/routes`,
'@core-pages': `${__dirname}/node_modules/@enso-ui/ui/src/bulma/pages`,
'@core-middleware': `${__dirname}/node_modules/@enso-ui/ui/src/middleware`,
'@core-modules': `${__dirname}/node_modules/@enso-ui/ui/src/modules`,
with
'@core': `${__dirname}/node_modules/@enso-ui/ui/src`,
- search and replace:
@core-modules
=>@core/modules
@core-pages
=>@core/bulma/pages
@core-middleware
=>@core/middleware
@core-modules
=>@core/modules
- update in
router.js
:- add
import routes from '@core/bulma/routes';
- remove
const routes = routeImporter(require.context('@core-routes', false, /.*\.js$/));
- add
- run
yarn upgrade
- update your front-end patches if the case requires
- run
yarn
(to apply the patches) - run
composer update
- run
php artisan enso:upgrade
Enjoy!
v3.4.0
Changes
front-end
accessories
- adds permission checks for various document operations
filters
- cascades enso select event handlers in select filter
- adds v-model to date filter, with value required
- adds a
title
prop to date-filter - fixes tooltip in date-filter
- adds watcher for
value
prop in date-filter - fixes horizontal padding in vue-filter
forms
- allows passing
params
in select fields - avoids scrollIntoView erorrs (eg when using hidden fields)
select
- adds watcher for
source
- no longer fetches on click when the component is readonly / disabled
- locks selection when params / pivot-params / custom-params are changed until the new list of options is fetched
- removes
disable-filtering
prop - disables front end filtering when using server-side
tables
- improves vResponsive directive
- refactors dtRowId
- adds a
FilterState
helper component - renames bulma
Controls
component names - minor visual refactor
typeahead
- adds automatic route translation in enso-typeahead
- cascades clear
ui
- the
route
helper is no longer defined as global and must now be injected in every component - fixes menu label padding
- improves tag group template in search, adds horizontal scrolling
- fixes checkbox alignment in checkbox manager
- fixes params in dataimport index template
back-end
addresses
- removed superfluous validation
- removes address observer
- add laravel-enso/enums
- improves form extending, removes formTemplate from config
- adds lat and long fields in form, with custom validation rules
- renames DefaultAddress controller to SetDefault
- improves scopeFor to work with morphMap
- removes deprecated Addresses trait
- refactors exceptions
avatars
- removes redundant method call in default avatar
- upgrades laravolt/avatars to 3.0
calendars
- adds laravel-enso/enums
- adds enums service provider for registering calendars
charts
- small refactor
cli
- adds a package option. Now you can generate whole structure boilerplates directly in your
vendor/my-vendor/my-package
folder - adds session saving. You can now configure a structure, exit (or encounter an error :P) then come back and continue from where you left
- adds unit tests
- adds laravel-enso/enums
comments
- removed superfluous validation
- small refactor
companies
- implements dependency injection in controllers
- adds rememberable, avoids deletion conflicts and relations traits to the company model
- adds laravel-enso/enums
- improves form for easier customization
- adds
fiscal_code
,reg_com_nr
andstatus
fields in table migration - adds
CompanyStatuses
enum - adds a
EnumServiceProvider
- removes
companies.php
config file - removes default restrictions in Options controller
- adds fiscal_code to $queryAttributes in Options
- refactors exceptions
core
- adds laravel-enso/enums
- adds
EnumServiceProvider
- fixes email unique validation in user form validation
- removes duplicate trait use in UserGroup
- adds rememberable on UserGroup
- adds rememberable, avoids deletion conflicts and relations traits to User
- improves user and group form for easier customization
- removes versionings as a requirement
- updates
Upgrade
command for 3.4.0
data-export
- adds a chunk option in config for setting the default value
- updates policies: view, share, destroy
- upgrades box/spout to 3.0
- implements the new AuthorizesFileAccess
data-import
- small refactor
- updates contracts (beforehook, importable, afterhook) to receive the authenticated user as well
- adds laravel-enso/enums
- implements AuthorizesFileAccess contract
- updates policies: view, share, destroy
- upgrades box/spout to 3.0
- refactors exceptions
discussions
- small refactor
documents
- removed superfluous validation
- updates policies: view, share, destroy
- implements AuthorizesFileAccess
dynamic-methods (new)
- a set of traits that allow adding methods / relations / mutators / accessors in models from a local service provider
enums (new)
- Enso Enum was moved from laravel-enso/helpers in itw own package
- has an EnumServiceProvider that allows registering enums that are sent by the app state builder to the front-end. The provider can be extended in any package or locally
files
- greatly improves the authorizan strategy
- adds AuthorizesFileAccess contract
- adds an UploadPolicy for view, share and destroy
- refactors exceptions
forms
- removes deprecated
allow-filtering
option from meta - adds
params
to meta for select fields - allows use of nested attributes
- refactors exceptions
helpers
- adds an optional precision for all methods in Decimals
- adds floor and ceil to Decimals
- fixes an edge case bug in Obj's filled method
- adds DatabaseSeederProgress and SeederProgress traits that allow displaying a progress bar in the seed process
- updates InCents to do floor on converting in cents
- removes Enum (now lies in its own package)
how-to
- small general refactor
- refactors exceptions
image-transformer
- refactors exceptions
io
- adds laravel-enso/enums
localisation
- refactors the
localisation
key tolanguage
- renamed form & table (builders & templates)
- improves form for easier customization
- refactors exceptions
logs
- refactors exceptions
menus
- small refactor
- improves form for easier customization
notifications
- removes unused vars in notification
people
- improves form for easier customization
- adds AvoidsDeletionConflicts, Relations, Rememberable on Person
- adds laravel-enso/enums
- adds EnumServiceProvider
- adds bank and bank_account to the table's migration
- adds uid to $queryAttributes in Option
- removes people.php config file
permissions
- small refactor
- improves form for easier customization
rememberable
- cacheGet($id) now return null if the model does not exist in the database
roles
- adds rememberable on Role
- adds laravel-enso/enums
- improves form for easier customization
- refactors exceptions
searchable
- casts labels sent to the front-end as strings
- refactors Finder.php
- improves the logic in Search.php
select
- refactors the option builder
tables
- small refactor & cleanup of redundant logic
- refactores filters
- dtRowId is now configurable and defaults to "id"
- the box/spout dependency was upgraded to the v3 version
- adds/uses
laravel-enso/enums
- now uses the Laravel 6 Arr class instead of the global helpers
- adds
model
prop in template for customizing the model - refactors exceptions
track-who
- improves resources logic
- refactors auth helper into facade
- fixes updatedByTest
teams
- team now uses rememberable
tutorials
- small refactor
- improvements to form customization
- adds/uses
laravel-enso/enums
versions (new)
- alternative package to versioning where the version is kept on the model vs using a separate table
versioning
- improves flow, optimizes queries, fixes N+1 problem
- addresses scenario where N+1 queries were being made by using $with
- renames versioning table to precede all other model migrations
Upgrade steps
Local project
- update in composer.json:
- require
- "laravel-enso/control-panel-api": "2.3.*", // optional, if you are using it
- "laravel-enso/core": "4.4.*",
- "laravel-enso/enums" "1.1.*",
- require-dev
- "codedungeon/phpunit-result-printer": "^0.26.0",
- "facade/ignition": "^1.4",
- "nunomaduro/collision": "^3.0",
- "phpunit/phpunit": "^8.0"
- require
- update in package.json
- "@enso-ui/accessories": "~1.1.0",
- "@enso-ui/bulma": "~1.2.0",
- "@enso-ui/forms": "~1.2.0",
- "@enso-ui/select": "~1.1.0",
- "@enso-ui/tables": "~1.1.0",
- "@enso-ui/ui": "~1.5.0",
- rename
structuremanager
test suite tocli
in phpunit.xml - remove from the local
User
model theAddresses
&Documents
traits - update the
CompanyFactory
with the one from the github repo (of course, retain any local additions if necessary) - update
enso/exports.php
,enso/tables.php
,laravolt/avatar.php
config files with the ones from the github repo - delete the
enso/people.php
&enso/companies.php
deprecated configs - make sure to refactor any customisation to the people / companies forms or tables using dependency injection / binding in your
AppServiceProvider
. The old customization mechanisms which were using configs have been removed. - search and replace
LaravelEnso\Helpers\app\Classes\Enum
=>LaravelEnso\Enums\app\Services\Enum
- either refactor all table builders and remove the
dtRowId
alias for the id, or update your local table templates and add"dtRowId": "dtRowId"
- make sure you inject
route
in all the VueJS components where the helper is used. Search for "route()" in your resources folder and refactor - refactor any customizations to documents, uploads, imports, exports to make use of the
AuthorizesFileAccess
contract - update all importers and classes implementing the
BeforeHook
,Importable
andAfterHook
contracts, as thebefore
,run
andafter
method signatures have changed and a and$user
parameter was added - add a
value
parameter to alldate-filters
orenso-date-filters
component use - if you are currently using the Versioning package, manually add it as a dependency in your composer.json under
require
, as it was removed as a dependency from Core - run
php artisan enso:upgrade
Optional: - now you can register/add Enums directly from your packages, to the application state, b...
v3.3.6
Changes
front-end
datepicker
- adds support for readonly (acted as disabled before)
directives
- adds
v-long-click
directive; should provide the duration when used (v-long-click:2000
)
forms
- disables
dirty
monitoring whendisable-state
is used - adds
self
to the ready event; now the whole form component can be used as an object from the outside
select
- improves fetching / debouncing strategy
- adds a
selection
event that returns option objects - fixes non string labels highlighing / matching
- fixed issue with matching when using non-lower case query string
tables
- shrinks default row text to
0.9em
- adds support for cents
- adds support for
searchModes
,searchMode
ui
- adds vuecal2 support; the calendar menu is still WiP
- fixes
numberFormat
filter to always display the specified digits - adds support for
font-awesome-layers-text
component; can be accesed under the global<falt/>
- fixes a bug in bookmarks when trying to focus the bookmark before the page was mounted
- fixes default logo
uploader
- adds
open-file-browser
event
back-end
addresses
- adds tests
calendar
- adds reminders; still WiP
companies
- updates the form and table classes to allow easier extenting via service container
cli
- fixes stub for table builder
documents
- return a document resource from
Store.php
controller
forms
- adds tests
- adds support for
disable-filtering
select option
helpers
- adds
DateAttributes
trait - adds
InCents
trait
history-tracker
- rewrites logic that handles tracked attributes
localisation
- fixes routes for
localisation:merge
command
people
- updates the form and table classes to allow easier extenting via service container
ro-addresses
- adds an option resource
roles
- updates
warning
towarn
inenso:roles:sync
command
tables
- adds
searchMode
/searchModes
to allow full use of table indexing on huge tables - adds support for cents
- adds tests
- fixes search with multiple arguments on relations
- fixes max / min filters
versioning
- improves logic
- fixes error repoting
- fixes various edge case bugs
Upgrade steps
composer update
php artisan enso:upgrade
yarn upgrade && yarn
Enjoy!
v3.3.5
front-end
accessories
- adds an
icons
boolean prop to theAccessories.vue
component - improves
Document.vue
for long names - adds a
compact
boolean prop forComments.vue
- adds
disable-state
onEnsoForm
inAddressForm
card
- improves (reduces) card control spacing
datepicker
- adds Ukranian language support
filters
- fixes
IntervalFilter
(now works withv-model=interval
) &DateIntervalFilter
forms
- cascades
fetch()
,setOriginal()
,hideTab()
,showTab()
from the core component - adds a
ref="field"
on the used form field component inFormField.vue
- fixes vuex state handling => keeps a copy of the form data
- automatically hides tabs with empty sections
mixins
- adds a
files.js
mixin
select
- emits an
update
event when a change is made from inside the component - fixes
fetch()
cascading from the core component - allows multi argument search with highlighting matched
tables
- fixes custom totals
- adds support for nested attributes
ui
- fixes
.
(dot) date separator handling - adds a
setPageTitle
action in store.js that handles page title & bookmark renaming - adds
hideFooter
/showFooter
mutations inlayout.js
store module - extracts
AvatarList.vue
component fromTeam.vue
- fixes settings bar padding that was causing the appearance of a horizontal scroll in some cases
uploader
- adds a compact option
back-end
addresses, comments, discussions, documents
- fixes avatar loading for
TrackWho
resource - adds a
MorphOne
relation besides theMorphsMany
- adds `UpdatesOnTouch
data-export
- adds missing imports in
ExcelExport
service
data-import
- changes sheet normalisation from camel case to snake case
- ignores empty rows on import
examples
- fixes
DateInterval
filter use
files
- fixes avatar loading for
TrackWho
resource
helpers
- adds translation in
EnsoException
- adds
AvoidsDeletionConflicts
model trait => reportsConflictHttpException
when a model cannot be deleted due to DB restrictions - adds
MapsRequestKeys
request validator => adds amapped()
method to the request validator that maps the keys to snake case - adds
UpdatesOnTouch
model that ensure that parent models trigger theupdated
event when using theprotected $touches
property. Does that by rewritingModel
'stouchOwners()
method. - adds
Decimals
class that exposes a set of static helpers for decimals operations / comparisons using bcmath
forms
- adds
hideSection($fieldName)
/showSection($fieldName)
&hideTab($tabName)
/showTab($tabName)
helpers for the form object
io
- fixes avatar loading for TrackWho
people
- adds missing
position
&is_main
pivot information oncompany()
&companies()
relations
ro-addresses
- adds county
Options
controller & route
roles
- refactors the
Sync
command
select
- allows multi argument searching
- adds a
comparisonOperator
option inselect.php
config - adds tests
tables
- refactors excel export to work with authenticated user (needed in some scopes)
- fixes interval filters (both date & non date)
- implements dependency injection for resolving the table class
- adds
searchable
ability for relations / nested attributes - adds
cents
option in meta that divides totals to 100, if the case
teams
- fixes n+1 query problem when loading resources in index controller
track-who
- refactors resource to enfore correct pre-loading of relations
ui
- fixes enums translations
versioning
- adds a
lockFor($version)
method - refactors the trait
Upgrade
composer update && yarn upgrade && yarn
v3.3.4
Bug fixes, small additions & refactors, dependencies updates
BE
calendar
- fixes the request validator and
allowed
scope
data-export
- fixes contracts import
ExcelExport
service
data-import
- fixes excel seeder in
- adds a small refactor in
Template.php
roles
- fixes
enso:roles:sync
throwing error when the roles folder was missing
tables
- fixes multiple select filters in tables
- fixes
filters
prop parsing - fixes interval filters
- refactors excel export to work with scopes that need the authenticated user
FE
forms
- cascades
setOriginal()
helper invue-form
andenso-form
ui
- adds a
disable-state
boolean prop for forms that don't need state - adds a toaster confirmation when writing role config files
- adds dot separator support for date format in enso-ui
tables
- adds payload to postEvents
- fixes
clickable
on columns hidden due to responsiveness
wysiwyg
- patches the
Link
extension to open links in new tab / windows
Upgrade
composer update && yarn upgrade && yarn
v3.3.3
Changes
ui
- adds bookmarks store module
- fixes bookmark focus
- adds ability to hold state
- adds ability to have multiple bookmarks for the same route (eg multiple edit forms on the same model)
forms
- enhances the errors & changes control, adding the ability to undo
- integrates with the new bookmark's state to hold changes
- adds a fill helper
- exposes dirty & fill in vue form / enso form
general
- fixes small bugs
- updates dependencies
Run composer update
/ yarn upgrade && yarn
to upgrade existing projects