Skip to content

Releases: remp2020/crm-application-module

3.6.0

28 Nov 09:11
Compare
Choose a tag to compare
  • BREAKING: Updated twig/twig to v3. remp/crm#3343
    • This version removes features deprecated in v2 and adds some new deprecations, which will be removed in v4.
    • We recommend that you go through the v2 deprecations and v3 deprecations and verify, that you don't use the listed features (primarily in sales funnels).
  • BREAKING: Removed not used columns from calendar table. remp/crm#3337
    • Columns are removed without a replacement. If you use them, replace them with your own logic / native PHP formatter.
  • IMPORTANT: Added new extended implementation of Hermes\Emitter Crm\ApplicationModule\Hermes\TransactionEmitter which supports delaying event emitting until transaction commit or throwing events emitted during the transaction away if the transaction was rolled back. remp/crm#2218
  • IMPORTANT: Added new DatabaseTransaction wrapper which allows to nest transactions even with start/commit/rollback function calls. remp/crm#3330
    • Added callbacks onCommit and onRollback. (example usage: to be able to delay event dispatching during transaction)
    • DatabaseTransaction is now implemented within ReplicaManager which forces all queries to be executed on the primary database during transaction.
    • It is recommended to update transactions to use new DatabaseTransaction API (directly via DI or via Repository->getTransaction()) to ensure correct transaction handling within nested transactions. remp/crm#3330
  • Updated Font Awesome to v6 in the default frontend layouts. remp/crm#2936
  • Fixed duplication of query calls if primary database enforce flag was set. remp/crm#3342
  • Removed useless property assign in AuditLogRepository. remp/crm#3330
  • Fixed ApplicationConfig to read config entry from the database when it's not present in cache yet. remp/crm#3347

3.5.2

26 Nov 10:45
Compare
Choose a tag to compare
  • BREAKING: Removed not used columns from calendar table. remp/crm#3337
    • Columns are removed without a replacement. If you use them, replace them with your own logic / native PHP formatter.
  • Fixed statically seeded calendar, which ended at the end of this year and caused charts not to extend into 2025 and beyond.

2.11.1

26 Nov 10:50
Compare
Choose a tag to compare
  • BREAKING: Removed not used columns from calendar table. remp/crm#3337
    • Columns are removed without a replacement. If you use them, replace them with your own logic / native PHP formatter.
  • Fixed statically seeded calendar, which ended at the end of this year and caused charts not to extend into 2025 and beyond.

3.5.0

25 Oct 12:18
Compare
Choose a tag to compare
  • Changed |activeLabel and |helpIcon Latte filters to indicate their HTML content type. There's no further need to use |noescape filter with them. remp/crm#3319
  • Changed initialization of CRM's DB Selection to comply with framework changes making Selection::$explorer readonly.

3.4.0

20 Sep 12:56
Compare
Choose a tag to compare
  • BREAKING: Removed method provide from DataProviderInterface. remp/crm#3284
    • After the change, there is no specific requirement on data provider implementation registered in DataProviderManager.
    • If you directly implemented DataProviderInterface, replace the interface with DefaultDataProviderInterface, containing former provide method.
    • If you extended DataProviderInterface with custom interface, make sure you either implement provide method or extend DefaultDataProviderInterface.
  • Added Puerto Rico into the country database. remp/crm#3256
  • Added Gibraltar into the country database. remp/crm#3257
  • Added French Polynesia into the country database. remp/crm#3258
  • Added localized_countries config to enable localized countries based on the user's locale. remp/crm#2978
    • The config is disabled by default to maintain backwards compatibility. This might change in the future.
  • Added CountriesSelectItemsBuilder to translate country names based on the application configuration. remp/crm#2978

3.3.0

12 Jul 11:14
Compare
Choose a tag to compare
  • Added helper method createMultiple to ActiveRowFactory. remp/crm#2925
  • DEPRECATED: Deprecated autoload flag within configs table. This flag is not used anymore and will be removed in the next major release. remp/crm#2605
    • Deprecated loadAllAutoload method within ConfigsRepository.
  • Refactored ApplicationConfig + added ability to force refresh config cache. remp/crm#2605
  • Fixed measurements keys to contain JavaScript Date class. remp/crm#1241
  • Added extension ContributteTranslationExtension to support translations within Twig. remp/crm#3214

3.2.0

24 May 10:23
Compare
Choose a tag to compare
  • BREAKING: Changed minimal version of nette/application to version 3.2.
    • Due to newly introduced framework types, there is $user Latte variable (of type \Nette\Security\User) in every Latte template.
    • If you use $user Latte variable of different type, you have to rename it to avoid type mismatch.
  • BREAKING: Added registerScenariosTriggers method to ApplicationModuleInterface.
    • We recommend to extend CrmModule in your module classes, or in case of implementing this interface directly, we recommend to implement empty method.
  • Added button to GoogleBarGraph and GoogleLineGraph, to export/download data in CSV format. remp/crm#3117
  • Fixed registration of Contributte\FormMultiplier\DI\MultiplierExtension. remp/crm#3138
    • The extension was supposed to be registered by ApplicationModule, but it silently failed.
  • Fixed possible XSS vulnerability and enabled proactively-before-disabled escaping of values. remp/crm#1794
  • Added escapehtml function both to PHP and Latte to escape HTML entities. remp/crm#1794
  • Deprecated SnippetsRepository->loadAllByIdentifier, use SnippetsRepository->loadByIdentifier instead. remp/crm#3029
  • Fixed 'Too Many Connections' bug within PHPUnit tests by reconnecting to the database after each test.
  • Added EventGeneratorOutputProviderInterface for use with EventGeneratorInterface. remp/crm#1409
    • We encourage to implement this interface/method in your custom event generators to provide output params to scenario validator.
    • In the next major release the interface EventGeneratorOutputProviderInterface will be merged to EventGeneratorInterface interface.

