Merge "Add default params to avoid massive if/else block"

This commit is contained in:
jenkins-bot 2013-04-05 20:22:10 +00:00 committed by Gerrit Code Review
commit 8650c73b05
2 changed files with 99 additions and 85 deletions

View file

@ -133,6 +133,7 @@ $3',
'echo-email-body-default' => 'You have a new notification at {{SITENAME}}: 'echo-email-body-default' => 'You have a new notification at {{SITENAME}}:
$1', $1',
'echo-email-batch-body-default' => 'You have a new notification',
'echo-email-footer-default' => '$2 'echo-email-footer-default' => '$2
To control which emails we send you, visit: To control which emails we send you, visit:
@ -455,6 +456,7 @@ The new notification count next to notification link, for example: 99+
'echo-email-subject-default' => 'Default subject for Echo e-mail notifications', 'echo-email-subject-default' => 'Default subject for Echo e-mail notifications',
'echo-email-body-default' => 'Default message content for Echo e-mail notifications. 'echo-email-body-default' => 'Default message content for Echo e-mail notifications.
* $1 is a plain text description of the notification.', * $1 is a plain text description of the notification.',
'echo-email-batch-body-default' => 'Default message for Echo e-mail digest notifications',
'echo-email-footer-default' => 'Default footer content for Echo e-mail notifications. Parameters: 'echo-email-footer-default' => 'Default footer content for Echo e-mail notifications. Parameters:
* $1 is the address of the organization that sent the e-mail * $1 is the address of the organization that sent the e-mail
* $2 is "-------..." ({{msg-mw|echo-email-batch-separator}})', * $2 is "-------..." ({{msg-mw|echo-email-batch-separator}})',

View file

@ -6,14 +6,49 @@
* in all the internal method * in all the internal method
*/ */
class EchoBasicFormatter extends EchoNotificationFormatter { class EchoBasicFormatter extends EchoNotificationFormatter {
protected $messageKey = false;
protected $messageParams = false; /**
* Required parameters
* @param array
*/
protected $requiredParameters = array( protected $requiredParameters = array(
'title-message', 'title-message',
'title-params', 'title-params'
); );
protected $title, $flyoutTitle, $bundleTitle, $content, $email, $icon; /**
* Notification title data for archive page
* @param array
*/
protected $title;
/**
* Notification title data for flyout
* @param array
*/
protected $flyoutTitle;
/**
* Notification title data for bundling ( flyout and archive page )
*/
protected $bundleTitle;
/**
* @Todo Check if this varaible can be removed
*/
protected $content;
/**
* Notification email data
* @param array
*/
protected $email;
/**
* Notification icon for each type
* @param string
*/
protected $icon;
/** /**
* Data for constructing bundle message, data in this array * Data for constructing bundle message, data in this array
@ -27,94 +62,71 @@ class EchoBasicFormatter extends EchoNotificationFormatter {
public function __construct( $params ) { public function __construct( $params ) {
parent::__construct( $params ); parent::__construct( $params );
$this->title = $this->flyoutTitle = $this->bundleTitle = array(); // Title for archive page
$this->title = array(
'message' => $params['title-message'],
'params' => $params['title-params']
);
if ( isset( $params['flyout-message'] ) && isset( $params['flyout-params'] ) ) { // Set up default params if one is missing
$this->flyoutTitle['message'] = $params['flyout-message']; $params += $this->getDefaultParams();
$this->flyoutTitle['params'] = $params['flyout-params'];
} else { // Title for the flyout
$this->flyoutTitle['message'] = $params['title-message']; $this->flyoutTitle = array(
$this->flyoutTitle['params'] = $params['title-params']; 'message' => $params['flyout-message'],
} 'params' => $params['flyout-params']
);
if ( isset( $params['bundle-message'] ) ) { // Bundle title for both archive page and flyout
$this->bundleTitle['message'] = $params['bundle-message']; $this->bundleTitle = array(
if ( isset( $params['bundle-params'] ) ) { 'message' => $params['bundle-message'],
$this->bundleTitle['params'] = $params['bundle-params']; 'params' => $params['bundle-params']
} else { );
$this->bundleTitle['params'] = array();
}
}
$this->title['message'] = $params['title-message']; // Notification payload data, eg, summary
$this->title['params'] = $params['title-params']; $this->payload = $params['payload'];
$this->payload = array();
if ( isset( $params['payload'] ) ) { // Notification email subject and body
$this->payload = $params['payload']; $this->email = array(
} 'subject' => array(
'message' => $params['email-subject-message'],
'params' => $params['email-subject-params']
),
'body' => array(
'message' => $params['email-body-message'],
'params' => $params['email-body-params']
),
'batch-body' => array(
'message' => $params['email-body-batch-message'],
'params' => $params['email-body-batch-params']
)
);
$this->email = array(); // Notification icon for the event type
if ( isset( $params['email-subject-message'] ) ) { $this->icon = $params['icon'];
$this->email['subject'] = array();
$this->email['subject']['message'] = $params['email-subject-message'];
if ( isset( $params['email-subject-params'] ) ) { }
$this->email['subject']['params'] = $params['email-subject-params'];
} else {
$this->email['subject']['params'] = array();
}
} else {
$this->email = array(
'subject' => array(
'message' => 'echo-email-subject-default',
'params' => array(),
),
'body' => array(
'message' => 'echo-email-body-default',
'params' => array(
'text-notification',
),
),
);
}
if ( isset( $params['email-body-message'] ) ) {
$this->email['body'] = array();
$this->email['body']['message'] = $params['email-body-message'];
if ( isset( $params['email-body-params'] ) ) {
$this->email['body']['params'] = $params['email-body-params'];
} else {
$this->email['body']['params'] = array( 'text-notification' );
}
} else {
$this->email['body'] = array(
'message' => 'echo-email-body-default',
'params' => array(
'text-notification',
),
);
}
$this->email['batch-body'] = array();
if ( isset( $params['email-body-batch-message'] ) ) {
$this->email['batch-body']['message'] = $params['email-body-batch-message'];
if ( isset( $params['email-body-batch-params'] ) ) {
$this->email['batch-body']['params'] = $params['email-body-batch-params'];
} else {
$this->email['batch-body']['params'] = array();
}
} else {
$this->email['batch-body'] = $this->email['body'];
}
if ( isset( $params['icon'] ) ) {
$this->icon = $params['icon'];
} else {
$this->icon = 'placeholder';
}
/**
* Internal function that returns notification default params
*
* @return array
*/
protected function getDefaultParams() {
return array(
'flyout-message' => $this->title['message'],
'flyout-params' => $this->title['params'],
'bundle-message' => '',
'bundle-params' => array(),
'payload' => array(),
'email-subject-message' => 'echo-email-subject-default',
'email-subject-params' => array(),
'email-body-message' => 'echo-email-body-default',
'email-body-params' => array( 'text-notification' ),
'email-body-batch-message' => 'echo-email-batch-body-default',
'email-body-batch-params' => array(),
'icon' => 'placeholder'
);
} }
/** /**