Skip to content

Releases: laravel-enso/enso

v3.9.5

Choose a tag to compare

@GITmanuela GITmanuela released this 26 Jun 09:19
22c91af

3.9.5

front-end

accessories

  • updated components to use the User resource format for avatar
  • added localization button for addresses

activity-log

  • updated components to use the User resource format for avatar

calendar

  • fixed EventConfirmation
  • upgraded to vue-cal 3
  • fixed style

categories

  • updated for the new BE
  • added laravel-validation as dependency

charts

  • small refactor

commercial (private)

  • added laravel-validation as dependency
  • updated import of Errors class in RowLine to use the new laravel-validation package

contracts (private)

  • updated Card component to use the User resource format for avatar
  • uses Avatar component instead of img in Card.vue

directives

  • fixed clickOutside when the target isn't a child of container
  • for solving this issue, added a deep modifier to check contains with positions
  • updated clickOutside

dropdown

  • removed stop propagation as it uses the improved v-clickOutside
  • added disable-controls boolean prop
  • fixed disableControls reactivity

emails

  • added laravel-validation as dependency

files

  • updated components to use the user resource format for avatar
  • added clipboard to Url.vue

financials (private)

  • added laravel-validation as dependency

forms

  • added the ability to customize wysiwyg's toolbar
  • extracted Errors in its own package
  • added a new RevealPassword component
  • uses RevealPassword in InputField

inventory (private)

  • added laravel-validation as dependency

laravel-validation (new)

  • new package that contains an Errors class that maps on the Laravel ValidationException messages

mixins

  • parses number for type safety in shortNumber
  • removed unneeded dependency

permissions

  • added cssClass for menus

projects (private)

  • added laravel-validation as dependency

roles

  • updated FE for the new BE Permission resource

tables

  • merged custom and column internal filter and smalls fixes
  • small refactor in label
  • added in-place editing filter
  • improved logic in Filters and Labels components
  • fixed eslint
  • small refactor
  • fixed internal filters without custom

teams

  • updated components to use the User resource format for avatar
  • uses Avatar component instead of img in AvatarList

textarea

  • updated eslint

typeahead

  • improved behaviour when no results are found
  • added min-query-length property
  • added search event when pressing enter
  • fixed axios cancel token
  • provided query on item slot
  • added optional search button

ui

  • fixed theme and rtl
  • updated preferences.js
  • updated AuthForm to display error messages instead of toastr
  • uses the new RevealPassword component in AuthForm

webshop (new) (private)

wysiwyg

  • updated eslint

back-end

activity-log

  • updated Timeline response to use User resource instead of TrackWho

addresses

  • updated validator: changes is_default to be required
  • removed unnecessary query
  • removed form builder region label usage
  • added rememberable in address
  • fixed one liner
  • added localisation functionality with google maps integration
  • uses laravel Http instead of guzzle; refactor and cleanup

calendar

  • added fixes such that:
    • when an event in the middle of the sequence is deleted, then it should break the sequence first then delete events
    • when series of events are updated in the middle of the sequence then it should not change the frequency
    • when a sequence of events is deleted, then the cache will be invalid
  • fixed frequency update, type equality in ValidateEventRequest.php and edge case when update date of an event in the middle of the sequence

categories

  • improved recursive relations
  • renamed recursiveParents relation to recursiveParent
  • added currentAndBelowIds and relations trait
  • updated self relations to static
  • added parentTree helper

commercial (private)

  • updated client stock import
  • cleanup in company service provider

contracts (private)

  • updated AdditionalAct resource to use User resource instead of TrackWho

core

  • added products and localize upgrade
  • updated LoginController to use ValidationException instead of Authentication
  • fixed ValidatePasswordRequest and ForgotPasswordController

countries

  • added region label model helper

discussions

  • updated resources to use User resource instead of TrackWho

documentation

  • updated documentation for categories and products

dynamic-methods

  • added scope support

files

  • updated File resource to use User resource instead of TrackWho
  • added new publicPath method in trait & contract

io

  • updated IO resource to use User resource instead of TrackWho

measurement-units

  • renamed UNITS constant from seeder to Units

permissions

  • improved permissions types, added Permission resource

products

  • added html_description, dynamic scopes to product and dynamic relations to category
  • removed unused hasMappedProducts and adds manufacturedProducts for companies

roles

  • improved roles validation
  • uses resource in permission tree

tables

  • fixed export edge case
  • updated Enum.php

teams

  • updated Team resource to use User resource instead of TrackWho

Upgrade steps

To upgrade:

  • run composer update in the project's root
  • run yarn, yarn upgrade && yarn to ensure you have the latest versions and patches are applied. If necessary, update your patches
  • update the Enso version to 3.9.5 in config/enso/config.php
  • the Errors class was extracted from enso-ui/forms to it's own package enso-ui/laravel-validation. If using it locally, make sure to update the imports.
  • ensure that the php artisan enso:upgrade command is run
  • there is a new localize addresses route added, please ensure that the roles/permissions are correctly configured for your projects and then save the roles configurations
  • update the client/src/js/enso.js file using the package version as reference
  • make sure to have vuex-router-sync dependency in package.json

3.9.4

Choose a tag to compare

@gandesc gandesc released this 25 May 06:51
a5468f8

front-end

accessories

  • updated the user options route used for tagging

charts

  • added a short number option to the Chart.vue component

commercial

  • updated the bundled products index sample page

emag

  • added a products index sample page

financials

  • updated the index pages' filters to filter on date instead of due date

inventory

  • updated the bundled products index sample page
  • switched from using the RoAddresses component to using the Addresses component
  • updated the Addresses related components: cleanup and refactor due to new structure & fields

modal

  • test if we are ready to release the new refactored modal

products

  • added a product picture column for the index table
  • made the product image clickable, which opens the image in a new tab

quick-view

  • updated the default size (width)

roles

  • fixed the configure and save buttons in role edit form

search-mode

  • added Algolia support

tables

  • fixes custom boolean internal table filters

ui

  • fixed duplicate requests being made on language change
  • removed deprecated media resources, which have been moved to the back-end core package (and need to be published)
  • added custom modal for offering the choice of deleting a user simultaneously with its person

back-end

addresses

  • the addresses package was completely refactored. It now supports regions and localities,
    and some functionality was integrated from the ro-addresses package which will be deprecated. The update includes:
    • the addition of the region & locality model, relationships, routes, etc
    • the Country model now has relationships with the above models
    • the update of the table and structure migrations
    • the addition of an address select route/controller/resource
    • the removal redundant country relationship load on the select options flow
    • the update & enhancement of the address form and template
    • the update of the address factory & seeders
    • the addition of an unique index to regions
    • the inclusion of a Region seeder for Romanian counties and US states
    • the inclusion of a Locality seeder for Romanian localities
  • the AddressFetch validator now uses the TransformMorphMap trait

avatars

  • removed the ensureFolderExists method call
  • updated the Files test folder references as the config key enso.files.paths.testing
    has been updated to enso.files.testingFolder
  • the Avatar model now uses the CascadesMorphMap trait
  • morphMap is now used for the Avatar model

