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

Marketplace version fix #11197

Merged
merged 23 commits into from Jun 17, 2022
Merged

Marketplace version fix #11197

merged 23 commits into from Jun 17, 2022

Conversation

escopecz
Copy link
Sponsor Member

@escopecz escopecz commented May 27, 2022

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

Description:

With the release of the Custom Objects plugin we found that the Marketplace could handle some things better. So this PR fixes:

  1. It takes the latest stable version and fallbacks to a feature branch if stable release does not exists.
  2. Lets developers set a human readable name. Composer.json allows only for vendor/repository as the name.
  3. The Issue Tracker button was not working. When in there I also added the wiki/documentation button.
  4. I reordered the buttons a little. The install and the Close button is visible all the time, the Issue Tracker and Documentation are hidden in the context menu. It used to show the Install and the Issue Tracker button and Close being in the context menu.
  5. Adds new "Clear Cache" button to the list of packages as I got an issue during development that an empty array got cached and I had no option to clear the cache other than waiting for an hour so the cache would invalidate. I think it could be useful for users too if they wait for new version of a package for example. And we should cache more stuff in the future.
  6. Related to the point 5., I noticed that if there are no packages available then the message does not make sense. I fixed that like so:
    Screen Shot 2022-05-31 at 10 39 06

Detail before:
Screen Shot 2022-06-01 at 13 27 19
Detail after:
Screen Shot 2022-06-01 at 13 28 43
Notice: the buttons are in different order, the issue tracker button works, the versions do not have a link unless they are stable as otherwise the link goes to a 404 page. The plugin name is more human readable. The version release date contains time.

List before:
Screen Shot 2022-06-01 at 13 27 35
List after:
Screen Shot 2022-06-01 at 13 28 30
Notice: The Custom Objects plugin name is human readable, the Clear Cache button appeared.

Steps to test this PR:

  1. Open this PR on Gitpod or pull down for testing locally (see docs on testing PRs here)
  2. Browse the Marketplace and notice the fixes in the description.

The problem happened when the package did not have any stable or pre-release version yet
@cla-bot cla-bot bot added the cla-signed The PR contributors have signed the contributors agreement label May 27, 2022
@codecov
Copy link

codecov bot commented May 27, 2022

Codecov Report

Merging #11197 (73adb66) into 4.3 (dff88bb) will increase coverage by 0.02%.
The diff coverage is 76.92%.

Impacted file tree graph

@@             Coverage Diff              @@
##                4.3   #11197      +/-   ##
============================================
+ Coverage     48.80%   48.83%   +0.02%     
- Complexity    35357    35372      +15     
============================================
  Files          2141     2142       +1     
  Lines        105408   105457      +49     
============================================
+ Hits          51444    51496      +52     
+ Misses        53964    53961       -3     
Impacted Files Coverage Δ
...s/MarketplaceBundle/Controller/CacheController.php 0.00% <0.00%> (ø)
...undles/MarketplaceBundle/Service/RouteProvider.php 46.66% <0.00%> (-7.18%) ⬇️
...MarketplaceBundle/Collection/VersionCollection.php 55.55% <58.33%> (-6.15%) ⬇️
...dles/MarketplaceBundle/Service/PluginCollector.php 89.18% <60.00%> (-0.29%) ⬇️
...ndles/MarketplaceBundle/Command/InstallCommand.php 96.87% <80.00%> (-3.13%) ⬇️
...laceBundle/Controller/Package/DetailController.php 90.47% <100.00%> (+1.58%) ⬆️
app/bundles/MarketplaceBundle/DTO/Allowlist.php 100.00% <100.00%> (ø)
...p/bundles/MarketplaceBundle/DTO/AllowlistEntry.php 100.00% <100.00%> (ø)
app/bundles/MarketplaceBundle/DTO/PackageBase.php 100.00% <100.00%> (ø)
...pp/bundles/MarketplaceBundle/DTO/PackageDetail.php 100.00% <100.00%> (ø)
... and 6 more

@escopecz escopecz marked this pull request as ready for review June 1, 2022 11:24
@escopecz escopecz added bug Issues or PR's relating to bugs ready-to-test PR's that are ready to test labels Jun 1, 2022
@escopecz escopecz added this to the 4.3.2 milestone Jun 1, 2022
Copy link
Sponsor Member

