Releases: laravel-enso/enso
Releases · laravel-enso/enso
v3.3.2
Changes
- adds preview in tables
- fixes excel export when using filters / sorts / search in tables
- fixes multiple select filter in tables
- refactors AddressForm to allow easier customization
- fixes in CLI controllers / routes / model bindings generation
- fixes dateinterval filter max value
- fixes menus treeBuilder to consider only permissions available to the auth user's role
- fixes other minor bugs
Upgrade
Run composer update
/ yarn upgrade && yarn
to upgrade existing projects
v3.3.1
Changes
- improved forms
- added a reusable
Action
component - added visual indicators when a form is dirty or has errors
- fixed a bug when constructing the
formData
object
- added a reusable
- fixed all templates where text fields were declared null as default instead of an empty string
- fixes table's db date format handling. We have now a config option for that
- fixes examples
Note
When upgrading you should consider refactoring custom form action, if any, using the new Action
component.
v3.3.0
Purpose
- rename BE repos - when the organization was started we had not really followed
a consistent naming convention for the packages. But now we do :) - use the same naming convention for migrations
- refactor controllers and request validators towards SRP,
with an invokable controller for each route endpoint - switch to using dependency injection wherever possible in controllers,
to allow easier & cleaner customization of Models ($fillable, relations etc),
request validators, from builders, table builders, etc. - replace the class registration part of the configs with service providers
- refactor
is_null($var)
usages to$var === null
, following best practices - remove
activity-log
's default inclusion from all packages except fromteams
- following several requests and real world requirements,
change the relationship between people and companies fromN - 1
toN - N
Changes
Note that all back-end packages (and repositories) were renamed,
even if in some cases, only the casing changed. Where needed namespaces were updated.
Below you'll find the old package name in parenthesis.
Back-End:
action-logger (old ActionLogger)
activity-log (old ActivityLog)
- will be soon refactored from scratch;
- the Model linking mechanism will be updated to using a registration service provider
- that this package is not yet production-ready
addresses (old AddressesManager)
- renamed namespace from
AddressesManager
toAddresses
- renamed migration (applied by the rename-migrations command)
- refactored controllers
- added
$fillable
for theAddress
model and$request->validated()
in the controllers - improved request validators
- does not allow to delete the default address if secondary addresses are present
- touches parent on model creation
avatars (old AvatarManager)
- renamed namespace from
AvatarManager
toAvatars
- renamed
Classes
folder toServices
- refactored controllers
calendar (old Calendar)
- refactored controllers
- small refactor
- this package is work in progress, will be updated and is not yet production-ready
comments (old CommentsManager)
- renamed namespace from
CommentsManager
toComments
- renamed migration (applied by the rename-migrations command)
- refactored controllers
- improved request validation
- added a
TaggedUser
resource - touches parent on comment creation
- removed the
LogsActvity
trait from the model
control-panel-api (old ControlPanelApi)
- refactored controllers
- adds
.styleci.yml
charts (old Charts)
- renamed
Classes
toFactories
- dropped that
Chart
suffix for all builders (eg.BarChart
toBar
)
cli (old StructureMigration)
- added support for namespaced models
- updated stubs for single responsibility controllers
- added
.styleci.yml
companies (old Companies)
- renamed migration (applied by the rename-migrations command)
- refactored controllers
- refactored request validation
- added
$fillable
to the model and used$request->validated()
in controller methods - removed the
LogsActvity
trait from the model - renamed
scopeTenants
toscopeTenant
$company->mandatary()
is now a helper method$company->people
was added for the new relation
core (old Core)
- refactored controllers
- refactored request validators
- added the
UserGroups
enum, bound to the app's service container under theuser-groups
alias;
the enum is also present in the app state - added the
enso:rename-migrations
command - updated the
enso:upgrade
command for a smoother upgrade - web sockets is available in the app state
UserGroup::Admin
constant has been removed
data-export (old DataExport)
- added an
ExcelExport
service - implements
FileServiceProvider
data-import (old DataImport)
- renamed migration (applied by the rename-migrations command)
- renamed
Classses
toServices
- refactored controllers
- removed the
LogsActvity
trait from the model
discussions (old Discussions)
- renamed migration (applied by the rename-migrations command)
- refactored controllers
- refactored request validators
- removed the
LogsActvity
trait from the model - touches parent on model creation
documents (old DocumentsManager)
- renamed migration (applied by the rename-migrations command)
- renamed namespace from
DocumentsManager
toDocuments
- refactored controllers
- removed the
LogsActvity
trait from the model
files (old FileManager)
- renamed namespace from
FileManager
toFiles
- renamed
FileManager
service toFiles
- added a publishable
FileServiceProvider
that allows registering the visible files in the File menu
and drops theVisibleFiles
enum - added a
FileBrowser
facade - improved the
files.php
config - added an
attach
method to theAttachable
contract that takes aIlluminate\Http\File
object - added explicit exceptions
- refactored controllers
- improved services
- added return types for
Attachable
&VisibleFile
contracts
forms (old FormBuilder)
- renamed namespace from
FormBuilder
toForms
- renamed
Classes
toServices
helpers (old Helpers)
- refactored
Obj
to extendCollection
- exposed the
constants()
method inEnum
history-tracker (old HistoryTracker)
how-to (old HowToVideos)
- renamed migration (applied by the rename-migrations command)
- refactored controllers
- removed the
LogsActvity
trait from the model
impersonate (old Impersonate)
- refactored controllers
localisation (old Localisation)
- refactored controllers
- refactored validation
- renamed
Classes
toServices
logs (old LogManager)
- renamed migration (applied by the rename-migrations command)
- renamed namespace from
LogManager
toLogs
- refactored controllers
menus (old MenuManager)
- renamed namespace from
MenuManager
toMenus
- refactored controllers
- refactored request validators
- added the organize action - allows drag & drop menu reordering for menus having the same parent
multitenancy
- moved
Connection
enum toEnums
folder - renamed
Classes
toServices
migrator (part of the old StructureMigration)
- moved to its own package
- renamed class
StructureMigration
toMigration
people (old People)
- refactored controllers
- refactored request validation
- added
$fillable
to the model and used$request->validated()
in controller methods - removed the
LogsActvity
trait from the model - changed the relationship with companies from
N - 1
toN - N
:- the pivot table has three additional attributes,
position
,is_main
&is_mandatory
$person->company()
is now a helper method$person->company()->pivot->position
will return the person's position$person->companies
was added for the new relation, always loads withposition
- the pivot table has three additional attributes,
permissions (old PermissionManager)
- renamed namespace from
PermissionManager
toPermissions
- renamed enum from
PermissionTypes
toTypes
- refactored controllers
- refactored request validation
rememberable (old Rememberable)
roles (old RoleManager)
- renamed namespace from
RoleManager
toRoles
- refactored controllers
- refactored requests
- added
Roles
Enum, bound to the app's service container under theroles
alias
it replaces the oldAdminId
andSupervisorId
role constants; - the roles enumeration is now also available in the front end via the app state
- renamed
Classes
toServices
- allows nullable
menu_id
- useful for users that can't access the app but can still be notified by email
searchable (old Searchable)
- implements a publishable
SearchServiceProvider
that allows registering the searchable models - small refactor
select (old Select)
- renamed the
options
method from theOptionsBuilder
trait to__invoke
- added a
select.php
config that allows customizing the defaulttrackBy
&queryAttributes
tables (old VueDatatable)
- renamed namespace from
VueDatatable
toTables
- renamed config file from
datatable.php
totables.php
- renamed
Classes
toServices
- added
Init
,Data
traits for invokable controllers - renamed the
excel
method to__invoke
in theExcel
trait - renamed the
action
method to__invoke
in theAction
trait
Note
The Datatable
trait will be deprecated soon,
but if you like the old approach better you can recreate the trait locally and use it as required
track-who (old TrackWho)
- removed config & AppServiceProvider
- fixed
DeletedBy
attribute order inforceFill()
tutorials (old TutorialManager)
- renamed migration (applied by the rename-migrations command)
- renamed namespace from
TutorialManager
totutorials
- refactored controllers
- extracted a
Tutorial
resource from theTutorialIndex
response - renamed
TutorialIndex
response toShow
- added a
tutorials.php
config - removed the
LogsActvity
trait from the model
versioning (old Versioning)
Front-End / UI
dropdown
- adds the ability to open the dropdown upwards if the room below is insufficient
- exposes
triggerEvents
, all the components that use dropdown were updated accordingly
forms
- fixes section slot for tabs
- fixes
switch-field
height
ui
- added menu drag and drop reorder option via settings switch
- removed deprecated
__.js
module - echo is now instantiated on window (accessible as
window.Echo
) - there is a new
websockets
module,
which provides theioChannel
,privateChannel
andpusher
configurations
vue-switch
- added support for control-label via slot
vue-switch
can now be toggled also with the Enter key
Upgrade Steps
- u...
v3.2.3
v3.2.1
Changes
- adds RTL
- brings back excel export in dataimport main table
- fixes the multi root render bug in Tabs
- exposes a
key
method in CoreTabs - visually refines Adresses, Comments, Documents, Discussions and People widgets
- adds docker setup
- exposes
constants()
fromEnum
- fixes a bug in IOStatuses when running async operations
- fixes example table page
- other minor bugs and fixes
Upgrade existing projects
- update
webpack.mix.js
to add the rtl themes - copy
patches/bulma-rtl+0.7.1.patch
from Enso's repo to your local project composer update
yarn upgrade && yarn && yarn run dev
- add to your
config/enso/themes/php
'light-rtl' => '/themes-rtl/light/bulma.min.css',
'dark-rtl' => '/themes-rtl/dark/bulma.min.css',
- make sure that you have the update versions for
LanguageFactory
&LanguageSeeder
, in your project
v3.2.0
Changes -> laravel-enso
ActivityLog
- uses Enso's
dateFormat
in interval filter
AddressesManager
- corrects a label
- refactor params validation in a method to allow easier customization of the request validator
CommentsManager
- adds a
humanReadableDates
config option that defaults to true
Core
- adds RTL support, still WiP
- adds
ioStatuses
to state enums - fixes
enso
mail theme - removes the duplicate favico from index.blade.php
- refactors/improves the password validator
DataExport
- adds
created_by
to fillable - adds an
ExcelExport
class helper; will be documented soon.
DataImport
- adds a time column in the main table
- sorts the main table by the latest imports as default
- makes the type selector filter the main table too
- adds
created_by
to fillable - improves row sanitization
- fixes a bug on imports that don't have a custom validator
- fixes the importer / validator reusability; saves several instantiations on larger imports
- fixes the statuses to work with IO
Examples
- fixes the example table bugs
FileManager
- refactors / improves the interval filter; now enso's
dateFormat
is used
FormBuilder
- fixes a bug when using custom routes
- adds autosave support
- adds a
labels
config & template option that turns labels into placeholders when set tofalse
- fixes the validation message for template's
columns
attribute - hides forbidden actions instead of just disabling
- adds a debounce option, useful with autosave forms
IO
- moves the broadcast channel from the main repo in the IO package
- improves progress reporting for imports / exports. Now admins / supervisors can see all IO operations while lower roles can only see their own activity
Localisation
- adds RTL support
- fixes the
Flag
label in the edit form
LogManager
- improves the index page
- adds
reload
anddelete
controls to the show page
Notifications
- moves the notifications broadcast channel from the main repo in the notification package
People
- fixes
person.json
form template
Rememberable
- refactors the package from scratch
- the two traits were merged into just one
- added the option to cache models
forever
- easier interface
- better key naming
- allows caching models with non standard id's
Select
- fixes pagination
- adds support for api resources instead of models
StructureManager
- uses the model to determine the table name in
index.stub
- removes redundant
animated fadeIn
in form stubs - uses the correct table component in
index.stub
- fixes the index page name
TrackWho
- updates the logic to allow manual management when no
auth()->check()
is available
VueDatatable
- uses Enso's
dateFormat
when for interval filters - fixes new sheet generation when exporting more than 1 mil rows
- improves
cacheTrait
to autodetect the model's table - fixes a bug when using a custom
lengthMenu
- makes the tables controls customizable
- fixes the default sort when used in template
TutorialManager
- fixed bug: tutorial background was sometimes blocking the highlighted element
Changes -> enso-ui
accessories
- changes the classes for comment dates and controls to ensure a better contract when using the dark theme
- adds back the
controls
prop for documents
card
- removes the card in the nextTick after emitting the
remove
event. This way the event can be used for custom logic, like router navigation
chart
- adds the fetched data to the
fetched
event
filters
- adds a
disabled-options
prop in date-filter
forms
- improves error focusing on submit (scrollIntoView)
- correctly cascades tabs events
- adds a template prop
tables
- adds axios request canceler for concurrent data fetch()
- fixes a visual issue on edge when table is reloading
- fixes debounce
themes
- fixes tag counter
EnsoTabs
when using the dark theme - fixes the navbar-end disapearing when window width was 1039px-1087px
- makes vue filters scrollbars invisible
- fixes the
ModalCard
background when using the dark theme
transitions
- names all transitions
- adds
HorizontalFade
&&HorizontalSlide
for RTL
ui
- fixes ravenKey in store
- allows using
:
in lang keys - adds a
_filter()
helper for theEnum
to work with Enso's filters - fixes filter change in files
- makes the logo clickable in the AuthForms; on click navigates to the login form
- adds
unicode2php
convertor for dates
Upgrade steps
- refactor the deprecated FE helpers (global mixins) with the new injected ones available in v3.x:
__
toi18n
handleError
toerrorHandler
- refactor the
Rememberable
use according with the new version - when
TableCache
trait is used you can safely drop theprotected $cachedTable = 'tableId';
property; now the trait autodetects the table's name - update the core dependency in
composer.json
to:"laravel-enso/core": "4.2.*"
- update the ui dependency in
package.json
to:"@enso-ui/ui": "~1.2.0",
- run the following:
composer update
php artisan vendor:publish --tag=localisation-factory --force
php artisan vendor:publish --tag=dataexport-config
- add the
labels
config option inconfig/enso/forms.php
- add the
humanReadableDates
config option inconfig/enso/comments.php
- rename the
buildingTypes.Comercial
tobuildingTypes.Commercial
inconfig/enso/addresses.php
- if you are using the
enso
theme for mails then runphp artisan vendor:publish --tag=enso-email --force
- remove from
routes/channels.php
bothApp.User.{id}
andoperations.{userId}
entries - if you're not using multitenancy remove from
config/database.php
thesystem
andtenant
connections and update your env to usemysql
php artisan enso:upgrade
yarn && yarn upgrade && yarn run dev
v3.1.1
Changes
- fixes typo in calendar
- fixes comment tag notifications
- improves data import cell sanitization
- improves new operation handling in
IO.vue
- improves slot exposure in forms
- fixes bug that was preventing hiding sections without visible fields
- adds back submit button animation in forms
- fixes selected value handling in vue select when using objects
Upgrade:
- remove
v-click-outside
from extracted vendors inwebpack.mix.js
and frompackage.json
yarn upgrade && composer update && yarn run dev
v3.1.0
Changes
- improves custom fields in forms (slots). Now you can use the generic
FormField
in almost all cases. If you want to use the specific fields (SelectField
,InputField
...) don't forget to manually add the label - unifies
phpDateFormat
andjsDateFormat
in one singledateFormat
prop, inconfig/enso/config.php
- adds a new Calendar package. Note that the calendar is still WiP
- fixes various bugs
- fixes npm dependencies to keep track of minor versions
Upgrade steps:
- update in
package.json
all@enso-ui/...
deps by replacing the^
with~
("@enso-ui/accessories": "~1.0.0",
) - update in
package.json
theform
andui
deps to
"@enso-ui/forms": "~1.1.0",
"@enso-ui/ui": "~1.1.0",
- update in
composer.json
->"laravel-enso/core": "4.1.*"
- replace
phpDateFormat
andjsDateFormat
withdateFormat
inconfig/enso/config.php
- search the whole frontend by
-field
and replace all the specific fields withform-field
in custom forms. Don't forget to also importFormField.vue
from the same location. composer update && yarn install && yarn upgrade
php artisan migrate
- publish the calendar config and provider if you need customisations (will be documented in the near future)
yarn dev
v3.0.3
- adds
horizontalBar
chart type in Charts - exposes
- fixes a bug in Filemanager for filenames containing non ascii chars
- adds a
responsive
boolean flag in vue table config / template that controls if the table is horizontally responsive / uses scroll - fixes the table stubs in StructureManager
- fixes label generation in AddressManager when having
country_id
null - fixes
VueTable
's uniquekey
fortr
that was causing table freezes in some edge cases - fixes
expanded
management inVueTable
- adds missing
notificationEvents
inNotifications
- adds
Tag
to export list in the select package
v3.0.2
- fixes two bugs related to hidden rows (due to responsivity) in
vue-table
- fixes closing modal on deleting from forms
- minor other bug fixes
- adds the
ProgressCircle
component (@enso-ui/progress-circle) - updates all deps
- adds a
localisation(bool)
helper inEnum
- adds an
option()
helper to theChart
builder