Add loading tags into subscriber edit form
[MAILPOET-4440]
This commit is contained in:
@ -92,6 +92,7 @@ class SubscribersResponseBuilder {
|
|||||||
'count_confirmations' => $subscriberEntity->getConfirmationsCount(),
|
'count_confirmations' => $subscriberEntity->getConfirmationsCount(),
|
||||||
'unsubscribe_token' => $subscriberEntity->getUnsubscribeToken(),
|
'unsubscribe_token' => $subscriberEntity->getUnsubscribeToken(),
|
||||||
'link_token' => $subscriberEntity->getLinkToken(),
|
'link_token' => $subscriberEntity->getLinkToken(),
|
||||||
|
'tags' => $this->buildTags($subscriberEntity),
|
||||||
];
|
];
|
||||||
|
|
||||||
return $this->buildCustomFields($subscriberEntity, $data);
|
return $this->buildCustomFields($subscriberEntity, $data);
|
||||||
@ -153,6 +154,25 @@ class SubscribersResponseBuilder {
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function buildTags(SubscriberEntity $subscriber): array {
|
||||||
|
$result = [];
|
||||||
|
foreach ($subscriber->getSubscriberTags() as $subscriberTag) {
|
||||||
|
$tag = $subscriberTag->getTag();
|
||||||
|
if (!$tag) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$result[] = [
|
||||||
|
'id' => $subscriberTag->getId(),
|
||||||
|
'subscriber_id' => (string)$subscriber->getId(),
|
||||||
|
'tag_id' => (string)$tag->getId(),
|
||||||
|
'created_at' => ($createdAt = $subscriberTag->getCreatedAt()) ? $createdAt->format(self::DATE_FORMAT) : null,
|
||||||
|
'updated_at' => $subscriberTag->getUpdatedAt()->format(self::DATE_FORMAT),
|
||||||
|
'name' => $tag->getName(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param SubscriberEntity[] $subscribers
|
* @param SubscriberEntity[] $subscribers
|
||||||
*/
|
*/
|
||||||
|
@ -6,6 +6,7 @@ use MailPoet\AdminPages\PageRenderer;
|
|||||||
use MailPoet\Cache\TransientCache;
|
use MailPoet\Cache\TransientCache;
|
||||||
use MailPoet\Config\Installer;
|
use MailPoet\Config\Installer;
|
||||||
use MailPoet\Config\ServicesChecker;
|
use MailPoet\Config\ServicesChecker;
|
||||||
|
use MailPoet\Entities\TagEntity;
|
||||||
use MailPoet\Form\Block;
|
use MailPoet\Form\Block;
|
||||||
use MailPoet\Listing\PageLimit;
|
use MailPoet\Listing\PageLimit;
|
||||||
use MailPoet\Models\CustomField;
|
use MailPoet\Models\CustomField;
|
||||||
@ -13,6 +14,7 @@ use MailPoet\Segments\SegmentsSimpleListRepository;
|
|||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\Bridge;
|
||||||
use MailPoet\Settings\TrackingConfig;
|
use MailPoet\Settings\TrackingConfig;
|
||||||
use MailPoet\Subscribers\ConfirmationEmailMailer;
|
use MailPoet\Subscribers\ConfirmationEmailMailer;
|
||||||
|
use MailPoet\Tags\TagRepository;
|
||||||
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
||||||
use MailPoet\Util\License\License;
|
use MailPoet\Util\License\License;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
@ -40,6 +42,9 @@ class Subscribers {
|
|||||||
/** @var SegmentsSimpleListRepository */
|
/** @var SegmentsSimpleListRepository */
|
||||||
private $segmentsListRepository;
|
private $segmentsListRepository;
|
||||||
|
|
||||||
|
/** @var TagRepository */
|
||||||
|
private $tagRepository;
|
||||||
|
|
||||||
/** @var TransientCache */
|
/** @var TransientCache */
|
||||||
private $transientCache;
|
private $transientCache;
|
||||||
|
|
||||||
@ -54,6 +59,7 @@ class Subscribers {
|
|||||||
ServicesChecker $servicesChecker,
|
ServicesChecker $servicesChecker,
|
||||||
Block\Date $dateBlock,
|
Block\Date $dateBlock,
|
||||||
SegmentsSimpleListRepository $segmentsListRepository,
|
SegmentsSimpleListRepository $segmentsListRepository,
|
||||||
|
TagRepository $tagRepository,
|
||||||
TransientCache $transientCache,
|
TransientCache $transientCache,
|
||||||
TrackingConfig $trackingConfig
|
TrackingConfig $trackingConfig
|
||||||
) {
|
) {
|
||||||
@ -64,6 +70,7 @@ class Subscribers {
|
|||||||
$this->dateBlock = $dateBlock;
|
$this->dateBlock = $dateBlock;
|
||||||
$this->servicesChecker = $servicesChecker;
|
$this->servicesChecker = $servicesChecker;
|
||||||
$this->segmentsListRepository = $segmentsListRepository;
|
$this->segmentsListRepository = $segmentsListRepository;
|
||||||
|
$this->tagRepository = $tagRepository;
|
||||||
$this->transientCache = $transientCache;
|
$this->transientCache = $transientCache;
|
||||||
$this->trackingConfig = $trackingConfig;
|
$this->trackingConfig = $trackingConfig;
|
||||||
}
|
}
|
||||||
@ -80,6 +87,13 @@ class Subscribers {
|
|||||||
$data['items_per_page'] = $this->listingPageLimit->getLimitPerPage('subscribers');
|
$data['items_per_page'] = $this->listingPageLimit->getLimitPerPage('subscribers');
|
||||||
$data['segments'] = $this->segmentsListRepository->getListWithSubscribedSubscribersCounts();
|
$data['segments'] = $this->segmentsListRepository->getListWithSubscribedSubscribersCounts();
|
||||||
|
|
||||||
|
$data['tags'] = array_map(function (TagEntity $tag): array {
|
||||||
|
return [
|
||||||
|
'id' => $tag->getId(),
|
||||||
|
'name' => $tag->getName(),
|
||||||
|
];
|
||||||
|
}, $this->tagRepository->findAll());
|
||||||
|
|
||||||
$data['custom_fields'] = array_map(function($field) {
|
$data['custom_fields'] = array_map(function($field) {
|
||||||
$field['params'] = unserialize($field['params']);
|
$field['params'] = unserialize($field['params']);
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
var mailpoet_listing_per_page = <%= items_per_page %>;
|
var mailpoet_listing_per_page = <%= items_per_page %>;
|
||||||
var mailpoet_segments = <%= json_encode(segments) %>;
|
var mailpoet_segments = <%= json_encode(segments) %>;
|
||||||
var mailpoet_custom_fields = <%= json_encode(custom_fields) %>;
|
var mailpoet_custom_fields = <%= json_encode(custom_fields) %>;
|
||||||
|
var mailpoet_tags = <%= json_encode(tags) %>;
|
||||||
var mailpoet_month_names = <%= json_encode(month_names) %>;
|
var mailpoet_month_names = <%= json_encode(month_names) %>;
|
||||||
var mailpoet_date_formats = <%= json_encode(date_formats) %>;
|
var mailpoet_date_formats = <%= json_encode(date_formats) %>;
|
||||||
var mailpoet_premium_active = <%= json_encode(premium_plugin_active) %>;
|
var mailpoet_premium_active = <%= json_encode(premium_plugin_active) %>;
|
||||||
|
Reference in New Issue
Block a user