3.1.1

17 Apr 11:38
Compare
Choose a tag to compare
  • Fixed nette/forms 3.2 incompatibility.

3.1.0

13 Mar 11:14
Compare
Choose a tag to compare
  • Added option to register custom callbacks when Hermes's default Crm\ApplicationModule\Hermes\RedisDriver waits for next tasks. remp/crm#3111
    • You can register the callbacks in your config.neon by calling setupWaitCallback within setup directive of hermesDriver service.
  • Added OriginalDataAwareInterface interface used for object/database row which have to remember its original values. remp/respekt#148
    • You can now read getOriginalData() from the ActiveRow instances (if they implement this interface) after the object was updated.
  • Fixed locale parameter for snippets with set parameters (locale was removed if any parameters were set). remp/crm#3113

3.0.0

22 Jan 20:52
Compare
Choose a tag to compare
  • BREAKING: Fixed class namespaces to follow PSR4 specification. remp/crm#2228
    • Use package remp/crm-rector:^3.0 to automatically fix these renames.
  • BREAKING: Changed how LazyEventEmitter->removeListener() works. Event listeners are now removed from within LazyEventEmitter->getSortedListeners() and not immediately when removeListener() is called in *Module class. remp/crm#3039
    • Before this change, order of modules could affect if event listener was removed or not. If module with removeListener() was initialized before module which added listener with addListener(), lister would stay active.
    • After the change, all listeners marked for removal are queued first. They are removed when getSortedListeners() is called (which should be after all modules are initialized).
    • Note: Calling LazyEventEmitter->removeAllListeners($event) unsets also listeners (for $event) queued for removal.
  • BREAKING: Changed registration of mounted filesystems in configuration. remp/crm#2835
    • If you registered your filesystems in configs to applicationMountManager via setup directive, please replace the applicationMountManager with mountManagerConfig.
  • BREAKING: Updated League\Flysystem to v3. If you used any of the League\Flysystem\MountManager methods, please review their use. remp/crm#2835
    • It's not possible to request ApplicationMountManager::getAdapter, MountManager will not expose real path to the file anymore.
  • BREAKING: Removed Crm\ApplicationModule\Models\ApplicationMountManager::getMimeType() method in favor of (existing) mimeType() method. remp/crm#2835
  • BREAKING: Application now requires use of psr/log: ^3. remp/crm#3050
    • If you implement any of the Psr\Log interfaces, you might be required to add return types to the implemented methods.
  • BREAKING: Updated robmorgan/phinx library to the latest version. remp/crm#3050
    • If you write your own migrations, you might want to test them against an empty DB. Types are now strict and older migrations could be broken if you used incorrect type in the past.
  • BREAKING: Changed WidgetInterface; it now extends Nette\ComponentModel\IComponent. remp/crm#2988
    • BaseLazyWidget / BaseWidget and LazyWidgetManager / WidgetManager require widgets to extend IComponent. To prevent registrations with incorrect widgets, WidgetInterface now has clear "dependency".
    • In most cases is best to extend Nette\Application\UI\Control which implements Nette\ComponentModel\IComponent.
  • BREAKING: Added return types to Crm\ApplicationModule\Event\EventManagerInterface. remp/crm#2988
  • BREAKING: Application now uses kdyby/autowired: ^3. remp/crm#3064
  • BREAKING: Removed nette/finder in favor of nette/utils. remp/crm#3065
  • IMPORTANT: Application now uses nette/robot-loader: ^4 and nette/utils: ^4. remp/crm#3065
  • Changed implementation of Crm\ApplicationModule\ComposerScripts::postAutoloadDump method. remp/crm#3050
    • Due to compatibility issues we can't initialize Console application directly in Composer script anymore. We now execute the console command in a separate process.
  • Fixed errors reported by PHPStan (level 3). remp/crm#2988
  • Added transaction to database tests (DatabaseTestCase). remp/crm#3055
    • Transaction rollback is faster than truncation of all tables.
  • Updated contributte/forms-multiplier to the latest version. remp/crm#3067
  • Updated sentry/sentry to the latest version. remp/crm#3069
  • Fixed GoogleLineGraphGroupControlFactoryInterface to return GoogleLineGraphGroup. remp/crm#3070
  • Added missing dependency symfony/console. remp/crm#3072
    • This si required by commands. It is installed by other packages, but we should keep it as direct dependency with version constraint.
  • Added maskEmail Latte helper (moved from family-module extension). remp/respekt#141
  • Added use statements for classes where we used FQN. remp/crm#2228