calendar

  • renamed notification template and updated button color

categories

  • added a hasChildren scope and an isParent helper method on the Category model
  • updated request validator due to MapsRequestKeys refactor

core

  • the php artisan enso:storage:reset also handles the creation of missing storage folders
  • the image resources previously present in the @enso-ui/ui package have been moved to the this package
  • renamed the resource publishing tag from core-images to core-assets
  • added a FilesIndex upgrade service that attempts to set and unique index
    on the files table to avoid any duplicates. If there are duplicated records present,
    the upgrade will list the duplicates and skip adding the index
  • added upgrades for Addresses, Documents, Files, Discussions, Comments, morphMap, which replaces class names with their corresponding short morph map keys
  • fixed user notifications which sometimes were not found
  • added the ability to delete the attached person when deleting a user
  • refreshed the email theme
  • added an Addresses migrator due to the addresses' package refactor
  • removed the avatar label in the users table
  • removed avatar label in users table

companies

  • refactored to use mapMorphs: the Company model now uses the CascadesMorphMap trait

comments

  • added controller for customizing taggable users
  • the Comment model now uses the CascadesMorphMap trait

countries

  • added the Relations trait on the model, so it can support dynamic relationships

data-export

  • refactored to use mapMorphs: the DataExport model now uses the CascadesMorphMap trait

data-import

  • updated the files test folder references
  • refactored to use mapMorphs
  • fixed rejected import deletion bug causing rejected files to not be deleted
  • fixed rejected import file name bug causing the file to have the extension added twice
  • added a cleanup upgrade for left-over rejected models & files in core

documents

  • updated the files test folder references
  • added the $folder variable to the Document model
  • the request validator now uses the TransformMorphMap trait
  • the Document model now uses the CascadesMorphMap trait
  • morphMap is now used for the Document model

discussions

  • the request validator now implements the TransformsMorphMap interface
  • refactored to use mapMorphs: the Discussion model now uses the CascadesMorphMap trait

files

  • refactored the paths config: now attachable models should have a $folder property or a folder() method
  • updated the Files test folder references as the config key enso.files.paths.testing
    has been updated to enso.files.testingFolder
  • added handling logic for tests within the HasFile folder() method
  • refactored to use mapMorphs: the Upload model now uses the CascadesMorphMap trait

filters

  • adds Algolia support in search mode

forms

  • when building the form, the enums are now resolved from the service container
  • fixed the toggling of tab visibility
  • makes section's columns size customizable when building a form via the columns(string $field, int $value) method,
    where the $field parameter is used to identify the section to be modified

helpers

  • added a searchable trait for Scout that makes sure that reindexing is performed only when indexed attributes are changed,
    avoiding unnecessary Algolia operations
  • added the Sleep service class that can be used to sleep during code execution !!
  • moved the VatRates enum from the financials package
  • improves MapsRequestKeys trait
  • added morphMapKey() method to the CascadesMorphMap trait which determines the model's morph map key
  • added the TransformMorphMap trait

how-to

  • refactored to use mapMorphs: the Video model now uses the CascadesMorphMap trait

localisation

  • updated language resources
  • fixed some bugs found when adding keys
  • renamed localisation-lang-files tag into enso-localisation.
    Under this tag we're publishing only Laravel's lang files
  • removed unused localisation files from the app directory
  • local translations are now saved to the local app directory when adding or updating
  • core translations are now saved to the enso localisation package directory when adding or updating
  • local app localisation resource files are now merged with the enso package's localisation resource files
  • added SanitizeAppKeys class in order to remove from app localisations the keys found also in enso localisations
  • added some missing translations

menus

  • add the isParent & isNotParent scopes on the Menu model

people

  • added internal table filter for filtering people with/without users
  • refactored to use mapMorphs: added CascadesMorphMap on the Person model
  • optimizes the company() helper query
  • person now touches user on each edit

products

  • added name and part_number to the options builder $queryAttributes variable
  • the Picture model now implements AuthorizesFileAccess and access is allowed by default
  • added validation to disallow the selection of a parent category in the product form
  • added product pictures to the products table
  • updated publish tag & paths from 'products-resources', 'enso-resources' to 'products-assets', 'enso-assets'
  • updated the default image
  • removed package's VatRates enum and switched to using the VatRates from the Helpers package
  • updates package product factory re: measurement units, causing the creation of a new measurement unit
    if one was not provided to the factory
  • shortened the picture label in table template
  • the picture now touches the product

ro-addresses (deprecated)

  • the package is now deprecated, will not be maintained and should no longer be used

select

  • added Algolia support, which is disabled by default

services

  • updated VatRates import post enum refactor
  • fixed service factory re: measurement units bug, causing the creation of a new measurement unit when one was
    not provided
  • the vat percent is now a selectable value within the form
  • fixed description field width (full column)

tables

  • on big tables, totals are shown only when forceInfo is true
  • fixes raw total edge case when using bindings in the query select statement
  • added Algolia support, which is disabled by default
  • fixed internal bug in custom filters without server side options

upgrade

  • small refactor & fixes; updated structure migration reported message

Upgrade steps

To upgrade:

  • run composer update in the project's root
  • run yarn, yarn upgrade && yarn to ensure you have the latest versions and patches are applied. If necessary, update your patches
  • update the Enso version to 3.9.4 in config/enso/config.php
  • if using the MapsRequestKeys trait, within the respective request validators, update the controllers to use $request->validated() instead of $request->mapped()
  • for all the enso models that use the Addressable, Commentable, Discussable, Documentable traits, we are now using Relation::morphMap(...)
    and short keys instea...
Read more

3.9.3

Choose a tag to compare

@gandesc gandesc released this 30 Apr 16:53

front-end

categories

  • removed deprecated routes & pages
  • added the CategoryTree Vue component featuring an improved flow, CRUD & reorder abilities
  • updated dependencies
  • updated move route
  • now the selected category is cleared when destroying category
  • fixed the package entry point

calendar

  • added translation for the calendar's name

charts

  • fixes typo/leftover regarding the label formatter function
  • fixed data-labels with formatter
  • fixed progress in info-panel

commercial

  • added short numbers to the stats info panel
  • added picture to items
  • pictures are now vertically aligned in the product selection typeahead

control-panel

  • removed unneeded dependency
  • made all top columns narrow

emag

  • updated routes
  • ui updates
  • adjusted for missing match's pictures
  • refactor to make available more information in sub components
  • fixed enum option name
  • unmatched products with a selection of emag products are now styled differently
  • refactored components
  • fixed missing product id
  • now modal is closed when match choice is made
  • matching process fixes
  • further tweak for the modal closing; removes published/is_published usage

financials

  • added short-numbers to info panel

modal

  • removed deregisteration from close, added it to beforeDestroy

products

  • updated form for the new CategoryTree.vue component
  • added box on categories in form
  • added picture gallery
  • updated BaseForm for gallery
  • added missing dependency
  • added missing import

