v36.0.0 – Configs and Menus


The release of Qobrix v36.0.0 brings significant changes and improvements throughout the system.  Particularly so to the configuration files and Menus subsystem.


Configuration Files

Qobrix v36.0.0 brings major changes to the handling of the configuration files.  Firstly, we have separated all vendor (upstream) configuration files from the custom application configuration files.  All vendor configuration files now have a “.dist” suffix and reside side-by-side with the custom application configurations.  For example, in CRM, the vendor configuration file “config/Modules/Leads/fields.dist.json” can now be easily copied to “config/Modules/Leads/fields.json” and customized as needed.  The new custom configuration file will be picked up automatically and used instead of the vendor configuration file.

Another change to the configuration files was the move of the list definitions from the Common module, to the appropriate module folder of the system.  For example, in CRM, “config/Modules/Common/lists/lead_statuses.json” was moved to “config/Modules/Leads/lists/statuses.dist.json“.   And as you can see from the name, list configuration files also support vendor “.dist” suffix.

With the above changes, Qobrix application developers and system integrators get a much cleaner platform to work with.  Merge conflicts during the upgrades of the system should be significantly minimized and simplified.  And the difference between the vendor provided configuration and the custom application configuration is easy to spot and compare now.  It also became a lot easier to copy a particular module from one application to another application.


In this release, we have completely revamped the Menus subsystem.  We moved from the old static and hardcoded array implementation to a much simpler, flexible, and dynamic object-oriented solution.  This resulted in much more consistent user experience across the whole application – main menu, admin menu, detailed view menu, index menu, list item menu – and a few other places.

Additionally, the new Menus subsystem provides much more control as to which menu items should be shown or hidden, as well as where they point.  For example, one of the scenarios that Qobrix can easily support now is the menu item based on the status of the record.  Consider the example of the Transactions approval in the Forex CRM.  Previously, we could only hide the Approve button based on the access control.  But when the button was shown, it was shown always.  When pressed over the transaction that cannot be approved due to some business logic, the user would get the ugly validation error message.  Now we can hide the Approve button until the transaction enters the state in which it can be approved.


As always, this version of Qobrix brings a whole lot of other fixes and improvements.  Some of the most noticeable are:

  • Dashboards: the Create Dashboard navigation has been slightly changed and improved.
  • Developers: debug information and view backtrace support, upgrade script improvements.
  • Calendar: significant improvements in the integration of the Calendar with the Qobrix application modules.
  • CMS: improvements to the shortcodes and support for additional shortcode rendering and engines.
  • Related Tabs: reload the tab on each switch, not once during the main page load.
  • Duplicates: improved documentation.