diff --git a/assets/js/src/subscribers/list.jsx b/assets/js/src/subscribers/list.jsx index c1cec08a35..e64011d18b 100644 --- a/assets/js/src/subscribers/list.jsx +++ b/assets/js/src/subscribers/list.jsx @@ -106,6 +106,9 @@ const bulk_actions = [ return !!( !segment.deleted_at && segment.type === 'default' ); + }, + getLabel: function (segment) { + return segment.name + ' (' + segment.subscribers + ')'; } }; @@ -137,6 +140,9 @@ const bulk_actions = [ return !!( !segment.deleted_at && segment.type === 'default' ); + }, + getLabel: function (segment) { + return segment.name + ' (' + segment.subscribers + ')'; } }; @@ -168,6 +174,9 @@ const bulk_actions = [ return !!( segment.type === 'default' ); + }, + getLabel: function (segment) { + return segment.name + ' (' + segment.subscribers + ')'; } }; diff --git a/lib/Config/Menu.php b/lib/Config/Menu.php index bcea12b3b5..c613b66233 100644 --- a/lib/Config/Menu.php +++ b/lib/Config/Menu.php @@ -325,7 +325,7 @@ class Menu { ? (int)$listing_per_page : Listing\Handler::DEFAULT_LIMIT_PER_PAGE; - $data['segments'] = Segment::findArray(); + $data['segments'] = Segment::getSegmentsWithSubscriberCount(); $data['custom_fields'] = array_map(function($field) { $field['params'] = unserialize($field['params']); diff --git a/lib/Models/Segment.php b/lib/Models/Segment.php index bd7efbe3ab..05055b281b 100644 --- a/lib/Models/Segment.php +++ b/lib/Models/Segment.php @@ -126,18 +126,19 @@ class Segment extends Model { static function getSegmentsWithSubscriberCount() { return self::selectMany(array(self::$_table.'.id', self::$_table.'.name')) - ->select_expr( - 'COUNT('.MP_SUBSCRIBER_SEGMENT_TABLE.'.subscriber_id)', 'subscribers' + ->selectExpr( + self::$_table.'.*, COUNT('.MP_SUBSCRIBER_SEGMENT_TABLE.'.subscriber_id) `subscribers`' ) - ->left_outer_join( + ->leftOuterJoin( MP_SUBSCRIBER_SEGMENT_TABLE, array(self::$_table.'.id', '=', MP_SUBSCRIBER_SEGMENT_TABLE.'.segment_id')) - ->left_outer_join( + ->leftOuterJoin( MP_SUBSCRIBERS_TABLE, array(MP_SUBSCRIBER_SEGMENT_TABLE.'.subscriber_id', '=', MP_SUBSCRIBERS_TABLE.'.id')) ->whereNull(MP_SUBSCRIBERS_TABLE.'.deleted_at') - ->group_by(self::$_table.'.id') - ->group_by(self::$_table.'.name') + ->groupBy(self::$_table.'.id') + ->groupBy(self::$_table.'.name') + ->orderByAsc(self::$_table.'.name') ->where(self::$_table.'.type', 'default') ->whereNull(self::$_table.'.deleted_at') ->findArray();