select

  • fixed bug related to the disabled selection of options while loading the option list

ui

  • parses number for type safety for the shortNumber formatter

uploader

  • added support for manual uploading

back-end

categories

  • updated factory
  • fixed validation bug
  • fixed moving of categories within the tree
  • updated the move route

cli

  • refactored to get rid of deprecation notice

core

  • adds categories upgrade
  • fixes user conflict exception

files

  • changed resize / optimize order

image-transformer

  • allows transformer to work with local files too

products

  • added product pictures
  • fixed reordering
  • added a picture relation for the default picture (order_index 1)
  • removed active filter from product options controller

roles

  • updated to use injected service in command handle method

upgrade

  • fixed default role permission syncing
  • updated Structure.php
  • fixed typo and default role query
  • added a new ShouldRunInConsole contract
  • removes invalid logic
  • removed deprecated exception

Upgrade steps

To upgrade:

  • run composer update in the project's root
  • run yarn, yarn upgrade && yarn to ensure you have the latest versions and patches are applied. If necessary, update your patches
  • update the Enso version to 3.9.3 in config/enso/config.php
  • if using the categories package, ensure that the php artisan enso:upgrade command is run

v3.9.2

Choose a tag to compare

@aocneanu aocneanu released this 16 Apr 08:04

3.9.2

front-end

Front-end packages have had their yarn.lock file removed as it wasn't mandatory and fixed various automated depencency vulnerability warnings.

accessories

  • removed tooltip.js as direct dependency
  • fixed comments' avatar display
  • reverted to 'component'-wrapper class names for the Discussions and Comments components

categories (new)

  • created a new package which is currently a dependency of the products package

charts

  • added a new component, info panel to the package
  • added slot for controls
  • now performs fetch on source change
  • added missing shortNumber filter
  • added default min:0 for y axis ticks
  • improved chart to use formatter function on y axis

commercial

  • added stats example page
  • added missing package dependencies
  • fixed product select template
  • updated QuickView component import
  • added a github issue template to the repository

confirmation

  • removes tooltip.js as direct dependency

data-import

  • updated/fixed the Enum usage
  • added a github issue template to the repository

departments

  • updated menu icon
  • updated ui dependency requirement

directives

  • added a new v-resize directive, meant to be used with input fields, that resizes the field based on its content length

dropdown

  • removed popper.js as dependency
  • cascaded the hide() method;
  • fixed the proper closing of drop-downs when dealing with multiple drop-downs
  • added stopPropagation for click events
  • tweaked the component height to have it aligned with other Enso UI components

enums (new)

  • micro package that exposes Enum functionality, similar the the back-end package with the same name

filters

  • removed tooltip.js as direct dependency
  • @enso-ui/strings was added as a dependency as some utility methods are used within CoreDateFilter

forms

  • removes tiptap as dependency

hr

  • added fa-pro dependency
  • removed unneded dep

inventory

  • added addresses to the warehouse edit form as a result of adding an address relationship to the warehouse model
  • the @enso-ui/products dependency was updated to the new minor version
  • added a github issue template to the repository

permissions

  • the permission.js mixin was converted to a module
  • added a github issue template to the repository

quick-view

  • added a github issue template to the repository
  • removes unneeded @enso-ui/card dependency

roles

  • updated the roles configuration component to work with the new permission module
  • added a github issue template to the repository

search-mode (new)

  • added support for exact and doesn't contain matching
  • added stopPropagation for the click event

strings (new)

  • micro package that contains a set of string manipulation methods

tables

  • added support for configurable, state persistent, general filters
  • addressed bug tooltip position bug for some tables with one or two rows
  • translation support was added the column visibility selection
  • @enso-ui/select was added as dependency as dropdown usage was replaced by select
  • @enso-ui/enums was added as dependency as Enum computation was added to the front-end
  • added support for average totals
  • extracted search in its own component
  • fixed some layout problems in the top controls
  • fixed a bug where a double fetch was performed when resetting preferences
  • trimmed down request by removing garbage data
  • fixed preferences handling

teams

  • added a github issue template to the repository
  • fixes team name padding in card

themes

  • added the sidebar.scss component as part of the fix for the UI menu issue

tutorials

  • updated column name in the index table
  • updates enum slot to the new table
  • added a github issue template to the repository

typeahead

  • itemEvents & highlight attributes are now exposed in items slot

products

  • fixed directives requirement/import
  • added category selection to the product form as the product model now has a category relationship
  • @enso-ui/categories was added as a dependency
  • added a github issue template to the repository

select

  • updated the multi-select trigger css (set height & min-height)
  • extended selection slot to also cover the 'no selection' or 'no options' scenarios
  • fixed bug where select height was not matched with inputs
  • fixed select / deselect events payload to include full object when working in objects mode

ui

  • fixes collapsed sidebar label position on scroll
  • removed tooltip.js as direct dep
  • fixed navbar search tag filtering
  • @enso-ui/enums was added as a dependency
  • fixed bug related to missing a background color for the menu, on mobile usage mode
  • used interpolation syntax for scss variables usage

back-end

addresses

  • replaces helper with facade
  • added checks for single vs multi address support

avatars

  • now the supervisor can update the avatar of the impersonated user
  • refactored Default Avatar service, the create method returns now the freshly created avatar
  • improveed the logic in test

calendar

  • removed event body from the birthday calendar
  • refactored event request validator
  • fixed logic in event policy causing users with the proper roles to not be able to edit certain events

categories (new)

  • the package adds categories functionality and is currently a dependency of the products package

charts

  • now axes are displayed by default

cli

  • removed log
  • fixed bug that was not allowing the creation of a parent menu with null route

control-panel

  • fixed bug caused by url leading slashes

comments

  • fixed the user resource used for displaying the avatar

companies

  • fixed the publish tag
  • added importer & excel seeder
  • fixed enum usage
  • updated the static Company model owner method

currencies

  • added slot for the symbol table column

data-import

  • fixed rejected import download
  • removed deprecated attribute from table select
  • fixed enum usage in table

filters

  • fixed Hour typo related bug
  • added TimeSegments enum & timeSegment getter and property in the Interval service
  • extended comparison operators with Equal, Is, IsNot, NotLike, NotILike
  • extended search modes with exact and doesn't contain matching
  • fixed a bug in the search service when having falsies as value
  • adds tests for the new search modes

forms

  • enums are now resolved from the service container

localisation

  • updated a 'ro' translation value

permissions

  • improved computed type by adding a Verbs enum

phpunit-pretty-print (new)

  • created a phpunit pretty printer package

products

  • added vat rates enum
  • improved form
  • added category attribute & functionality to the package
  • added upgrade service to products

ro-addresses

  • added missing facade import
  • updated index controller for the new for scope
  • refactors seeders
  • added factory & tests
  • fixes validator by adding missing attribute

select

  • fixed resource instantiation via the usage of dependency injection

