Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TPROD-279 - The getExtendedType() method was removed from the FormTypeExtensionInterface #11037

Merged
merged 5 commits into from May 13, 2022

Conversation

escopecz
Copy link
Sponsor Member

@escopecz escopecz commented Apr 4, 2022

Q A
Bug fix? (use the a.b branch) [x]
New feature/enhancement? (use the a.x branch) [ ]
Deprecations? [x]
BC breaks? (use the c.x branch) [ ]
Automated tests included? [ ]
Related user documentation PR URL
Related developer documentation PR URL
Issue(s) addressed Fixes https://mautic.atlassian.net/browse/TPROD-279

Description:

This is fixing one of the deprecations needed to upgrade to Symfony 2.

However, I couldn't find anywhere the class that needs changing is used. It was added in this massive commit:

c90f59d

So I deprecated the class to be removed in M5.

Steps to test this PR:

  1. As I couldn't find any place that would be using this class or the added event in it then this cannot be tested.

This PR deprecates:

  • Event: Mautic\CoreBundle\CoreEvents::ON_FORM_TYPE_BUILD
  • Whole class: Mautic\CoreBundle\Event\CustomFormEvent
  • Service: 'mautic.form.extension.custom' which is class Mautic\CoreBundle\Form\Extension\CustomFormExtension

@cla-bot cla-bot bot added the cla-signed The PR contributors have signed the contributors agreement label Apr 4, 2022
@escopecz escopecz added this to the 5.0-alpha milestone Apr 4, 2022
@escopecz escopecz added the code-review-needed PR's that require a code review before merging label Apr 4, 2022
@codecov
Copy link

codecov bot commented Apr 4, 2022

Codecov Report

❗ No coverage uploaded for pull request base (4.x@e862b5a). Click here to learn what that means.
The diff coverage is 75.00%.

Impacted file tree graph

@@          Coverage Diff           @@
##             4.x   #11037   +/-   ##
======================================
  Coverage       ?   48.40%           
  Complexity     ?    35319           
======================================
  Files          ?     2140           
  Lines          ?   105311           
  Branches       ?        0           
======================================
  Hits           ?    50975           
  Misses         ?    54336           
  Partials       ?        0           
Impacted Files Coverage Δ
app/bundles/CoreBundle/Event/CustomFormEvent.php 0.00% <0.00%> (ø)
.../CoreBundle/Form/Extension/CustomFormExtension.php 38.88% <100.00%> (ø)

@escopecz escopecz modified the milestones: 5.0-alpha, 4.3 Apr 6, 2022
@RCheesley RCheesley changed the title Tprod 279 - The getExtendedType() method was removed from the FormTypeExtensionInterface TPROD-279 - The getExtendedType() method was removed from the FormTypeExtensionInterface May 12, 2022
@RCheesley RCheesley added mautic-5 Relates to Mautic 5.x deprecation Includes deprecations labels May 12, 2022
@RCheesley RCheesley requested a review from a team May 12, 2022 17:40
Copy link
Member

@mabumusa1 mabumusa1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code change looks good, I search the code for references for the CustomFormEvent there was not. so this is PR is good to go

@escopecz escopecz added ready-to-commit PR's with 2 successful tests, 1 approval, automated tests and docs and is ready to be merged and removed code-review-needed PR's that require a code review before merging labels May 13, 2022
@escopecz escopecz merged commit a417400 into mautic:4.x May 13, 2022
@escopecz escopecz added the enhancement Any improvement to an existing feature or functionality label May 17, 2022
escopecz added a commit that referenced this pull request Jun 2, 2022
* Refactor allowlist into its own service

* Fix DI config

* Fix failing tests

* Fix AjaxController

* Add composer.json and composer.lock to full package, but not in update package

* Add some basic error handling to cache clear in AjaxController

* Catch errors, add dry-run functionality

* Add tests

* Forgot to push dummy allowlist

* Add additional tests

* Fix PHPSTAN

* Refactor Composer service into ComposerHelper in core, add Composer update step to Mautic update

* Remove ext-imap as hard Composer requirement

* Bump composer/composer to latest version for testing

* Bump composer/composer to 2.2 for speed/memory improvements

* Lock composer/composer version to prevent issues while updating Mautic

* Skip pre-update checks on manual update

* Remove Composer Update step from Mautic updater

* Introduce composer_updates feature flag

* Fix CS

* Disable UI + CLI update if Composer update is enabled

* Cleanup

* Further cleanup

* Do not show the issue tracker button if there is no URL for issues

* Apply suggestions from code review

Co-authored-by: John Linhart <jan@linhart.email>

* Revert "Apply suggestions from code review"

This reverts commit a4c6a1b74ea419946ce64e7b905f1905b6bd60b3.

* Add lots of error handling to AjaxController

* Update URLs to docs in most places

* Additional error handling

* Remove double cache clear as it crashes the application

* Localization

* Fix tests

* Add more tests

* Fixing phpstan issues

* Add more tests

* Fixing bug discovered by the tests :tada:

* Add new plugin events (Acquia)

* Added new sortable columns to landing pages table, created at, modified date, createdby

* Set default order to decreasing modified date

* At creation of landing set also modified date

* Added index action test to PageControllerTest

* changed format date

* refactor(pagelist): use long date on tooltip

* fix(tableorder): at default order icon is asc and not desc, i change the default behavior

Changed default icon to asc and added another option "orderDir" for default icon, cant be used
option "dir" because it will be fixed the icon at one order. I also set orderbydir session at init
in PageController, because setListFilters method inside CommonController has ASC as default
behavior. If don't do it after first click on modified date icon the order will be again DESC, i
need that it will be converted to ASC.

* refactor(pageslist): changed init of dir param

* test(pagecontrollertest): added tests for page list, check if columns exist and order is correct

* refactor(pagecontroller): remove if condition and use default order to session

* Introduce options in fm_elfinder config

* Remove defaultDir parameter

* Fix default ordering for SMS

* Guess session base If not exists from deprecated parameter from old abstract class

* Fix default ordering for Assets

* Fix default ordering for Forms

* Add return type

* Fix ordering for Pages

* Keep same direction If switch column ordering

* Revert "Regenerate production assets"

This reverts commit 92f4db556cb3403141177a1238d085977ad8d7ee.

* Add missing argument to remove command

* Revert app.js

* Real revert app.js

* Fix event dispatching in ReloadHelper

* Revert "Introduce options in fm_elfinder config"

This reverts commit f4b64615810933fb7d89468cdff2614d4bb55eba.

* Revert "create test"

This reverts commit 67f97df7df3c8420afc9371a0a6eb49e49771787.

* Add unit test

* Improve boolean import/API support #7513

* Fix PHPStan

* Fix PHPStan

* Fix PHPStan and CS

* Added the ordered columns creation date and modified date

* Moved ID column to the end

* Added created by column

* Changed method for date

* Removed visible-md

* Added test for index action

* CreatedBy is visible only on lg

* Replace toFull with toFullConcat

* refactor(list.html.php): added escape and show full date only on hover

* test(emailcontrollerfunctionaltest): modified a test

now test if email contains saved fields

* feat(emailcontroller): changed default order to date modified

* refactor(emaillist): added default order to datemodified

* feat(email): set added date and modified date in Email construct

* feat(emaillist): changed default order to desc

* Remove non-working installation button from table

* Testing for more bool values

* Porting failing test from API Library

Mautic\Tests\Api\CampaignsTest::testCampaignContactEditEvent

* Fixing the  error "Call to a member function getTimestamp() on null"

* Improving error messages with concrete IDs

* Fixing param/return types for LeadEventLog entity

Because the original bug happened because they were not correct

* CS fixes

* Added space at the end of the file

* add extra checks in the misc job

* Fix scaffolded files that are out of sync

* reverted renamed tests, as it breaks the reporting

* Fix unit tests

* Fix email ordering

* Same date formatting also for campaigns

* Fix change order for default way

* Add unit tests for landing page

* Move getDefaultOrderDirection to CommonController

* Update app/bundles/CoreBundle/Controller/CommonController.php

Co-authored-by: John Linhart <jan@linhart.email>

* Add return type for getDefaultOrderDirection

* Revert back strict return type

* More unit tests

* Refactor unit tests to trait

* Add asset controller test

