Skip to content

Releases: laravel-enso/enso

v3.3.1

22 May 09:39
Compare
Choose a tag to compare

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
  • 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

21 May 17:22
Compare
Choose a tag to compare

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 from teams
  • following several requests and real world requirements,
    change the relationship between people and companies from N - 1 to N - 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 to Addresses
  • renamed migration (applied by the rename-migrations command)
  • refactored controllers
  • added $fillable for the Address 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 to Avatars
  • renamed Classes folder to Services
  • 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 to Comments
  • 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 to Factories
  • dropped that Chart suffix for all builders (eg. BarChart to Bar)

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 to scopeTenant
  • $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 the user-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 to Services
  • 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 to Documents
  • refactored controllers
  • removed the LogsActvity trait from the model

files (old FileManager)

  • renamed namespace from FileManager to Files
  • renamed FileManager service to Files
  • added a publishable FileServiceProvider that allows registering the visible files in the File menu
    and drops the VisibleFiles enum
  • added a FileBrowser facade
  • improved the files.php config
  • added an attach method to the Attachable contract that takes a Illuminate\Http\File object
  • added explicit exceptions
  • refactored controllers
  • improved services
  • added return types for Attachable & VisibleFile contracts

forms (old FormBuilder)

  • renamed namespace from FormBuilder to Forms
  • renamed Classes to Services

helpers (old Helpers)

  • refactored Obj to extend Collection
  • exposed the constants() method in Enum

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 to Services

logs (old LogManager)

  • renamed migration (applied by the rename-migrations command)
  • renamed namespace from LogManager to Logs
  • refactored controllers

menus (old MenuManager)

  • renamed namespace from MenuManager to Menus
  • refactored controllers
  • refactored request validators
  • added the organize action - allows drag & drop menu reordering for menus having the same parent

multitenancy

  • moved Connection enum to Enums folder
  • renamed Classes to Services

migrator (part of the old StructureMigration)

  • moved to its own package
  • renamed class StructureMigration to Migration

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 to N - 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 with position

permissions (old PermissionManager)

  • renamed namespace from PermissionManager to Permissions
  • renamed enum from PermissionTypes to Types
  • refactored controllers
  • refactored request validation

rememberable (old Rememberable)

roles (old RoleManager)

  • renamed namespace from RoleManager to Roles
  • refactored controllers
  • refactored requests
  • added Roles Enum, bound to the app's service container under the roles alias
    it replaces the old AdminId and SupervisorId role constants;
  • the roles enumeration is now also available in the front end via the app state
  • renamed Classes to Services
  • 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 the OptionsBuilder trait to __invoke
  • added a select.php config that allows customizing the default trackBy & queryAttributes

tables (old VueDatatable)

  • renamed namespace from VueDatatable to Tables
  • renamed config file from datatable.php to tables.php
  • renamed Classes to Services
  • added Init, Data traits for invokable controllers
  • renamed the excel method to __invoke in the Excel trait
  • renamed the action method to __invoke in the Action 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 in forceFill()

tutorials (old TutorialManager)

  • renamed migration (applied by the rename-migrations command)
  • renamed namespace from TutorialManager to tutorials
  • refactored controllers
  • extracted a Tutorial resource from the TutorialIndex response
  • renamed TutorialIndex response to Show
  • 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 the ioChannel, privateChannel and pusher configurations

vue-switch

  • added support for control-label via slot
  • vue-switch can now be toggled also with the Enter key

Upgrade Steps

  • u...
Read more

v3.2.3

10 May 09:20
Compare
Choose a tag to compare
  • fixes minor bugs
  • updates dependencies
  • updates changelog for 3.2.1

v3.2.1

30 Apr 17:45
Compare
Choose a tag to compare

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() from Enum
  • 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

28 Apr 13:22
Compare
Choose a tag to compare

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 to false
  • 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 and delete 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 the Enum 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:
    • __ to i18n
    • handleError to errorHandler
  • refactor the Rememberable use according with the new version
  • when TableCache trait is used you can safely drop the protected $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 in config/enso/forms.php
    • add the humanReadableDates config option in config/enso/comments.php
    • rename the buildingTypes.Comercial to buildingTypes.Commercial in config/enso/addresses.php
    • if you are using the enso theme for mails then run php artisan vendor:publish --tag=enso-email --force
    • remove from routes/channels.php both App.User.{id} and operations.{userId} entries
    • if you're not using multitenancy remove from config/database.php the system and tenant connections and update your env to use mysql
    • php artisan enso:upgrade
    • yarn && yarn upgrade && yarn run dev

v3.1.1

29 Mar 07:50
Compare
Choose a tag to compare

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 in webpack.mix.js and from package.json
  • yarn upgrade && composer update && yarn run dev

v3.1.0

26 Mar 12:25
Compare
Choose a tag to compare

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 and jsDateFormat in one single dateFormat prop, in config/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 the form and ui 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 and jsDateFormat with dateFormat in config/enso/config.php
  • search the whole frontend by -field and replace all the specific fields with form-field in custom forms. Don't forget to also import FormField.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

21 Mar 11:58
Compare
Choose a tag to compare
  • 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 unique key for tr that was causing table freezes in some edge cases
  • fixes expanded management in VueTable
  • adds missing notificationEvents in Notifications
  • adds Tag to export list in the select package

v3.0.2

19 Mar 17:54
Compare
Choose a tag to compare
  • 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 in Enum
  • adds an option() helper to the Chart builder

v3.0.1

17 Mar 11:11
Compare
Choose a tag to compare

Changes

  • tens of small bugs fixed
  • improves file index page
  • improved docs
  • adds scroll to top

Upgrade

  • update in your router.js:
const router = new Router({
    mode: 'history',
    routes,
    scrollBehavior(to, from, savedPosition) {
        return savedPosition || { x: 0, y: 0 };
    },
});
  • composer update
  • yarn upgrade