Add loading tags into subscriber edit form
[MAILPOET-4440]
This commit is contained in:
@ -92,6 +92,7 @@ class SubscribersResponseBuilder {
|
||||
'count_confirmations' => $subscriberEntity->getConfirmationsCount(),
|
||||
'unsubscribe_token' => $subscriberEntity->getUnsubscribeToken(),
|
||||
'link_token' => $subscriberEntity->getLinkToken(),
|
||||
'tags' => $this->buildTags($subscriberEntity),
|
||||
];
|
||||
|
||||
return $this->buildCustomFields($subscriberEntity, $data);
|
||||
@ -153,6 +154,25 @@ class SubscribersResponseBuilder {
|
||||
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
|
||||
*/
|
||||
|
@ -6,6 +6,7 @@ use MailPoet\AdminPages\PageRenderer;
|
||||
use MailPoet\Cache\TransientCache;
|
||||
use MailPoet\Config\Installer;
|
||||
use MailPoet\Config\ServicesChecker;
|
||||
use MailPoet\Entities\TagEntity;
|
||||
use MailPoet\Form\Block;
|
||||
use MailPoet\Listing\PageLimit;
|
||||
use MailPoet\Models\CustomField;
|
||||
@ -13,6 +14,7 @@ use MailPoet\Segments\SegmentsSimpleListRepository;
|
||||
use MailPoet\Services\Bridge;
|
||||
use MailPoet\Settings\TrackingConfig;
|
||||
use MailPoet\Subscribers\ConfirmationEmailMailer;
|
||||
use MailPoet\Tags\TagRepository;
|
||||
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
|
||||
use MailPoet\Util\License\License;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
@ -40,6 +42,9 @@ class Subscribers {
|
||||
/** @var SegmentsSimpleListRepository */
|
||||
private $segmentsListRepository;
|
||||
|
||||
/** @var TagRepository */
|
||||
private $tagRepository;
|
||||
|
||||
/** @var TransientCache */
|
||||
private $transientCache;
|
||||
|
||||
@ -54,6 +59,7 @@ class Subscribers {
|
||||
ServicesChecker $servicesChecker,
|
||||
Block\Date $dateBlock,
|
||||
SegmentsSimpleListRepository $segmentsListRepository,
|
||||
TagRepository $tagRepository,
|
||||
TransientCache $transientCache,
|
||||
TrackingConfig $trackingConfig
|
||||
) {
|
||||
@ -64,6 +70,7 @@ class Subscribers {
|
||||
$this->dateBlock = $dateBlock;
|
||||
$this->servicesChecker = $servicesChecker;
|
||||
$this->segmentsListRepository = $segmentsListRepository;
|
||||
$this->tagRepository = $tagRepository;
|
||||
$this->transientCache = $transientCache;
|
||||
$this->trackingConfig = $trackingConfig;
|
||||
}
|
||||
@ -80,6 +87,13 @@ class Subscribers {
|
||||
$data['items_per_page'] = $this->listingPageLimit->getLimitPerPage('subscribers');
|
||||
$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) {
|
||||
$field['params'] = unserialize($field['params']);
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
var mailpoet_listing_per_page = <%= items_per_page %>;
|
||||
var mailpoet_segments = <%= json_encode(segments) %>;
|
||||
var mailpoet_custom_fields = <%= json_encode(custom_fields) %>;
|
||||
var mailpoet_tags = <%= json_encode(tags) %>;
|
||||
var mailpoet_month_names = <%= json_encode(month_names) %>;
|
||||
var mailpoet_date_formats = <%= json_encode(date_formats) %>;
|
||||
var mailpoet_premium_active = <%= json_encode(premium_plugin_active) %>;
|
||||
|
Reference in New Issue
Block a user