diff --git a/assets/js/src/subscribers/form.jsx b/assets/js/src/subscribers/form.jsx index 42c5097401..78d504ccc8 100644 --- a/assets/js/src/subscribers/form.jsx +++ b/assets/js/src/subscribers/form.jsx @@ -75,6 +75,9 @@ define( filter: function(segment) { return !!(!segment.deleted_at && segment.type === 'default'); }, + getLabel: function(segment) { + return segment.name + ' ('+ segment.subscribers +')'; + }, getSearchLabel: function(segment, subscriber) { let label = ''; diff --git a/lib/Config/Menu.php b/lib/Config/Menu.php index d8f181b7e5..f2dc0164ed 100644 --- a/lib/Config/Menu.php +++ b/lib/Config/Menu.php @@ -259,7 +259,7 @@ class Menu { $data = array( 'settings' => $settings, - 'segments' => Segment::getPublic()->findArray(), + 'segments' => Segment::getSegmentsWithSubscriberCount(), 'cron_trigger' => CronTrigger::getAvailableMethods(), 'pages' => Pages::getAll(), 'flags' => $flags, @@ -303,7 +303,7 @@ class Menu { $data = array(); $data['items_per_page'] = $this->getLimitPerPage('subscribers'); - $data['segments'] = Segment::findArray(); + $data['segments'] = Segment::getSegmentsWithSubscriberCount($type = false); $data['custom_fields'] = array_map(function($field) { $field['params'] = unserialize($field['params']); @@ -416,7 +416,7 @@ class Menu { $data = array( 'form' => $form, 'pages' => Pages::getAll(), - 'segments' => Segment::getPublic()->findArray(), + 'segments' => Segment::getSegmentsWithSubscriberCount(), 'styles' => FormRenderer::getStyles($form), 'date_types' => Block\Date::getDateTypes(), 'date_formats' => Block\Date::getDateFormats(), diff --git a/lib/Models/Segment.php b/lib/Models/Segment.php index 567cf197ec..90099502ae 100644 --- a/lib/Models/Segment.php +++ b/lib/Models/Segment.php @@ -143,7 +143,13 @@ class Segment extends Model { $query = self::selectMany(array(self::$_table.'.id', self::$_table.'.name')) ->selectExpr( self::$_table.'.*, ' . - 'COUNT(IF('.MP_SUBSCRIBER_SEGMENT_TABLE.'.status="' . Subscriber::STATUS_SUBSCRIBED .'" AND '.MP_SUBSCRIBERS_TABLE.'.deleted_at IS NULL,1,NULL)) `subscribers`' + 'COUNT(IF('. + MP_SUBSCRIBER_SEGMENT_TABLE.'.status="'.Subscriber::STATUS_SUBSCRIBED.'"' + .' AND '. + MP_SUBSCRIBERS_TABLE.'.deleted_at IS NULL' + .' AND '. + MP_SUBSCRIBERS_TABLE.'.status="'.Subscriber::STATUS_SUBSCRIBED.'"' + .', 1, NULL)) `subscribers`' ) ->leftOuterJoin( MP_SUBSCRIBER_SEGMENT_TABLE, diff --git a/views/form/editor.html b/views/form/editor.html index 3cf91f8dc0..e6303f91e0 100644 --- a/views/form/editor.html +++ b/views/form/editor.html @@ -58,7 +58,7 @@ required > <% for segment in segments %> - + <% endfor %> diff --git a/views/settings/basics.html b/views/settings/basics.html index 4736949de8..d1d0fd509f 100644 --- a/views/settings/basics.html +++ b/views/settings/basics.html @@ -132,7 +132,7 @@ <% if(segment.id in settings.subscribe.on_comment.segments) %> selected="selected" <% endif %> - ><%= segment.name %> + ><%= segment.name %> (<%= segment.subscribers %>) <% endfor %>

@@ -196,7 +196,7 @@ <% if(segment.id in settings.subscribe.on_register.segments) %> selected="selected" <% endif %> - ><%= segment.name %> + ><%= segment.name %> (<%= segment.subscribers %>) <% endfor %>

@@ -257,7 +257,7 @@ <% if(segment.id in settings.subscription.segments) %> selected="selected" <% endif %> - ><%= segment.name %> + ><%= segment.name %> (<%= segment.subscribers %>) <% endfor %>

@@ -330,7 +330,7 @@ multiple > <% for segment in segments %> - + <% endfor %>

@@ -366,7 +366,7 @@ multiple > <% for segment in segments %> - + <% endfor %>