16 public function getIconType() {
17 return 'translate-mgs-icon';
20 public function getPrimaryLink() {
21 if ( $this->isBundled() ) {
25 $groupId = $this->
event->getExtraParam(
'groupId' );
27 'url' => SpecialPage::getTitleFor(
'Translate', $groupId )->getFullURL(),
28 'label' => $this->msg(
'notification-link-mgs-group-translate' )
29 ->params( $this->event->getExtraParam(
'groupLabel' ) )
33 public function getHeaderMessage() {
34 $msg = $this->msg(
'notification-header-message-group-subscription' );
35 $msg->params( $this->event->getExtraParam(
'groupLabel' ) );
39 public function getCompactHeaderMessageKey():
string {
40 $type = $this->
event->getType();
41 if ( $type ===
'translate-mgs-message-added' ) {
42 return 'notification-body-translate-mgs-message-added';
45 return parent::getCompactHeaderMessageKey();
48 public function getCompactHeaderMessage() {
49 $msg = $this->msg( $this->getCompactHeaderMessageKey() );
50 $msg->params( $this->getNumberOfChangedMessages() );
54 public function getBodyMessage() {
55 $type = $this->
event->getType();
56 if ( $type ===
'translate-mgs-message-added' ) {
57 if ( $this->isBundled() ) {
58 $events = $this->getBundledEvents();
59 $events[] = $this->event;
61 $events = [ $this->event ];
65 foreach ( $events as $event ) {
66 $changes = $event->getExtraParam(
'changes' );
67 $addedMessages += count( $changes[ MessageGroupSubscription::STATE_ADDED ] ?? [] );
70 $msg = $this->msg(
'notification-body-translate-mgs-message-added' );
71 $msg->params( $addedMessages );
76 public function getNumberOfChangedMessages():
int {
77 $changes = $this->
event->getExtraParam(
'changes' );
79 foreach ( $changes as $changeType ) {
80 $messageCount += count( $changeType );