* Stop unnecessary query (#10876)

* Ensure unnecessary update queries won't happen

UPDATE leads SET last_active = ... WHERE id IS NULL

* Improving a test by replacing mocks with real objects

* Reusable getStandardColumns method (#10898)

* Move getStandardColumns method into the helper so it can be reused in other places.

* Fix the test.
Don't mock the ReportHelper. There is no need to mock it.

* Increase code coverage.

* Type fixes

* CS fix

* Fixing types

Co-authored-by: Anton Vlasenko <vlasenko.anton@gmail.com>

* Add UI update deprecation notice (#10907)

* Merge pull request from GHSA-mj6m-246h-9w56

* only allow access to specific PHP files in their specific location

* same change is needed in .htaccess file scaffolded in mautic/core-lib

* improved wording in comments

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* loosened regex to allow index_dev.php requests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Bump to 4.2.0 stable

* Revert - remove dependency on pre-installed mautic (local.php file) when running tests (#10909)

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>

* add missing whitespace (#10923)

* restrict workflows with impact to mautic/mautic (#10894)

* restrict workflows with impact to mautic/mautic

* no codecov wanted either

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Dynamic content events (#10886)

* add events to segment filters dictionary generation, alter choices event to be more dynamic, make filter type public, alter choices form to allow translation keys without prefix as fallback. update reference to CO bundle

* code style fixes

* add events for DynC. for Cust.O.

* minor changes, maybe will be reverted

* split factory for sergments filter in two methods, so we can use it elsewhere

* cs fixes

* cs cleanup

* cs cleanup

* remove php 7 stuff

* Update app/bundles/LeadBundle/Event/SegmentDictionaryGenerationEvent.php

Co-Authored-By: galvani <galvani78@gmail.com>

* Update app/bundles/LeadBundle/Segment/ContactSegmentFilterCrate.php

* catch and ignore PDO exceptions in cache:clear process in CacheBundle, Move ContactFiltersEvent to DynamicContent bundle and fix references

* fix existing tests to mock new service arguments

* Update app/bundles/LeadBundle/Segment/ContactSegmentFilterFactory.php

Co-Authored-By: galvani <galvani78@gmail.com>

* Update app/bundles/DynamicContentBundle/Helper/DynamicContentHelper.php

Co-Authored-By: galvani <galvani78@gmail.com>

* fix cs errors

* Fixes after a wild cherry-pick of an antient missing commits

* One more round of after cherry-pick conflict cleanup

* Stan and CS fixes

* Covering the new method with tests

Co-authored-by: Jan Kozak <galvani78@gmail.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Allow composer scripts to use php-cs-fixer configuration (#10624)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Added provision to check is editted segment is new. (#10003)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Added support for MySQL full-text search queries (#9335)

* Added support for MySQL full-text search queries

* Composer conflicts resolved

* Conflict resolved

* Moving the new package to the right composer.json

* Fixing typehints

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>

* fix segments list order (#10938)

* fix(segments): fixed session var name from segment to lead.list

* test(listcontrollertest): added a new test for list page

* Feature new click filters (#9852)

* Adds SMS and Email clicked date based segment filters

* Add support for clicking any link in any sms period

* Removed unused code

* Add manual SMS dnc filters

* Process SMS dnc manual unsubscribe filter

* Added missing dependency

* Fixed ChannelClickQueryBuilder for "did not click" filters

* Add new filter tests

* Type fixes

* Fixing PHP notice

PHP Notice - Uninitialized string offset: 0" at FieldFilterTransformer.php line 94

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Joey Keller <jos0405@gmail.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Remove doc blocks TPROD-131 (#10970)

* Adding new CS Fixer rule to remove doc blocks

* Removing docblocks

See https://mautic.atlassian.net/browse/TPROD-131

* Running the CS fixer again to remove the double new lines

* Runing CS Fixer for the 3rd time

* More CS fixes

* Fixing PHPSTAN issues in anonymous classes as those depend on line number which has changed after removing doc blocks

* Segment query optimizatioin  (#10904)

* Optimized DoNotContactFilterQueryBuilder

* Optimized addNewContactsRestrictions query

* DoNotContactFilterQueryBuilder test

* ContactSegmentQueryBuilder test

* Fixed failing tests when merged into development branch

* Removed call-time unnecessary parameters

* CS fixes

* Fixing test

The string must have an underscore in it

* Fixing DoNotContactParts for all options

Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* Import validation (#10884)

* Validate imports to require mapping required fields

* Refactor required field validation for imports to event system

* Skip the CheckPassword validation group when associating a User entity as Owner

* Utilize the ArrayHelper class to reduce boilerplate.

* Ensure tags is an array

* Check all required company fields are mapped if any company fields are mapped during a contact import.

* Fixes after difficult conflict resolution

* Syntax sugar

* Adding functional tests for contct import

* Removing the deprecation notice as it does not make sense

The $flashBag property is private so no controller that inherits from this one can use it. Also, making it protected is a BC break as it breaks one of our plugin which use the same property already.

* Adding COMMAND_NAME const to avoid using strings in the tests

* Adding a validation error message if the file is not provided

* Adding logging to get some trace about why the import was reseted, light refactoring

* Access to an undefined property ImportController::$model

* Adding test with fixes discovered by it

* CS Fixes

* PHPSTAN fixes

* CS Fixes

* We cannot overwrite the getModel method as it's used from paretns with different model names

Co-authored-by: Don Gilbert <don.gilbert@mautic.com>

* docs: add Damzoneuh as a contributor for code (#10983)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Segment delegate decorator event (#10890)

* make sub-querybuilders pass paramater types along and allow to bypass decorator to get crate value

* cs fixes?

* tests for dynamic content

* update reference to CO plugin

* update reference co bundle, fix cs

* fix tests, cover event dispatch with test

* remove use statements from config

* replace int value with constant

* add argument removed on cleanup

* add helper method

* Fixes after wild cherry-pick conflict resolutions of antient commits

* New PHP syntax suggar

* CS fix

* Improving tests

* CS fix

* CS fix

* CS fix

Co-authored-by: Jan Kozak <galvani78@gmail.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fixing BC change after moving some segment filters to behaviors (#11003)

* Merge 4.2 branch back to 4.x (#11015)

* add missing whitespace (#10922)

* Fix segment membership filter build query (#10809)

* Fix segment membership filter build query

* Fix addLogic based on and/or

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix report date filter (#10800)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix email translations lost and overwritten by parent (#10620)

* Fix email translations lost and overwritten by parent

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix for Amazon API transport return-path when sending emails immediately (#10474)

* Fix for Amazon API transport return-path when sending immediately

* Added test for getBatchRecipientCount in AmazonApiTransport

* fix phpstan

* cs fix

* fix_cs

* fix the test

* Revert method signatures in AmazonApiTransport

* fix phpstan

* Add missing amazon message batch test

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix timezone on timeline (#10375)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix API Permission Issue (#10679)

* Fix Api Permissions Issue

* Updated Api permission issue functional test

* Removed unused namespace

* Fix functional test case

* Fixed Functional Test

* Fix failed tests

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix integration special fields order (#10649)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix set import template If use legacy builder (#10897)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* restrict workflows with impact to mautic/mautic (4.2) (#10924)

* restrict workflows with impact to mautic/mautic

* no codecov wanted either

* Validate admin password length during install

* Added test

* Fix primary email company tokens (#10733)

* Fix primary email company tokens

* Fix unit tests

* Add break If we find primary company value

Co-authored-by: mmarton <marton@webdream.hu>

Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Public preview email disabled by default (#10845)

* Public preview email disabled by default

* Add unit tests

* Add resposne content to failed unit tests

* Add flush

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update to use default release notes, remove file (#10934)

* Display just published fields in form field mapping (#10734)

* Display just published fields in form field mapping

* Add unit tests

* Unit tests clean up

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* move changelog to the toplevel instead of a task (#10948)

* fix segments list order (#10968)

* fix(segments): fixed session var name from segment to lead.list

* test(listcontrollertest): added a new test for list page

* Migration fixes (#10931)

* Fixing skip migration check...

... as it should not check for the foreign keys but only if the table exists. The foreign keys must exist when the table exists either by running this migration or installing Mautic from entities

* Fixing migration check...

... as it was checking for wrong index name without the prefix and then the rename query was run on an index that do not exist.

* Actually, the checks were fine but used double table prefix

* CS fix

* Fix prevent save alias of contact field already used in segments (#10224)

* Fix prevent save alias of contact field already used in segments

* fix unit test

* CS fixer

* Fix PHPStan

* Remove SegmentFiltersSubscriber.php from configuration

* Resolve conflicts after segments refactoring

* Fix unit tests

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix public preview email for expired emails (#10971)

* Fix public preview email for expired emails

* Add unit test

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Small grammar fix (#10977)

* Tags on edit should display same message as other entities, for e.g. xyz has been updated! (#10984)

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* Remove clone option from tag manager

Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Export to CSV and Excel creates contact duplicates (#10849)

* Fix duplicate contacts when exporting

* Fix code style

* Fix code style

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Missing include/exclude operator for text field in segment filters (#10985)

* WIP: Fix: No include/exclude operator for text field in segment filters.

* Use method available in the interface

Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed (#11000)

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed

* Added some additional comments

* Cleaned up the tests a bit and added a check for the primary company in the details dropdown

* Prevent phpunit warning due to using a private method with a test prefix

* CS, STAN fixes

* Test fix

Co-authored-by: Alan Hartless <alan@devkardia.com>

* Special characters of the text getting corrupted while posting results to another form (#10872)

* Special characters of the text getting corrupted while posting results to another form

* Fixing PHPStan issue

* Fix for single code decoding

* Added file copyrights details

* fix CS faling check and adding type declation for variables

* fixing CS-Fixer

* fixing CS-Fixer

* Fix failed test

Co-authored-by: John Linhart <admin@escope.cz>

* Segment filter 'Asset Downloads' not showing all assets (#11002)

* MAUT-3795: Segment filter 'Asset Downloads' not showing all assets

* MAUT-3795: Keep existing filter data for asset downloads after ajax search

* MAUT-3795: Fixing submit issue for asset downloads filter

* STAN fixes

* There is no request service in AssetModel

Co-authored-by: Liju P M <liju.pm@acquia.com>

* Bump to 4.2.1

* Fix issue with changelog (#11012)

* Move release notes to separate file (#11014)

* Fixes needed after 4.2 to 4.x merge (CS, STAN, UNIT)

* CS fix

Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Patryk Gruszka <patryk.gruszka@comarch.pl>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Rahul Dhande <68939488+rahuld-dev@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Alfredo Arena <50916237+alfredoct96@users.noreply.github.com>
Co-authored-by: Damzoneuh <44919863+Damzoneuh@users.noreply.github.com>
Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>
Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Alan Hartless <alan@devkardia.com>
Co-authored-by: Liju P M <liju.pm@acquia.com>

* Only upload release asset if not prerelease (#10882)

* Replace Client with KernelBrowser (#11049)

* TPROD-280 - The scale option was removed from the IntegerType (#11034)

* The scale option was removed from the IntegerType

* CSS style tweak

* Improve docs on builder events (#11047)

* Improve docs on builder events

* Fix PHPSTAN

* Fix PHPSTAN errors

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Add company_id search command (#10702)

* Add company_id search command

* Add unit tests

* Improve unit tests

* Add functional test

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* limit scheduled workflows to specific public repo's (#11062)

* Updating the email validation mode to work in Symfony 5.0 (#11054)

The strict mode requires another dependency to be added via Composer so I suggest to change it to the next best thing which is the same email validation as the HTML5 browsers do

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Removing options for TimeType that would cause an exception in Symfony 5.0 (#11040)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* rework the seek / fgets combo to be compatible with both PHP 7 and 8 (#11060)

* rework the seek / fget combo to be compatible with both PHP 7 and 8

* CS fixes

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update LeadImportType.php (#11011)

Fixed Import validation when uploading a CSV file in Mautic 4.x with PHP 8

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* docs: add alinmbb as a contributor for code (#11065)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* split up of lead column structure and field data fixtures (#11059)

CS fixes and improvements

phpstan fixes

Update app/bundles/InstallBundle/Config/config.php

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>

* Segment optimization IN to EXISTS (#10903)

* MAUT-3830 - WIP - change alias for inner query

* MAUT-3830 - WIP - introduce a way to get/set dynamic alias

* MAUT-3830 - WIP - MauticCitrixBundle changes

* MAUT-3830 - WIP - Builder changes

* MAUT-3830 - WIP - LeadListFilteringEvent.php cs-fixes

* MAUT-3830 - WIP

* MAUT-3830 - WIP - fix table alias false error

* MAUT-3830 - fix test case and lead limiter alias

* fix rebase issues, fixcs issues and add alias to foreign value filter

* Removing return types which are BC changes, Stan and CS fixes

* getTableAlias method must return string

* Fixing failing function segment tests by copy-pasting code changes missing in some segment query builders from our fork

* Fix of an issue caused by a rebase

Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>

* Dont show empty fields in the contact and company detail view (#11016)

* Don't show empty fields

* Fix test

* Fix test

* Show fields with a set value

* Improve code

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: John Linhart <admin@escope.cz>

* Updating image used for getting changed files (#11074)

Fixing error for GH Actions:

fatal: unsafe repository ('/github/workspace' is owned by someone else)
To add an exception for this directory, call:

	git config --global --add safe.directory /github/workspace

@see https://github.com/actions/checkout/issues/760

* Remove transChoice() as it is deprecated in Symfony 4.2 (#11046)

* Remove transChoice() as it is deprecated in Symfony 4.2 and will be removed in 5.0

* Replace trans() pluralization with '%count%' key and update ini files

* Update ini file

Co-authored-by: John Linhart <jan@linhart.email>

* Update ini file

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Fix network issues when running composer in ddev (#11084)

* Deprecate AbstractIntegration (#11050)

Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-281 - Test kernel boot fix for Symfony 5 (#11045)

* Test rewritten using enableReboot() method

* Method createAnotherClient() removed as it will not work in Symfony 5

* Unused import removed

Co-authored-by: John Linhart <admin@escope.cz>

* 4.2 to 4.x (#11112)

* add missing whitespace (#10922)

* Fix segment membership filter build query (#10809)

* Fix segment membership filter build query

* Fix addLogic based on and/or

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix report date filter (#10800)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix email translations lost and overwritten by parent (#10620)

* Fix email translations lost and overwritten by parent

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix for Amazon API transport return-path when sending emails immediately (#10474)

* Fix for Amazon API transport return-path when sending immediately

* Added test for getBatchRecipientCount in AmazonApiTransport

* fix phpstan

* cs fix

* fix_cs

* fix the test

* Revert method signatures in AmazonApiTransport

* fix phpstan

* Add missing amazon message batch test

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix timezone on timeline (#10375)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix API Permission Issue (#10679)

* Fix Api Permissions Issue

* Updated Api permission issue functional test

* Removed unused namespace

* Fix functional test case

* Fixed Functional Test

* Fix failed tests

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix integration special fields order (#10649)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix set import template If use legacy builder (#10897)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* restrict workflows with impact to mautic/mautic (4.2) (#10924)

* restrict workflows with impact to mautic/mautic

* no codecov wanted either

* Validate admin password length during install

* Added test

* Fix primary email company tokens (#10733)

* Fix primary email company tokens

* Fix unit tests

* Add break If we find primary company value

Co-authored-by: mmarton <marton@webdream.hu>

Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Public preview email disabled by default (#10845)

* Public preview email disabled by default

* Add unit tests

* Add resposne content to failed unit tests

* Add flush

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update to use default release notes, remove file (#10934)

* Display just published fields in form field mapping (#10734)

* Display just published fields in form field mapping

* Add unit tests

* Unit tests clean up

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* move changelog to the toplevel instead of a task (#10948)

* fix segments list order (#10968)

* fix(segments): fixed session var name from segment to lead.list

* test(listcontrollertest): added a new test for list page

* Migration fixes (#10931)

* Fixing skip migration check...

... as it should not check for the foreign keys but only if the table exists. The foreign keys must exist when the table exists either by running this migration or installing Mautic from entities

* Fixing migration check...

... as it was checking for wrong index name without the prefix and then the rename query was run on an index that do not exist.

* Actually, the checks were fine but used double table prefix

* CS fix

* Fix prevent save alias of contact field already used in segments (#10224)

* Fix prevent save alias of contact field already used in segments

* fix unit test

* CS fixer

* Fix PHPStan

* Remove SegmentFiltersSubscriber.php from configuration

* Resolve conflicts after segments refactoring

* Fix unit tests

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix public preview email for expired emails (#10971)

* Fix public preview email for expired emails

* Add unit test

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Small grammar fix (#10977)

* Tags on edit should display same message as other entities, for e.g. xyz has been updated! (#10984)

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* Remove clone option from tag manager

Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Export to CSV and Excel creates contact duplicates (#10849)

* Fix duplicate contacts when exporting

* Fix code style

* Fix code style

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Missing include/exclude operator for text field in segment filters (#10985)

* WIP: Fix: No include/exclude operator for text field in segment filters.

* Use method available in the interface

Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed (#11000)

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed

* Added some additional comments

* Cleaned up the tests a bit and added a check for the primary company in the details dropdown

* Prevent phpunit warning due to using a private method with a test prefix

* CS, STAN fixes

* Test fix

Co-authored-by: Alan Hartless <alan@devkardia.com>

* Special characters of the text getting corrupted while posting results to another form (#10872)

* Special characters of the text getting corrupted while posting results to another form

* Fixing PHPStan issue

* Fix for single code decoding

* Added file copyrights details

* fix CS faling check and adding type declation for variables

* fixing CS-Fixer

* fixing CS-Fixer

* Fix failed test

Co-authored-by: John Linhart <admin@escope.cz>

* Segment filter 'Asset Downloads' not showing all assets (#11002)

* MAUT-3795: Segment filter 'Asset Downloads' not showing all assets

* MAUT-3795: Keep existing filter data for asset downloads after ajax search

* MAUT-3795: Fixing submit issue for asset downloads filter

* STAN fixes

* There is no request service in AssetModel

Co-authored-by: Liju P M <liju.pm@acquia.com>

* Bump to 4.2.1

* Fix issue with changelog (#11012)

* Move release notes to separate file (#11014)

* Fix flip array for groups in select in segments filter (#9339)

* Fix flip array for sub array in segments filter

* Fix PHPStan

* Update app/bundles/CoreBundle/Helper/ArrayHelper.php

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: Dennis Ameling <dennis@dennisameling.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <jan@linhart.email>

* Add tag creation behavior for leads (#10969)

* Updating image used for getting changed files (#11075)

Fixing error for GH Actions:

fatal: unsafe repository ('/github/workspace' is owned by someone else)
To add an exception for this directory, call:

	git config --global --add safe.directory /github/workspace

@see https://github.com/actions/checkout/issues/760

* Fix network issues when running composer in ddev (#11089)

* use a more strict contraint for doctrine-bundle due to (BC?) breaking changes (#11053)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix headers (including list-unsubscribe header) when using sendgrid-api (#10831)

* Fix headers (including list-unsubscribe header) when using sendgrid-api

* Apply CSFixer for concat_space, single_quote

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Remove multiselect field default value template (#11069)

* Remove multiselect field default value template

* Fix PHPStan

Co-authored-by: John Linhart <admin@escope.cz>

* Fix elFinder localization (#10987)

* Bump async from 3.2.0 to 3.2.3 in /plugins/GrapesJsBuilderBundle (#11076)

Bumps [async](https://github.com/caolan/async) from 3.2.0 to 3.2.3.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/master/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v3.2.0...v3.2.3)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* change link from edit to view once company modification saved (#11098)

Co-authored-by: John Linhart <admin@escope.cz>

* Update CONTRIBUTING.md (#11100)

* Fix and redesign sms characters count (#10838)

* Fix and redesign sms characters count

* Reformat HTML

Co-authored-by: John Linhart <admin@escope.cz>

* Custom html is hidden when GrapesJS is disabled (#11102)

* Fixing custom field with an empty option (#11101)

* Fix dependency issue (#11085)

* Fix dependency issue within functional tests

* Added fixtures test case.

Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* 4.2.2 bump (#11109)

* Bumping to version 4.2.2

* Production assets generated

Needed for Mautic instances installed via Composer

* Fixing PHPSTAN after bad merge

* CS fix

* Removing unused var

Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: Patryk Gruszka <patryk.gruszka@comarch.pl>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Rahul Dhande <68939488+rahuld-dev@users.noreply.github.com>
Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Alfredo Arena <50916237+alfredoct96@users.noreply.github.com>
Co-authored-by: Damzoneuh <44919863+Damzoneuh@users.noreply.github.com>
Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>
Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Alan Hartless <alan@devkardia.com>
Co-authored-by: Liju P M <liju.pm@acquia.com>
Co-authored-by: Dennis Ameling <dennis@dennisameling.com>
Co-authored-by: julienWebmecanik <79137416+julienWebmecanik@users.noreply.github.com>
Co-authored-by: Ofer Shaal <shaalofer@gmail.com>
Co-authored-by: Renato Santos <renato.cron@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Norman Pracht - Webmecanik <npr@webmecanik.com>
Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* Corrected zip key for IPStack (#10722)

* fixed key for IPStack

* Fixed mock http response to align with actual response

* Instances with DB prefix set failed after https://github.com/mautic/mautic/pull/11059 (#11128)

* Auto-update GrapesJS generated JS dist files (#10808)

Co-authored-by: dennisameling <dennisameling@users.noreply.github.com>

* DDEV updates for 4.x (#11134)

* Fix progressive forms (#11125)

* Fix progressive forms

* Add simple unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Clearing risky tests (#11132)

* Fixing # "Risky test" warnings on PHPUNIT execution

* Refactoring useless test into useful

* Setting PHPUNIT config failOnRisky="true" failOnWarning="true"

So we won't silently get these into the code again

* CS, STAN fixes

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Tprod 293 - Replacing deprecated Intl methods (#11036)

* Symfony 5: Removed deprecated Intl::getLocaleBundle(), used Locales instead

* Symfony5: Removed Intl::getRegionBundle(), use Countries instead

* canViewOthers is 4th param, not 3rd

* STAN fix

* Recommended configuration added to System Info + Zend assertions check (#11019)

* Adding new Recommendations tab to System Info

to show warnings if the system is not configured properly during the installation or new recommendations are added later on

* New recommendation to configure zend.assertions = -1

* Show a message when there are no recommendations

* Display requirements as messages in System Info as well

* Testing that the Recommendations tab is present on the System Info page

* CS and STAN fixes

* Add recommended zend.assertions = -1 to ddev

* Revert "Add recommended zend.assertions = -1 to ddev"

This reverts commit cff3654bf7b03248a6ac4ff87cf4ef38cae91c2d.

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>

* Fix: Tags filter Tag IDs are displayed as dropdown options instead of… (#11088)

* Fix: Tags filter Tag IDs are displayed as dropdown options instead of Tag Name

* Add test case

Co-authored-by: John Linhart <admin@escope.cz>

* Fix 500 error on contact API batch endpoint (#10724)

* New test for batch-editing a contact with rubbish ID which is failing

and test that confirms it works for existing ID

* Method `getArray()` must return an array.

It returns ArrayObject in an edge case which breaks later on

Argument 1 passed to Mautic\ApiBundle\Helper\BatchIdToEntityHelper::orderByOriginalKey() must be of the type array, object given

* Improving passing query params to in/notIn methods

* Fixing static analysis issues, removing check that I couldn't find any reason for

* Type fixes

* Adding test that will check for empty JSON object

* Adding back the removed code that checks for empty entities and returns object if so

* limit=0 is ignored. Using rather a where condition that should never find any contact

* Typehint fixes

* Fixing bug discovered by at test

* Segment mysql8 fix (#11126)

* Added ContactSegmentFilter::doesColumnSupportEmptyValue() method

* Respect empty value support in SegmentOperatorQuerySubscriber::onEmptyOperator() and onNotEmptyOperator() methods

* Tests updated

* ContactSegmentFilter::doesColumnSupportEmptyValue() covered by a test

* Removing test that needs another PR to be merged first

* Replacing deprecated at()

* Typo fix

* Type fixes

Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* Phpstan, Rector and JMS Serializer update (#11131)

* Updating jms/serializer-bundle from 3.8 to 4.0 as it's blocking Phpstan update

* Had to run full composer update to get the jms serializer visible to Composer and then I was able to update Phpstan and Rector

* Renaming deprecated config param

* Updating phpstan baseline as the new version have different error messages

* Bump minimist from 1.2.5 to 1.2.6 (#11026)

* Bump minimist from 1.2.5 to 1.2.6

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump minimist from 1.2.5 to 1.2.6 in /app/assets/scaffold/files

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Bump minimist from 1.2.5 to 1.2.6 in /plugins/GrapesJsBuilderBundle (#11027)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs: add deborahsalves as a contributor for userTesting (#11149)

* Replace uses of Symfony\Component\Debug\Debug by Symfony\Component\ErrorHandler\Debug (#11143)

Co-authored-by: John Linhart <admin@escope.cz>

* Fix audit log old value for company (#11110)

* Fix Contact Audit log doesn’t show Old value for Company

* Add test case for edit contact audit log

* Fix flaky test case

* Fix container static issue and add more tests

* CS fix

Co-authored-by: John Linhart <admin@escope.cz>

* Fix crash when getting a field that is missing column if more missing (#10458)

* Fix crash when getting a field that is missing column if more missing

* fix phpstan

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* rebase to 4.x (#10343)

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Reports not equal expression include nullable values (#10043)

* Reports not equal expression include nullable values

* CS fixer

* Add unit tests

* Fix PHPStan reports

* Fix PHPStan 2

* Fix PHPStan

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Asynchronously loaded segment contact list (#11005)

* MAUT-5163: Make contact grid in Segment view page loading async

* MAUT-5163: Resolving conflicts with staging

* MAUT-5163: Adding functional test

* MAUT-5163: Code review changes

* MAUT-5163: Code review changes

* Removing JS that does not belong to this PR

* Test and STAN fixes

* Returning back handleAssetDownloadSearch function.

It was somehow removed during rebase

Co-authored-by: Liju P M <liju.pm@acquia.com>

* Blank theme if no theme exists (#10154)

* Blank theme if no theme exists

* Removing the blank_theme config option

because there was similar config option theme_email_default merged in https://github.com/mautic/mautic/pull/9189

* Type fixes

Co-authored-by: John Linhart <admin@escope.cz>

* Added Curaçao and Isle of Man (#10498)

Co-authored-by: John Linhart <admin@escope.cz>

* Fix JS translations (#9749)

* Fix JS translation string

* Add unit tests

* Fix namespace in unit tests

* Fix namespace in unit tests

* Improve unit tests

* CS fix

* PHPStan fixes

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Remove not necessary unit tests

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: John Linhart <admin@escope.cz>

* Add log processor (#11121)

* Add log processor

* Fix phpstan issues

* Improve log processor

* Add test case

Co-authored-by: John Linhart <admin@escope.cz>

* Custom Objects plugin support (#10883)

* UuidInterface and UuidTrait added

* type hinting added to UuidInterface, loadMetadata function name changed to get called implicitly

* UuidTrait and UuidInterface corrections as per PR change reuqest

* Adding missing return type

* Fix CustomObjectPermissionsTest

* Add choices_as_values to PermissionListType as default option

Co-authored-by: Yash Khuthia <gunnrryy@gmail.com>
Co-authored-by: Lukas Drahy <lukas@drahy.net>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>

* Fix 191 characters for created lead fields (#9460)

* Add 191 characters for created lead fields

* Fix length for new text field to 191 length

* Add unit tests

* Set now dates to new field

Co-authored-by: John Linhart <admin@escope.cz>

* Change version regexp (#10919)

* Change version regexp

* Add unit tests

* Fix PHP Stan

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Move removal of duplicate index from fixture to Doctrine event listener (#11058)

phpstan fixes

Revert "phpstan fixes"

Update app/bundles/CoreBundle/EventListener/DoctrineEventsSubscriber.php

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-233 Enable hybrid Twig templates support in Mautic (`MauticCoreBundle:Default:content.html.twig`) (#10129)

* First work on Twig support in CoreBundle

* First work on Twig for ProfileController

* Add note about PHP vs Twig templates to UPGRADE-4.0.md

* WIP

* MASSIVE progress 🚀

* More progress!

* Migrate all form templates to Twig 🤯

* Fix CS

* Finalize code, fix bugs

* Finalizations & cleanup

* Update README

* Fix PHPSTAN

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-278 - Do not add format option when html5 is set for DateType (#11038)

* Do not add format option when html5 is set for DateType

* Added test

Co-authored-by: John Linhart <admin@escope.cz>

* Campaign forms source - add contact just to active campaign (#11130)

* Campaign forms source - add just to active campaign

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Adding missing table prefix (#11159)

* Adding missing table prefix

* Count the characters only when the input exists. It throws error on sms list page

* Fix tag name cannot be empty and throw validation error (#11120)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-279 - The getExtendedType() method was removed from the FormTypeExtensionInterface (#11037)

* The getExtendedType() method was removed from the FormTypeExtensionInterface

And deprecating unused form extension and event

* STAN fix

* CS fix

* Adding deprecation notices

* GitHub workflows to close mirror repo PRs (#11154)

* Add plugins

* Themes

Co-authored-by: John Linhart <admin@escope.cz>

* Fix translation initialisation issue (#11118)

Co-authored-by: John Linhart <admin@escope.cz>

* Fix: API - GET tag replace Apostrophe with its HTML Entity Number (#11116)

* Fix: API - GET tag replace Apostrophe with its HTML Entity Number

* Fix test cases

* Fix test case

Co-authored-by: John Linhart <admin@escope.cz>

* Bump grunt from 0.4.5 to 1.5.2 (#11113)

* Bump grunt from 0.4.5 to 1.5.2

Bumps [grunt](https://github.com/gruntjs/grunt) from 0.4.5 to 1.5.2.
- [Release notes](https://github.com/gruntjs/grunt/releases)
- [Changelog](https://github.com/gruntjs/grunt/blob/main/CHANGELOG)
- [Commits](https://github.com/gruntjs/grunt/compare/v0.4.5...v1.5.2)

---
updated-dependencies:
- dependency-name: grunt
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updating all dependencies as they were not compatible with the new Grunt version

* Adding option to enable inline JS in LESS

Because of error:
Running "less:files" (less) task
>> app/bundles/CoreBundle/Assets/css/app/less/components/loading-bar.less: [L4:C0] Inline JavaScript is not enabled. Is it set in your options?

I don't see any inline JS in that file though

* Copying new content to the scaffold mirror files

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>

* docs: add automatyzuj as a contributor for userTesting (#11161)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Allow console to leverage the generic autoloader regardless of the location (part 2) (#11039)

* generic autoloader for console and application

Added test to check if a PR wouldn't break the composer flow

CS fixes

temp revert the console change to see the test fail

re-apply change

align autoload files

temp remove dbal / orm caching to pass tests

still an extra dot

Revert "temp remove dbal / orm caching to pass tests"

This reverts commit 460025d54f4dc2c18e1f3292e717ff859db0ed9e.

* Trying to exclude checking CS on deleted files

all_modified_files = Select all changed files
i.e. a combination of all added,
copied, modified, renamed and deleted files (ACMRD)

all_changed_files = Select all changed files
i.e. a combination of all added,
copied, modified and renamed files (ACMR)

* Avoiding the "header_comment" CS rule

* One more CS fix

* Another CS fix test? It passes on my local :shrug:

* I guess we cannot add any comments to these files...

Co-authored-by: John Linhart <admin@escope.cz>

* fix salesforce integration refresh token (#10993)

* fix(abstractintegration): fix admin users notification on integration error

Fixed error that occurs when integration sync fails, it tries to log error but occurs the error
$adminUsers must not be accessed before initialization, variable needs to be defined as Paginator
and not array, it also need to be default null

* fix(salesforceapi): fix missing refresh token on salesforce integration

If access token expires it's never refreshed because INVALID_SESSION_ID is never found. It tries to
find INVALID_SESSION_ID in errorCode field but it is inside 'message' field

* docs(abstractintegration): fixed phpstan error

* refactor(abstractintegration): subsitute str_contains with strpos that is compatible with php7

* test(salesforcetest): modified testSessionExpiredIsRefreshed

Modified test with the correct response of api call

* Fix prerelease logic in CI, use outputs instead of env in several places (#11165)

* Bumping to version 4.3.0-beta

* bin/console mautic:assets:generate for 4.3.0-beta

* Set correct stability channel (#11172)

* Fast rendering segment list (#11071)

* create ajax request, make use of cache for counts on page load, set cache using ajax

* remove code for testing

* consume ajax request and some UI tweaks

* fix invalid input request id

* optimize set cache, rename methods for better readablity

* fix table prefix error

* add test case

* fix failing test case

* fix redundant ajax calls, maintain cache naming convention

* WIP

* move logic to repo

* add test cases

* MAUT-3326 : fix code and add more test cases

* Make elememt call a const, removed success check in ajax response

* Removed cache storage helper from repo arguments, Implemented cache increment and decrement on addLead and removeLead resp.

* Updated test cases, renamed file to functional test case

* Updated few more test cases, removed ListControllerTest.php (renamed)

* Fixed wrong rebuild count error and test cases

* Renamed method. Updated increment segment cache count method to set count = 1 when cache not available

* Fixed negative decrement value

* Added edge case test for decrement when count is 0. Improved functional test case.

* Removed command output assertion.

* Fixed failing test case - added dynamic contact id

* Fixed segment cache count on campaign triggers.

* Add missing service

* Add missing service

* Fix phpstan issues

* Fix failing ListModelTest.php cases

* Fix failing SegmentCountCacheHelperTest.php cases

* Fix failing UpdateLeadListCommandFunctionalTest.php cases

* Fix phpstan issues

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* 4.3.0-rc bump (#11176)

* ensure css and js assets are present and can be generated  on composer based installs (#11164)

* temp scaffold form source file so form js asset can be generated

* updated the scaffolded file based on the media folder

* scaffold extra css files

* add test to test the outcome of scaffolded composer based installs

* fix incorrect scaffolded file

* remove symlinking to prevent wrong scaffolding

* Small typo fix in comment

* Fix typo in media folder

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* bin/console mautic:assets:generate

* Merge pull request from GHSA-jrwm-pr9x-cgq3

* Merge pull request from GHSA-pjpc-87mp-4332

* sanitise user agent before displaying

* Update app/bundles/EmailBundle/Views/SubscribedEvents/Timeline/index.html.php

Co-authored-by: John Linhart <admin@escope.cz>

* removed obsolete use statement

Co-authored-by: John Linhart <admin@escope.cz>

* Bump to 4.3.0

* sanitise admin account data during install

* Bump to 4.3.1

* After-merge fixes

* `composer update --lock` after merge

* CS fix

* Fixing "Files ./package-lock.json and app/assets/scaffold/files/package-lock.json differ"

* STAN fixes

* CS fix

Co-authored-by: Dennis Ameling (he/him) <dennis.ameling@leap.ac>
Co-authored-by: Dennis Ameling <dennis@dennisameling.com>
Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Alfredo Arena <alfredo.arena@ctmobi.it>
Co-authored-by: Mattias Michaux <mattias.michaux@dropsolid.com>
Co-authored-by: Anton Vlasenko <vlasenko.anton@gmail.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: Jan Kozak <galvani78@gmail.com>
Co-authored-by: Miroslav Fedeleš <miroslav.fedeles@gmail.com>
Co-authored-by: Alfredo Arena <50916237+alfredoct96@users.noreply.github.com>
Co-authored-by: Alan Hartless (he/him) <alan@devkardia.com>
Co-authored-by: Joey Keller <jos0405@gmail.com>
Co-authored-by: Don Gilbert <don.gilbert@mautic.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Patryk Gruszka <patryk.gruszka@comarch.pl>
Co-authored-by: Rahul Dhande <68939488+rahuld-dev@users.noreply.github.com>
Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Damzoneuh <44919863+Damzoneuh@users.noreply.github.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>
Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Liju P M <liju.pm@acquia.com>
Co-authored-by: alinmbb <86683952+alinmbb@users.noreply.github.com>
Co-authored-by: Ofer Shaal <shaalofer@gmail.com>
Co-authored-by: julienWebmecanik <79137416+julienWebmecanik@users.noreply.github.com>
Co-authored-by: Renato Santos <renato.cron@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Norman Pracht - Webmecanik <npr@webmecanik.com>
Co-authored-by: Steve Robinson <steve@onerobinsonfamily.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dennisameling <dennisameling@users.noreply.github.com>
Co-authored-by: lukassykora <lukassykora@seznam.cz>
Co-authored-by: Dylan-86 <58813956+Dylan-86@users.noreply.github.com>
Co-authored-by: Yash Khuthia <gunnrryy@gmail.com>
Co-authored-by: Lukas Drahy <lukas@drahy.net>
escopecz added a commit that referenced this pull request Sep 14, 2022
* Add lots of error handling to AjaxController

* Update URLs to docs in most places

* Additional error handling

* Remove double cache clear as it crashes the application

* Localization

* Fix tests

* Add more tests

* Fixing phpstan issues

* Add more tests

* Fixing bug discovered by the tests :tada:

* Add new plugin events (Acquia)

* Added new sortable columns to landing pages table, created at, modified date, createdby

* Set default order to decreasing modified date

* At creation of landing set also modified date

* Added index action test to PageControllerTest

* changed format date

* refactor(pagelist): use long date on tooltip

* fix(tableorder): at default order icon is asc and not desc, i change the default behavior

Changed default icon to asc and added another option "orderDir" for default icon, cant be used
option "dir" because it will be fixed the icon at one order. I also set orderbydir session at init
in PageController, because setListFilters method inside CommonController has ASC as default
behavior. If don't do it after first click on modified date icon the order will be again DESC, i
need that it will be converted to ASC.

* refactor(pageslist): changed init of dir param

* test(pagecontrollertest): added tests for page list, check if columns exist and order is correct

* refactor(pagecontroller): remove if condition and use default order to session

* Introduce options in fm_elfinder config

* Remove defaultDir parameter

* Fix default ordering for SMS

* Guess session base If not exists from deprecated parameter from old abstract class

* Fix default ordering for Assets

* Fix default ordering for Forms

* Add return type

* Fix ordering for Pages

* Keep same direction If switch column ordering

* Revert "Regenerate production assets"

This reverts commit 92f4db556cb3403141177a1238d085977ad8d7ee.

* Add missing argument to remove command

* Revert app.js

* Real revert app.js

* Fix event dispatching in ReloadHelper

* Revert "Introduce options in fm_elfinder config"

This reverts commit f4b64615810933fb7d89468cdff2614d4bb55eba.

* Revert "create test"

This reverts commit 67f97df7df3c8420afc9371a0a6eb49e49771787.

* Add unit test

* Improve boolean import/API support #7513

* Fix PHPStan

* Fix PHPStan

* Fix PHPStan and CS

* Added the ordered columns creation date and modified date

* Moved ID column to the end

* Added created by column

* Changed method for date

* Removed visible-md

* Added test for index action

* CreatedBy is visible only on lg

* Replace toFull with toFullConcat

* refactor(list.html.php): added escape and show full date only on hover

* test(emailcontrollerfunctionaltest): modified a test

now test if email contains saved fields

* feat(emailcontroller): changed default order to date modified

* refactor(emaillist): added default order to datemodified

* feat(email): set added date and modified date in Email construct

* feat(emaillist): changed default order to desc

* Remove non-working installation button from table

* Testing for more bool values

* Porting failing test from API Library

Mautic\Tests\Api\CampaignsTest::testCampaignContactEditEvent

* Fixing the  error "Call to a member function getTimestamp() on null"

* Improving error messages with concrete IDs

* Fixing param/return types for LeadEventLog entity

Because the original bug happened because they were not correct

* CS fixes

* Added space at the end of the file

* add extra checks in the misc job

* Fix scaffolded files that are out of sync

* reverted renamed tests, as it breaks the reporting

* Fix unit tests

* Fix email ordering

* Same date formatting also for campaigns

* Fix change order for default way

* Add unit tests for landing page

* Move getDefaultOrderDirection to CommonController

* Update app/bundles/CoreBundle/Controller/CommonController.php

Co-authored-by: John Linhart <jan@linhart.email>

* Add return type for getDefaultOrderDirection

* Revert back strict return type

* More unit tests

* Refactor unit tests to trait

* Add asset controller test

* Stop unnecessary query (#10876)

* Ensure unnecessary update queries won't happen

UPDATE leads SET last_active = ... WHERE id IS NULL

* Improving a test by replacing mocks with real objects

* Reusable getStandardColumns method (#10898)

* Move getStandardColumns method into the helper so it can be reused in other places.

* Fix the test.
Don't mock the ReportHelper. There is no need to mock it.

* Increase code coverage.

* Type fixes

* CS fix

* Fixing types

Co-authored-by: Anton Vlasenko <vlasenko.anton@gmail.com>

* Add UI update deprecation notice (#10907)

* Merge pull request from GHSA-mj6m-246h-9w56

* only allow access to specific PHP files in their specific location

* same change is needed in .htaccess file scaffolded in mautic/core-lib

* improved wording in comments

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* loosened regex to allow index_dev.php requests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Bump to 4.2.0 stable

* Revert - remove dependency on pre-installed mautic (local.php file) when running tests (#10909)

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>

* add missing whitespace (#10923)

* restrict workflows with impact to mautic/mautic (#10894)

* restrict workflows with impact to mautic/mautic

* no codecov wanted either

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Dynamic content events (#10886)

* add events to segment filters dictionary generation, alter choices event to be more dynamic, make filter type public, alter choices form to allow translation keys without prefix as fallback. update reference to CO bundle

* code style fixes

* add events for DynC. for Cust.O.

* minor changes, maybe will be reverted

* split factory for sergments filter in two methods, so we can use it elsewhere

* cs fixes

* cs cleanup

* cs cleanup

* remove php 7 stuff

* Update app/bundles/LeadBundle/Event/SegmentDictionaryGenerationEvent.php

Co-Authored-By: galvani <galvani78@gmail.com>

* Update app/bundles/LeadBundle/Segment/ContactSegmentFilterCrate.php

* catch and ignore PDO exceptions in cache:clear process in CacheBundle, Move ContactFiltersEvent to DynamicContent bundle and fix references

* fix existing tests to mock new service arguments

* Update app/bundles/LeadBundle/Segment/ContactSegmentFilterFactory.php

Co-Authored-By: galvani <galvani78@gmail.com>

* Update app/bundles/DynamicContentBundle/Helper/DynamicContentHelper.php

Co-Authored-By: galvani <galvani78@gmail.com>

* fix cs errors

* Fixes after a wild cherry-pick of an antient missing commits

* One more round of after cherry-pick conflict cleanup

* Stan and CS fixes

* Covering the new method with tests

Co-authored-by: Jan Kozak <galvani78@gmail.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Allow composer scripts to use php-cs-fixer configuration (#10624)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Added provision to check is editted segment is new. (#10003)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Added support for MySQL full-text search queries (#9335)

* Added support for MySQL full-text search queries

* Composer conflicts resolved

* Conflict resolved

* Moving the new package to the right composer.json

* Fixing typehints

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>

* fix segments list order (#10938)

* fix(segments): fixed session var name from segment to lead.list

* test(listcontrollertest): added a new test for list page

* Feature new click filters (#9852)

* Adds SMS and Email clicked date based segment filters

* Add support for clicking any link in any sms period

* Removed unused code

* Add manual SMS dnc filters

* Process SMS dnc manual unsubscribe filter

* Added missing dependency

* Fixed ChannelClickQueryBuilder for "did not click" filters

* Add new filter tests

* Type fixes

* Fixing PHP notice

PHP Notice - Uninitialized string offset: 0" at FieldFilterTransformer.php line 94

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Joey Keller <jos0405@gmail.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Remove doc blocks TPROD-131 (#10970)

* Adding new CS Fixer rule to remove doc blocks

* Removing docblocks

See https://mautic.atlassian.net/browse/TPROD-131

* Running the CS fixer again to remove the double new lines

* Runing CS Fixer for the 3rd time

* More CS fixes

* Fixing PHPSTAN issues in anonymous classes as those depend on line number which has changed after removing doc blocks

* Segment query optimizatioin  (#10904)

* Optimized DoNotContactFilterQueryBuilder

* Optimized addNewContactsRestrictions query

* DoNotContactFilterQueryBuilder test

* ContactSegmentQueryBuilder test

* Fixed failing tests when merged into development branch

* Removed call-time unnecessary parameters

* CS fixes

* Fixing test

The string must have an underscore in it

* Fixing DoNotContactParts for all options

Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* Import validation (#10884)

* Validate imports to require mapping required fields

* Refactor required field validation for imports to event system

* Skip the CheckPassword validation group when associating a User entity as Owner

* Utilize the ArrayHelper class to reduce boilerplate.

* Ensure tags is an array

* Check all required company fields are mapped if any company fields are mapped during a contact import.

* Fixes after difficult conflict resolution

* Syntax sugar

* Adding functional tests for contct import

* Removing the deprecation notice as it does not make sense

The $flashBag property is private so no controller that inherits from this one can use it. Also, making it protected is a BC break as it breaks one of our plugin which use the same property already.

* Adding COMMAND_NAME const to avoid using strings in the tests

* Adding a validation error message if the file is not provided

* Adding logging to get some trace about why the import was reseted, light refactoring

* Access to an undefined property ImportController::$model

* Adding test with fixes discovered by it

* CS Fixes

* PHPSTAN fixes

* CS Fixes

* We cannot overwrite the getModel method as it's used from paretns with different model names

Co-authored-by: Don Gilbert <don.gilbert@mautic.com>

* docs: add Damzoneuh as a contributor for code (#10983)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Segment delegate decorator event (#10890)

* make sub-querybuilders pass paramater types along and allow to bypass decorator to get crate value

* cs fixes?

* tests for dynamic content

* update reference to CO plugin

* update reference co bundle, fix cs

* fix tests, cover event dispatch with test

* remove use statements from config

* replace int value with constant

* add argument removed on cleanup

* add helper method

* Fixes after wild cherry-pick conflict resolutions of antient commits

* New PHP syntax suggar

* CS fix

* Improving tests

* CS fix

* CS fix

* CS fix

Co-authored-by: Jan Kozak <galvani78@gmail.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fixing BC change after moving some segment filters to behaviors (#11003)

* Merge 4.2 branch back to 4.x (#11015)

* add missing whitespace (#10922)

* Fix segment membership filter build query (#10809)

* Fix segment membership filter build query

* Fix addLogic based on and/or

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix report date filter (#10800)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix email translations lost and overwritten by parent (#10620)

* Fix email translations lost and overwritten by parent

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix for Amazon API transport return-path when sending emails immediately (#10474)

* Fix for Amazon API transport return-path when sending immediately

* Added test for getBatchRecipientCount in AmazonApiTransport

* fix phpstan

* cs fix

* fix_cs

* fix the test

* Revert method signatures in AmazonApiTransport

* fix phpstan

* Add missing amazon message batch test

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix timezone on timeline (#10375)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix API Permission Issue (#10679)

* Fix Api Permissions Issue

* Updated Api permission issue functional test

* Removed unused namespace

* Fix functional test case

* Fixed Functional Test

* Fix failed tests

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix integration special fields order (#10649)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix set import template If use legacy builder (#10897)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* restrict workflows with impact to mautic/mautic (4.2) (#10924)

* restrict workflows with impact to mautic/mautic

* no codecov wanted either

* Validate admin password length during install

* Added test

* Fix primary email company tokens (#10733)

* Fix primary email company tokens

* Fix unit tests

* Add break If we find primary company value

Co-authored-by: mmarton <marton@webdream.hu>

Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Public preview email disabled by default (#10845)

* Public preview email disabled by default

* Add unit tests

* Add resposne content to failed unit tests

* Add flush

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update to use default release notes, remove file (#10934)

* Display just published fields in form field mapping (#10734)

* Display just published fields in form field mapping

* Add unit tests

* Unit tests clean up

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* move changelog to the toplevel instead of a task (#10948)

* fix segments list order (#10968)

* fix(segments): fixed session var name from segment to lead.list

* test(listcontrollertest): added a new test for list page

* Migration fixes (#10931)

* Fixing skip migration check...

... as it should not check for the foreign keys but only if the table exists. The foreign keys must exist when the table exists either by running this migration or installing Mautic from entities

* Fixing migration check...

... as it was checking for wrong index name without the prefix and then the rename query was run on an index that do not exist.

* Actually, the checks were fine but used double table prefix

* CS fix

* Fix prevent save alias of contact field already used in segments (#10224)

* Fix prevent save alias of contact field already used in segments

* fix unit test

* CS fixer

* Fix PHPStan

* Remove SegmentFiltersSubscriber.php from configuration

* Resolve conflicts after segments refactoring

* Fix unit tests

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix public preview email for expired emails (#10971)

* Fix public preview email for expired emails

* Add unit test

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Small grammar fix (#10977)

* Tags on edit should display same message as other entities, for e.g. xyz has been updated! (#10984)

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* Remove clone option from tag manager

Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Export to CSV and Excel creates contact duplicates (#10849)

* Fix duplicate contacts when exporting

* Fix code style

* Fix code style

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Missing include/exclude operator for text field in segment filters (#10985)

* WIP: Fix: No include/exclude operator for text field in segment filters.

* Use method available in the interface

Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed (#11000)

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed

* Added some additional comments

* Cleaned up the tests a bit and added a check for the primary company in the details dropdown

* Prevent phpunit warning due to using a private method with a test prefix

* CS, STAN fixes

* Test fix

Co-authored-by: Alan Hartless <alan@devkardia.com>

* Special characters of the text getting corrupted while posting results to another form (#10872)

* Special characters of the text getting corrupted while posting results to another form

* Fixing PHPStan issue

* Fix for single code decoding

* Added file copyrights details

* fix CS faling check and adding type declation for variables

* fixing CS-Fixer

* fixing CS-Fixer

* Fix failed test

Co-authored-by: John Linhart <admin@escope.cz>

* Segment filter 'Asset Downloads' not showing all assets (#11002)

* MAUT-3795: Segment filter 'Asset Downloads' not showing all assets

* MAUT-3795: Keep existing filter data for asset downloads after ajax search

* MAUT-3795: Fixing submit issue for asset downloads filter

* STAN fixes

* There is no request service in AssetModel

Co-authored-by: Liju P M <liju.pm@acquia.com>

* Bump to 4.2.1

* Fix issue with changelog (#11012)

* Move release notes to separate file (#11014)

* Fixes needed after 4.2 to 4.x merge (CS, STAN, UNIT)

* CS fix

Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Patryk Gruszka <patryk.gruszka@comarch.pl>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Rahul Dhande <68939488+rahuld-dev@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Alfredo Arena <50916237+alfredoct96@users.noreply.github.com>
Co-authored-by: Damzoneuh <44919863+Damzoneuh@users.noreply.github.com>
Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>
Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Alan Hartless <alan@devkardia.com>
Co-authored-by: Liju P M <liju.pm@acquia.com>

* Only upload release asset if not prerelease (#10882)

* Replace Client with KernelBrowser (#11049)

* TPROD-280 - The scale option was removed from the IntegerType (#11034)

* The scale option was removed from the IntegerType

* CSS style tweak

* Improve docs on builder events (#11047)

* Improve docs on builder events

* Fix PHPSTAN

* Fix PHPSTAN errors

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Add company_id search command (#10702)

* Add company_id search command

* Add unit tests

* Improve unit tests

* Add functional test

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* limit scheduled workflows to specific public repo's (#11062)

* Updating the email validation mode to work in Symfony 5.0 (#11054)

The strict mode requires another dependency to be added via Composer so I suggest to change it to the next best thing which is the same email validation as the HTML5 browsers do

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Removing options for TimeType that would cause an exception in Symfony 5.0 (#11040)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* rework the seek / fgets combo to be compatible with both PHP 7 and 8 (#11060)

* rework the seek / fget combo to be compatible with both PHP 7 and 8

* CS fixes

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update LeadImportType.php (#11011)

Fixed Import validation when uploading a CSV file in Mautic 4.x with PHP 8

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* docs: add alinmbb as a contributor for code (#11065)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* split up of lead column structure and field data fixtures (#11059)

CS fixes and improvements

phpstan fixes

Update app/bundles/InstallBundle/Config/config.php

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>

* Segment optimization IN to EXISTS (#10903)

* MAUT-3830 - WIP - change alias for inner query

* MAUT-3830 - WIP - introduce a way to get/set dynamic alias

* MAUT-3830 - WIP - MauticCitrixBundle changes

* MAUT-3830 - WIP - Builder changes

* MAUT-3830 - WIP - LeadListFilteringEvent.php cs-fixes

* MAUT-3830 - WIP

* MAUT-3830 - WIP - fix table alias false error

* MAUT-3830 - fix test case and lead limiter alias

* fix rebase issues, fixcs issues and add alias to foreign value filter

* Removing return types which are BC changes, Stan and CS fixes

* getTableAlias method must return string

* Fixing failing function segment tests by copy-pasting code changes missing in some segment query builders from our fork

* Fix of an issue caused by a rebase

Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>

* Dont show empty fields in the contact and company detail view (#11016)

* Don't show empty fields

* Fix test

* Fix test

* Show fields with a set value

* Improve code

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: John Linhart <admin@escope.cz>

* Updating image used for getting changed files (#11074)

Fixing error for GH Actions:

fatal: unsafe repository ('/github/workspace' is owned by someone else)
To add an exception for this directory, call:

	git config --global --add safe.directory /github/workspace

@see https://github.com/actions/checkout/issues/760

* Remove transChoice() as it is deprecated in Symfony 4.2 (#11046)

* Remove transChoice() as it is deprecated in Symfony 4.2 and will be removed in 5.0

* Replace trans() pluralization with '%count%' key and update ini files

* Update ini file

Co-authored-by: John Linhart <jan@linhart.email>

* Update ini file

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Fix network issues when running composer in ddev (#11084)

* Deprecate AbstractIntegration (#11050)

Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-281 - Test kernel boot fix for Symfony 5 (#11045)

* Test rewritten using enableReboot() method

* Method createAnotherClient() removed as it will not work in Symfony 5

* Unused import removed

Co-authored-by: John Linhart <admin@escope.cz>

* 4.2 to 4.x (#11112)

* add missing whitespace (#10922)

* Fix segment membership filter build query (#10809)

* Fix segment membership filter build query

* Fix addLogic based on and/or

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix report date filter (#10800)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix email translations lost and overwritten by parent (#10620)

* Fix email translations lost and overwritten by parent

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix for Amazon API transport return-path when sending emails immediately (#10474)

* Fix for Amazon API transport return-path when sending immediately

* Added test for getBatchRecipientCount in AmazonApiTransport

* fix phpstan

* cs fix

* fix_cs

* fix the test

* Revert method signatures in AmazonApiTransport

* fix phpstan

* Add missing amazon message batch test

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix timezone on timeline (#10375)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix API Permission Issue (#10679)

* Fix Api Permissions Issue

* Updated Api permission issue functional test

* Removed unused namespace

* Fix functional test case

* Fixed Functional Test

* Fix failed tests

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix integration special fields order (#10649)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix set import template If use legacy builder (#10897)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* restrict workflows with impact to mautic/mautic (4.2) (#10924)

* restrict workflows with impact to mautic/mautic

* no codecov wanted either

* Validate admin password length during install

* Added test

* Fix primary email company tokens (#10733)

* Fix primary email company tokens

* Fix unit tests

* Add break If we find primary company value

Co-authored-by: mmarton <marton@webdream.hu>

Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Public preview email disabled by default (#10845)

* Public preview email disabled by default

* Add unit tests

* Add resposne content to failed unit tests

* Add flush

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update to use default release notes, remove file (#10934)

* Display just published fields in form field mapping (#10734)

* Display just published fields in form field mapping

* Add unit tests

* Unit tests clean up

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* move changelog to the toplevel instead of a task (#10948)

* fix segments list order (#10968)

* fix(segments): fixed session var name from segment to lead.list

* test(listcontrollertest): added a new test for list page

* Migration fixes (#10931)

* Fixing skip migration check...

... as it should not check for the foreign keys but only if the table exists. The foreign keys must exist when the table exists either by running this migration or installing Mautic from entities

* Fixing migration check...

... as it was checking for wrong index name without the prefix and then the rename query was run on an index that do not exist.

* Actually, the checks were fine but used double table prefix

* CS fix

* Fix prevent save alias of contact field already used in segments (#10224)

* Fix prevent save alias of contact field already used in segments

* fix unit test

* CS fixer

* Fix PHPStan

* Remove SegmentFiltersSubscriber.php from configuration

* Resolve conflicts after segments refactoring

* Fix unit tests

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix public preview email for expired emails (#10971)

* Fix public preview email for expired emails

* Add unit test

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Small grammar fix (#10977)

* Tags on edit should display same message as other entities, for e.g. xyz has been updated! (#10984)

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* Remove clone option from tag manager

Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Export to CSV and Excel creates contact duplicates (#10849)

* Fix duplicate contacts when exporting

* Fix code style

* Fix code style

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Missing include/exclude operator for text field in segment filters (#10985)

* WIP: Fix: No include/exclude operator for text field in segment filters.

* Use method available in the interface

Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed (#11000)

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed

* Added some additional comments

* Cleaned up the tests a bit and added a check for the primary company in the details dropdown

* Prevent phpunit warning due to using a private method with a test prefix

* CS, STAN fixes

* Test fix

Co-authored-by: Alan Hartless <alan@devkardia.com>

* Special characters of the text getting corrupted while posting results to another form (#10872)

* Special characters of the text getting corrupted while posting results to another form

* Fixing PHPStan issue

* Fix for single code decoding

* Added file copyrights details

* fix CS faling check and adding type declation for variables

* fixing CS-Fixer

* fixing CS-Fixer

* Fix failed test

Co-authored-by: John Linhart <admin@escope.cz>

* Segment filter 'Asset Downloads' not showing all assets (#11002)

* MAUT-3795: Segment filter 'Asset Downloads' not showing all assets

* MAUT-3795: Keep existing filter data for asset downloads after ajax search

* MAUT-3795: Fixing submit issue for asset downloads filter

* STAN fixes

* There is no request service in AssetModel

Co-authored-by: Liju P M <liju.pm@acquia.com>

* Bump to 4.2.1

* Fix issue with changelog (#11012)

* Move release notes to separate file (#11014)

* Fix flip array for groups in select in segments filter (#9339)

* Fix flip array for sub array in segments filter

* Fix PHPStan

* Update app/bundles/CoreBundle/Helper/ArrayHelper.php

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: Dennis Ameling <dennis@dennisameling.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <jan@linhart.email>

* Add tag creation behavior for leads (#10969)

* Updating image used for getting changed files (#11075)

Fixing error for GH Actions:

fatal: unsafe repository ('/github/workspace' is owned by someone else)
To add an exception for this directory, call:

	git config --global --add safe.directory /github/workspace

@see https://github.com/actions/checkout/issues/760

* Fix network issues when running composer in ddev (#11089)

* use a more strict contraint for doctrine-bundle due to (BC?) breaking changes (#11053)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix headers (including list-unsubscribe header) when using sendgrid-api (#10831)

* Fix headers (including list-unsubscribe header) when using sendgrid-api

* Apply CSFixer for concat_space, single_quote

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Remove multiselect field default value template (#11069)

* Remove multiselect field default value template

* Fix PHPStan

Co-authored-by: John Linhart <admin@escope.cz>

* Fix elFinder localization (#10987)

* Bump async from 3.2.0 to 3.2.3 in /plugins/GrapesJsBuilderBundle (#11076)

Bumps [async](https://github.com/caolan/async) from 3.2.0 to 3.2.3.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/master/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v3.2.0...v3.2.3)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* change link from edit to view once company modification saved (#11098)

Co-authored-by: John Linhart <admin@escope.cz>

* Update CONTRIBUTING.md (#11100)

* Fix and redesign sms characters count (#10838)

* Fix and redesign sms characters count

* Reformat HTML

Co-authored-by: John Linhart <admin@escope.cz>

* Custom html is hidden when GrapesJS is disabled (#11102)

* Fixing custom field with an empty option (#11101)

* Fix dependency issue (#11085)

* Fix dependency issue within functional tests

* Added fixtures test case.

Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* 4.2.2 bump (#11109)

* Bumping to version 4.2.2

* Production assets generated

Needed for Mautic instances installed via Composer

* Fixing PHPSTAN after bad merge

* CS fix

* Removing unused var

Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: Patryk Gruszka <patryk.gruszka@comarch.pl>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Rahul Dhande <68939488+rahuld-dev@users.noreply.github.com>
Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Alfredo Arena <50916237+alfredoct96@users.noreply.github.com>
Co-authored-by: Damzoneuh <44919863+Damzoneuh@users.noreply.github.com>
Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>
Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Alan Hartless <alan@devkardia.com>
Co-authored-by: Liju P M <liju.pm@acquia.com>
Co-authored-by: Dennis Ameling <dennis@dennisameling.com>
Co-authored-by: julienWebmecanik <79137416+julienWebmecanik@users.noreply.github.com>
Co-authored-by: Ofer Shaal <shaalofer@gmail.com>
Co-authored-by: Renato Santos <renato.cron@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Norman Pracht - Webmecanik <npr@webmecanik.com>
Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* Corrected zip key for IPStack (#10722)

* fixed key for IPStack

* Fixed mock http response to align with actual response

* Instances with DB prefix set failed after https://github.com/mautic/mautic/pull/11059 (#11128)

* Auto-update GrapesJS generated JS dist files (#10808)

Co-authored-by: dennisameling <dennisameling@users.noreply.github.com>

* DDEV updates for 4.x (#11134)

* Fix progressive forms (#11125)

* Fix progressive forms

* Add simple unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Clearing risky tests (#11132)

* Fixing # "Risky test" warnings on PHPUNIT execution

* Refactoring useless test into useful

* Setting PHPUNIT config failOnRisky="true" failOnWarning="true"

So we won't silently get these into the code again

* CS, STAN fixes

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Tprod 293 - Replacing deprecated Intl methods (#11036)

* Symfony 5: Removed deprecated Intl::getLocaleBundle(), used Locales instead

* Symfony5: Removed Intl::getRegionBundle(), use Countries instead

* canViewOthers is 4th param, not 3rd

* STAN fix

* Recommended configuration added to System Info + Zend assertions check (#11019)

* Adding new Recommendations tab to System Info

to show warnings if the system is not configured properly during the installation or new recommendations are added later on

* New recommendation to configure zend.assertions = -1

* Show a message when there are no recommendations

* Display requirements as messages in System Info as well

* Testing that the Recommendations tab is present on the System Info page

* CS and STAN fixes

* Add recommended zend.assertions = -1 to ddev

* Revert "Add recommended zend.assertions = -1 to ddev"

This reverts commit cff3654bf7b03248a6ac4ff87cf4ef38cae91c2d.

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>

* Fix: Tags filter Tag IDs are displayed as dropdown options instead of… (#11088)

* Fix: Tags filter Tag IDs are displayed as dropdown options instead of Tag Name

* Add test case

Co-authored-by: John Linhart <admin@escope.cz>

* Fix 500 error on contact API batch endpoint (#10724)

* New test for batch-editing a contact with rubbish ID which is failing

and test that confirms it works for existing ID

* Method `getArray()` must return an array.

It returns ArrayObject in an edge case which breaks later on

Argument 1 passed to Mautic\ApiBundle\Helper\BatchIdToEntityHelper::orderByOriginalKey() must be of the type array, object given

* Improving passing query params to in/notIn methods

* Fixing static analysis issues, removing check that I couldn't find any reason for

* Type fixes

* Adding test that will check for empty JSON object

* Adding back the removed code that checks for empty entities and returns object if so

* limit=0 is ignored. Using rather a where condition that should never find any contact

* Typehint fixes

* Fixing bug discovered by at test

* Segment mysql8 fix (#11126)

* Added ContactSegmentFilter::doesColumnSupportEmptyValue() method

* Respect empty value support in SegmentOperatorQuerySubscriber::onEmptyOperator() and onNotEmptyOperator() methods

* Tests updated

* ContactSegmentFilter::doesColumnSupportEmptyValue() covered by a test

* Removing test that needs another PR to be merged first

* Replacing deprecated at()

* Typo fix

* Type fixes

Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* Phpstan, Rector and JMS Serializer update (#11131)

* Updating jms/serializer-bundle from 3.8 to 4.0 as it's blocking Phpstan update

* Had to run full composer update to get the jms serializer visible to Composer and then I was able to update Phpstan and Rector

* Renaming deprecated config param

* Updating phpstan baseline as the new version have different error messages

* Bump minimist from 1.2.5 to 1.2.6 (#11026)

* Bump minimist from 1.2.5 to 1.2.6

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump minimist from 1.2.5 to 1.2.6 in /app/assets/scaffold/files

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Bump minimist from 1.2.5 to 1.2.6 in /plugins/GrapesJsBuilderBundle (#11027)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs: add deborahsalves as a contributor for userTesting (#11149)

* Replace uses of Symfony\Component\Debug\Debug by Symfony\Component\ErrorHandler\Debug (#11143)

Co-authored-by: John Linhart <admin@escope.cz>

* Fix audit log old value for company (#11110)

* Fix Contact Audit log doesn’t show Old value for Company

* Add test case for edit contact audit log

* Fix flaky test case

* Fix container static issue and add more tests

* CS fix

Co-authored-by: John Linhart <admin@escope.cz>

* Fix crash when getting a field that is missing column if more missing (#10458)

* Fix crash when getting a field that is missing column if more missing

* fix phpstan

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* rebase to 4.x (#10343)

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Reports not equal expression include nullable values (#10043)

* Reports not equal expression include nullable values

* CS fixer

* Add unit tests

* Fix PHPStan reports

* Fix PHPStan 2

* Fix PHPStan

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Asynchronously loaded segment contact list (#11005)

* MAUT-5163: Make contact grid in Segment view page loading async

* MAUT-5163: Resolving conflicts with staging

* MAUT-5163: Adding functional test

* MAUT-5163: Code review changes

* MAUT-5163: Code review changes

* Removing JS that does not belong to this PR

* Test and STAN fixes

* Returning back handleAssetDownloadSearch function.

It was somehow removed during rebase

Co-authored-by: Liju P M <liju.pm@acquia.com>

* Blank theme if no theme exists (#10154)

* Blank theme if no theme exists

* Removing the blank_theme config option

because there was similar config option theme_email_default merged in https://github.com/mautic/mautic/pull/9189

* Type fixes

Co-authored-by: John Linhart <admin@escope.cz>

* Added Curaçao and Isle of Man (#10498)

Co-authored-by: John Linhart <admin@escope.cz>

* Fix JS translations (#9749)

* Fix JS translation string

* Add unit tests

* Fix namespace in unit tests

* Fix namespace in unit tests

* Improve unit tests

* CS fix

* PHPStan fixes

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Remove not necessary unit tests

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: John Linhart <admin@escope.cz>

* Add log processor (#11121)

* Add log processor

* Fix phpstan issues

* Improve log processor

* Add test case

Co-authored-by: John Linhart <admin@escope.cz>

* Custom Objects plugin support (#10883)

* UuidInterface and UuidTrait added

* type hinting added to UuidInterface, loadMetadata function name changed to get called implicitly

* UuidTrait and UuidInterface corrections as per PR change reuqest

* Adding missing return type

* Fix CustomObjectPermissionsTest

* Add choices_as_values to PermissionListType as default option

Co-authored-by: Yash Khuthia <gunnrryy@gmail.com>
Co-authored-by: Lukas Drahy <lukas@drahy.net>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>

* Fix 191 characters for created lead fields (#9460)

* Add 191 characters for created lead fields

* Fix length for new text field to 191 length

* Add unit tests

* Set now dates to new field

Co-authored-by: John Linhart <admin@escope.cz>

* Change version regexp (#10919)

* Change version regexp

* Add unit tests

* Fix PHP Stan

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Move removal of duplicate index from fixture to Doctrine event listener (#11058)

phpstan fixes

Revert "phpstan fixes"

Update app/bundles/CoreBundle/EventListener/DoctrineEventsSubscriber.php

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-233 Enable hybrid Twig templates support in Mautic (`MauticCoreBundle:Default:content.html.twig`) (#10129)

* First work on Twig support in CoreBundle

* First work on Twig for ProfileController

* Add note about PHP vs Twig templates to UPGRADE-4.0.md

* WIP

* MASSIVE progress 🚀

* More progress!

* Migrate all form templates to Twig 🤯

* Fix CS

* Finalize code, fix bugs

* Finalizations & cleanup

* Update README

* Fix PHPSTAN

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-278 - Do not add format option when html5 is set for DateType (#11038)

* Do not add format option when html5 is set for DateType

* Added test

Co-authored-by: John Linhart <admin@escope.cz>

* Campaign forms source - add contact just to active campaign (#11130)

* Campaign forms source - add just to active campaign

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Adding missing table prefix (#11159)

* Adding missing table prefix

* Count the characters only when the input exists. It throws error on sms list page

* Fix tag name cannot be empty and throw validation error (#11120)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-279 - The getExtendedType() method was removed from the FormTypeExtensionInterface (#11037)

* The getExtendedType() method was removed from the FormTypeExtensionInterface

And deprecating unused form extension and event

* STAN fix

* CS fix

* Adding deprecation notices

* GitHub workflows to close mirror repo PRs (#11154)

* Add plugins

* Themes

Co-authored-by: John Linhart <admin@escope.cz>

* Fix translation initialisation issue (#11118)

Co-authored-by: John Linhart <admin@escope.cz>

* Fix: API - GET tag replace Apostrophe with its HTML Entity Number (#11116)

* Fix: API - GET tag replace Apostrophe with its HTML Entity Number

* Fix test cases

* Fix test case

Co-authored-by: John Linhart <admin@escope.cz>

* Bump grunt from 0.4.5 to 1.5.2 (#11113)

* Bump grunt from 0.4.5 to 1.5.2

Bumps [grunt](https://github.com/gruntjs/grunt) from 0.4.5 to 1.5.2.
- [Release notes](https://github.com/gruntjs/grunt/releases)
- [Changelog](https://github.com/gruntjs/grunt/blob/main/CHANGELOG)
- [Commits](https://github.com/gruntjs/grunt/compare/v0.4.5...v1.5.2)

---
updated-dependencies:
- dependency-name: grunt
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updating all dependencies as they were not compatible with the new Grunt version

* Adding option to enable inline JS in LESS

Because of error:
Running "less:files" (less) task
>> app/bundles/CoreBundle/Assets/css/app/less/components/loading-bar.less: [L4:C0] Inline JavaScript is not enabled. Is it set in your options?

I don't see any inline JS in that file though

* Copying new content to the scaffold mirror files

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>

* docs: add automatyzuj as a contributor for userTesting (#11161)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Allow console to leverage the generic autoloader regardless of the location (part 2) (#11039)

* generic autoloader for console and application

Added test to check if a PR wouldn't break the composer flow

CS fixes

temp revert the console change to see the test fail

re-apply change

align autoload files

temp remove dbal / orm caching to pass tests

still an extra dot

Revert "temp remove dbal / orm caching to pass tests"

This reverts commit 460025d54f4dc2c18e1f3292e717ff859db0ed9e.

* Trying to exclude checking CS on deleted files

all_modified_files = Select all changed files
i.e. a combination of all added,
copied, modified, renamed and deleted files (ACMRD)

all_changed_files = Select all changed files
i.e. a combination of all added,
copied, modified and renamed files (ACMR)

* Avoiding the "header_comment" CS rule

* One more CS fix

* Another CS fix test? It passes on my local :shrug:

* I guess we cannot add any comments to these files...

Co-authored-by: John Linhart <admin@escope.cz>

* fix salesforce integration refresh token (#10993)

* fix(abstractintegration): fix admin users notification on integration error

Fixed error that occurs when integration sync fails, it tries to log error but occurs the error
$adminUsers must not be accessed before initialization, variable needs to be defined as Paginator
and not array, it also need to be default null

* fix(salesforceapi): fix missing refresh token on salesforce integration

If access token expires it's never refreshed because INVALID_SESSION_ID is never found. It tries to
find INVALID_SESSION_ID in errorCode field but it is inside 'message' field

* docs(abstractintegration): fixed phpstan error

* refactor(abstractintegration): subsitute str_contains with strpos that is compatible with php7

* test(salesforcetest): modified testSessionExpiredIsRefreshed

Modified test with the correct response of api call

* Fix prerelease logic in CI, use outputs instead of env in several places (#11165)

* Bumping to version 4.3.0-beta

* bin/console mautic:assets:generate for 4.3.0-beta

* Set correct stability channel (#11172)

* Fast rendering segment list (#11071)

* create ajax request, make use of cache for counts on page load, set cache using ajax

* remove code for testing

* consume ajax request and some UI tweaks

* fix invalid input request id

* optimize set cache, rename methods for better readablity

* fix table prefix error

* add test case

* fix failing test case

* fix redundant ajax calls, maintain cache naming convention

* WIP

* move logic to repo

* add test cases

* MAUT-3326 : fix code and add more test cases

* Make elememt call a const, removed success check in ajax response

* Removed cache storage helper from repo arguments, Implemented cache increment and decrement on addLead and removeLead resp.

* Updated test cases, renamed file to functional test case

* Updated few more test cases, removed ListControllerTest.php (renamed)

* Fixed wrong rebuild count error and test cases

* Renamed method. Updated increment segment cache count method to set count = 1 when cache not available

* Fixed negative decrement value

* Added edge case test for decrement when count is 0. Improved functional test case.

* Removed command output assertion.

* Fixed failing test case - added dynamic contact id

* Fixed segment cache count on campaign triggers.

* Add missing service

* Add missing service

* Fix phpstan issues

* Fix failing ListModelTest.php cases

* Fix failing SegmentCountCacheHelperTest.php cases

* Fix failing UpdateLeadListCommandFunctionalTest.php cases

* Fix phpstan issues

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* 4.3.0-rc bump (#11176)

* ensure css and js assets are present and can be generated  on composer based installs (#11164)

* temp scaffold form source file so form js asset can be generated

* updated the scaffolded file based on the media folder

* scaffold extra css files

* add test to test the outcome of scaffolded composer based installs

* fix incorrect scaffolded file

* remove symlinking to prevent wrong scaffolding

* Small typo fix in comment

* Fix typo in media folder

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* bin/console mautic:assets:generate

* Merge pull request from GHSA-jrwm-pr9x-cgq3

* Merge pull request from GHSA-pjpc-87mp-4332

* sanitise user agent before displaying

* Update app/bundles/EmailBundle/Views/SubscribedEvents/Timeline/index.html.php

Co-authored-by: John Linhart <admin@escope.cz>

* removed obsolete use statement

Co-authored-by: John Linhart <admin@escope.cz>

* Bump to 4.3.0

* sanitise admin account data during install

* Bump to 4.3.1

* docs: add poweriguana as a contributor for userTesting (#11223)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* docs: add IrisAmrein as a contributor for userTesting (#11236)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Add 4.3.x series to issue template (#11240)

* 4.3 to 4.x (#11265)

* Modify the form label (#11166)

* Modify the form label

* Update the message in line the styleguide

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update BUG-REPORT.yml (#11195)

* Update guzzlehttp/oauth-subscriber to 0.6.* (#11203)

* Fixing DoctrineEventSubscriber for plugin installations (#11206)

* Fixing DoctrineEventSubscriber for plugin installations

* CS fix

* Test fix

* Checking for existing tables directly so we are not masking other SchemaException exceptions thrown for other reasons

* CS fix

* ensure the app folder is seen as the 4.3.x instead of a specific version (#11213)

* Change the email update message type (#11192)

Co-authored-by: John Linhart <admin@escope.cz>

* Improve grapesjs dev demo (#11210)

* delete unused file

* fix standalone basic demo

Co-authored-by: John Linhart <admin@escope.cz>

* run PHPUnit tests with a random db prefix by default (#11196)

* run phpunit tests with a db prefix

* phpstan fixes

* remove obsolete MAUTIC_TABLE_PREFIX definitions

* move MAUTIC_TABLE_PREFIX definition to a phpunit extension

* fix dataproviders with the MAUTIC_TABLE_PREFIX, as it's not set when phpunit scans the tests

* phpstan fixes

* phpcs

* readd MAUTIC_TABLE_PREFIX constant to installer test

Co-authored-by: John Linhart <admin@escope.cz>

* docs: add benji07 as a contributor for code (#11215)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Fix the issue with saving contact settings (#11187)

Co-authored-by: John Linhart <admin@escope.cz>

* align lock file with change from  #11203 (#11218)

* Integer range point action validation (#11191)

* validation for integer range in point actions

* wip test case, two sets failing

* test case working

* moved constants to a helper class

* php stan fixes

* iterable type added

* iterable type added, mixed

* removed unnecessary function

* added assertions

* removed random int, added declare strict types

* added aoi test and marked as skipped

* Finishing the API test for point delta validation

* cs fixer

* Adding missing trait so the the Point entity implements the interface methods

* The namespace does not have to be set as it's the same with the namespace of the entity

* Adding missing type for the uuid property and setting a value to avoid errors when someone calls getter before setter

* Actually, I will remove the uuid interface as it's part of another PR and does not make sense adding it in this one.

It is confusing adding the new property without the column and migration.

Co-authored-by: John Linhart <admin@escope.cz>

* Tag import fix (#11220)

* MAUT-1666 / Bug fixed: ArrayCollection to array

* MAUT-1666 / Test ArrayCollection as input

* MAUT-1666 / Instance of ArrayCollection

* add test cases

* Refactoring a test to use way less mocks

* CS fix

Co-authored-by: Lukas Sykora <lukas.sykora@acquia.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Changing Rector config to the new format (#11227)

* Changing Rector config to the new format

* CS Fix

* docs: add uzegonemad as a contributor for code (#11244)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Code mode fix (#11221)

* When checking current theme, make sure we don't overwrite mautic_code_mode templates

* Add test for checking mautic_code_mode

Co-authored-by: Donald Gilbert <don@dongilbert.net>

* docs: add pety-dc as a contributor for code (#11246)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* docs: add IrisAmrein as a contributor for userTesting (#11247)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>

* flip array returned by getDateChoices (#11233)

* docs: add poweriguana as a contributor for userTesting (#11223)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* flip array returned by getDateChoices

While originally the method return the values in a [label => value] manner, it's clear from both CampaignEventLeadFieldValueType::buildForm and AjaxController::updateLeadFieldValuesAction that it should be flipped, because both of them adds a custom option in [value => Label] manner

This bug prevents date operator in Contact Field Value type Campaign Condition from working properly

Fixes issue #3180

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Fix normalize value for boolean contact field (#11235)

* Fix normalize value for boolean

* Add more unit tests

* Fix PHP Stan

* Fix unit tests

Co-authored-by: John Linhart <admin@escope.cz>

* Bump guzzlehttp/guzzle from 7.4.2 to 7.4.4 (#11241)

Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.4.2 to 7.4.4.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.4.2...7.4.4)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>

* docs: add poweriguana as a contributor for projectManagement (#11263)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Do not perform delete queries on the sync tables for anonymous contacts (#11262)

* Do not perform delete queries on the sync tables for anonymous contacts

* Test fix, STAN fix

* Do not retry all objects if one of them should be retried. Retry only the right one(s) (#11252)

* Do not retry all objects if one of them should be retried. Retry only the right one(s)

* STAN fix

Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: Joey Keller <jos0405@gmail.com>
Co-authored-by: Benjamin Lévêque <benjamin@leveque.me>
Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: Adrian Schimpf <bill@aivie.ch>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Aarohi Prasad <prasadaarohi.98@gmail.com>
Co-authored-by: Lukas Sykora <lukas.sykora@acquia.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>
Co-authored-by: Donald Gilbert <don@dongilbert.net>
Co-authored-by: peter.osvath <peter.osvath@reachmedia.hu>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add default parameters to public method (#11259)

* Allow default Parameters method use in public

* Add unit tests

Co-authored-by: John Linhart <admin@escope.cz>

* Email address with two dots mark as invalid (#11258)

* Email address with two points as invalid

* Fix unit tests

* Add testAddContactsErrorMessageForEmailWithTwoDots

* Fix unit tests

Co-authored-by: John Linhart <admin@escope.cz>

* 4.3 to 4.x v2 (#11268)

* Modify the form label (#11166)

* Modify the form label

* Update the message in line the styleguide

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update BUG-REPORT.yml (#11195)

* Update guzzlehttp/oauth-subscriber to 0.6.* (#11203)

* Fixing DoctrineEventSubscriber for plugin installations (#11206)

* Fixing DoctrineEventSubscriber for plugin installations

* CS fix

* Test fix

* Checking for existing tables directly so we are not masking other SchemaException exceptions thrown for other reasons

* CS fix

* ensure the app folder is seen as the 4.3.x instead of a specific version (#11213)

* Change the email update message type (#11192)

Co-authored-by: John Linhart <admin@escope.cz>

* Improve grapesjs dev demo (#11210)

* delete unused file

* fix standalone basic demo

Co-authored-by: John Linhart <admin@escope.cz>

* run PHPUnit tests with a random db prefix by default (#11196)

* run phpunit tests with a db prefix

* phpstan fixes

* remove obsolete MAUTIC_TABLE_PREFIX definitions

* move MAUTIC_TABLE_PREFIX definition to a phpunit extension

* fix dataproviders with the MAUTIC_TABLE_PREFIX, as it's not set when phpunit scans the tests

* phpstan fixes

* phpcs

* readd MAUTIC_TABLE_PREFIX constant to installer test

Co-authored-by: John Linhart <admin@escope.cz>

* docs: add benji07 as a contributor for code (#11215)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Fix the issue with saving contact settings (#11187)

Co-authored-by: John Linhart <admin@escope.cz>

* align lock file with change from  #11203 (#11218)

* Integer range point action validation (#11191)

* validation for integer range in point actions

* wip test case, two sets failing

* test case working

* moved constants to a helper class

* php stan fixes

* iterable type added

* iterable type added, mixed

* removed unnecessary function

* added assertions

* removed random int, added declare strict types

* added aoi test and marked as skipped

* Finishing the API test for point delta validation

* cs fixer

* Adding missing trait so the the Point entity implements the interface methods

* The namespace does not have to be set as it's the same with the namespace of the entity

* Adding missing type for the uuid property and setting a value to avoid errors when someone calls getter before setter

* Actually, I will remove the uuid interface as it's part of another PR and does not make sense adding it in this one.

It is confusing adding the new property without the column and migration.

Co-authored-by: John Linhart <admin@escope.cz>

* Tag import fix (#11220)

* MAUT-1666 / Bug fixed: ArrayCollection to array

* MAUT-1666 / Test ArrayCollection as input

* MAUT-1666 / Instance of ArrayCollection

* add test cases

* Refactoring a test to use way less mocks

* CS fix

Co-authored-by: Lukas Sykora <lukas.sykora@acquia.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Changing Rector config to the new format (#11227)

* Changing Rector config to the new format

* CS Fix

* docs: add uzegonemad as a contributor for code (#11244)

* docs: update README.md [skip ci]

…
escopecz added a commit that referenced this pull request Oct 4, 2022
* Revert "create test"

This reverts commit 67f97df7df3c8420afc9371a0a6eb49e49771787.

* Add unit test

* Improve boolean import/API support #7513

* Fix PHPStan

* Fix PHPStan

* Fix PHPStan and CS

* Added the ordered columns creation date and modified date

* Moved ID column to the end

* Added created by column

* Changed method for date

* Removed visible-md

* Added test for index action

* CreatedBy is visible only on lg

* Replace toFull with toFullConcat

* refactor(list.html.php): added escape and show full date only on hover

* test(emailcontrollerfunctionaltest): modified a test

now test if email contains saved fields

* feat(emailcontroller): changed default order to date modified

* refactor(emaillist): added default order to datemodified

* feat(email): set added date and modified date in Email construct

* feat(emaillist): changed default order to desc

* Remove non-working installation button from table

* Testing for more bool values

* Porting failing test from API Library

Mautic\Tests\Api\CampaignsTest::testCampaignContactEditEvent

* Fixing the  error "Call to a member function getTimestamp() on null"

* Improving error messages with concrete IDs

* Fixing param/return types for LeadEventLog entity

Because the original bug happened because they were not correct

* CS fixes

* Added space at the end of the file

* add extra checks in the misc job

* Fix scaffolded files that are out of sync

* reverted renamed tests, as it breaks the reporting

* Fix unit tests

* Fix email ordering

* Same date formatting also for campaigns

* Fix change order for default way

* Add unit tests for landing page

* Move getDefaultOrderDirection to CommonController

* Update app/bundles/CoreBundle/Controller/CommonController.php

Co-authored-by: John Linhart <jan@linhart.email>

* Add return type for getDefaultOrderDirection

* Revert back strict return type

* More unit tests

* Refactor unit tests to trait

* Add asset controller test

* Stop unnecessary query (#10876)

* Ensure unnecessary update queries won't happen

UPDATE leads SET last_active = ... WHERE id IS NULL

* Improving a test by replacing mocks with real objects

* Reusable getStandardColumns method (#10898)

* Move getStandardColumns method into the helper so it can be reused in other places.

* Fix the test.
Don't mock the ReportHelper. There is no need to mock it.

* Increase code coverage.

* Type fixes

* CS fix

* Fixing types

Co-authored-by: Anton Vlasenko <vlasenko.anton@gmail.com>

* Add UI update deprecation notice (#10907)

* Merge pull request from GHSA-mj6m-246h-9w56

* only allow access to specific PHP files in their specific location

* same change is needed in .htaccess file scaffolded in mautic/core-lib

* improved wording in comments

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* loosened regex to allow index_dev.php requests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Bump to 4.2.0 stable

* Revert - remove dependency on pre-installed mautic (local.php file) when running tests (#10909)

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>

* add missing whitespace (#10923)

* restrict workflows with impact to mautic/mautic (#10894)

* restrict workflows with impact to mautic/mautic

* no codecov wanted either

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Dynamic content events (#10886)

* add events to segment filters dictionary generation, alter choices event to be more dynamic, make filter type public, alter choices form to allow translation keys without prefix as fallback. update reference to CO bundle

* code style fixes

* add events for DynC. for Cust.O.

* minor changes, maybe will be reverted

* split factory for sergments filter in two methods, so we can use it elsewhere

* cs fixes

* cs cleanup

* cs cleanup

* remove php 7 stuff

* Update app/bundles/LeadBundle/Event/SegmentDictionaryGenerationEvent.php

Co-Authored-By: galvani <galvani78@gmail.com>

* Update app/bundles/LeadBundle/Segment/ContactSegmentFilterCrate.php

* catch and ignore PDO exceptions in cache:clear process in CacheBundle, Move ContactFiltersEvent to DynamicContent bundle and fix references

* fix existing tests to mock new service arguments

* Update app/bundles/LeadBundle/Segment/ContactSegmentFilterFactory.php

Co-Authored-By: galvani <galvani78@gmail.com>

* Update app/bundles/DynamicContentBundle/Helper/DynamicContentHelper.php

Co-Authored-By: galvani <galvani78@gmail.com>

* fix cs errors

* Fixes after a wild cherry-pick of an antient missing commits

* One more round of after cherry-pick conflict cleanup

* Stan and CS fixes

* Covering the new method with tests

Co-authored-by: Jan Kozak <galvani78@gmail.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Allow composer scripts to use php-cs-fixer configuration (#10624)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Added provision to check is editted segment is new. (#10003)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Added support for MySQL full-text search queries (#9335)

* Added support for MySQL full-text search queries

* Composer conflicts resolved

* Conflict resolved

* Moving the new package to the right composer.json

* Fixing typehints

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>

* fix segments list order (#10938)

* fix(segments): fixed session var name from segment to lead.list

* test(listcontrollertest): added a new test for list page

* Feature new click filters (#9852)

* Adds SMS and Email clicked date based segment filters

* Add support for clicking any link in any sms period

* Removed unused code

* Add manual SMS dnc filters

* Process SMS dnc manual unsubscribe filter

* Added missing dependency

* Fixed ChannelClickQueryBuilder for "did not click" filters

* Add new filter tests

* Type fixes

* Fixing PHP notice

PHP Notice - Uninitialized string offset: 0" at FieldFilterTransformer.php line 94

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Joey Keller <jos0405@gmail.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Remove doc blocks TPROD-131 (#10970)

* Adding new CS Fixer rule to remove doc blocks

* Removing docblocks

See https://mautic.atlassian.net/browse/TPROD-131

* Running the CS fixer again to remove the double new lines

* Runing CS Fixer for the 3rd time

* More CS fixes

* Fixing PHPSTAN issues in anonymous classes as those depend on line number which has changed after removing doc blocks

* Segment query optimizatioin  (#10904)

* Optimized DoNotContactFilterQueryBuilder

* Optimized addNewContactsRestrictions query

* DoNotContactFilterQueryBuilder test

* ContactSegmentQueryBuilder test

* Fixed failing tests when merged into development branch

* Removed call-time unnecessary parameters

* CS fixes

* Fixing test

The string must have an underscore in it

* Fixing DoNotContactParts for all options

Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* Import validation (#10884)

* Validate imports to require mapping required fields

* Refactor required field validation for imports to event system

* Skip the CheckPassword validation group when associating a User entity as Owner

* Utilize the ArrayHelper class to reduce boilerplate.

* Ensure tags is an array

* Check all required company fields are mapped if any company fields are mapped during a contact import.

* Fixes after difficult conflict resolution

* Syntax sugar

* Adding functional tests for contct import

* Removing the deprecation notice as it does not make sense

The $flashBag property is private so no controller that inherits from this one can use it. Also, making it protected is a BC break as it breaks one of our plugin which use the same property already.

* Adding COMMAND_NAME const to avoid using strings in the tests

* Adding a validation error message if the file is not provided

* Adding logging to get some trace about why the import was reseted, light refactoring

* Access to an undefined property ImportController::$model

* Adding test with fixes discovered by it

* CS Fixes

* PHPSTAN fixes

* CS Fixes

* We cannot overwrite the getModel method as it's used from paretns with different model names

Co-authored-by: Don Gilbert <don.gilbert@mautic.com>

* docs: add Damzoneuh as a contributor for code (#10983)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Segment delegate decorator event (#10890)

* make sub-querybuilders pass paramater types along and allow to bypass decorator to get crate value

* cs fixes?

* tests for dynamic content

* update reference to CO plugin

* update reference co bundle, fix cs

* fix tests, cover event dispatch with test

* remove use statements from config

* replace int value with constant

* add argument removed on cleanup

* add helper method

* Fixes after wild cherry-pick conflict resolutions of antient commits

* New PHP syntax suggar

* CS fix

* Improving tests

* CS fix

* CS fix

* CS fix

Co-authored-by: Jan Kozak <galvani78@gmail.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fixing BC change after moving some segment filters to behaviors (#11003)

* Merge 4.2 branch back to 4.x (#11015)

* add missing whitespace (#10922)

* Fix segment membership filter build query (#10809)

* Fix segment membership filter build query

* Fix addLogic based on and/or

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix report date filter (#10800)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix email translations lost and overwritten by parent (#10620)

* Fix email translations lost and overwritten by parent

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix for Amazon API transport return-path when sending emails immediately (#10474)

* Fix for Amazon API transport return-path when sending immediately

* Added test for getBatchRecipientCount in AmazonApiTransport

* fix phpstan

* cs fix

* fix_cs

* fix the test

* Revert method signatures in AmazonApiTransport

* fix phpstan

* Add missing amazon message batch test

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix timezone on timeline (#10375)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix API Permission Issue (#10679)

* Fix Api Permissions Issue

* Updated Api permission issue functional test

* Removed unused namespace

* Fix functional test case

* Fixed Functional Test

* Fix failed tests

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix integration special fields order (#10649)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix set import template If use legacy builder (#10897)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* restrict workflows with impact to mautic/mautic (4.2) (#10924)

* restrict workflows with impact to mautic/mautic

* no codecov wanted either

* Validate admin password length during install

* Added test

* Fix primary email company tokens (#10733)

* Fix primary email company tokens

* Fix unit tests

* Add break If we find primary company value

Co-authored-by: mmarton <marton@webdream.hu>

Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Public preview email disabled by default (#10845)

* Public preview email disabled by default

* Add unit tests

* Add resposne content to failed unit tests

* Add flush

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update to use default release notes, remove file (#10934)

* Display just published fields in form field mapping (#10734)

* Display just published fields in form field mapping

* Add unit tests

* Unit tests clean up

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* move changelog to the toplevel instead of a task (#10948)

* fix segments list order (#10968)

* fix(segments): fixed session var name from segment to lead.list

* test(listcontrollertest): added a new test for list page

* Migration fixes (#10931)

* Fixing skip migration check...

... as it should not check for the foreign keys but only if the table exists. The foreign keys must exist when the table exists either by running this migration or installing Mautic from entities

* Fixing migration check...

... as it was checking for wrong index name without the prefix and then the rename query was run on an index that do not exist.

* Actually, the checks were fine but used double table prefix

* CS fix

* Fix prevent save alias of contact field already used in segments (#10224)

* Fix prevent save alias of contact field already used in segments

* fix unit test

* CS fixer

* Fix PHPStan

* Remove SegmentFiltersSubscriber.php from configuration

* Resolve conflicts after segments refactoring

* Fix unit tests

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix public preview email for expired emails (#10971)

* Fix public preview email for expired emails

* Add unit test

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Small grammar fix (#10977)

* Tags on edit should display same message as other entities, for e.g. xyz has been updated! (#10984)

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* Remove clone option from tag manager

Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Export to CSV and Excel creates contact duplicates (#10849)

* Fix duplicate contacts when exporting

* Fix code style

* Fix code style

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Missing include/exclude operator for text field in segment filters (#10985)

* WIP: Fix: No include/exclude operator for text field in segment filters.

* Use method available in the interface

Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed (#11000)

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed

* Added some additional comments

* Cleaned up the tests a bit and added a check for the primary company in the details dropdown

* Prevent phpunit warning due to using a private method with a test prefix

* CS, STAN fixes

* Test fix

Co-authored-by: Alan Hartless <alan@devkardia.com>

* Special characters of the text getting corrupted while posting results to another form (#10872)

* Special characters of the text getting corrupted while posting results to another form

* Fixing PHPStan issue

* Fix for single code decoding

* Added file copyrights details

* fix CS faling check and adding type declation for variables

* fixing CS-Fixer

* fixing CS-Fixer

* Fix failed test

Co-authored-by: John Linhart <admin@escope.cz>

* Segment filter 'Asset Downloads' not showing all assets (#11002)

* MAUT-3795: Segment filter 'Asset Downloads' not showing all assets

* MAUT-3795: Keep existing filter data for asset downloads after ajax search

* MAUT-3795: Fixing submit issue for asset downloads filter

* STAN fixes

* There is no request service in AssetModel

Co-authored-by: Liju P M <liju.pm@acquia.com>

* Bump to 4.2.1

* Fix issue with changelog (#11012)

* Move release notes to separate file (#11014)

* Fixes needed after 4.2 to 4.x merge (CS, STAN, UNIT)

* CS fix

Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Patryk Gruszka <patryk.gruszka@comarch.pl>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Rahul Dhande <68939488+rahuld-dev@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Alfredo Arena <50916237+alfredoct96@users.noreply.github.com>
Co-authored-by: Damzoneuh <44919863+Damzoneuh@users.noreply.github.com>
Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>
Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Alan Hartless <alan@devkardia.com>
Co-authored-by: Liju P M <liju.pm@acquia.com>

* Only upload release asset if not prerelease (#10882)

* Replace Client with KernelBrowser (#11049)

* TPROD-280 - The scale option was removed from the IntegerType (#11034)

* The scale option was removed from the IntegerType

* CSS style tweak

* Improve docs on builder events (#11047)

* Improve docs on builder events

* Fix PHPSTAN

* Fix PHPSTAN errors

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Add company_id search command (#10702)

* Add company_id search command

* Add unit tests

* Improve unit tests

* Add functional test

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* limit scheduled workflows to specific public repo's (#11062)

* Updating the email validation mode to work in Symfony 5.0 (#11054)

The strict mode requires another dependency to be added via Composer so I suggest to change it to the next best thing which is the same email validation as the HTML5 browsers do

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Removing options for TimeType that would cause an exception in Symfony 5.0 (#11040)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* rework the seek / fgets combo to be compatible with both PHP 7 and 8 (#11060)

* rework the seek / fget combo to be compatible with both PHP 7 and 8

* CS fixes

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update LeadImportType.php (#11011)

Fixed Import validation when uploading a CSV file in Mautic 4.x with PHP 8

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* docs: add alinmbb as a contributor for code (#11065)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* split up of lead column structure and field data fixtures (#11059)

CS fixes and improvements

phpstan fixes

Update app/bundles/InstallBundle/Config/config.php

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>

* Segment optimization IN to EXISTS (#10903)

* MAUT-3830 - WIP - change alias for inner query

* MAUT-3830 - WIP - introduce a way to get/set dynamic alias

* MAUT-3830 - WIP - MauticCitrixBundle changes

* MAUT-3830 - WIP - Builder changes

* MAUT-3830 - WIP - LeadListFilteringEvent.php cs-fixes

* MAUT-3830 - WIP

* MAUT-3830 - WIP - fix table alias false error

* MAUT-3830 - fix test case and lead limiter alias

* fix rebase issues, fixcs issues and add alias to foreign value filter

* Removing return types which are BC changes, Stan and CS fixes

* getTableAlias method must return string

* Fixing failing function segment tests by copy-pasting code changes missing in some segment query builders from our fork

* Fix of an issue caused by a rebase

Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>

* Dont show empty fields in the contact and company detail view (#11016)

* Don't show empty fields

* Fix test

* Fix test

* Show fields with a set value

* Improve code

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: John Linhart <admin@escope.cz>

* Updating image used for getting changed files (#11074)

Fixing error for GH Actions:

fatal: unsafe repository ('/github/workspace' is owned by someone else)
To add an exception for this directory, call:

	git config --global --add safe.directory /github/workspace

@see https://github.com/actions/checkout/issues/760

* Remove transChoice() as it is deprecated in Symfony 4.2 (#11046)

* Remove transChoice() as it is deprecated in Symfony 4.2 and will be removed in 5.0

* Replace trans() pluralization with '%count%' key and update ini files

* Update ini file

Co-authored-by: John Linhart <jan@linhart.email>

* Update ini file

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Fix network issues when running composer in ddev (#11084)

* Deprecate AbstractIntegration (#11050)

Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-281 - Test kernel boot fix for Symfony 5 (#11045)

* Test rewritten using enableReboot() method

* Method createAnotherClient() removed as it will not work in Symfony 5

* Unused import removed

Co-authored-by: John Linhart <admin@escope.cz>

* 4.2 to 4.x (#11112)

* add missing whitespace (#10922)

* Fix segment membership filter build query (#10809)

* Fix segment membership filter build query

* Fix addLogic based on and/or

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix report date filter (#10800)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix email translations lost and overwritten by parent (#10620)

* Fix email translations lost and overwritten by parent

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix for Amazon API transport return-path when sending emails immediately (#10474)

* Fix for Amazon API transport return-path when sending immediately

* Added test for getBatchRecipientCount in AmazonApiTransport

* fix phpstan

* cs fix

* fix_cs

* fix the test

* Revert method signatures in AmazonApiTransport

* fix phpstan

* Add missing amazon message batch test

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix timezone on timeline (#10375)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix API Permission Issue (#10679)

* Fix Api Permissions Issue

* Updated Api permission issue functional test

* Removed unused namespace

* Fix functional test case

* Fixed Functional Test

* Fix failed tests

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix integration special fields order (#10649)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix set import template If use legacy builder (#10897)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* restrict workflows with impact to mautic/mautic (4.2) (#10924)

* restrict workflows with impact to mautic/mautic

* no codecov wanted either

* Validate admin password length during install

* Added test

* Fix primary email company tokens (#10733)

* Fix primary email company tokens

* Fix unit tests

* Add break If we find primary company value

Co-authored-by: mmarton <marton@webdream.hu>

Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Public preview email disabled by default (#10845)

* Public preview email disabled by default

* Add unit tests

* Add resposne content to failed unit tests

* Add flush

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update to use default release notes, remove file (#10934)

* Display just published fields in form field mapping (#10734)

* Display just published fields in form field mapping

* Add unit tests

* Unit tests clean up

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* move changelog to the toplevel instead of a task (#10948)

* fix segments list order (#10968)

* fix(segments): fixed session var name from segment to lead.list

* test(listcontrollertest): added a new test for list page

* Migration fixes (#10931)

* Fixing skip migration check...

... as it should not check for the foreign keys but only if the table exists. The foreign keys must exist when the table exists either by running this migration or installing Mautic from entities

* Fixing migration check...

... as it was checking for wrong index name without the prefix and then the rename query was run on an index that do not exist.

* Actually, the checks were fine but used double table prefix

* CS fix

* Fix prevent save alias of contact field already used in segments (#10224)

* Fix prevent save alias of contact field already used in segments

* fix unit test

* CS fixer

* Fix PHPStan

* Remove SegmentFiltersSubscriber.php from configuration

* Resolve conflicts after segments refactoring

* Fix unit tests

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix public preview email for expired emails (#10971)

* Fix public preview email for expired emails

* Add unit test

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Small grammar fix (#10977)

* Tags on edit should display same message as other entities, for e.g. xyz has been updated! (#10984)

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* MAUT-7170: Tags on edit should display same message as other entities, for e.g. xyz has been updated!: M4

* Remove clone option from tag manager

Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Export to CSV and Excel creates contact duplicates (#10849)

* Fix duplicate contacts when exporting

* Fix code style

* Fix code style

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Missing include/exclude operator for text field in segment filters (#10985)

* WIP: Fix: No include/exclude operator for text field in segment filters.

* Use method available in the interface

Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed (#11000)

* Fixes updating the contact's primary company when all companies are removed or one of many companies are removed

* Added some additional comments

* Cleaned up the tests a bit and added a check for the primary company in the details dropdown

* Prevent phpunit warning due to using a private method with a test prefix

* CS, STAN fixes

* Test fix

Co-authored-by: Alan Hartless <alan@devkardia.com>

* Special characters of the text getting corrupted while posting results to another form (#10872)

* Special characters of the text getting corrupted while posting results to another form

* Fixing PHPStan issue

* Fix for single code decoding

* Added file copyrights details

* fix CS faling check and adding type declation for variables

* fixing CS-Fixer

* fixing CS-Fixer

* Fix failed test

Co-authored-by: John Linhart <admin@escope.cz>

* Segment filter 'Asset Downloads' not showing all assets (#11002)

* MAUT-3795: Segment filter 'Asset Downloads' not showing all assets

* MAUT-3795: Keep existing filter data for asset downloads after ajax search

* MAUT-3795: Fixing submit issue for asset downloads filter

* STAN fixes

* There is no request service in AssetModel

Co-authored-by: Liju P M <liju.pm@acquia.com>

* Bump to 4.2.1

* Fix issue with changelog (#11012)

* Move release notes to separate file (#11014)

* Fix flip array for groups in select in segments filter (#9339)

* Fix flip array for sub array in segments filter

* Fix PHPStan

* Update app/bundles/CoreBundle/Helper/ArrayHelper.php

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: Dennis Ameling <dennis@dennisameling.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <jan@linhart.email>

* Add tag creation behavior for leads (#10969)

* Updating image used for getting changed files (#11075)

Fixing error for GH Actions:

fatal: unsafe repository ('/github/workspace' is owned by someone else)
To add an exception for this directory, call:

	git config --global --add safe.directory /github/workspace

@see https://github.com/actions/checkout/issues/760

* Fix network issues when running composer in ddev (#11089)

* use a more strict contraint for doctrine-bundle due to (BC?) breaking changes (#11053)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Fix headers (including list-unsubscribe header) when using sendgrid-api (#10831)

* Fix headers (including list-unsubscribe header) when using sendgrid-api

* Apply CSFixer for concat_space, single_quote

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Remove multiselect field default value template (#11069)

* Remove multiselect field default value template

* Fix PHPStan

Co-authored-by: John Linhart <admin@escope.cz>

* Fix elFinder localization (#10987)

* Bump async from 3.2.0 to 3.2.3 in /plugins/GrapesJsBuilderBundle (#11076)

Bumps [async](https://github.com/caolan/async) from 3.2.0 to 3.2.3.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/master/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v3.2.0...v3.2.3)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* change link from edit to view once company modification saved (#11098)

Co-authored-by: John Linhart <admin@escope.cz>

* Update CONTRIBUTING.md (#11100)

* Fix and redesign sms characters count (#10838)

* Fix and redesign sms characters count

* Reformat HTML

Co-authored-by: John Linhart <admin@escope.cz>

* Custom html is hidden when GrapesJS is disabled (#11102)

* Fixing custom field with an empty option (#11101)

* Fix dependency issue (#11085)

* Fix dependency issue within functional tests

* Added fixtures test case.

Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* 4.2.2 bump (#11109)

* Bumping to version 4.2.2

* Production assets generated

Needed for Mautic instances installed via Composer

* Fixing PHPSTAN after bad merge

* CS fix

* Removing unused var

Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: Patryk Gruszka <patryk.gruszka@comarch.pl>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Rahul Dhande <68939488+rahuld-dev@users.noreply.github.com>
Co-authored-by: mmarton <marton@webdream.hu>
Co-authored-by: Alfredo Arena <50916237+alfredoct96@users.noreply.github.com>
Co-authored-by: Damzoneuh <44919863+Damzoneuh@users.noreply.github.com>
Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>
Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Alan Hartless <alan@devkardia.com>
Co-authored-by: Liju P M <liju.pm@acquia.com>
Co-authored-by: Dennis Ameling <dennis@dennisameling.com>
Co-authored-by: julienWebmecanik <79137416+julienWebmecanik@users.noreply.github.com>
Co-authored-by: Ofer Shaal <shaalofer@gmail.com>
Co-authored-by: Renato Santos <renato.cron@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Norman Pracht - Webmecanik <npr@webmecanik.com>
Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* Corrected zip key for IPStack (#10722)

* fixed key for IPStack

* Fixed mock http response to align with actual response

* Instances with DB prefix set failed after https://github.com/mautic/mautic/pull/11059 (#11128)

* Auto-update GrapesJS generated JS dist files (#10808)

Co-authored-by: dennisameling <dennisameling@users.noreply.github.com>

* DDEV updates for 4.x (#11134)

* Fix progressive forms (#11125)

* Fix progressive forms

* Add simple unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Clearing risky tests (#11132)

* Fixing # "Risky test" warnings on PHPUNIT execution

* Refactoring useless test into useful

* Setting PHPUNIT config failOnRisky="true" failOnWarning="true"

So we won't silently get these into the code again

* CS, STAN fixes

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Tprod 293 - Replacing deprecated Intl methods (#11036)

* Symfony 5: Removed deprecated Intl::getLocaleBundle(), used Locales instead

* Symfony5: Removed Intl::getRegionBundle(), use Countries instead

* canViewOthers is 4th param, not 3rd

* STAN fix

* Recommended configuration added to System Info + Zend assertions check (#11019)

* Adding new Recommendations tab to System Info

to show warnings if the system is not configured properly during the installation or new recommendations are added later on

* New recommendation to configure zend.assertions = -1

* Show a message when there are no recommendations

* Display requirements as messages in System Info as well

* Testing that the Recommendations tab is present on the System Info page

* CS and STAN fixes

* Add recommended zend.assertions = -1 to ddev

* Revert "Add recommended zend.assertions = -1 to ddev"

This reverts commit cff3654bf7b03248a6ac4ff87cf4ef38cae91c2d.

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>

* Fix: Tags filter Tag IDs are displayed as dropdown options instead of… (#11088)

* Fix: Tags filter Tag IDs are displayed as dropdown options instead of Tag Name

* Add test case

Co-authored-by: John Linhart <admin@escope.cz>

* Fix 500 error on contact API batch endpoint (#10724)

* New test for batch-editing a contact with rubbish ID which is failing

and test that confirms it works for existing ID

* Method `getArray()` must return an array.

It returns ArrayObject in an edge case which breaks later on

Argument 1 passed to Mautic\ApiBundle\Helper\BatchIdToEntityHelper::orderByOriginalKey() must be of the type array, object given

* Improving passing query params to in/notIn methods

* Fixing static analysis issues, removing check that I couldn't find any reason for

* Type fixes

* Adding test that will check for empty JSON object

* Adding back the removed code that checks for empty entities and returns object if so

* limit=0 is ignored. Using rather a where condition that should never find any contact

* Typehint fixes

* Fixing bug discovered by at test

* Segment mysql8 fix (#11126)

* Added ContactSegmentFilter::doesColumnSupportEmptyValue() method

* Respect empty value support in SegmentOperatorQuerySubscriber::onEmptyOperator() and onNotEmptyOperator() methods

* Tests updated

* ContactSegmentFilter::doesColumnSupportEmptyValue() covered by a test

* Removing test that needs another PR to be merged first

* Replacing deprecated at()

* Typo fix

* Type fixes

Co-authored-by: fedys <miroslav.fedeles@gmail.com>

* Phpstan, Rector and JMS Serializer update (#11131)

* Updating jms/serializer-bundle from 3.8 to 4.0 as it's blocking Phpstan update

* Had to run full composer update to get the jms serializer visible to Composer and then I was able to update Phpstan and Rector

* Renaming deprecated config param

* Updating phpstan baseline as the new version have different error messages

* Bump minimist from 1.2.5 to 1.2.6 (#11026)

* Bump minimist from 1.2.5 to 1.2.6

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump minimist from 1.2.5 to 1.2.6 in /app/assets/scaffold/files

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Bump minimist from 1.2.5 to 1.2.6 in /plugins/GrapesJsBuilderBundle (#11027)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs: add deborahsalves as a contributor for userTesting (#11149)

* Replace uses of Symfony\Component\Debug\Debug by Symfony\Component\ErrorHandler\Debug (#11143)

Co-authored-by: John Linhart <admin@escope.cz>

* Fix audit log old value for company (#11110)

* Fix Contact Audit log doesn’t show Old value for Company

* Add test case for edit contact audit log

* Fix flaky test case

* Fix container static issue and add more tests

* CS fix

Co-authored-by: John Linhart <admin@escope.cz>

* Fix crash when getting a field that is missing column if more missing (#10458)

* Fix crash when getting a field that is missing column if more missing

* fix phpstan

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* rebase to 4.x (#10343)

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Reports not equal expression include nullable values (#10043)

* Reports not equal expression include nullable values

* CS fixer

* Add unit tests

* Fix PHPStan reports

* Fix PHPStan 2

* Fix PHPStan

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Asynchronously loaded segment contact list (#11005)

* MAUT-5163: Make contact grid in Segment view page loading async

* MAUT-5163: Resolving conflicts with staging

* MAUT-5163: Adding functional test

* MAUT-5163: Code review changes

* MAUT-5163: Code review changes

* Removing JS that does not belong to this PR

* Test and STAN fixes

* Returning back handleAssetDownloadSearch function.

It was somehow removed during rebase

Co-authored-by: Liju P M <liju.pm@acquia.com>

* Blank theme if no theme exists (#10154)

* Blank theme if no theme exists

* Removing the blank_theme config option

because there was similar config option theme_email_default merged in https://github.com/mautic/mautic/pull/9189

* Type fixes

Co-authored-by: John Linhart <admin@escope.cz>

* Added Curaçao and Isle of Man (#10498)

Co-authored-by: John Linhart <admin@escope.cz>

* Fix JS translations (#9749)

* Fix JS translation string

* Add unit tests

* Fix namespace in unit tests

* Fix namespace in unit tests

* Improve unit tests

* CS fix

* PHPStan fixes

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Update app/bundles/CoreBundle/Test/Templating/Helper/TranslatorHelperTest.php

Co-authored-by: John Linhart <jan@linhart.email>

* Remove not necessary unit tests

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: John Linhart <admin@escope.cz>

* Add log processor (#11121)

* Add log processor

* Fix phpstan issues

* Improve log processor

* Add test case

Co-authored-by: John Linhart <admin@escope.cz>

* Custom Objects plugin support (#10883)

* UuidInterface and UuidTrait added

* type hinting added to UuidInterface, loadMetadata function name changed to get called implicitly

* UuidTrait and UuidInterface corrections as per PR change reuqest

* Adding missing return type

* Fix CustomObjectPermissionsTest

* Add choices_as_values to PermissionListType as default option

Co-authored-by: Yash Khuthia <gunnrryy@gmail.com>
Co-authored-by: Lukas Drahy <lukas@drahy.net>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>

* Fix 191 characters for created lead fields (#9460)

* Add 191 characters for created lead fields

* Fix length for new text field to 191 length

* Add unit tests

* Set now dates to new field

Co-authored-by: John Linhart <admin@escope.cz>

* Change version regexp (#10919)

* Change version regexp

* Add unit tests

* Fix PHP Stan

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Move removal of duplicate index from fixture to Doctrine event listener (#11058)

phpstan fixes

Revert "phpstan fixes"

Update app/bundles/CoreBundle/EventListener/DoctrineEventsSubscriber.php

Co-authored-by: John Linhart <jan@linhart.email>

Co-authored-by: John Linhart <jan@linhart.email>
Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-233 Enable hybrid Twig templates support in Mautic (`MauticCoreBundle:Default:content.html.twig`) (#10129)

* First work on Twig support in CoreBundle

* First work on Twig for ProfileController

* Add note about PHP vs Twig templates to UPGRADE-4.0.md

* WIP

* MASSIVE progress 🚀

* More progress!

* Migrate all form templates to Twig 🤯

* Fix CS

* Finalize code, fix bugs

* Finalizations & cleanup

* Update README

* Fix PHPSTAN

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-278 - Do not add format option when html5 is set for DateType (#11038)

* Do not add format option when html5 is set for DateType

* Added test

Co-authored-by: John Linhart <admin@escope.cz>

* Campaign forms source - add contact just to active campaign (#11130)

* Campaign forms source - add just to active campaign

* Add unit tests

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* Adding missing table prefix (#11159)

* Adding missing table prefix

* Count the characters only when the input exists. It throws error on sms list page

* Fix tag name cannot be empty and throw validation error (#11120)

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>

* TPROD-279 - The getExtendedType() method was removed from the FormTypeExtensionInterface (#11037)

* The getExtendedType() method was removed from the FormTypeExtensionInterface

And deprecating unused form extension and event

* STAN fix

* CS fix

* Adding deprecation notices

* GitHub workflows to close mirror repo PRs (#11154)

* Add plugins

* Themes

Co-authored-by: John Linhart <admin@escope.cz>

* Fix translation initialisation issue (#11118)

Co-authored-by: John Linhart <admin@escope.cz>

* Fix: API - GET tag replace Apostrophe with its HTML Entity Number (#11116)

* Fix: API - GET tag replace Apostrophe with its HTML Entity Number

* Fix test cases

* Fix test case

Co-authored-by: John Linhart <admin@escope.cz>

* Bump grunt from 0.4.5 to 1.5.2 (#11113)

* Bump grunt from 0.4.5 to 1.5.2

Bumps [grunt](https://github.com/gruntjs/grunt) from 0.4.5 to 1.5.2.
- [Release notes](https://github.com/gruntjs/grunt/releases)
- [Changelog](https://github.com/gruntjs/grunt/blob/main/CHANGELOG)
- [Commits](https://github.com/gruntjs/grunt/compare/v0.4.5...v1.5.2)

---
updated-dependencies:
- dependency-name: grunt
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Updating all dependencies as they were not compatible with the new Grunt version

* Adding option to enable inline JS in LESS

Because of error:
Running "less:files" (less) task
>> app/bundles/CoreBundle/Assets/css/app/less/components/loading-bar.less: [L4:C0] Inline JavaScript is not enabled. Is it set in your options?

I don't see any inline JS in that file though

* Copying new content to the scaffold mirror files

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>

* docs: add automatyzuj as a contributor for userTesting (#11161)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Allow console to leverage the generic autoloader regardless of the location (part 2) (#11039)

* generic autoloader for console and application

Added test to check if a PR wouldn't break the composer flow

CS fixes

temp revert the console change to see the test fail

re-apply change

align autoload files

temp remove dbal / orm caching to pass tests

still an extra dot

Revert "temp remove dbal / orm caching to pass tests"

This reverts commit 460025d54f4dc2c18e1f3292e717ff859db0ed9e.

* Trying to exclude checking CS on deleted files

all_modified_files = Select all changed files
i.e. a combination of all added,
copied, modified, renamed and deleted files (ACMRD)

all_changed_files = Select all changed files
i.e. a combination of all added,
copied, modified and renamed files (ACMR)

* Avoiding the "header_comment" CS rule

* One more CS fix

* Another CS fix test? It passes on my local :shrug:

* I guess we cannot add any comments to these files...

Co-authored-by: John Linhart <admin@escope.cz>

* fix salesforce integration refresh token (#10993)

* fix(abstractintegration): fix admin users notification on integration error

Fixed error that occurs when integration sync fails, it tries to log error but occurs the error
$adminUsers must not be accessed before initialization, variable needs to be defined as Paginator
and not array, it also need to be default null

* fix(salesforceapi): fix missing refresh token on salesforce integration

If access token expires it's never refreshed because INVALID_SESSION_ID is never found. It tries to
find INVALID_SESSION_ID in errorCode field but it is inside 'message' field

* docs(abstractintegration): fixed phpstan error

* refactor(abstractintegration): subsitute str_contains with strpos that is compatible with php7

* test(salesforcetest): modified testSessionExpiredIsRefreshed

Modified test with the correct response of api call

* Fix prerelease logic in CI, use outputs instead of env in several places (#11165)

* Bumping to version 4.3.0-beta

* bin/console mautic:assets:generate for 4.3.0-beta

* Set correct stability channel (#11172)

* Fast rendering segment list (#11071)

* create ajax request, make use of cache for counts on page load, set cache using ajax

* remove code for testing

* consume ajax request and some UI tweaks

* fix invalid input request id

* optimize set cache, rename methods for better readablity

* fix table prefix error

* add test case

* fix failing test case

* fix redundant ajax calls, maintain cache naming convention

* WIP

* move logic to repo

* add test cases

* MAUT-3326 : fix code and add more test cases

* Make elememt call a const, removed success check in ajax response

* Removed cache storage helper from repo arguments, Implemented cache increment and decrement on addLead and removeLead resp.

* Updated test cases, renamed file to functional test case

* Updated few more test cases, removed ListControllerTest.php (renamed)

* Fixed wrong rebuild count error and test cases

* Renamed method. Updated increment segment cache count method to set count = 1 when cache not available

* Fixed negative decrement value

* Added edge case test for decrement when count is 0. Improved functional test case.

* Removed command output assertion.

* Fixed failing test case - added dynamic contact id

* Fixed segment cache count on campaign triggers.

* Add missing service

* Add missing service

* Fix phpstan issues

* Fix failing ListModelTest.php cases

* Fix failing SegmentCountCacheHelperTest.php cases

* Fix failing UpdateLeadListCommandFunctionalTest.php cases

* Fix phpstan issues

Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: John Linhart <admin@escope.cz>

* 4.3.0-rc bump (#11176)

* ensure css and js assets are present and can be generated  on composer based installs (#11164)

* temp scaffold form source file so form js asset can be generated

* updated the scaffolded file based on the media folder

* scaffold extra css files

* add test to test the outcome of scaffolded composer based installs

* fix incorrect scaffolded file

* remove symlinking to prevent wrong scaffolding

* Small typo fix in comment

* Fix typo in media folder

Co-authored-by: John Linhart <admin@escope.cz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* bin/console mautic:assets:generate

* Merge pull request from GHSA-jrwm-pr9x-cgq3

* Merge pull request from GHSA-pjpc-87mp-4332

* sanitise user agent before displaying

* Update app/bundles/EmailBundle/Views/SubscribedEvents/Timeline/index.html.php

Co-authored-by: John Linhart <admin@escope.cz>

* removed obsolete use statement

Co-authored-by: John Linhart <admin@escope.cz>

* Bump to 4.3.0

* sanitise admin account data during install

* Bump to 4.3.1

* docs: add poweriguana as a contributor for userTesting (#11223)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* docs: add IrisAmrein as a contributor for userTesting (#11236)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Add 4.3.x series to issue template (#11240)

* 4.3 to 4.x (#11265)

* Modify the form label (#11166)

* Modify the form label

* Update the message in line the styleguide

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update BUG-REPORT.yml (#11195)

* Update guzzlehttp/oauth-subscriber to 0.6.* (#11203)

* Fixing DoctrineEventSubscriber for plugin installations (#11206)

* Fixing DoctrineEventSubscriber for plugin installations

* CS fix

* Test fix

* Checking for existing tables directly so we are not masking other SchemaException exceptions thrown for other reasons

* CS fix

* ensure the app folder is seen as the 4.3.x instead of a specific version (#11213)

* Change the email update message type (#11192)

Co-authored-by: John Linhart <admin@escope.cz>

* Improve grapesjs dev demo (#11210)

* delete unused file

* fix standalone basic demo

Co-authored-by: John Linhart <admin@escope.cz>

* run PHPUnit tests with a random db prefix by default (#11196)

* run phpunit tests with a db prefix

* phpstan fixes

* remove obsolete MAUTIC_TABLE_PREFIX definitions

* move MAUTIC_TABLE_PREFIX definition to a phpunit extension

* fix dataproviders with the MAUTIC_TABLE_PREFIX, as it's not set when phpunit scans the tests

* phpstan fixes

* phpcs

* readd MAUTIC_TABLE_PREFIX constant to installer test

Co-authored-by: John Linhart <admin@escope.cz>

* docs: add benji07 as a contributor for code (#11215)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Fix the issue with saving contact settings (#11187)

Co-authored-by: John Linhart <admin@escope.cz>

* align lock file with change from  #11203 (#11218)

* Integer range point action validation (#11191)

* validation for integer range in point actions

* wip test case, two sets failing

* test case working

* moved constants to a helper class

* php stan fixes

* iterable type added

* iterable type added, mixed

* removed unnecessary function

* added assertions

* removed random int, added declare strict types

* added aoi test and marked as skipped

* Finishing the API test for point delta validation

* cs fixer

* Adding missing trait so the the Point entity implements the interface methods

* The namespace does not have to be set as it's the same with the namespace of the entity

* Adding missing type for the uuid property and setting a value to avoid errors when someone calls getter before setter

* Actually, I will remove the uuid interface as it's part of another PR and does not make sense adding it in this one.

It is confusing adding the new property without the column and migration.

Co-authored-by: John Linhart <admin@escope.cz>

* Tag import fix (#11220)

* MAUT-1666 / Bug fixed: ArrayCollection to array

* MAUT-1666 / Test ArrayCollection as input

* MAUT-1666 / Instance of ArrayCollection

* add test cases

* Refactoring a test to use way less mocks

* CS fix

Co-authored-by: Lukas Sykora <lukas.sykora@acquia.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Changing Rector config to the new format (#11227)

* Changing Rector config to the new format

* CS Fix

* docs: add uzegonemad as a contributor for code (#11244)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Code mode fix (#11221)

* When checking current theme, make sure we don't overwrite mautic_code_mode templates

* Add test for checking mautic_code_mode

Co-authored-by: Donald Gilbert <don@dongilbert.net>

* docs: add pety-dc as a contributor for code (#11246)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* docs: add IrisAmrein as a contributor for userTesting (#11247)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>

* flip array returned by getDateChoices (#11233)

* docs: add poweriguana as a contributor for userTesting (#11223)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* flip array returned by getDateChoices

While originally the method return the values in a [label => value] manner, it's clear from both CampaignEventLeadFieldValueType::buildForm and AjaxController::updateLeadFieldValuesAction that it should be flipped, because both of them adds a custom option in [value => Label] manner

This bug prevents date operator in Contact Field Value type Campaign Condition from working properly

Fixes issue #3180

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Fix normalize value for boolean contact field (#11235)

* Fix normalize value for boolean

* Add more unit tests

* Fix PHP Stan

* Fix unit tests

Co-authored-by: John Linhart <admin@escope.cz>

* Bump guzzlehttp/guzzle from 7.4.2 to 7.4.4 (#11241)

Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.4.2 to 7.4.4.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.4.2...7.4.4)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>

* docs: add poweriguana as a contributor for projectManagement (#11263)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Do not perform delete queries on the sync tables for anonymous contacts (#11262)

* Do not perform delete queries on the sync tables for anonymous contacts

* Test fix, STAN fix

* Do not retry all objects if one of them should be retried. Retry only the right one(s) (#11252)

* Do not retry all objects if one of them should be retried. Retry only the right one(s)

* STAN fix

Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: Joey Keller <jos0405@gmail.com>
Co-authored-by: Benjamin Lévêque <benjamin@leveque.me>
Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: Adrian Schimpf <bill@aivie.ch>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Aarohi Prasad <prasadaarohi.98@gmail.com>
Co-authored-by: Lukas Sykora <lukas.sykora@acquia.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>
Co-authored-by: Donald Gilbert <don@dongilbert.net>
Co-authored-by: peter.osvath <peter.osvath@reachmedia.hu>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add default parameters to public method (#11259)

* Allow default Parameters method use in public

* Add unit tests

Co-authored-by: John Linhart <admin@escope.cz>

* Email address with two dots mark as invalid (#11258)

* Email address with two points as invalid

* Fix unit tests

* Add testAddContactsErrorMessageForEmailWithTwoDots

* Fix unit tests

Co-authored-by: John Linhart <admin@escope.cz>

* 4.3 to 4.x v2 (#11268)

* Modify the form label (#11166)

* Modify the form label

* Update the message in line the styleguide

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>

* Update BUG-REPORT.yml (#11195)

* Update guzzlehttp/oauth-subscriber to 0.6.* (#11203)

* Fixing DoctrineEventSubscriber for plugin installations (#11206)

* Fixing DoctrineEventSubscriber for plugin installations

* CS fix

* Test fix

* Checking for existing tables directly so we are not masking other SchemaException exceptions thrown for other reasons

* CS fix

* ensure the app folder is seen as the 4.3.x instead of a specific version (#11213)

* Change the email update message type (#11192)

Co-authored-by: John Linhart <admin@escope.cz>

* Improve grapesjs dev demo (#11210)

* delete unused file

* fix standalone basic demo

Co-authored-by: John Linhart <admin@escope.cz>

* run PHPUnit tests with a random db prefix by default (#11196)

* run phpunit tests with a db prefix

* phpstan fixes

* remove obsolete MAUTIC_TABLE_PREFIX definitions

* move MAUTIC_TABLE_PREFIX definition to a phpunit extension

* fix dataproviders with the MAUTIC_TABLE_PREFIX, as it's not set when phpunit scans the tests

* phpstan fixes

* phpcs

* readd MAUTIC_TABLE_PREFIX constant to installer test

Co-authored-by: John Linhart <admin@escope.cz>

* docs: add benji07 as a contributor for code (#11215)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Fix the issue with saving contact settings (#11187)

Co-authored-by: John Linhart <admin@escope.cz>

* align lock file with change from  #11203 (#11218)

* Integer range point action validation (#11191)

* validation for integer range in point actions

* wip test case, two sets failing

* test case working

* moved constants to a helper class

* php stan fixes

* iterable type added

* iterable type added, mixed

* removed unnecessary function

* added assertions

* removed random int, added declare strict types

* added aoi test and marked as skipped

* Finishing the API test for point delta validation

* cs fixer

* Adding missing trait so the the Point entity implements the interface methods

* The namespace does not have to be set as it's the same with the namespace of the entity

* Adding missing type for the uuid property and setting a value to avoid errors when someone calls getter before setter

* Actually, I will remove the uuid interface as it's part of another PR and does not make sense adding it in this one.

It is confusing adding the new property without the column and migration.

Co-authored-by: John Linhart <admin@escope.cz>

* Tag import fix (#11220)

* MAUT-1666 / Bug fixed: ArrayCollection to array

* MAUT-1666 / Test ArrayCollection as input

* MAUT-1666 / Instance of ArrayCollection

* add test cases

* Refactoring a test to use way less mocks

* CS fix

Co-authored-by: Lukas Sykora <lukas.sykora@acquia.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Changing Rector config to the new format (#11227)

* Changing Rector config to the new format

* CS Fix

* docs: add uzegonemad as a contributor for code (#11244)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Code mode fix (#11221)

* When checking current theme, make sure we don't overwrite mautic_code_mode templates

* Add test for checking mautic_code_mode

Co-authored-by: Donald Gilbert <don@dongilbert.net>

* docs: add pety-dc as a contributor for code (#11246)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* docs: add IrisAmrein as a contributor for userTesting (#11247)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: John Linhart <admin@escope.cz>

* flip array returned by getDateChoices (#11233)

* docs: add poweriguana as a contributor for userTesting (#11223)

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* flip array returned by getDateChoices

While originally the method return the values in a [label => value] manner, it's clear from both CampaignEventLeadFieldValueType::buildForm and AjaxController::updateLeadFieldValuesAction that it should be flipped, because both of them adds a custom option in [value => Label] manner

This bug prevents date operator in Contact Field Value type Campaign Condition from working properly

Fixes issue #3180

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Fix normalize value for boolean contact field (#11235)

* Fix normalize value for boolean

* Add more unit tests

* Fix PHP Stan

* Fix unit tests

Co-authored-by: John Linhart <admin@escope.cz>

* Bump guzzlehttp/guzzle from 7.4.2 to 7.4.4 (#11241)

Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.4.2 to 7.4.4.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla-signed The PR contributors have signed the contributors agreement deprecation Includes deprecations enhancement Any improvement to an existing feature or functionality mautic-5 Relates to Mautic 5.x ready-to-commit PR's with 2 successful tests, 1 approval, automated tests and docs and is ready to be merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants