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

4.x #1

Merged
merged 17 commits into from Feb 16, 2023
Merged

4.x #1

merged 17 commits into from Feb 16, 2023

Conversation

oltmanns-leuchtfeuer
Copy link
Owner

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

Description:

Steps to test this PR:

  1. Open this PR on Gitpod or pull down for testing locally (see docs on testing PRs here)

allcontributors bot and others added 17 commits June 7, 2022 11:33
* 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: update README.md [skip ci]

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

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
* 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](guzzle/guzzle@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>
* Allow default Parameters method use in public

* Add unit tests

Co-authored-by: John Linhart <admin@escope.cz>
* Email address with two points as invalid

* Fix unit tests

* Add testAddContactsErrorMessageForEmailWithTwoDots

* Fix unit tests

Co-authored-by: John Linhart <admin@escope.cz>
* 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](guzzle/guzzle@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

* Email dc multi select filter (#10871)

* Fix filter matching with in operator

* Fix filter matching with not in operator

* Remove unused test cases

* Remove unused method

* Code simplification

* Add test cases

* Updated logic for In and NotIn operator while matching with filter.

* Updated function references.

* Updated match filter for In and NotIn operator and added test case.

* Specifying iterable types

* Select the first variant which met the filter criteria than iterating over others.

* Reverting to correct changes.

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

* Marketplace version fix (#11197)

* Fixing the latest version issue

The problem happened when the package did not have any stable or pre-release version yet

* Fixing issue tracker, adding docs button

* Adding possibility to read display name from the allow list for the plugin list page

* Using display name in marketplace detail page

* Fixing no results found message

* Adding button to clear cache

* CS fixes

* Trying to run tests in separate process because other tests started to fail

* Will the tests pass on GH Actions like this?

* The test client does not have to be overwritten anymore

* Getting rid of the mock hoping it will help with failing on GH Actions

* CS Fix

* Is this the problem for GH Actions?

* Resseting the handler stack in case it will help with failing tests on GH actions

* Improving message if a package could not be installed

* Temporarily running phpunit with --debug to see which test fails first

* Fixing TypeError: Argument 2 passed to PHPUnit\Framework\Assert::assertNotContains() must be iterable, string given

* Fixing a test after the command output change

* The tests need MauticMysqlTestCase to clean after themselves

* Removing the temporary debug

* Wording fix

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

* Capital M

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

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

* Fix: The decision step ignores the preceding condition in the campaign (#11200)

* fix condition step ignored when before decision in campaign

* fix phpstan

* fixes and additional tests

* Shorter mock syntax and replace event mock with object

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

* refactor decision check for contact

* fix phpstan

* php7.4 syntax added

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

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

* php 8.0 support (#11217)

* fixes for tests

* phpstan fixes

* run misc tests for both php 7.4 and 8.0

* 11070 fixes

* more phpstan fixes

* prevent bc breaking changes

* rector fix

* phpstan and phpunit fixes

* switch to Mautic org FOSOAuthServerBundle fork

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

* composer update --lock after merge with conflicted composer.lock file

* Bumping to 4.4.0-beta

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>
Co-authored-by: Rahul Shinde <shinde.r.a@gmail.com>
Co-authored-by: Lukas Drahy <lukas@drahy.net>
Co-authored-by: Patryk Gruszka <patryk.gruszka@protonmail.com>
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.4.4 to 7.4.5.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](guzzle/guzzle@7.4.4...7.4.5)

---
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>
* ensure the app folder is seen as the 4.3.x instead of a specific version (#11213)

* align lock file with change from  #11203 (#11218)

* Disable default value for identifier fields

* Ensure defaultValue is set to empty in case an existing field already has something set

* Removed unused constant

* Allow entity to define default identifier fields through use of static method

* The type is not always defined in the $data array. Check for that

* Fixes after cherry pick containing STAN, CS, libraries updated. It was 6yo code...

* Running `composer update --lock` after rebase

Package operations: 0 installs, 2 updates, 0 removals
  - Downloading guzzlehttp/psr7 (2.4.0)
  - Downloading guzzlehttp/guzzle (7.4.5)
  - Upgrading guzzlehttp/psr7 (2.3.0 => 2.4.0): Extracting archive
  - Upgrading guzzlehttp/guzzle (7.4.4 => 7.4.5): Extracting archive

Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: Alan Hartless <alan@devkardia.com>
* Stop duplicate campaign update (#10550)

* Removing building campaign members on segment member change

As this is handled by the `bin/console mautic:campaigns:upgate` command anyway and this command is mandatory for all Mautic instances. So we are just removing a duplicated functionality to save server resources and improve request times.

* CS fix

* Adding undefined property

* Test rewritten from direct form post to form get and then submit as it was failing on CI otherwise

* Optimizing the code by:

1. json_decode called only once. Used to be called twice on the same array of contact IDs
2. not calling add/removeContacts methods when not needed. There is a lot going on and it will eventually end as the segment ID array is empty.

* Removing tests for the deleted methods

* Removing failing test that belong to a future PR

* PHPSTAN fixes

* Starting the doc with notes to upgrade to M5

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

* add v5 to bug reporting (#10858)

* Merge 4 to 5 (#11044)

* Edit comment

* Changed date format

* refactor(assetslist): use short date and long date with tooltip

* change redis to v5 because it is needed for symfony/mailer

* Add a migration for lead_lists table.

* Add SQL queries for migration.

* Add definition of the last_build_date field to the model.

* Fix migration.

* Fix migration.

* Implement notification in the template.

* Add a config and a form for segment settings.

* Add a template for the config.

* Fix translations

* Fix translations

* Use an actual value from the config in the template.

* Update last_built_date value when we execute mautic:segments:update command.

* Update last_built_date value when we execute mautic:segments:update command.

* Fix code style.

* Update last_built_date when we create a segment.

* Fix a bug  with built_last_date when cloning LeadList entity.

* Fix method return type.

* Fix class name.

* Fix UpdateLeadListsCommand command.

* Add a segment config type test.

* Add a config subscriber test.

* Fix pluralization.

* Add tests for LeadList entity class.

* Refactor variables names (as was suggessted here https://github.com/mautic-inc/mautic-cloud/pull/942/files#r475729087).

* Rename LeadList::updateLastBuiltDate to LeadList::setLastBuiltDateToCurrentDatetime as suggested here: https://github.com/mautic-inc/mautic-cloud/pull/942/files#r475720725

* CS fixes

* Type fixes

* PHP 7.4 syntax sugar

* Fixing a bug caused by cherry-picking discovered by unit tests (:tada:)

* Adding test for the issue found during testing

The condition for max contacts param was opposit to what we want

* Forgot to add the test

* CS fix

* Asserting also the segment member count

* Set default values for original_is_published_value and column_is_not_created columns so older migrations won't fail

* Updating migrations to M4

* Fixing comparison value for the default value

* Fix accessibility of HTML Emails

* Add unit tests

* Remove unused class reported from PHPStan

* Fix Call to a member function getLanguage() on null

* Using the subject directly without the token, more test cases

* CS fixes

* Fix default order dir in controllers

* Set orderBy to session If does not exist

* Revert back CS fixer tableheader.html.php

* First work on Composer integration

* Add Composer dependency to Mautic

* Use KernelInterface to get project directory

* Explicitly set version of mautic/core-lib to v4

* Fix CS

* WIP Marketplace UI installation

* WIP UI installer now working

* Fix removal of plugins through UI + memory issues

* Fix CS

* Changes shown at live demo MautiCon

* Fix CS

* Fix PHPSTAN

* Parse + cache allowlist from GitHub

* 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>

* CS fix

* CS fix

Co-authored-by: Alfredo Arena <alfredo.arena@ctmobi.it>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Anton Vlasenko <vlasenko.anton@gmail.com>
Co-authored-by: Joey Keller <jos0405@gmail.com>
Co-authored-by: Dennis Ameling <dennis@dennisameling.com>
Co-authored-by: Dennis Ameling (he/him) <dennis.ameling@leap.ac>
Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>
Co-authored-by: Mattias Michaux <mattias.michaux@dropsolid.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: 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>

* Removing unused inteface and methods it required (#11056)

* 4.x to 5.x (#11115)

* Implement notification in the template.

* Add a config and a form for segment settings.

* Add a template for the config.

* Fix translations

* Fix translations

* Use an actual value from the config in the template.

* Update last_built_date value when we execute mautic:segments:update command.

* Update last_built_date value when we execute mautic:segments:update command.

* Fix code style.

* Update last_built_date when we create a segment.

* Fix a bug  with built_last_date when cloning LeadList entity.

* Fix method return type.

* Fix class name.

* Fix UpdateLeadListsCommand command.

* Add a segment config type test.

* Add a config subscriber test.

* Fix pluralization.

* Add tests for LeadList entity class.

* Refactor variables names (as was suggessted here https://github.com/mautic-inc/mautic-cloud/pull/942/files#r475729087).

* Rename LeadList::updateLastBuiltDate to LeadList::setLastBuiltDateToCurrentDatetime as suggested here: https://github.com/mautic-inc/mautic-cloud/pull/942/files#r475720725

* CS fixes

* Type fixes

* PHP 7.4 syntax sugar

* Fixing a bug caused by cherry-picking discovered by unit tests (:tada:)

* Adding test for the issue found during testing

The condition for max contacts param was opposit to what we want

* Forgot to add the test

* CS fix

* Asserting also the segment member count

* Set default values for original_is_published_value and column_is_not_created columns so older migrations won't fail

* Updating migrations to M4

* Fixing comparison value for the default value

* Fix accessibility of HTML Emails

* Add unit tests

* Remove unused class reported from PHPStan

* Fix Call to a member function getLanguage() on null

* Using the subject directly without the token, more test cases

* CS fixes

* Fix default order dir in controllers

* Set orderBy to session If does not exist

* Revert back CS fixer tableheader.html.php

* First work on Composer integration

* Add Composer dependency to Mautic

* Use KernelInterface to get project directory

* Explicitly set version of mautic/core-lib to v4

* Fix CS

* WIP Marketplace UI installation

* WIP UI installer now working

* Fix removal of plugins through UI + memory issues

* Fix CS

* Changes shown at live demo MautiCon

* Fix CS

* Fix PHPSTAN

* Parse + cache allowlist from GitHub

* 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>

* STAN fix

* Code missing from the merge added

Co-authored-by: Anton Vlasenko <vlasenko.anton@gmail.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Joey Keller <jos0405@gmail.com>
Co-authored-by: Dennis Ameling <dennis@dennisameling.com>
Co-authored-by: Dennis Ameling (he/him) <dennis.ameling@leap.ac>
Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>
Co-authored-by: Mohammad Abu Musa <m.abumusa@gmail.com>
Co-authored-by: Alfredo Arena <alfredo.arena@ctmobi.it>
Co-authored-by: Mattias Michaux <mattias.michaux@dropsolid.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: Jan Kozak <galvani78@gmai…
* Fix for all foreign tables segment filter with empty/notEmpty  expression (#11253)

* Fix for tags empty/notEmpty segment filter

* Add unit tests

* Adding some tags to 2 contacts to check that !empty works and testing also empty, !empty with companies

* CS fixes

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

* change lead to company trans key (#11300)

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

* Pending query optimization (#11260)

* ensure the app folder is seen as the 4.3.x instead of a specific version (#11213)

* align lock file with change from  #11203 (#11218)

* 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>

* 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>

* Added message_lead_channel_channel_id index

* Email pending query optimized using independent sub-queries

* message_lead_channel_channel_id index reverted as the optimized query no longer uses it

* EmailRepositoryTest fixed

* EmailRepositoryTest increased code coverage

* Added EmailRepositoryFunctionalTest to further increase code coverage

* Fixing param types

* Fixing pending count when some contact was deleted

* Namespace fix

* EmailRepositoryTest queries updated

* Adding new functional test for pending count if there is an email stat with lead_id = null

* email ID can be variable

* CS, STAN fixes

* Removing method that did not belong to this PR and is not used

* Exclude contacts that are within excluded lists

* MAUT-6629: Updated email of type list to consider the category prefrence.

* Table prefix is set after the datasets are loaded. So we have to replace in the test

* Removing test that belongs to another PR

* CS, STAN fixes

* Using arrow functions

* CS fix

* Removing test from a future PR

* Fixing tests

* Removing part of a feature from another PR

* Test fixes

* CS fix

* Running "composer update --lock" after wrong git rebase conflict resolution

Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: fedys <miroslav.fedeles@gmail.com>
Co-authored-by: Rahul Shinde <shinde.r.a@gmail.com>

* Check existing property (fixes #11299) (#11321)

* Removed charLengthLimit.

* Adding a functional test for a regression bug

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

* Fix user language preference over system language (#11119)

* Fix user and system locale not applying on its updates

* Fix failing test

* Fix failing test

* Fix code smell

* Segment lookup_id field : use the data-action attribute if present (#11327)

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

* Fix report export to Excel with aggregated bool columns (#11298)

* Fix report xls export with aggregated columns

* PHPSTAN fix

* Return types in ReportBundle test fixtures

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

* Use param type by declaration in ExcelExporter

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

* Changes from PR#10782 rebuilded (#11319)

* Fix No Data shown for Most hit email redirects dashboard widget (#11086)

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

* Add translations for new blocks (#11006)

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

* Fix special characters in form condition value (#11093)

* Fix special characters in form condition value

* Fix compare sanitize special chars vs plain from post for conditonal fields

* Add unit tests

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

* Cancelling new campaign should not give 500 error. (#11348)

Fixes #11181

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

* doctrine-fix was removed but master branch now has PHP 8 support (#11353)

* Check the type of the value before passing it into the strpos. (#11350)

* Fix issue 11267 - Sending emails via API should respect useOwnerAsMailer (#11347)

* if the mailer is owner use owner email as reply-to address (#11322)

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

* Tests for sending emails through Mautic's API

Add test cases for the following couple of API endpoints:

POST /emails/ID/send
Send a segment email to linked segment(s).

POST /emails/ID/contact/CONTACT_ID/send
Send a predefined email to existing contact.

Tests are made with mockup HTTP queries using the `request()` method of
a symfony's `KernelBrowser` object whose implementation is delegated to
Mautic's `AppKernel`.
As for emails that would otherwise be sent to recipients, these are caught
in a mockup SMTP transport object which doesn't actually send any emails,
but rather it stores a copy of the last email attempted which is made
accessible to the testing facilities for verification.

* Test the owner signature

Include a placeholer for the signature in the email message to test that
the owner's signature is used when the `useOwnerAsMailer` option is enabled.

* Fix issue #11267 - Sending emails via API should respect useOwnerAsMailer

Sending an email using the API endpoint `POST /emails/ID/contact/CONTACT_ID/send`
does not respect the email option `useOwnerAsMailer`.

The expected behaviour is for an email that would be sent by Mautic
it should appear to be sent by the `owner` of the contact who is the recipient,
i.e. for every sent email with the `useOwnerAsMailer` option enabled, the
sender's name and sender's email should belong to the `owner'.

This is a small bug where the owner is not provided in the contact
information passed to the mail sender.

Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: John Linhart <admin@escope.cz>

* Use proper env variable processor for rememberme_lifetime. (#11363)

* Add core lib readme and workflow to auto-close PRs (#11354)

* Add GitHub workflow to close PRs on core-lib repo

* create readme for core-lib folder

* Update app/README.md

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

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

* 4.4.1 release bump (#11367)

* Bumping to version 4.4.1

* regerenating production assets with bin/console m:a:g

Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: Norman Pracht - Webmecanik <npr@webmecanik.com>
Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: fedys <miroslav.fedeles@gmail.com>
Co-authored-by: Rahul Shinde <shinde.r.a@gmail.com>
Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>
Co-authored-by: Benjamin Lévêque <benjamin@leveque.me>
Co-authored-by: Patryk Gruszka <patryk.gruszka@comarch.pl>
Co-authored-by: Anna Munk <anna.munk@comarch.pl>
Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Artem Lopata <biozshock@gmail.com>
Co-authored-by: abcpro1 <108011288+abcpro1@users.noreply.github.com>
…ate WebhookBundle to Twig (#11382)

* CoreBundle: add Twig support for various helpers

* WebhookBundle: WIP migrate to Twig

* Fix PHPSTAN errors

* Major progress on various CoreBundle helpers + WebhookBundle migration

* Migrate webhook creation form to Twig

* Migrate final pages for WebhookBundle 🎉

* Migrate pagination.html.php to Twig 🚀

* Fix publish toggle bug, fix translation issue

* Apply PR feedback

* Code cleanup

* Fix small bug in getTempateName

* Use the default filter where we can

* Fix bugs thanks to PR review feedback
Co-authored-by: John Linhart <admin@escope.cz>
)

* Fixed migration prefix index issue

* Fix Version20191219155630 migration to 100% cover perUp condition

* Fix Version20191017140848 migration to 100% cover perUp condition

* Fix Version20200227110431 migration to 100% cover preUp condition to check if index is present

* Fix Version20200805185714 migration to 100% cover preUp condition

* Fixed isse with prefix and innodb_strict_mode

* Fixed CSFixer

Co-authored-by: Rohit Pavaskar <rohit.pavaskar@acquia.com>
Co-authored-by: John Linhart <admin@escope.cz>
* Fix for all foreign tables segment filter with empty/notEmpty  expression (#11253)

* Fix for tags empty/notEmpty segment filter

* Add unit tests

* Adding some tags to 2 contacts to check that !empty works and testing also empty, !empty with companies

* CS fixes

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

* change lead to company trans key (#11300)

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

* Pending query optimization (#11260)

* ensure the app folder is seen as the 4.3.x instead of a specific version (#11213)

* align lock file with change from  #11203 (#11218)

* 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>

* 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>

* Added message_lead_channel_channel_id index

* Email pending query optimized using independent sub-queries

* message_lead_channel_channel_id index reverted as the optimized query no longer uses it

* EmailRepositoryTest fixed

* EmailRepositoryTest increased code coverage

* Added EmailRepositoryFunctionalTest to further increase code coverage

* Fixing param types

* Fixing pending count when some contact was deleted

* Namespace fix

* EmailRepositoryTest queries updated

* Adding new functional test for pending count if there is an email stat with lead_id = null

* email ID can be variable

* CS, STAN fixes

* Removing method that did not belong to this PR and is not used

* Exclude contacts that are within excluded lists

* MAUT-6629: Updated email of type list to consider the category prefrence.

* Table prefix is set after the datasets are loaded. So we have to replace in the test

* Removing test that belongs to another PR

* CS, STAN fixes

* Using arrow functions

* CS fix

* Removing test from a future PR

* Fixing tests

* Removing part of a feature from another PR

* Test fixes

* CS fix

* Running "composer update --lock" after wrong git rebase conflict resolution

Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: fedys <miroslav.fedeles@gmail.com>
Co-authored-by: Rahul Shinde <shinde.r.a@gmail.com>

* Check existing property (fixes #11299) (#11321)

* Removed charLengthLimit.

* Adding a functional test for a regression bug

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

* Fix user language preference over system language (#11119)

* Fix user and system locale not applying on its updates

* Fix failing test

* Fix failing test

* Fix code smell

* Segment lookup_id field : use the data-action attribute if present (#11327)

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

* Fix report export to Excel with aggregated bool columns (#11298)

* Fix report xls export with aggregated columns

* PHPSTAN fix

* Return types in ReportBundle test fixtures

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

* Use param type by declaration in ExcelExporter

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

* Changes from PR#10782 rebuilded (#11319)

* Fix No Data shown for Most hit email redirects dashboard widget (#11086)

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

* Add translations for new blocks (#11006)

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

* Fix special characters in form condition value (#11093)

* Fix special characters in form condition value

* Fix compare sanitize special chars vs plain from post for conditonal fields

* Add unit tests

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

* Cancelling new campaign should not give 500 error. (#11348)

Fixes #11181

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

* doctrine-fix was removed but master branch now has PHP 8 support (#11353)

* Check the type of the value before passing it into the strpos. (#11350)

* Fix issue 11267 - Sending emails via API should respect useOwnerAsMailer (#11347)

* if the mailer is owner use owner email as reply-to address (#11322)

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

* Tests for sending emails through Mautic's API

Add test cases for the following couple of API endpoints:

POST /emails/ID/send
Send a segment email to linked segment(s).

POST /emails/ID/contact/CONTACT_ID/send
Send a predefined email to existing contact.

Tests are made with mockup HTTP queries using the `request()` method of
a symfony's `KernelBrowser` object whose implementation is delegated to
Mautic's `AppKernel`.
As for emails that would otherwise be sent to recipients, these are caught
in a mockup SMTP transport object which doesn't actually send any emails,
but rather it stores a copy of the last email attempted which is made
accessible to the testing facilities for verification.

* Test the owner signature

Include a placeholer for the signature in the email message to test that
the owner's signature is used when the `useOwnerAsMailer` option is enabled.

* Fix issue #11267 - Sending emails via API should respect useOwnerAsMailer

Sending an email using the API endpoint `POST /emails/ID/contact/CONTACT_ID/send`
does not respect the email option `useOwnerAsMailer`.

The expected behaviour is for an email that would be sent by Mautic
it should appear to be sent by the `owner` of the contact who is the recipient,
i.e. for every sent email with the `useOwnerAsMailer` option enabled, the
sender's name and sender's email should belong to the `owner'.

This is a small bug where the owner is not provided in the contact
information passed to the mail sender.

Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: John Linhart <admin@escope.cz>

* Use proper env variable processor for rememberme_lifetime. (#11363)

* Add core lib readme and workflow to auto-close PRs (#11354)

* Add GitHub workflow to close PRs on core-lib repo

* create readme for core-lib folder

* Update app/README.md

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

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

* 4.4.1 release bump (#11367)

* Bumping to version 4.4.1

* regerenating production assets with bin/console m:a:g

* Do not embed images before the email is really sent. (#11362)

* Flip flipped locales. (#11364)

* Hide tooltips on keydown and wait for a user to stop typing to create new tooltips. (#11383)

* Skip embedding a tracking pixel. (#11390)

* always create a new editor to make sure the correct one is used (#11376)

* Implementing the RemoveUnusedPrivateMethodParameterRector Rector rule (#11232)

* Implementing the RemoveUnusedPrivateMethodParameterRector Rector rule

* CS fixes

* Include <map><area/></map> into links tracking. (#11391)

* Fixing "Deprecated in PHP 8.0: Required parameter $limit follows optional parameter $page." (#11394)

* MAUT-5804 / Functional tests for segments

* MAUT-5804 / Strict types

* MAUT-5804 / Clean up after test

* Improving type hints

* Fixed return type hint

* Namespace fix

* Fixing key type

* Updating accessing container as M4 has changed it

* Fix property must not be accessed before initialization error

* Fix gitpod for form submissions (#11409)

* Update .gitpod.yml

* Update .gitpod.yml

* Update .gitpod.yml

* Update deprecated command

* chore: Set permissions for GitHub actions (#11295)

Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

Signed-off-by: neilnaveen <42328488+neilnaveen@users.noreply.github.com>

Signed-off-by: neilnaveen <42328488+neilnaveen@users.noreply.github.com>

* Copy to CC or BCC should send an email even if TO field is empty. (#11405)

* Copy to CC or BCC should send an email even if TO field is empty.

* Do not move CC and BCC to TO when sending emails.

* Show form validation errors if an integration is published or if the … (#10539)

* Show form validation errors if an integration is published or if the authorize button was clicked which is expected to happen before publishing.

* Show form validation errors if an integration is published or if the authorize button was clicked which is expected to happen before publishing.

Co-authored-by: Alan Hartless (he/him) <alan@devkardia.com>

* Avoid api cache clear (#11420)

* Build route cache with API even if the API is disabled

Otherwise users must clear cache after they enable it and it has no measureable performance advantage in Symfony 4.4

* Removing default config values for API otherwise we cannot test for the opposite values

These values are also set in AbstractMauticTestCase and can be overwritten

* Adding a new test for when the API is disabled

* Revert "doctrine-fix was removed but master branch now has PHP 8 support" (#11373)

see #10651 (comment)

This reverts commit 2951ac4.

* Fix MJML issues with Brienz template (#11356)

* Add changed files

* adding missed files

* Remove commercial references

* 4.4.2 bump (#11433)

* Bumping to version 4.4.2

* bin/console m:a:g

Signed-off-by: neilnaveen <42328488+neilnaveen@users.noreply.github.com>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: Norman Pracht - Webmecanik <npr@webmecanik.com>
Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: fedys <miroslav.fedeles@gmail.com>
Co-authored-by: Rahul Shinde <shinde.r.a@gmail.com>
Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
Co-authored-by: Tejas Navghane <ts.navghane@gmail.com>
Co-authored-by: Benjamin Lévêque <benjamin@leveque.me>
Co-authored-by: Patryk Gruszka <patryk.gruszka@comarch.pl>
Co-authored-by: Anna Munk <anna.munk@comarch.pl>
Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Artem Lopata <biozshock@gmail.com>
Co-authored-by: abcpro1 <108011288+abcpro1@users.noreply.github.com>
Co-authored-by: Adrian Schimpf <bill@aivie.ch>
Co-authored-by: Lukas Sykora <lukassykora@seznam.cz>
Co-authored-by: neilnaveen <42328488+neilnaveen@users.noreply.github.com>
Co-authored-by: Alan Hartless (he/him) <alan@devkardia.com>
@oltmanns-leuchtfeuer oltmanns-leuchtfeuer merged commit 84e21ed into oltmanns-leuchtfeuer:4.x Feb 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
7 participants