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
Actioncomponent - added visual indicators when a form is dirty or has errors
- fixed a bug when constructing the
formDataobject
- 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 - 1toN - 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
AddressesManagertoAddresses - renamed migration (applied by the rename-migrations command)
- refactored controllers
- added
$fillablefor theAddressmodel 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
AvatarManagertoAvatars - renamed
Classesfolder 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
CommentsManagertoComments - renamed migration (applied by the rename-migrations command)
- refactored controllers
- improved request validation
- added a
TaggedUserresource - touches parent on comment creation
- removed the
LogsActvitytrait from the model
control-panel-api (old ControlPanelApi)
- refactored controllers
- adds
.styleci.yml
charts (old Charts)
- renamed
ClassestoFactories - dropped that
Chartsuffix for all builders (eg.BarCharttoBar)
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
$fillableto the model and used$request->validated()in controller methods - removed the
LogsActvitytrait from the model - renamed
scopeTenantstoscopeTenant $company->mandatary()is now a helper method$company->peoplewas added for the new relation
core (old Core)
- refactored controllers
- refactored request validators
- added the
UserGroupsenum, bound to the app's service container under theuser-groupsalias;
the enum is also present in the app state - added the
enso:rename-migrationscommand - updated the
enso:upgradecommand for a smoother upgrade - web sockets is available in the app state
UserGroup::Adminconstant has been removed
data-export (old DataExport)
- added an
ExcelExportservice - implements
FileServiceProvider
data-import (old DataImport)
- renamed migration (applied by the rename-migrations command)
- renamed
ClasssestoServices - refactored controllers
- removed the
LogsActvitytrait from the model
discussions (old Discussions)
- renamed migration (applied by the rename-migrations command)
- refactored controllers
- refactored request validators
- removed the
LogsActvitytrait from the model - touches parent on model creation
documents (old DocumentsManager)
- renamed migration (applied by the rename-migrations command)
- renamed namespace from
DocumentsManagertoDocuments - refactored controllers
- removed the
LogsActvitytrait from the model
files (old FileManager)
- renamed namespace from
FileManagertoFiles - renamed
FileManagerservice toFiles - added a publishable
FileServiceProviderthat allows registering the visible files in the File menu
and drops theVisibleFilesenum - added a
FileBrowserfacade - improved the
files.phpconfig - added an
attachmethod to theAttachablecontract that takes aIlluminate\Http\Fileobject - added explicit exceptions
- refactored controllers
- improved services
- added return types for
Attachable&VisibleFilecontracts
forms (old FormBuilder)
- renamed namespace from
FormBuildertoForms - renamed
ClassestoServices
helpers (old Helpers)
- refactored
Objto 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
LogsActvitytrait from the model
impersonate (old Impersonate)
- refactored controllers
localisation (old Localisation)
- refactored controllers
- refactored validation
- renamed
ClassestoServices
logs (old LogManager)
- renamed migration (applied by the rename-migrations command)
- renamed namespace from
LogManagertoLogs - refactored controllers
menus (old MenuManager)
- renamed namespace from
MenuManagertoMenus - refactored controllers
- refactored request validators
- added the organize action - allows drag & drop menu reordering for menus having the same parent
multitenancy
- moved
Connectionenum toEnumsfolder - renamed
ClassestoServices
migrator (part of the old StructureMigration)
- moved to its own package
- renamed class
StructureMigrationtoMigration
people (old People)
- refactored controllers
- refactored request validation
- added
$fillableto the model and used$request->validated()in controller methods - removed the
LogsActvitytrait from the model - changed the relationship with companies from
N - 1toN - N:- the pivot table has three additional attributes,
position,is_main&is_mandatory $person->company()is now a helper method$person->company()->pivot->positionwill return the person's position$person->companieswas added for the new relation, always loads withposition
- the pivot table has three additional attributes,
permissions (old PermissionManager)
- renamed namespace from
PermissionManagertoPermissions - renamed enum from
PermissionTypestoTypes - refactored controllers
- refactored request validation
rememberable (old Rememberable)
roles (old RoleManager)
- renamed namespace from
RoleManagertoRoles - refactored controllers
- refactored requests
- added
RolesEnum, bound to the app's service container under therolesalias
it replaces the oldAdminIdandSupervisorIdrole constants; - the roles enumeration is now also available in the front end via the app state
- renamed
ClassestoServices - 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
SearchServiceProviderthat allows registering the searchable models - small refactor
select (old Select)
- renamed the
optionsmethod from theOptionsBuildertrait to__invoke - added a
select.phpconfig that allows customizing the defaulttrackBy&queryAttributes
tables (old VueDatatable)
- renamed namespace from
VueDatatabletoTables - renamed config file from
datatable.phptotables.php - renamed
ClassestoServices - added
Init,Datatraits for invokable controllers - renamed the
excelmethod to__invokein theExceltrait - renamed the
actionmethod to__invokein theActiontrait
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
DeletedByattribute order inforceFill()
tutorials (old TutorialManager)
- renamed migration (applied by the rename-migrations command)
- renamed namespace from
TutorialManagertotutorials - refactored controllers
- extracted a
Tutorialresource from theTutorialIndexresponse - renamed
TutorialIndexresponse toShow - added a
tutorials.phpconfig - removed the
LogsActvitytrait 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-fieldheight
ui
- added menu drag and drop reorder option via settings switch
- removed deprecated
__.jsmodule - echo is now instantiated on window (accessible as
window.Echo) - there is a new
websocketsmodule,
which provides theioChannel,privateChannelandpusherconfigurations
vue-switch
- added support for control-label via slot
vue-switchcan 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
keymethod 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.jsto add the rtl themes - copy
patches/bulma-rtl+0.7.1.patchfrom Enso's repo to your local project composer updateyarn 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
dateFormatin interval filter
AddressesManager
- corrects a label
- refactor params validation in a method to allow easier customization of the request validator
CommentsManager
- adds a
humanReadableDatesconfig option that defaults to true
Core
- adds RTL support, still WiP
- adds
ioStatusesto state enums - fixes
ensomail theme - removes the duplicate favico from index.blade.php
- refactors/improves the password validator
DataExport
- adds
created_byto fillable - adds an
ExcelExportclass 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_byto 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
dateFormatis used
FormBuilder
- fixes a bug when using custom routes
- adds autosave support
- adds a
labelsconfig & template option that turns labels into placeholders when set tofalse - fixes the validation message for template's
columnsattribute - 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
Flaglabel in the edit form
LogManager
- improves the index page
- adds
reloadanddeletecontrols to the show page
Notifications
- moves the notifications broadcast channel from the main repo in the notification package
People
- fixes
person.jsonform 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 fadeInin 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
dateFormatwhen for interval filters - fixes new sheet generation when exporting more than 1 mil rows
- improves
cacheTraitto 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
controlsprop for documents
card
- removes the card in the nextTick after emitting the
removeevent. This way the event can be used for custom logic, like router navigation
chart
- adds the fetched data to the
fetchedevent
filters
- adds a
disabled-optionsprop 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
EnsoTabswhen using the dark theme - fixes the navbar-end disapearing when window width was 1039px-1087px
- makes vue filters scrollbars invisible
- fixes the
ModalCardbackground when using the dark theme
transitions
- names all transitions
- adds
HorizontalFade&&HorizontalSlidefor RTL
ui
- fixes ravenKey in store
- allows using
:in lang keys - adds a
_filter()helper for theEnumto 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
unicode2phpconvertor for dates
Upgrade steps
- refactor the deprecated FE helpers (global mixins) with the new injected ones available in v3.x:
__toi18nhandleErrortoerrorHandler
- refactor the
Rememberableuse according with the new version - when
TableCachetrait is used you can safely drop theprotected $cachedTable = 'tableId';property; now the trait autodetects the table's name - update the core dependency in
composer.jsonto:"laravel-enso/core": "4.2.*" - update the ui dependency in
package.jsonto:"@enso-ui/ui": "~1.2.0", - run the following:
composer updatephp artisan vendor:publish --tag=localisation-factory --forcephp artisan vendor:publish --tag=dataexport-config- add the
labelsconfig option inconfig/enso/forms.php - add the
humanReadableDatesconfig option inconfig/enso/comments.php - rename the
buildingTypes.ComercialtobuildingTypes.Commercialinconfig/enso/addresses.php - if you are using the
ensotheme for mails then runphp artisan vendor:publish --tag=enso-email --force - remove from
routes/channels.phpbothApp.User.{id}andoperations.{userId}entries - if you're not using multitenancy remove from
config/database.phpthesystemandtenantconnections and update your env to usemysql php artisan enso:upgradeyarn && 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-outsidefrom extracted vendors inwebpack.mix.jsand 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
FormFieldin almost all cases. If you want to use the specific fields (SelectField,InputField...) don't forget to manually add the label - unifies
phpDateFormatandjsDateFormatin one singledateFormatprop, 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.jsonall@enso-ui/...deps by replacing the^with~("@enso-ui/accessories": "~1.0.0",) - update in
package.jsontheformanduideps to
"@enso-ui/forms": "~1.1.0",
"@enso-ui/ui": "~1.1.0",
- update in
composer.json->"laravel-enso/core": "4.1.*" - replace
phpDateFormatandjsDateFormatwithdateFormatinconfig/enso/config.php - search the whole frontend by
-fieldand replace all the specific fields withform-fieldin custom forms. Don't forget to also importFormField.vuefrom the same location. composer update && yarn install && yarn upgradephp 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
horizontalBarchart type in Charts - exposes
- fixes a bug in Filemanager for filenames containing non ascii chars
- adds a
responsiveboolean 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_idnull - fixes
VueTable's uniquekeyfortrthat was causing table freezes in some edge cases - fixes
expandedmanagement inVueTable - adds missing
notificationEventsinNotifications - adds
Tagto 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
ProgressCirclecomponent (@enso-ui/progress-circle) - updates all deps
- adds a
localisation(bool)helper inEnum - adds an
option()helper to theChartbuilder