Load list of segments on form editor page using doctrine

[MAILPOET-3164]
This commit is contained in:
Rostislav Wolny
2021-01-15 16:37:35 +01:00
committed by Veljko V
parent 09fa34f6e6
commit ade48fc359
2 changed files with 17 additions and 4 deletions

View File

@ -7,6 +7,7 @@ use MailPoet\API\JSON\ResponseBuilders\CustomFieldsResponseBuilder;
use MailPoet\Config\Localizer;
use MailPoet\CustomFields\CustomFieldsRepository;
use MailPoet\Entities\FormEntity;
use MailPoet\Entities\SegmentEntity;
use MailPoet\Form\Block;
use MailPoet\Form\FormFactory;
use MailPoet\Form\Renderer as FormRenderer;
@ -74,9 +75,9 @@ use MailPoet\Form\Templates\Templates\Template7Widget;
use MailPoet\Form\Util\CustomFonts;
use MailPoet\Form\Util\Export;
use MailPoet\Models\Form;
use MailPoet\Models\Segment;
use MailPoet\Router\Endpoints\FormPreview;
use MailPoet\Router\Router;
use MailPoet\Segments\SegmentSubscribersRepository;
use MailPoet\Settings\Pages;
use MailPoet\Settings\UserFlagsController;
use MailPoet\WP\AutocompletePostListLoader as WPPostListLoader;
@ -116,6 +117,9 @@ class FormEditor {
/** @var WPPostListLoader */
private $wpPostListLoader;
/** @var SegmentSubscribersRepository */
private $segmentSubscribersRepository;
private $activeTemplates = [
FormEntity::DISPLAY_TYPE_POPUP => [
Template1Popup::ID,
@ -200,7 +204,8 @@ class FormEditor {
Localizer $localizer,
UserFlagsController $userFlags,
WPPostListLoader $wpPostListLoader,
TemplateRepository $templateRepository
TemplateRepository $templateRepository,
SegmentSubscribersRepository $segmentSubscribersRepository
) {
$this->pageRenderer = $pageRenderer;
$this->customFieldsRepository = $customFieldsRepository;
@ -213,6 +218,7 @@ class FormEditor {
$this->templatesRepository = $templateRepository;
$this->userFlags = $userFlags;
$this->wpPostListLoader = $wpPostListLoader;
$this->segmentSubscribersRepository = $segmentSubscribersRepository;
}
public function render() {
@ -234,7 +240,7 @@ class FormEditor {
'shortcode' => Export::get('shortcode', $form),
],
'mailpoet_pages' => Pages::getMailPoetPages(),
'segments' => Segment::getSegmentsWithSubscriberCount(),
'segments' => $this->segmentSubscribersRepository->getSimpleSegmentListWithSubscribersCounts(SegmentEntity::TYPE_DEFAULT),
'styles' => $this->formRenderer->getCustomStyles($form),
'date_types' => array_map(function ($label, $value) {
return [