tables

  • refactored optimal chunk service & its respective test
  • enums are now resolved from the service container
  • fixes enum localisation when building template
  • added support for configurable, state persistent, general filters
  • updated api version
  • filterable is now a supported meta attribute within the json table configuration files used to mark columns that are filterable using the new filtering functionality
  • average is now a supported meta attribute within the json table configuration files used to mark columns for which we want a average type of total
  • updates backend for the new trimmed request
  • added some missing return types for methods
  • fixed a bug in rawTotals where the result was being cast to int
  • fixed an inconsistence where the columns was mapped in a Collection instead of a Obj
  • added support for exact and doesn't contain search modes
  • removed Enum computation in favor of front-end handling
  • renamed the fetchMode method to serverSide
  • added enum transformation for front-end enum processing

upgrade

  • fixed exception method signature
  • fixed admin role syncing in production for structure upgrade

The new tables filters

While the new minimum configuration table filters are implemented and you may test drive them (by adding the "filterable" attribute in the table columns' meta arrays, and then configuring the filters from the table's UI), please note that some of the filters configuration options/values/structure may change. We therefore don't recommend using them just yet in production.

When this feature will reach what we consider a stable form, the various options will be explained and the documentation updated.

Upgrade steps

To upgrade:

  • remove from client/package.json:
    • extract-text-webpack-plugin
    • popper.js
    • postcss-cssnext
  • add in client/package.json
    • postcss-preset-env
  • run `composer require --dev laravel-enso/phpunit-pretty-print
  • add in phpunit.xml printerClass="LaravelEnso\PHPUnitPrettyPrint\PrettyPrint"
  • run composer update in the project's root
  • run yarn && yarn upgrade && yarn to ensure you have the latest versions and patches are applied. If necessary, update your patches
  • update the Enso version to 3.9.2 in config/enso/config.php
  • in config/enso/tables.php update the comparisonOperator and searchModes keys to:
'comparisonOperator' => ComparisonOperators::Like,
'searchModes' => [
    SearchModes::Full, SearchModes::StartsWith, SearchModes::EndsWith,
    SearchModes::ExactMatch, SearchModes::DoesntContain,
],
  • in config/enso/select.php up...
Read more

v3.9.1

Choose a tag to compare

@gandesc gandesc released this 30 Mar 11:39

3.9.1

The release includes a complete refactor of the main Menu and many small changes and fixes both on the back-end and the front-end.

front-end

accessories

  • updated avatarLink usage
  • removes quick-view due to extracting it to its own package

calendar

  • switched vuecal to default grey theme
  • added translation for the small calendar

card

  • added is-naked on card control

checkbox

  • updated the CheckboxItems.vue component class

commercial

  • updated enso date filters usage

contracts

  • fixed parties enum in Index.vue
  • updated enso date filters usage

financials

  • updated enso date filters usage

how-to

  • fixed template upload vertical alignment

logs

  • log card controls are now naked instead of success/info/danger

mixins

  • updated last route / intended route mutation usage

modal

  • small refactor

projects

  • fixed icon for the ProjectCard component

quick-view (new)

  • replaced hardcoded scss top value with variable in order to detect navbar height

route-mapper (new)

  • new micro package which contains the route mapping logic

tables

  • fixed tag width on boolean columns
  • removed unnecessary span around cells
  • improved top controls
  • updated search layout
  • enhanced column visibility & style selector
  • added helper for invisible columns

teams

  • fixed team name padding in card

themes

  • renamed the is-hoverable helper to is-hoverable-item
  • added a settings component
  • improved the font import, made it easier to customize
  • added Muli as family secondary font, used for the refactored menu
  • adjusted shadows for is-raised, raises-on-hover, box and card
  • made changes to improve contrast for both themes

typeahead

  • drop down events are now cascaded
  • exposed itemEvents & highlight in the items slot

toastr

  • vertically centered the message icon

ui

  • removed deprecated Route.js
  • refactored document title, route.js
  • small refactor in Loader.vue
  • now using intendedRoute & intendedPath when redirecting a logged out user after login
  • renamed MenuState to SidebarState
  • implemented sidebar and navbar variables
  • updated aside shadow to be more discreet
  • changed page header animations to simple fade
  • updated navbar elements
    • changed order for sidebar control
    • added tooltip on env indicator
    • removed arrow from notifications
    • added a long awaited user dropdown when clicking the user profile link that allows quick logout
    • upgraded search:
      • by default it is hidden
      • can be activated by clicking the search icon or using the / key
      • on esc & blur it hides itself
  • updated sidebar / menu style:
    • made the sidebar wider
    • added a new font
    • increased the menu-label & menu-item font
    • updated highlighting and selected state of menu
    • the parent menu now remains open when changing to a menu with a different parent
    • added a visual indicator / handle for menu reorder
    • refactored the way active menus are managed
  • refactored store
    • renamed menus store module to menu
    • renamed layout/menu module to layout/sidebar
    • renamed layout/settingsBar to layout/settings
    • added a layout/search module for managing the global search state
    • integrated the logout request into the auth.js module
  • made the user group forms smaller
  • updated the avatar component to use the user resource format
  • added footer resize on sidebar collapse
  • added footer transition
  • made bookmarks shadow similar to that of the sidebar
  • renamed sidebar related classes (menu => sidebar)
  • set the menu font smaller (0.95em)
  • fixed bug in search when selecting from list
  • updated the sidebar state's label

back-end

All back-end packages have been updated due to renaming the app folder to App. You can find more information below.

avatars

  • fixed trait folder name
  • added unique constraint for the user_id column

cli

  • refactored logic & tests as needed to support the generation of files in both local & package modes, using the correct case for the App folder

companies

  • added a default, open/permissive policy for the controller actions
  • project specific logic can be created locally when needed, by extending and binding a new policy

core

  • added a role relation to user group
  • adjusted the user group form
  • updated the way the avatar is shown in users table
  • added a unique constraint for the user_id column in the avatars table
  • fixed namespace for the avatars upgrade command

currencies

  • dropped Types from migrations

data import

  • removed deprecated parameter from the UploadedFile constructor call

excel

  • fixed namespace for ExcelExport from LaravelEnso\Excel\App\Exports to LaravelEnso\Excel\App\Services

filters

  • fixed incorrect interval filtering by returning copies of the carbon objects
  • adds a new search service to be used for query builder searching

helpers

  • added a new When helper trait which can be used in a similar fashion to query builder style

localisation

  • added translation keys for the Sentry front-end error report form
  • small keys cleanup
  • updated localisation form layout
  • updated user translation for the 'ro' language files

menus

  • moved attribute set from tree builder to resource
  • added an active attribute to the resource

people

  • added a default, open/permissive policy for the controller actions
  • project specific logic can be created locally when needed, by extending and binding a new policy
  • multi-tenant specific request authorization logic has been removed form the request validation
  • fixed test

products

  • fixes failing tests when suppliers are not given

searchable

  • implemented the new search service from laravel-enso/filters; removed local logic

select

  • refactored traits, used the new When helper trait for a more fluent, conditional flow

tables

  • implemented the new search service from laravel-enso/filters; removed local logic

upgrade

  • fixed the structure migration
  • fixed the default role permission syncing
  • refactored native php function to collection for better readability

Upgrade steps

It was necessary to rename the app folders as with newer composer versions,
the tool would complain (show notices) about the namespace not being psr4 compliant.

If these notices were to be present when deploying, Envoyer would stop the deploy process.

However, since the namespaces remained the same, these changes should not affect you.

To upgrade:

  • run composer update in the project's root
  • run yarn, yarn upgrade && yarn to ensure you have the latest versions and patches are applied. If necessary, update your patches
  • update the Enso version to 3.9.1 in config/enso/config.php
  • if using the ExcelExport class locally, search & replace LaravelEnso\Excel\App\Exports\ExcelExport with LaravelEnso\Excel\App\Services\ExcelExport
  • if directly using import templates from any of the Enso packages, update the path to the JSON templates in config/enso/imports.php

v3.9.0

Choose a tag to compare

@aocneanu aocneanu released this 25 Mar 08:04

3.9.0

This release includes many improvements and new features, bugfixes as well as the upgrade to Laravel 7.*.

Since the Laravel upgrade contains some pontetially breaking changes, you should take a look at the official upgrade instructions to see if/how you're affected.

front-end

bulma

  • added components: TreeView, CheckboxManager, CheckboxItems, QuickView

calendar

  • fixed the event slot, due to the VueCal update
  • fixed an UI template issue when the selected option was not ready
  • added an update action when an event was modified via drag & drop due to the new VueCal feature
  • fixed display for long calendar names
  • refactored event update confirmation modal - now uses buttons instead of radio buttons

categories (new)

  • created package that handles product categories

checkbox (new)

  • created package with checkbox items & manager components - extracted from the roles package (role configurator)

clipboard

  • added clipboard support for passing an argument to the copy method - the argument represents the value that you want copied to the clipboard

commercial

  • small UI updates for the order lines
  • cleanup of unused injection in FormContent
  • implemented order lines reload when trying to add a line to an order with stale data

companies

  • added a new website attribute to the company model and as a result, a new column is visible and clickable in the index table
  • a corresponding upgrade was added to Enso (more information below)

discounts

  • small refactor of the package's pages, removing duplicated code

dropdown

  • updated dropdown item selector strategy

emag

  • updated form content & extracted logic into the EmagOrder component
  • added check for the presence of the emag order id value

filters

  • removed the deprecated SimpleDateFilter/ EnsoSimpleDateFilter components
  • refactored & improved date filter to handle more intervals

financials

  • improved payment type filtering logic, to work better with internationalization
  • improved client filter to work better when used together with local state loading

mixins

  • fixes throwing unkown errors
  • makes errorHandler more readable

permissions

  • permission type was extracted to a dynamic computed property and the db table's column was dropped
  • added mixin with the CSS class used for the different permission types

roles

  • Configure.vue now uses the new @enso-io/checkbox functionality which was extracted to a distinct package that roles now depends on

search-mode (new)

  • a new dependency package that permits switching between the different search modes (full, starts with, ends with)
  • this new package is now utilized by select, typeahead and tables

select

  • fixes the shouldDisableDropdown/dropdownDisabled computed property
  • improves the reload handling
  • added a searchLimit property, with the default value fo 10
  • added the new search mode functionality (hidden by default)

quick-view (new)

  • a new dependency package that contains the QuickView component, extracted from the accessories package
  • the quick view default width was updated (is a little larger)

tables

  • enhances support for highlighting rows
  • fixes tr :key attribute

themes

  • added an is-hoverable helper class

toastr

  • added a when method that allows fluent syntax while having conditionals

tree-view (new)

  • added new package for the TreeView component

typeahead

  • fixed the display of the 'no results' message visible when there are no results available
  • added ongoing request cancellation when multiple requests are made
  • added the new search mode functionality (hidden by default)

ui

  • fixed the shortNumber filter, so that it does not alter 0 as well negative numbers
  • fixed an edge case in Enum.js
  • removed the dashboard route and page from the ui package (were moved to the local project)
  • menus related components refactor (has_children attribute usage changed to hasChildren)
  • refactored toastr usage in Notifications.vue & fixed small bug when toaster level was not specified
  • adds support for redirect after login
  • fixes edge case where error was sometimes not thrown when using the the errorHandler
  • updated Sentry integration, the RAVEN_DSN key is no longer required

back-end

The type attribute has been deprecated for structure migrations - all the packages with such migrations have been updated and have had the attribute removed.

Also, dependencies were updated as required.

action logger

  • adds index on created_at column

avatars

  • adds avatar resource

calendar

  • refactors tests, adds validation for event destroy, updates validation for event, refactors frequency and sequence logic
  • adds formatting for reccurence end date for parent event
  • adds check for sequence break so it is no longer performed when not needed, if performing update on first event in the sequence
  • renames update type enum labels
  • fixes bugs

categories (new)

  • added new package that handles product categories

cli

  • removes deprecated permission Types from stubs

commercial

  • refactors inCents to decimal, small changes due to refactor
  • updates migrations
  • client stocks supplier is now optional
  • updates client stock import

companies

  • adds new website attribute (nullable)

core

  • updates for Laravel 7
  • removes jessengers/date
  • adds DB upgrade for permissions
  • adds enso-aggregator to composer.json
  • extracts upgrade logic in its own package
  • update due to JsonParser to JsonReader rename
  • adds companies upgrade command due to new website attribute
  • updates failed jobs id to bigIncrements
  • adds User & Grup resources
  • refactors AppState to return resources

countries

  • update due to JsonParser to JsonReader rename

data import

  • fixes edge case for cells that need trimming
  • fixes tests to work with the new UploadedFile
  • returns array from template show / store controllers
  • update due to JsonParser to JsonReader rename

discounts

  • decimal discounts refactor

files

  • adds a model helper to the facade
  • refactors deprecated getClientSize and getClientMimeType in Files.php

filters (new)

  • new package that can work in tandem with the front-end date filter component to generate date interval values for queries, graphs etc

forms

  • update due to JsonParser to JsonReader rename

financials

  • refactors inCents
  • modifies computors
  • fixes supplier payment factory
  • various small updates: updates suppplier payment validator, adds return types for methods, adds typed properties, updates factories, updates tests
  • reverted to explicit asserts

helpers

  • JsonParser was renamed to JsonReader
  • adds When helper trait

hr

  • refactors inCents

inventory

  • fixes manual transactions for persistent processes
  • refactors inCents

localisation

  • updates middleware to use Carbon instead of Jessengers\Date
  • update due to JsonParser to JsonReader rename
  • fixes typo in factory

menus

  • adds a Menu resource
  • updates tree builder to return collection

notifications

  • fixes test to fit the new Carbon serialization for models

people

  • adds person resource

permissions

  • small fixes
  • refactors type into computed property

products

  • refactors inCents to decimal
  • updates request validation by adding internal code unique rule

projects

  • removes Types from migration

rememberable

  • adds return null if id is null

roles

  • refactors permission tree to work with permission computed type
  • encapsulates config writing in model
  • adds a role resource

select

  • adds searchMode

services

  • refactors inCents to decimal

tables

  • fixes global button filtering
  • uses getCountForPagination to fix count for queries that use group
  • update due to JsonParser to JsonReader rename
  • adds datetime support
  • adds a dateTimeFormat config option

upgrade (new)

  • new package, contains upgrade logic for your local project

Upgrade steps

  • due to the upgrade to Laravel 7, there are quite a few small changes you have to do in your local project. Take a look at this commit and check the list of changes. You should ignore:
    • composer.lock
    • client/yarn.lock
    • .styleci.yaml
    • telescope and horizon assets (you will publish these in the next steps)
  • you may safely remove the RAVEN_DSN key from your .env* files as it's no longer required
  • update TelescopeServiceProvider using this as example
  • update the sentry config file using this as example
  • run composer update in the project's root
  • run php artisan horizon:install
  • run php artisan telescope:install
  • edit client/package.json and
    • update @enso-ui/ui to 2.5.x
    • update pusher-js to ^5.0.0
  • rename in your .env* files MAIL_DRIVER to MAIL_MAILER
  • run yarn, yarn upgrade && yarn to ensure you have the latest versions and patches are applied. If necessary, update your patches
  • update the Enso version to 3.9.0 in config/enso/config.php
  • run php artisan vendor:publish --tag=select-config" to publish the select.php` config
  • note that the type attribute present in structure migrations has be...
Read more

v3.8.2

Choose a tag to compare

@aocneanu aocneanu released this 26 Feb 07:07

3.8.2

The release includes much needed UI vue-select / dropdown refactor.

These changes are breaking when customizing/building upon the @enso-ui/select components.

front-end

Most of the packages received a dependency list cleanup.

bulma

  • added the dropdown item component

calendar

  • updates color select for the new vue-select / dropdown

clipboard (new)

  • a simple VueJS clipboard copy component

commercial

  • small adjustment in Order.vue

contracts

  • refactored ui imports

control-panel

  • added ubuntu icon import

data-import

  • refactored ui imports

datepicker

  • adds is-small boolean prop

directives

  • v-focus can now be active conditionally

dropdown

  • adds arrow keys support
  • updated selector strategy

emag

  • components refactor
  • loading flag enhancement

filters

  • fixes format/altFormat small bug
  • added input width for DateFilter

financials

  • added documents & comments to client payments

projects

  • refactored ui imports

select

  • removes keyboard handling (moved to dropdown)
  • updates the selection slot usage
  • adds click modifier for tag / deselect
  • improved tag handling
  • fixed several edge cases
  • adjusts search input size
  • fixed dropdown indicator
  • fixed tag delete button and label split when they did not fit the containing div

tables

  • refactored dropdown use
  • adjusted is-table-tag lateral padding

