Skip to content
Snippets Groups Projects
Commit 0cb710cb authored by Jay Friendly's avatar Jay Friendly Committed by Jay Friendly
Browse files

Issue #2975996 by mike82, Jaypan: Allow choosing the view mode for the Private...

Issue #2975996 by mike82, Jaypan: Allow choosing the view mode for the Private Message Messages formatter
parent d79399bf
No related branches found
Tags 1.0.2
No related merge requests found
......@@ -51,6 +51,9 @@ field.formatter.settings.private_message_thread_message_formatter:
ajax_refresh_rate:
type: integer
label: 'The number of seconds between ajax checks for new messages'
view_mode:
type: string
label: 'The view mode used to render private messages'
field.widget.settings.private_message_thread_member_widget:
type: mapping
......
......@@ -132,6 +132,7 @@ class PrivateMessageThreadMessageFormatter extends FormatterBase implements Cont
'ajax_previous_load_count' => 5,
'message_order' => 'asc',
'ajax_refresh_rate' => 20,
'view_mode' => 'default',
] + parent::defaultSettings();
}
......@@ -142,7 +143,7 @@ class PrivateMessageThreadMessageFormatter extends FormatterBase implements Cont
$summary = [];
$settings = $this->getSettings();
$summary['thread_count'] = $this->t('Number of messages to show on load: @count', ['@count' => $settings['message_count']]);
$summary['message_count'] = $this->t('Number of threads to show on load: @count', ['@count' => $settings['message_count']]);
$summary['ajax_previous_load_count'] = $this->t('Number of threads to show when clicking load previous: @count', ['@count' => $settings['ajax_previous_load_count']]);
$summary['message_order'] = $this->t('Order of messages: @order', ['@order' => $this->translateKey('order', $settings['message_order'])]);
if ($settings['ajax_refresh_rate']) {
......@@ -152,6 +153,8 @@ class PrivateMessageThreadMessageFormatter extends FormatterBase implements Cont
$summary['ajax_refresh_rate'] = $this->t('Ajax refresh rate: Ajax refresh disabled');
}
$summary['view_mode'] = $this->t('Private Message View Mode: @view_mode', ['@view_mode' => $settings['view_mode']]);
return $summary;
}
......@@ -191,6 +194,14 @@ class PrivateMessageThreadMessageFormatter extends FormatterBase implements Cont
'#default_value' => $this->getSetting('message_order'),
];
$view_modes = \Drupal::entityManager()->getViewModeOptions('private_message', TRUE);
$element['view_mode'] = [
'#type' => 'select',
'#title' => $this->t('Private Message view mode'),
'#options' => $view_modes,
'#default_value' => $this->getSetting('view_mode'),
];
return $element;
}
......@@ -214,7 +225,7 @@ class PrivateMessageThreadMessageFormatter extends FormatterBase implements Cont
$messages = array_slice($messages, -1 * $this->getSetting('message_count'));
foreach ($messages as $message) {
$element[$message->id()] = $view_builder->view($message, 'full');
$element[$message->id()] = $view_builder->view($message, $this->getSetting('view_mode'));
}
if ($this->getSetting('message_order') == 'desc') {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment