Skip to content

Releases: Mistralys/application-framework

Filter criteria messages

12 Jun 13:24
Compare
Choose a tag to compare

Included in this release:

  • Filter Criteria: Upgraded the messages to use the OperationResult classes.
  • Item Lookup: Improved layout to focus on the search results.

DataGrid Bugfix

12 Jun 05:06
Compare
Choose a tag to compare

Included in this release:

  • DataGrid: Fixed navigating to another page throwing a system error.
  • UI: Fixed header navbar overlapping contents (#64).
  • Dev: Fixed the user rights overview showing an empty screen.

QA Testing role

10 Jun 17:32
Compare
Choose a tag to compare

Included in this release:

  • User: Added the right QATester to formalize the role of application UI QA tester.
  • User: Added canLoginInMaintenanceMode().
  • User: Both developers and QA testers can now access the UI during maintenance.
  • News: Upgraded screens to use the screen rights handling layer.
  • UI: Added docs for the screen rights method getFeatureRights().

QOL improvements (Breaking-XL)

05 Jun 06:45
Compare
Choose a tag to compare

Included in this release:

  • UI: Fixed some timing issues with output buffering.
  • UI: Added requireRights() to the conditionals.
  • UI: Added the screen rights handling layer to formalize accessing this information.
  • AdminURL: Added the AdminURLInterface interface.
  • Core: The Application_Exception class can now hold page output.
  • DataGrid: Filter settings now inherit hidden variables when using configure() (#35).
  • DataGrid: Saving grid settings in the DB (#27).
  • DataGrid: Redirect after saving grid settings (#26).
  • Traits: Added HiddenVariablesTrait and matching interface.
  • Traits: Added AllowableMigrationTrait and matching interface (#62).
  • DataGrid: Filter settings inherit hidden variables from the grid (#35).
  • Forms: Fixed validateEmail() not always returning a boolean value.
  • Revisionables: Added the change type column in the changelog.
  • Revisionables: Fixed setRevisionKey() ignoring the changelog data.
  • DBHelper: Added the KeyModified event to listen to for records.
  • DBHelper: Added isStructureModified() in records.
  • DBHelper: Custom record fields are included in the key modified event.
  • DBHelper: setCustomModified() now allows setting more arguments, like the structural flag.

Breaking changes (XS)

  • Users: Renamed getRequestedRoles() to getRequestedRights() for consistency.

Session handling update (Breaking-XS)

16 May 08:21
Compare
Choose a tag to compare

Included in this release:

  • Session: Added event handling.
  • Session: Added onSessionStarted().
  • Session: Added onUserAuthenticated().
  • Session: Added onBeforeLogOut().
  • Session: Fixed logging out not having any effect on the session.
  • Users: Fixed user login dates not being correctly registered.
  • OfflineEvents: Added the system event SessionInstantiated.
  • OfflineEvents: More robust event and listener loading.
  • OfflineEvents: Loading listeners and events from the framework and application.
  • AppFactory: Added createOfflineEvents().
  • FilterSettings: Fixed error in registerSearchSetting() with default settings.
  • Driver: Added support for Area class names in getAdminAreas().
  • UI: Fixed broken error page layout in some situations.
  • Core: Fixed wrong version number in the VERSION file.

Breaking changes (XS)

  • Session: The start() method has been renamed to _start().
    Any custom session implementations must be updated accordingly.

Tagging and Revisionables update (DB-update L)

14 May 11:47
Compare
Choose a tag to compare

This is a major release: The revisionables system has been overhauled, and a new tagging feature has been added.

Included in this release:

  • Tags: Added the tagging management.
  • Media: Documents are now taggable.
  • Tests: The Test DB collection is now taggable.
  • DBHelper: Added getRelationsForField() to fetch all field relations.
  • DBHelper: insertDynamic now supports and empty columns array.
  • JS: Added the Logger utility class.
  • ButtonGroup: Added addButtons().
  • TreeRenderer: Added the TreeRenderer UI helper class.
  • UI: Added createTreeRenderer().
  • UI: Added the AdminURL helper class to create admin URLs.
  • DataGrid: Added BaseListBuilder class to handle filtered lists.
  • Formables: Unified form element creation methods to use UI_Form methods.
  • Formables: Added the $id parameter to addHiddenVar().
  • Forms: Moved some element creation methods to UI_Form.
  • Forms: Code modernization and quality improvements.
  • Forms: Modernized the UI_Form class, now with strict typing.
  • Forms: Fixed switch elements appearing in duplicate.
  • Formables: Added some interface methods.
  • RevisionCopy: getParts() can now return callables.
  • FilterSettings: Settings are now class-based.
  • FilterSettings: Preferred way to inject is via the setting's setInjectCallback().
  • Changelogable: Introduced the ChangelogHandler class structure.
  • Changelogable: Added a trait to implement the changelog methods with a handler instance.
  • DBHelper: Added the AfterDeleteRecord event in the base collection class.
  • Countries: Added the Languages collection to fetch language information.
  • Countries: Added the Locales collection to handle locale information.
  • Countries: Added the possibility to ignore specific countries.
  • Countries: Added the IgnoredCountriesUpdated event.
  • Revisionables: Added a test revisionable collection to the test application.
  • Revisionables: Added first unit tests.
  • Revisionables: Modernized classes and strict typing.
  • Revisionables: Automated the saving of custom revision table keys.
  • Revisionables: Added an interface for the revisionable with state.
  • Revisionables: Added a trait to implement the standard state setup.
  • Revisionables: Added RevisionableDependentInterface.
  • Revisionables: Added requireRevisionableMatch() and requireRevisionMatch().
  • Revisionables: requireTransaction() now accepts a reason string.
  • Revisionables: Added isPartChanged().
  • Revisionables: Fixed some discrepancies in the collection interface inheritances.
  • Revisionables: Added getPrimaryRequestName(). Request now uses both primary and secondary names.
  • Revisionables: Fully integrated the Eventable trait.
  • Revisionables: Revision-specific events are now handled using event namespaces.
  • Revisionables: Added an event class for the BeforeSave event.
  • Revisionables: Added the TransactionEnded event.
  • Revisionables: Fixed transaction without changes not removing the copied revision.
  • Revisionables: Fixed transaction rollback committing the DB transaction even when not managed.
  • Eventables: Added the event namespace concept.
  • Eventables: Added the overridable getEventNamespace() method.
  • Eventables: Added the possibility to ignore events.
  • Connectors: createConnector() now accepts class names.
  • Connectors: createMethod() now accepts class names.
  • Connectors: Namespaced some classes.
  • Users: Streamlined the way right groups are registered.
  • Users: Fixed the developer right not being applied correctly.
  • Dependencies: Updated AppUtils-Core to v1.1.4.

Database changes (L)

The SQL update file must be imported:

docs/sql/2024-02-15-revisionables-tagging.sql

Note: An existing application can use this framework release without
the database update, as long as the tagging admin area is not enabled
in the application driver.

Breaking changes (M)

  • Revisionables: Added abstract initStorageParts() to formalize the saving of parts.
  • Revisionables: Renamed all revdataXXX-methods to make it easier to understand.
  • Revisionables: Renamed and namespaced interfaces.
  • Revisionables: Strict typing for all interface methods.
  • Renderables: Added strict string return type for _render() methods.
  • Eventables: Removed the addEventHandler() method (use addEventListener() instead).
  • Eventables: Listener registration methods (for example onBeforeSave()) now return a listener instance.
  • Users: Changed the way right groups are registered. User classes must now implement a new method to do so.

Deprecations

  • Connectors: Deprecated the Connectors_Connector_Method.
  • FilterSettings: Deprecated addAutoConfigure().
  • FilterSettings: Deprecated getArraySetting().
  • Countries: Deprecated the Application_Countries_Exception class.
  • Users: Deprecated the Application_User_Extended class.
  • Users: Deprecated the Application_User::roleExists() method.

Navigation update

18 Jan 12:32
Compare
Choose a tag to compare

Included in this release:

  • Navigation: Fixed the search being executed for empty search terms.
  • Navigation: Fixed the search not being executed in some cases.
  • Navigation: Added setTemplateID() to freely select the template.
  • Navigation: Fixed the spacing before the split button caret.
  • Navigation: Nav ID and template ID are now separate.
  • Navigation: It is now possible to reuse the subnav template for other navs.
  • Interface Refs: Improved the subnavigation example.
  • Interface Refs: Added tabs example.
  • Tabs: Fixed active tabs having a bottom border.
  • Tabs: Added setURLTarget().

Filter Settings fix

17 Jan 09:11
Compare
Choose a tag to compare

Included in this release:

  • FilterSettings: Fixed setting values comparison for the active filters check.

Lookup items improvements

17 Jan 08:55
Compare
Choose a tag to compare

Included in this release:

  • LookupItems: Improved the parsing of search terms.
  • LookupItems: Added some search hints in the dialog.
  • LookupItems: Now displaying an error message and retry button if the search fails.
  • AJAX: Fixed a property check syntax that could cause a JavaScript error.

Maintenance improvements

15 Jan 07:44
Compare
Choose a tag to compare

Included in this release:

  • Maintenance: Fixed logo shown too big if the source image is larger.
  • Maintenance: Message redirects are now functional.