textarea (new)

  • textarea component that can be easily integrated within the form

themes

  • fixed small form-box overflow bug

typeahead

  • upgrades dropdown usage

ui

  • improves the main menu to handle indirect nested child pages
  • fixes a small typo related bug in the notifications page
  • upgrades dropdown usage
  • adds a margin between tags and options for the navbar search dropdown menu items

wysiwyg

  • removed premium plugins from the default configuration

back-end

avatars

  • fixed manual transaction for persistent processes

calendar

  • fixed factories

control-panel

  • improved token management

control-panel-api

  • refined memory extracting
  • updated operating system label
  • general refactor & improvements
  • fixed total memory reporting
  • refactored closures
  • fixes OS sensor value

currencies

  • improved seeder
  • fixed manual transaction for persistent processes

core

  • added index for created_at to action logs table
  • updated the upgrade command
  • added a protected indexExists($index, $table) helper in DatabaseUpgrade
  • fixed Authentication exception namespace

countries

  • refactored seeder to use JsonParser

data-import

  • added support for disabled imports (imports that are missing the template in imports.php config)
  • fixed manual transaction for persistent processes

forms

  • fixes test
  • fixes error reporting for missing attributes

helpers

  • enhanced JsonParser to support Collection & Obj
  • small refactor

how-to

  • fixed manual transaction for persistent processes

localisation

  • fixed manual transaction for persistent processes

measurement-units

  • fixed factory edge case issue

people

  • fixed the appellative helper
  • added dynamic methods dependencies in composer.json

products

  • fixes a validation error occurring when saving a product with suppliers but without a default supplier

roles

  • fixes visible role scope

select

  • refactors option list retrieval flow
  • ensures options are sorted alphabetically
  • improves the options list limit computation

services

  • the Service model is now Rememberable

tables

  • refactored leftover app namespaces to App
  • refactored remaining collect() usage to Collection
  • fixed stub publishing
  • updated ButtonTest.php
  • fixed Meta $filtered type from bool to int
  • fixed count cache key implementation
  • added new feature that supports Custom Cache Key for table counts
  • fixed bug resulted from refactoring affecting multi-selection filtering
  • removed unneeded name attribute from buttons
  • added support for json resources / resource collections on table properties
  • made rogue column exportable by default

versions

  • adds Version exception
  • small refactor in trait
  • fixed manual transaction for persistent processes

versioning

  • fixed manual transaction for persistent processes

Upgrade steps:

  • edit client/package.json and update all @enso-ui packages to their next respective minor version
"@enso-ui/accessories": "2.4.x",
"@enso-ui/bulma": "2.3.x",
"@enso-ui/calendar": "1.4.x",
"@enso-ui/filters": "1.4.x",
"@enso-ui/forms": "1.4.x",
"@enso-ui/mixins": "1.1.x",
"@enso-ui/tables": "1.4.x",
"@enso-ui/ui": "2.4.x"
  • run yarn, yarn upgrade && yarn to ensure you have the latest versions and patches are applied
  • run composer update in the project's root
  • update the version to 3.8.2 in config/enso/config.php
  • if you have front-end customisations to Dropdown / VueSelect / EnsoSelect / Typeahead / EnsoTypeahead ensure that they're functioning okay and make changes if necessary
  • if using rogue columns, unless you want those columns as exportable, mark each such column as notExportable in the table templates meta, since they're now exportable by default

v3.8.1

Choose a tag to compare

@aocneanu aocneanu released this 02 Feb 16:58

3.8.1

With this release, we have upgraded sass-loader to the latest version(8.0.3)

front-end

currencies

  • adds a Conversion.js service and a vuex store module
  • adds allowed prop to currencies
  • splits initialise in distinct actions for countries / currencies

divider

  • centers title and slightly adjusts horizontal position

forms

  • removed optional SelectField params attribute binding to field.meta.params
  • adds slot in form field

modal

  • adds ability to stack multiple modals w/o breaking close on esc

products

  • small cleanup

projects

  • adds projects status
  • upgrades deps

roles

  • extract hover to themes
  • adds class
  • revert