@RCheesley RCheesley left a comment

Choose a reason for hiding this comment

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

Thanks for the PR @escopecz - a few grammar changes and I spotted this issue with the batch select - something weird, or maybe no options? Either way I think we need to decide what behaviours are meant to be happening here:

https://watch.screencastify.com/v/j6UHIy6bDMLNhJB8KrSa

As a user I was expecting to find there the ability to select several plugins and have them installed, in case that is helpful :)

@RCheesley RCheesley added the pending-feedback PR's and issues that are awaiting feedback from the author label Jun 10, 2022
escopecz and others added 2 commits June 10, 2022 17:21
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
@escopecz escopecz requested a review from RCheesley June 10, 2022 15:22
@escopecz escopecz removed the pending-feedback PR's and issues that are awaiting feedback from the author label Jun 10, 2022
Copy link
Member

@kuzmany kuzmany left a comment

Choose a reason for hiding this comment

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

I did test in my ddev environment and looks like works pretty well. We can merge it, any improvement to marketplace welcome 👍

@kuzmany kuzmany added pending-test-confirmation PR's that require one test before they can be merged and removed ready-to-test PR's that are ready to test labels Jun 17, 2022
@escopecz escopecz merged commit e192825 into mautic:4.3 Jun 17, 2022
@escopecz escopecz deleted the marketplace-version-fix branch June 17, 2022 13:26
escopecz added a commit that referenced this pull request Jun 20, 2022
* 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>
oltmanns-leuchtfeuer added a commit to oltmanns-leuchtfeuer/mautic that referenced this pull request Feb 16, 2023
* docs: add poweriguana as a contributor for userTesting (#11223)

* docs: update README.md [skip ci]

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

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

* docs: add IrisAmrein as a contributor for userTesting (#11236)

* docs: update README.md [skip ci]

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

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

* Add 4.3.x series to issue template (#11240)

* 4.3 to 4.x (#11265)

* Modify the form label (#11166)

* Modify the form label

* Update the message in line the styleguide

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

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

* Update BUG-REPORT.yml (#11195)

* Update guzzlehttp/oauth-subscriber to 0.6.* (#11203)

* Fixing DoctrineEventSubscriber for plugin installations (#11206)

* Fixing DoctrineEventSubscriber for plugin installations

* CS fix

* Test fix

* Checking for existing tables directly so we are not masking other SchemaException exceptions thrown for other reasons

* CS fix

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

* Change the email update message type (#11192)

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

* Improve grapesjs dev demo (#11210)

* delete unused file

* fix standalone basic demo

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

* run PHPUnit tests with a random db prefix by default (#11196)

* run phpunit tests with a db prefix

* phpstan fixes

* remove obsolete MAUTIC_TABLE_PREFIX definitions

* move MAUTIC_TABLE_PREFIX definition to a phpunit extension

* fix dataproviders with the MAUTIC_TABLE_PREFIX, as it's not set when phpunit scans the tests

* phpstan fixes

* phpcs

* readd MAUTIC_TABLE_PREFIX constant to installer test

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

* docs: add benji07 as a contributor for code (#11215)

* docs: update README.md [skip ci]

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

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

* Fix the issue with saving contact settings (#11187)

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

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

* Integer range point action validation (#11191)

* validation for integer range in point actions

* wip test case, two sets failing

* test case working

* moved constants to a helper class

* php stan fixes

* iterable type added

* iterable type added, mixed

* removed unnecessary function

* added assertions

* removed random int, added declare strict types

* added aoi test and marked as skipped

* Finishing the API test for point delta validation

* cs fixer

* Adding missing trait so the the Point entity implements the interface methods

* The namespace does not have to be set as it's the same with the namespace of the entity

* Adding missing type for the uuid property and setting a value to avoid errors when someone calls getter before setter

* Actually, I will remove the uuid interface as it's part of another PR and does not make sense adding it in this one.

It is confusing adding the new property without the column and migration.

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

* Tag import fix (#11220)

* MAUT-1666 / Bug fixed: ArrayCollection to array

* MAUT-1666 / Test ArrayCollection as input

* MAUT-1666 / Instance of ArrayCollection

* add test cases

* Refactoring a test to use way less mocks

* CS fix

Co-authored-by: Lukas Sykora <lukas.sykora@acquia.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Changing Rector config to the new format (#11227)

* Changing Rector config to the new format

* CS Fix

* docs: add uzegonemad as a contributor for code (#11244)

* docs: update README.md [skip ci]

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

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

* Code mode fix (#11221)

* When checking current theme, make sure we don't overwrite mautic_code_mode templates

* Add test for checking mautic_code_mode

Co-authored-by: Donald Gilbert <don@dongilbert.net>

* docs: add pety-dc as a contributor for code (#11246)

* docs: update README.md [skip ci]

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

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

* docs: add IrisAmrein as a contributor for userTesting (#11247)

* docs: update README.md [skip ci]

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

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

* flip array returned by getDateChoices (#11233)

* docs: add poweriguana as a contributor for userTesting (#11223)

* docs: update README.md [skip ci]

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

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

* flip array returned by getDateChoices

While originally the method return the values in a [label => value] manner, it's clear from both CampaignEventLeadFieldValueType::buildForm and AjaxController::updateLeadFieldValuesAction that it should be flipped, because both of them adds a custom option in [value => Label] manner

This bug prevents date operator in Contact Field Value type Campaign Condition from working properly

Fixes issue #3180

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

* Fix normalize value for boolean contact field (#11235)

* Fix normalize value for boolean

* Add more unit tests

* Fix PHP Stan

* Fix unit tests

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

* Bump guzzlehttp/guzzle from 7.4.2 to 7.4.4 (#11241)

Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.4.2 to 7.4.4.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.4.2...7.4.4)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: indirect
...

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

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

* docs: add poweriguana as a contributor for projectManagement (#11263)

* docs: update README.md [skip ci]

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

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

* Do not perform delete queries on the sync tables for anonymous contacts (#11262)

* Do not perform delete queries on the sync tables for anonymous contacts

* Test fix, STAN fix

* Do not retry all objects if one of them should be retried. Retry only the right one(s) (#11252)

* Do not retry all objects if one of them should be retried. Retry only the right one(s)

* STAN fix

Co-authored-by: Volha Pivavarchyk <volha@aivie.ch>
Co-authored-by: Ruth Cheesley <ruth.cheesley@acquia.com>
Co-authored-by: Joey Keller <jos0405@gmail.com>
Co-authored-by: Benjamin Lévêque <benjamin@leveque.me>
Co-authored-by: mollux <mattias.michaux@dropsolid.com>
Co-authored-by: Adrian Schimpf <bill@aivie.ch>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Aarohi Prasad <prasadaarohi.98@gmail.com>
Co-authored-by: Lukas Sykora <lukas.sykora@acquia.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>
Co-authored-by: Donald Gilbert <don@dongilbert.net>
Co-authored-by: peter.osvath <peter.osvath@reachmedia.hu>
Co-authored-by: Zdeno Kuzmany <zdeno@kuzmany.biz>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add default parameters to public method (#11259)

* Allow default Parameters method use in public

* Add unit tests

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

* Email address with two dots mark as invalid (#11258)

* Email address with two points as invalid

* Fix unit tests

* Add testAddContactsErrorMessageForEmailWithTwoDots

* Fix unit tests

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

* 4.3 to 4.x v2 (#11268)

* Modify the form label (#11166)

* Modify the form label

* Update the message in line the styleguide

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

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

* Update BUG-REPORT.yml (#11195)

* Update guzzlehttp/oauth-subscriber to 0.6.* (#11203)

* Fixing DoctrineEventSubscriber for plugin installations (#11206)

* Fixing DoctrineEventSubscriber for plugin installations

* CS fix

* Test fix

* Checking for existing tables directly so we are not masking other SchemaException exceptions thrown for other reasons

* CS fix

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

* Change the email update message type (#11192)

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

* Improve grapesjs dev demo (#11210)

* delete unused file

* fix standalone basic demo

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

* run PHPUnit tests with a random db prefix by default (#11196)

* run phpunit tests with a db prefix

* phpstan fixes

* remove obsolete MAUTIC_TABLE_PREFIX definitions

* move MAUTIC_TABLE_PREFIX definition to a phpunit extension

* fix dataproviders with the MAUTIC_TABLE_PREFIX, as it's not set when phpunit scans the tests

* phpstan fixes

* phpcs

* readd MAUTIC_TABLE_PREFIX constant to installer test

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

* docs: add benji07 as a contributor for code (#11215)

* docs: update README.md [skip ci]

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

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

* Fix the issue with saving contact settings (#11187)

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

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

* Integer range point action validation (#11191)

* validation for integer range in point actions

* wip test case, two sets failing

* test case working

* moved constants to a helper class

* php stan fixes

* iterable type added

* iterable type added, mixed

* removed unnecessary function

* added assertions

* removed random int, added declare strict types

* added aoi test and marked as skipped

* Finishing the API test for point delta validation

* cs fixer

* Adding missing trait so the the Point entity implements the interface methods

* The namespace does not have to be set as it's the same with the namespace of the entity

* Adding missing type for the uuid property and setting a value to avoid errors when someone calls getter before setter

* Actually, I will remove the uuid interface as it's part of another PR and does not make sense adding it in this one.

It is confusing adding the new property without the column and migration.

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

* Tag import fix (#11220)

* MAUT-1666 / Bug fixed: ArrayCollection to array

* MAUT-1666 / Test ArrayCollection as input

* MAUT-1666 / Instance of ArrayCollection

* add test cases

* Refactoring a test to use way less mocks

* CS fix

Co-authored-by: Lukas Sykora <lukas.sykora@acquia.com>
Co-authored-by: Saurabh Gupta <saurabh.gupta@acquia.com>

* Changing Rector config to the new format (#11227)

* Changing Rector config to the new format

* CS Fix

* docs: add uzegonemad as a contributor for code (#11244)

* docs: update README.md [skip ci]

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

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

* Code mode fix (#11221)

* When checking current theme, make sure we don't overwrite mautic_code_mode templates

* Add test for checking mautic_code_mode

Co-authored-by: Donald Gilbert <don@dongilbert.net>

* docs: add pety-dc as a contributor for code (#11246)

* docs: update README.md [skip ci]

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

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

* docs: add IrisAmrein as a contributor for userTesting (#11247)

* docs: update README.md [skip ci]

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

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

* flip array returned by getDateChoices (#11233)

* docs: add poweriguana as a contributor for userTesting (#11223)

* docs: update README.md [skip ci]

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

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

* flip array returned by getDateChoices

While originally the method return the values in a [label => value] manner, it's clear from both CampaignEventLeadFieldValueType::buildForm and AjaxController::updateLeadFieldValuesAction that it should be flipped, because both of them adds a custom option in [value => Label] manner

This bug prevents date operator in Contact Field Value type Campaign Condition from working properly

Fixes issue #3180

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

* Fix normalize value for boolean contact field (#11235)

* Fix normalize value for boolean

* Add more unit tests

* Fix PHP Stan

* Fix unit tests

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

* Bump guzzlehttp/guzzle from 7.4.2 to 7.4.4 (#11241)

Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.4.2 to 7.4.4.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.4.2...7.4.4)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: indirect
...

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

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

* docs: add poweriguana as a contributor for projectManagement (#11263)

* docs: update README.md [skip ci]

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

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

* Do not perform delete queries on the sync tables for anonymous contacts (#11262)

* Do not perform delete queries on the sync tables for anonymous contacts

* Test fix, STAN fix

* Do not retry all objects if one of them should be retried. Retry only the right one(s) (#11252)

* Do not retry all objects if one of them should be retried. Retry only the right one(s)

* STAN fix

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

* Bump guzzlehttp/guzzle from 7.4.4 to 7.4.5 (#11274)

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](https://github.com/guzzle/guzzle/compare/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>

* Disable default values (#11250)

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

* Update assets

* Bump to 4.4.0 stable

* Merging 4.4 into 5.x (#11302)

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

* Up…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Issues or PR's relating to bugs cla-signed The PR contributors have signed the contributors agreement pending-test-confirmation PR's that require one test before they can be merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants