mirror of
https://github.com/zulip/zulip.git
synced 2026-07-15 21:03:26 +08:00
This change will allow us to test the muting feature on
staging. Any topic named "muted" will automatically be
muted. You can also mute any other topic on the console:
muting.mute_topic('devel', 'ios');
current_msg_list.rerender();
More UI around this experiment will be coming soon, as well
as support for muting entire streams.
The muting module keeps track of which topics are muted, but a
user can expand muted messages, and once that happens, the
messages are marked with the "force_expand" flag that gets
persisted to the back end.
Muted messages are rendered in similar fashion to the summarized
rows, and as part of unifying some of that code, we have
made it so that expanding a summarized section doesn't remove
individual flags related to summaries; instead, the messages
get the force_expand flag set.
(imported from commit acee4190e63813d46850415c41ff8ebfae4a6953)
129 lines
6.0 KiB
Handlebars
129 lines
6.0 KiB
Handlebars
{{! Client-side Mustache template for rendering messages.}}
|
|
|
|
{{! Because we use table-layout: fixed for the Message table,
|
|
all the column widths are computed from the first row;
|
|
these CSS classes specify the widths for that first,
|
|
collapsed row. (Otherwise, colspan breaks everything).}}
|
|
{{#include_layout_row}}
|
|
<tr class="ztable_layout_row">
|
|
<td class="ztable_col1" />
|
|
<td class="ztable_col2" />
|
|
</tr>
|
|
{{/include_layout_row}}
|
|
|
|
{{#each messages}}
|
|
{{#with this}}
|
|
{{#include_bookend}}
|
|
<tr class="bookend_tr"><td colspan="2" class="bookend{{#if subscribed}} sub-unsub-message{{/if}}{{#if unsubscribed}} sub-unsub-message{{/if}}">
|
|
{{#if subscribed}}
|
|
<span>--- Subscribed to stream {{subscribed}} ---</span>
|
|
{{/if}}
|
|
{{#if unsubscribed}}
|
|
<span>--- Unsubscribed from stream {{unsubscribed}} ---</span>
|
|
{{/if}}
|
|
</td>
|
|
</tr>
|
|
{{/include_bookend}}
|
|
|
|
{{#if show_date}}
|
|
<tr class="date_row" data-zid="{{id}}"><td colspan="4">{{{show_date}}}</td></tr>
|
|
{{/if}}
|
|
|
|
{{#if is_summary}}
|
|
<tr zid="{{first_message_id}}" data-messages="{{message_ids}}" class="summary_row selectable_row{{#include_footer}} last_message{{/include_footer}}{{^is_stream}} summary_row_private_message{{/is_stream}}">
|
|
<td class="summary_colorblock" style="background-color: {{background_color}};">
|
|
<span class="pointer_icon"><i class="icon-vector-caret-right"></i></span>
|
|
</td>
|
|
<td class="message_header message_header_stream right_part">
|
|
<span class="message_label_clickable"><i class="icon-vector-expand-alt"></i>
|
|
{{#if is_stream}}
|
|
{{display_recipient}} <i class="icon-vector-narrow icon-vector-small"></i><span class="copy-paste-text">></span> {{subject}} ({{count}} {{summary_adjective}})
|
|
{{else}}
|
|
You and {{display_reply_to}} ({{count}} {{summary_adjective}})
|
|
{{/if}}
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
{{else}}
|
|
|
|
{{#include_recipient}}
|
|
{{#if is_stream}}
|
|
<tr zid="{{id}}" class="recipient_row">
|
|
<td class="message_header_colorblock" style="background-color: {{background_color}};"></td>
|
|
<td class="message_header message_header_stream right_part">
|
|
{{#if invite_only}}<i class="icon-vector-lock" title="This is an invite-only stream"></i>{{/if}}
|
|
<span class="message_label_clickable narrows_by_recipient stream_label"
|
|
title="Narrow to stream "{{display_recipient}}"">{{display_recipient}}</span>
|
|
<i class="icon-vector-narrow icon-vector-small"></i><span class="copy-paste-text">></span>
|
|
<span class="stream_topic">
|
|
<span class="message_label_clickable narrows_by_subject"
|
|
title="Narrow to stream "{{display_recipient}}", topic "{{subject}}"">{{#if ../../../../use_match_properties}}{{{match_subject}}}{{else}}{{subject}}{{/if}}</span>
|
|
{{#if empty_subject}}
|
|
<i class="icon-vector-pencil edit_subject"></i>
|
|
{{/if}}
|
|
{{#each subject_links}}<a href="{{this}}" target="_blank"><i class="icon-vector-external-link-sign"></i>{{/each}}
|
|
</span>
|
|
<span class="topic_edit">
|
|
<span class="topic_edit_form" id="{{id}}"></span>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
{{else}}
|
|
<tr zid="{{id}}" class="recipient_row">
|
|
<td class="message_header_colorblock message_header_private_message" style="background-color: {{background_color}};"></td>
|
|
<td class="message_header message_header_private_message right_part dark_background">
|
|
<span class="message_label_clickable narrows_by_recipient"
|
|
title="Narrow to your private messages with {{display_reply_to}}">
|
|
You and {{display_reply_to}}</span>
|
|
</td>
|
|
</tr>
|
|
{{/if}}
|
|
{{/include_recipient}}
|
|
<tr zid="{{id}}" id="{{dom_id}}"
|
|
class="message_row{{^is_stream}} private-message{{/is_stream}}{{#include_sender}} include-sender{{/include_sender}}{{#contains_mention}} mention{{/contains_mention}}{{#include_footer}} last_message{{/include_footer}}{{#unread}} unread{{/unread}} selectable_row">
|
|
<td class="messagebox_colorblock{{^is_stream}} message_header_private_message{{/is_stream}}" style="background-color: {{background_color}};"><span class="pointer_icon"><i class="icon-vector-caret-right"></i></span></td>
|
|
<td class="messagebox{{^include_sender}} prev_is_same_sender{{/include_sender}}{{^is_stream}} private-message{{/is_stream}}">
|
|
<div class="message_top_line">
|
|
<div class="unread_marker"></div>
|
|
{{#include_sender}}
|
|
<span class="message_sender sender_info_hover">
|
|
{{! See ../js/notifications.js for another user of avatar_url. }}
|
|
<div class="inline_profile_picture"
|
|
style="background-image: url('{{small_avatar_url}}');"/>
|
|
<span class="sender_name">{{sender_full_name}}</span>
|
|
</span>
|
|
{{/include_sender}}
|
|
<span class="message_time">{{timestr}}</span>
|
|
<div class="message_controls">
|
|
<div class="star">
|
|
<span class="message_star {{#if starred}}icon-vector-star{{else}}icon-vector-star empty-star{{/if}}"
|
|
title="{{#if starred}}Unstar{{else}}Star{{/if}} this message"></i>
|
|
</div>
|
|
<div class="info actions_hover">
|
|
<i class="icon-vector-chevron-down"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="message_content">{{#if ../../../use_match_properties}}{{{match_content}}}{{else}}{{{content}}}{{/if}}</div>
|
|
<div class="message_edit">
|
|
<div class="message_edit_form" id="{{id}}"></div>
|
|
</div>
|
|
<div class="message_expander message_length_controller" title="See the rest of this message">[More...]</div>
|
|
<div class="message_condenser message_length_controller" title="Make this message take up less space on the screen">[Condense this message]</div>
|
|
{{#if last_edit_timestr}}
|
|
<div class="message_edit_notice">Last edited: {{{last_edit_timestr}}}</div>
|
|
{{/if}}
|
|
</td>
|
|
</tr>
|
|
|
|
{{/if}}
|
|
{{/with}}
|
|
{{/each}}
|
|
|
|
{{#if trailing_bookend}}
|
|
<tr id="trailing_bookend" class="bookend_tr"><td colspan="2" class="bookend">
|
|
<center>{{trailing_bookend}}</center>
|
|
<span class="tiny"><p></p></span></td>
|
|
</tr>
|
|
{{/if}}
|