tables

  • adds clearSelected Helper
  • set pagesSelected to false directly
  • refactors action slots

teams

  • updated deps versions

themes

  • fixes syntax
  • move hover logic
  • refactor content-manager

tutorials

  • upgrades sass-loader

ui

  • adds an Avatar.vue component that works with the backend TrackWho resource
  • refactors users table to use the new avatar component
  • updated dependencies version

back-end

core

  • added migrations for morphable models namespaces
  • adds currencies permission in upgrade command
  • Spa and AppState flexibility #272
  • made AppState private methods protected.
  • Spa __invoke method will not instantiate with "new AppState" but with App::make
  • adds missing import
  • refactors Enso's Login event

countries

  • adds avoids deletion conflicts trait

currencies

  • fixes converter with default currency
  • adds check for same currencies in converter; adds exception if no rate is found
  • fix; needs refactor / rename
  • renames Converter to Conversion; adds an endpoint for making conversions; refactors validators location;
  • fixes typo in exchange rates table; adds an apiPrecision config option

data-export

  • adds a purge command
  • adds a retainFor config option

data-import

  • fixes validation/import logic
  • removed leftover/deprecated Validator methods

files

  • fixes forUser scope check

forms

  • adds option to customize label in form
  • added taggable to the list of supported meta params
  • removed params, pivotParams and customParams from the list of valid, optional meta attributes

helpers

  • fixes db seed progress bars
  • adds a DiskSize helper class for human readable values

image-transformer

  • removed leftover exceptions

localisation

  • removed leftover command
  • added new translation keys

migrator

  • removes leftover classes, improves structure migration rollback logic
  • fixes rollback when parent menu is null; small refactor
  • improves logic encapsulation
  • adds validation on rollback for permissions

products

  • improves syncSupplier method; improves validation

ro-addresses

  • fixes method signature in AddressForm

select

  • fixes bug when search is empty and the builder was making a comparison to %%

tables

  • removes unneeded name attribute from buttons
  • adds support for json resources on table properties
  • adds support for resource collection
  • adds comptesArrayColumns and computesModelColumns contracts
  • adds Resource computor
  • adds a strip template option that can receive an array of attributes that will be stripped from the response
  • refactors config to Config

track-who

  • fixes created by & updated by when no user is auth

Upgrade steps:

  • update sass-loader in client/packages.json from "sass-loader": "^6.0.0" to "sass-loader": "^8.0.0"
  • add bulma-extensions+2.2.2.patch from the current repo to your client/patches
  • update client/vue.config.js to compile the view locally instead of under the vendor folder
    filename: process.env.NODE_ENV === 'production'
        ? '../resources/views/index.blade.php'
        : './index.html',
  • update the default route in routes/web.php to
    Route::view('/{any}', 'index')->where('any', '.*');
  • add in .gitignore the local view (resources/views/index.blade.php)
  • since this version we went back on building the app for both legacy and modern browsers. To enable that you have to:
    • update the babel.config.js file to:
    module.exports = {
        presets: [
            '@vue/cli-plugin-babel/preset',
        ],
    };
    
    • add the --modern flag in client/package.json for the build script
    "build": "rm -rf ../public/{js,themes,themes-rtl,images} && vue-cli-service build --no-clean --modern",
    
  • run yarn upgrade && yarn in /client
  • run composer update in project root
  • update the version to 3.8.1 in config/enso/config.php

Note:

Besides what's mentioned above, you should go through these files in your project and align / adapt their content with the ones from the Enso repo:

  • client/package.json
  • client/vue.config.js
  • client/babel.config.js
  • .eslintrc.js and client/.eslintrc.js

v3.8.0

Choose a tag to compare

@aocneanu aocneanu released this 10 Jan 12:34

3.8.0

With this release, we have upgraded our back-end packages to require PHP7.4+. Consequently, we have made several changes to adapt our back-end code to the latest syntax such as:

  • refactoring to short closures
  • adding typed properties and method return types where necessary

Furthermore, we have also generally improved and refactored all of our packages in order for them to be consistent and more easily maintained. During this process we have aimed to:

  • normalize package namespaces ( renamed app to App )
  • replacing collect() helpers in favor of instantiating the Collection() object
  • drop redundant suffixes for job, exception and policy classes where necessary
  • refactor Exceptions to encapsulate error messages for consistency and reusability
  • split route files
  • add missing facade imports
  • use array syntax for service provider tag publishing
  • upgrade Enums to use the latest version
  • improve overall logic where possible

front-end

commercial

  • updates serialize-javascript from 1.9.1 to 2.1.1
  • renames quick-view-controls to controls
  • renames controls to actions
  • adds controls, row-actions and filters slots

contracts

  • adds icons
  • refactors Form, Index, BaseForm, Card and List components
  • adds ContractParties enum
  • updates dependencies
  • fixes bugs

departments

  • updates icon and dependencies

forms

  • routing to the edit page is now done asynchronously

hr

  • drops Projects component
  • updates dependencies
  • fixes style for payrolls Index page
  • renames splited to split
  • updates namespaces

projects

  • fixes bugs and namespaces

roles

  • updates permissions

tables

  • adds icon
  • improves custom slots handling
  • exposes slots for both row and global buttons
  • splits scopedSlots into actionSlots, controlSlots and bodySlots

ui

  • updates dependencies

back-end

addresses

  • renames setDefault permission to makeDefault

calendar

  • overall refactors and removes enso:calendar:send-reminders command from AppServiceProvider. This means that notifications will no longer be sent automatically.

cli

  • makes the code DRYer
  • reduces cyclomatic complexity
  • improves writers
  • extracts Cli trait in src/tests
  • overall logic improvement

companies

  • refactors company request validator's unique methods into a parameterised one

control-panel-api

  • reverts statistics refactor

contracts

  • reverts statistics refactor

core

  • refactors state builders and adds return types for their methods
    • data() changes to data(): array inside the local state builder
  • adds upgrade command for new roles structure
  • fixes user group conflict exception

data-import

  • adds a Finalize job
  • adds in config unknownError key for customizing undetermined errors in rejected summaries
  • makes the User available in custom validators via the user() helper
  • shows duration in imports table for both mysql and sqlite
  • fixes template validation message
  • removes deprecated splittingQueue from config
  • renames Policy to DataImport

discussions

  • adds DiscussionConflict exception
  • users DI in controllers
  • refactors validators

documents

  • adds DocumentConflict exception
  • the Policy class was renamed to Document

dynamic-methods

  • adds contract and services for better managing the creation and binding of methods and relations to models

emails

  • removes unused controller and routes ( Create )
  • removes superfluous service ( Mail Manager)
  • removes deprecated publish ( resources/js )

enums

  • renames attributes() in data() to be consistent with the property name
  • $data becomes typed (array $data)
  • adds return type for data() method ( data(): array )
  • adds laravel as dependency in composer.json

excel

  • adds ExcelExport exception

files

  • improves file validation

helpers

  • adds tests for InCents and MapsRequestKeys
  • improves logic in InCents, JsonParser, Obj, Decimals

forms

  • small refactor and logic improvement

helpers

  • improves logic in InCents, JsonParser, Obj, Decimals
  • adds test for InCents
  • optimize imports

how-to

  • renames VideoException to Video. It now extends ConflictHttpException

hr

  • renames splited to split

inventory (PRIVATE)

  • refactored dynamic methods to new style

localisation

  • refactors unique fields in request validator

menus

  • improves logic in Organizer and in TreeBuilder
  • adds a Menu exception that extends ConflictHttpException and encapsulates error messages

multitenancy

  • removed from core's dependencies ( becomes optional )
  • fixes enums constant visibility

notifications

  • refines broadcast service provider

people

  • adds an appellative() helper on Person

permissions

  • adds a Permission exception that extends ConflictHttpException and encapsulates error messages

products

  • changes cents strategy
  • refactors company relations using the new dynamic methods

roles

  • renames permissions
  • refactors controllers structure
  • extracts command logic to service

searchable

  • improves Finder.php

services

  • improves Finder.php

tables

  • adds new feature that supports Custom Cache Key for table counts
  • adds optional name and slot attributes for button template object

teams

  • removes unused trait from Team Model

Upgrade steps:

  • within composer.json update where necessary:
    • laravel-enso/calendar to 1.5.* ( if using this package )
    • laravel-enso/cli to 3.4.*
    • laravel-enso/cnp-validator to 1.3.* ( if using this package )
    • laravel-enso/control-panel-api to 2.4.*
    • laravel-enso/core to 4.7.*
    • laravel-enso/dynamic-methods to 1.1.* ( if using this package )
    • laravel-enso/enums to 1.2.* ( if using this package )
    • laravel-enso/excel to 1.1.*
    • laravel-enso/pdf to 1.1.*
    • laravel-enso/ro-addresses to 3.3.* ( if using this package )
    • laravel-enso/versions to 1.1.* ( if using this package )
  • update in client/package.json:
    • "@enso-ui/accessories": "2.3.x",
    • "@enso-ui/tables": "1.3.x",
    • "@enso-ui/ui": "2.3.x",
  • within client/src/js/enso.js update the import ('../sass/enso.scss'); line to import '../sass/enso.scss';
  • remove from composer.json the following line since it is no longer required:
    "LaravelEnso\\Cli\\tests\\": "vendor/laravel-enso/cli/tests/",
  • update your Enso classes imports ( search the whole project for \app\ and replace with \App\ )
  • if you are implementing our state builder interface or extending our local state builder, make sure to update your build() method signature ( build(): array)
  • upgrade Enums accordingly
    • rename attributes() method to data() where required
    • $data becomes a typed property ( array $data= [..] )
  • if using/extending the LaravelEnso\Documents\App\Policies\Policy class, update any imports to LaravelEnso\Documents\App\Policies\Document
  • if using/extending the use LaravelEnso\Files\App\Policies\FilePolicy class, update any imports to LaravelEnso\Documents\App\Policies\File
  • if using/extending the LaravelEnso\People\App\Http\Requests\ValidatePersonRequest class, note that the uidUnique() & emailUnique() methods have been replaced by the unique($attribute) method
  • add the following block inside your phpunit.xml file:
<testsuite name="helpers">
    <directory suffix="Test.php">./vendor/laravel-enso/helpers/tests/units</directory>
</testsuite>
  • if you wish to continue sending calendar reminders, you need to handle this in your apps App\Console\Kernel.php
protected function schedule(Schedule $schedule)
{
    ...
    $schedule->command('enso:calendar:send-reminders')->everyMinute();
    ...
}
  • remove from config/enso/imports.php the deprecated splittingQueue key,
  • run composer update
  • run yarn upgrade && yarn in /client
  • run php artisan enso:upgrade
  • run php artisan migrate
  • update telescope assets: php artisan telescope:publish
  • update the version to 3.8.0 in config/enso/config.php

(optional)

In order for the local project to be syntactically consistent with our ecosystem you should refactor as follows:

  • use typed properties where necessary
  • replace all collect() helpers with the Collection() facade
  • refactor closures to the new PHP7.4+ short closure syntax
  • split route files ( eg. https://github.com/laravel-enso/core/tree/master/src/routes )
  • if using phpinsights, don't forget to update the config file from config/insights.php ( https://github.com/laravel-enso/enso/blob/master/config/insights.php )
  • we have moved the local User::class from our Enso app under App\Models namespace. From now on, we have decided to keep the models in all of our projects under this namespace for better readability. If you wish to adopt this structure as well, don't forget to update your config\auth.php file.
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
    ],
  • the local factories and seeders have been updated to use short closures as well. if you wish, you can force publish the updated versions ( careful, this will overwrite your local customisations ) with:

    • php artisan vendor:publish --force --tag=enso-factories
    • php artisan vendor:publish --force --tag=enso-seeders
  • if you wish to take advantage of the new tables feature which allows the use of custom cache keys for counts, your table builders must implement `...

Read more

v3.7.4

Choose a tag to compare

@gandesc gandesc released this 16 Dec 15:59

3.7.4

This release improves the quality of the back-end code addressing issues revealed by phpinsights (more info in the back-end section) as well as the usual small updates and fixes.

front-end

calendar

  • added support for the spanish language

forms

  • added in-page preview for PDF files
  • fixed small styling issues and updated dependencies
  • now emits a template-fetch-error when there is an error fetching the template from the API

products

  • added missing measurement-units package dependency

tables

  • added support for row global actions

backend-end

All packages were checked with the analitics tool and, where needed, the appropriate fixes and updates where implemented.

Most packages have had updates pertaining to:

  • missing constants visibility
  • unused variables
  • string concatenation vs string templates
  • using old school methods such as get_class in favor of using ::class
  • inconsistent array indentation
  • class fields and methods ordering
    and more.

In addition to the code, architecture and style changes, the route files have been broken down into smaller files to make management easier.

Apart from these updates, which are too many to list individually for each package, the packages below have had other additions.

cli

  • fixed the generated method name used in the table builder stub

core

  • added the missing doctype to the production tag, which fixes a TinyMCE issue
  • the User model deletion is now handled by the AvoidsDeletionConflicts trait

countries

  • added the country code to the model's resource

currencies

  • fixed the Currency resource
  • fixed the seeder for testing cases
  • improved the converter so as to use the most recent date as fallback if there is no rate available for a given day
  • laravel-enso/countries is now a dependency for the package
  • the short_name attribute was refactored into code

products

  • changed content type for the product part number form input from number to text

teams

  • the Team model now uses the AvoidsDeletionConflicts trait for the delete process
  • the Relations trait is utilized to be able to support dynamic methods

Upgrade steps

This is a non breaking upgrade:

  • run composer update
  • run yarn upgrade && yarn in /client
  • update the version to 3.7.4 in config/enso/config.php
  • if using the currencies package with a prior version to 1.4.0, also run php artisan enso:upgrade in order to update the short_name table column