Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
95 lines
7.8 KiB
Handlebars
95 lines
7.8 KiB
Handlebars
<tr id="recent_conversation:{{conversation_key}}" class="{{#unless (eq unread_count 0)}}unread_topic{{/unless}} {{#if is_private}}private_conversation_row{{/if}} recent-view-body-row recent_view_focusable {{#if is_archived}}recent-view-archived-channel-row{{/if}}" data-col-index="{{ column_indexes.topic }}" tabindex="0">
|
|
{{!-- TODO: Rename recent_topic_name to recent-view-conversation-column--}}
|
|
<td class="recent_topic_name">
|
|
<div class="recent-view-conversation-with-unread-wrapper">
|
|
<div class="recent-view-conversation-type-wrapper">
|
|
{{#if is_private}}
|
|
{{!-- For presence/group indicator --}}
|
|
<span class="pm_status_icon {{#unless is_group}}show-tooltip{{/unless}}" data-tippy-placement="top" data-user-ids-string="{{user_ids_string}}">
|
|
{{#if is_group}}
|
|
<span class="conversation-partners-icon zulip-icon zulip-icon-dm-groups-3"></span>
|
|
{{else if is_bot}}
|
|
<span class="zulip-icon zulip-icon-bot" aria-hidden="true"></span>
|
|
{{else}}
|
|
<span class="zulip-icon zulip-icon-{{user_circle_class}} {{user_circle_class}} user-circle" data-presence-indicator-user-id="{{user_ids_string}}"></span>
|
|
{{/if}}
|
|
</span>
|
|
{{else}}
|
|
<span class="stream-privacy-original-color-{{stream_id}} stream-privacy filter-icon" style="color: {{stream_color}}">
|
|
{{> stream_privacy . }}
|
|
</span>
|
|
{{/if}}
|
|
{{#if is_private}}
|
|
<a href="{{pm_url}}" class="recent-view-dm-name recent-view-table-link" tabindex="-1">{{t "DM" }}</a>
|
|
{{else}}
|
|
<a href="{{topic_url}}" class="recent-view-channel-name recent-view-table-link" data-tippy-content="{{stream_name}}" tabindex="-1">{{stream_name}}</a>
|
|
{{/if}}
|
|
</div>
|
|
<i class="zulip-icon zulip-icon-chevron-right"></i>
|
|
{{#if is_private}}
|
|
<a href="{{pm_url}}" class="recent-view-conversation-link recent-view-table-link {{#if is_group}}recent-view-dm-group{{else}}recent-view-dm{{/if}}" data-tippy-content="{{pm_users_as_plain}}" tabindex="-1">{{{rendered_pm_with_html}}}</a>
|
|
{{else}}
|
|
<a class="recent-view-conversation-link recent-view-table-link {{#if is_empty_string_topic}}empty-topic-display{{/if}}" data-tippy-content="{{topic_display_name}}" href="{{topic_url}}" tabindex="-1">{{topic_display_name}}</a>
|
|
{{/if}}
|
|
<div class="recent-view-unread-mention-and-count-wrapper">
|
|
{{#if is_private}}
|
|
<span class="unread_mention_info tippy-zulip-tooltip {{#unless has_unread_mention}}unread_hidden{{/unless}}"
|
|
data-tippy-content="{{t 'You have unread mentions' }}">@</span>
|
|
<div class="recent_topic_actions recent-view-unread-count-wrapper">
|
|
<span class="unread_count unread_count_pm recent-view-table-unread-count recent_view_focusable {{#if (eq unread_count 0)}}unread_hidden{{/if}} on_hover_topic_read" data-user-ids-string="{{user_ids_string}}" data-tippy-content="{{t 'Mark as read' }}" data-tippy-trigger="mouseenter" role="button" aria-label="{{t 'Mark as read' }}" data-col-index="{{ column_indexes.read }}" tabindex="0">{{unread_count}}</span>
|
|
</div>
|
|
{{else}}
|
|
<span class="unread_mention_info tippy-zulip-tooltip {{#unless mention_in_unread}}unread_hidden{{/unless}}"
|
|
data-tippy-content="{{t 'You have unread mentions'}}">@</span>
|
|
<div class="recent_topic_actions recent-view-unread-count-wrapper">
|
|
<span class="unread_count recent-view-table-unread-count hidden-for-spectators recent_view_focusable {{#if (eq unread_count 0)}}unread_hidden{{/if}} on_hover_topic_read" data-stream-id="{{stream_id}}" data-topic-name="{{topic}}" data-tippy-content="{{t 'Mark as read' }}" data-tippy-trigger="mouseenter" role="button" aria-label="{{t 'Mark as read' }}" data-col-index="{{ column_indexes.read }}" tabindex="0">{{unread_count}}</span>
|
|
</div>
|
|
{{/if}}
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td class='recent_topic_users'>
|
|
<ul class="recent_view_participants">
|
|
{{#unless (eq other_senders_count 0)}}
|
|
<li class="recent_view_participant_item tippy-zulip-tooltip" data-tooltip-template-id="recent_view_participant_overflow_tooltip:{{conversation_key}}">
|
|
<span class="recent_view_participant_overflow">+{{other_senders_count}}</span>
|
|
</li>
|
|
<template id="recent_view_participant_overflow_tooltip:{{conversation_key}}">{{{other_sender_names_html}}}</template>
|
|
{{/unless}}
|
|
{{#each senders}}
|
|
{{#if this.is_muted}}
|
|
<li class="recent_view_participant_item participant_profile tippy-zulip-tooltip" data-tippy-content="{{t 'Muted user'}}" data-user-id="{{this.user_id}}">
|
|
<span><i class="fa fa-user recent_view_participant_overflow"></i></span>
|
|
</li>
|
|
{{else}}
|
|
<li class="recent_view_participant_item participant_profile tippy-zulip-tooltip" data-tippy-content="{{this.full_name}}" data-user-id="{{this.user_id}}">
|
|
<img src="{{this.avatar_url_small}}" class="recent_view_participant_avatar" />
|
|
</li>
|
|
{{/if}}
|
|
{{/each}}
|
|
</ul>
|
|
</td>
|
|
<td class="recent_topic_timestamp">
|
|
<div class="flex_container">
|
|
<div class="last_msg_time tippy-zulip-tooltip" data-tippy-content="{{this.full_last_msg_date_time}}">
|
|
<a class="last-msg-link" href="{{last_msg_url}}" tabindex="-1">{{ last_msg_time }}</a>
|
|
</div>
|
|
{{#unless (or is_archived is_private)}}
|
|
<div class="recent_topic_actions hidden-for-spectators recent_view_focusable recent-view-topic-visibility" data-col-index="{{ column_indexes.mute }}" tabindex="0">
|
|
<span class="change_visibility_policy" data-stream-id="{{stream_id}}" data-topic-name="{{topic}}">
|
|
{{#if (eq visibility_policy all_visibility_policies.FOLLOWED)}}
|
|
<i class="zulip-icon zulip-icon-follow recipient_bar_icon visibility-status-icon" aria-label="{{t 'Topic actions menu' }}" aria-haspopup="true" data-stream-id="{{stream_id}}" data-topic-name="{{topic}}" data-topic-url="{{topic_url}}" data-tippy-content="{{t 'You follow this topic.'}}" role="button"></i>
|
|
{{else if (eq visibility_policy all_visibility_policies.UNMUTED)}}
|
|
<i class="zulip-icon zulip-icon-unmute recipient_bar_icon visibility-status-icon" aria-label="{{t 'Topic actions menu' }}" aria-haspopup="true" data-stream-id="{{stream_id}}" data-topic-name="{{topic}}" data-topic-url="{{topic_url}}" data-tippy-content="{{t 'You have unmuted this topic.'}}" role="button"></i>
|
|
{{else if (eq visibility_policy all_visibility_policies.MUTED)}}
|
|
<i class="zulip-icon zulip-icon-mute recipient_bar_icon visibility-status-icon" aria-label="{{t 'Topic actions menu' }}" aria-haspopup="true" data-stream-id="{{stream_id}}" data-topic-name="{{topic}}" data-topic-url="{{topic_url}}" data-tippy-content="{{t 'You have muted this topic.'}}" role="button"></i>
|
|
{{else}}
|
|
<i class="zulip-icon zulip-icon-more-vertical recent-view-row-topic-menu visibility-status-icon" aria-label="{{t 'Topic actions menu' }}" aria-haspopup="true" data-stream-id="{{stream_id}}" data-topic-name="{{topic}}" data-topic-url="{{topic_url}}" role="button"></i>
|
|
{{/if}}
|
|
</span>
|
|
</div>
|
|
{{/unless}}
|
|
</div>
|
|
</td>
|
|
</tr>
|