snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
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

This commit is contained in:
upstream-mirror
2026-09-15 15:05:30 +05:00
commit 64898b2c79
8999 changed files with 1757358 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
<div class="popover-menu" id="buddy-list-actions-menu-popover" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="link-item">
<label class="display-style-selector-header popover-menu-link" role="menuitem">
<span class="popover-menu-label">
{{t 'User list style' }}
</span>
</label>
</li>
{{#each (object_values display_style_options)}}
<li role="none" class="display-style-selector link-item" value="{{this.code}}">
<label class="popover-menu-link" role="menuitem" tabindex="0">
<input type="radio" class="user_list_style_choice" name="user_list_style" value="{{this.code}}"/>
<span class="popover-menu-label">{{this.description}}</span>
</label>
</li>
{{/each}}
{{#if can_invite_users}}
<li role="none" class="invite-user-link-item link-item">
<a class="invite-user-link popover-menu-link" role="menuitem" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-user-plus" aria-hidden="true"></i>
<span class="popover-menu-label">
{{t 'Invite users to organization' }}
</span>
</a>
</li>
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,31 @@
<div class="popover-menu visibility-policy-popover" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="popover-menu-list-item">
<div role="group" class="recipient-bar-topic-visibility-switcher tab-picker tab-picker-vertical" aria-label="{{t 'Topic visibility' }}">
<input type="radio" id="select-muted-policy" class="tab-option" name="visibility-policy-select" data-visibility-policy="{{all_visibility_policies.MUTED}}" {{#if (eq visibility_policy all_visibility_policies.MUTED)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content" for="select-muted-policy" tabindex="0">
<i class="zulip-icon zulip-icon-mute" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mute"}}</span>
</label>
<input type="radio" id="select-inherit-policy" class="tab-option" name="visibility-policy-select" data-visibility-policy="{{all_visibility_policies.INHERIT}}" {{#if (eq visibility_policy all_visibility_policies.INHERIT)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content" for="select-inherit-policy" tabindex="0">
<i class="zulip-icon zulip-icon-inherit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Default"}}</span>
</label>
{{#if (or stream_muted topic_unmuted)}}
<input type="radio" id="select-unmuted-policy" class="tab-option" name="visibility-policy-select" data-visibility-policy="{{all_visibility_policies.UNMUTED}}" {{#if (eq visibility_policy all_visibility_policies.UNMUTED)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content" for="select-unmuted-policy" tabindex="0">
<i class="zulip-icon zulip-icon-unmute" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Unmute"}}</span>
</label>
{{/if}}
<input type="radio" id="select-followed-policy" class="tab-option" name="visibility-policy-select" data-visibility-policy="{{all_visibility_policies.FOLLOWED}}" {{#if (eq visibility_policy all_visibility_policies.FOLLOWED)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content" for="select-followed-policy" tabindex="0">
<i class="zulip-icon zulip-icon-follow" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Follow"}}</span>
</label>
<span class="slider"></span>
</div>
</li>
</ul>
</div>

View File

@@ -0,0 +1,41 @@
<div class="popover-menu color-picker-popover no-auto-hide-left-sidebar-overlay" data-simplebar data-simplebar-tab-index="-1">
<div class="message_header message_header_stream" data-stream-id="{{stream_id}}">
<div class="message-header-contents" style="background: {{recipient_bar_color}};">
<div class="message_label_clickable stream_label">
<span class="stream-privacy-modified-color-{{stream_id}} stream-privacy filter-icon" style="color: {{stream_privacy_icon_color}}">
{{> ../stream_privacy .}}
</span>
{{#if stream_name}}
<span class="message-header-stream-name">
{{~stream_name~}}
</span>
{{else}}
&nbsp;
{{/if}}
</div>
<button class="color_picker_confirm_button icon-button icon-button-square icon-button-neutral tippy-zulip-delayed-tooltip" data-tooltip-template-id="color-picker-confirm-button-tooltip-template" aria-label="{{t 'Confirm new color' }}" tabindex="0">
<i class="zulip-icon zulip-icon-check"></i>
</button>
</div>
</div>
<ul role="menu" class="popover-menu-list">
<li role="none">
<div role="group" class="color-swatch-list" aria-label="{{t 'Stream color' }}">
{{#each stream_color_palette as |row|}}
{{#each row as |hex_color|}}
<input type="radio" id="color-{{hex_color}}" class="color-swatch-input" name="color-picker-select" data-swatch-color="{{hex_color}}" {{#if (eq hex_color ../../stream_color)}}checked{{/if}} />
<label role="menuitemradio" class="color-swatch-label tippy-zulip-delayed-tooltip" for="color-{{hex_color}}" style="background-color: {{hex_color}};" aria-label="{{hex_color}}" data-tippy-content="{{hex_color}}" data-swatch-color="{{hex_color}}" data-row="{{@../index}}" data-column="{{@index}}" tabindex="0"></label>
{{/each}}
{{/each}}
</div>
</li>
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item popover-menu-list-item">
<label role="menuitem" class="custom-color-picker popover-menu-link" tabindex="0">
<i class="custom-color-swatch-icon popover-menu-icon" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Custom color"}}</span>
<input type="color" class="color-picker-input" tabindex="-1" value="{{stream_color}}" />
</label>
</li>
</ul>
</div>

View File

@@ -0,0 +1,19 @@
<div class="emoji-picker-popover">
<div class="emoji-popover">
<div class="popover-filter-input-wrapper">
<input id="emoji-popover-filter" class="popover-filter-input filter_text_input" type="text" autocomplete="off" placeholder="{{t 'Filter' }}" autofocus/>
</div>
<div class="emoji-popover-category-tabs">
{{#each emoji_categories}}
<span class="emoji-popover-tab-item {{#if @first}} active {{/if}}" data-tab-name='{{name}}' title='{{name}}'><i class="fa {{icon}}"></i></span>
{{/each}}
</div>
<div class="emoji-popover-emoji-map" data-simplebar data-simplebar-tab-index="-1" data-simplebar-auto-hide="false">
</div>
<div class="emoji-search-results-container" data-simplebar data-simplebar-tab-index="-1" data-simplebar-auto-hide="false">
<div class="emoji-popover-results-heading">{{t "Search results" }}</div>
<div class="emoji-search-results"></div>
</div>
</div>
<div class="emoji-showcase-container"></div>
</div>

View File

@@ -0,0 +1,9 @@
{{#with emoji_dict}}
<div class="emoji-popover-emoji {{#if has_reacted}}reacted{{/if}}" data-emoji-name="{{#if emoji_name}}{{emoji_name}}{{else}}{{name}}{{/if}}" tabindex="0" data-emoji-id="{{../type}},{{../section}},{{../index}}">
{{#if is_realm_emoji}}
<img src="{{url}}" loading="lazy" class="emoji"/>
{{else}}
<div class="emoji emoji-{{emoji_code}}"></div>
{{/if}}
</div>
{{/with}}

View File

@@ -0,0 +1,8 @@
{{#each emoji_categories }}
<div class="emoji-popover-subheading" data-section="{{name}}">{{translated}}</div>
<div class="emoji-collection" data-section="{{name}}">
{{#each this.emojis }}
{{> emoji_popover_emoji type="emoji_picker_emoji" section=@../index index=@index emoji_dict=this}}
{{/each}}
</div>
{{/each}}

View File

@@ -0,0 +1,3 @@
{{#each search_results}}
{{> emoji_popover_emoji type="emoji_search_result" section="0" index=@index emoji_dict=this }}
{{/each}}

View File

@@ -0,0 +1,10 @@
{{#with emoji_dict}}
<div class="emoji-showcase">
{{#if is_realm_emoji}}
<img src="{{url}}" class="emoji emoji-preview"/>
{{else}}
<div class="emoji emoji-preview emoji-{{emoji_code}}"></div>
{{/if}}
<div class="emoji-canonical-name" title="{{name}}">{{name}}</div>
</div>
{{/with}}

View File

@@ -0,0 +1,9 @@
<li>
{{~!-- Render each link identically to how it appears inline in
message content, reusing the markdown link templates. --~}}
{{~#if is_message_link~}}
{{> ../../channel_message_link stream=stream channel_name=channel_name topic_display_name_html=topic_display_name_html is_empty_string_topic=is_empty_string_topic href=url}}
{{~else~}}
{{> ../../topic_link channel_id=channel_id stream=stream channel_name=channel_name topic_display_name_html=topic_display_name_html is_empty_string_topic=is_empty_string_topic href=url}}
{{~/if~}}
</li>

View File

@@ -0,0 +1,37 @@
<div class="popover-menu" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
{{#if is_home_view}}
{{#if unread_messages_present}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="popover-menu-link mark_all_messages_as_read" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-mark-as-read" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mark messages as read" }}</span>
</a>
</li>
{{/if}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="popover-menu-link toggle_display_unread_message_count" tabindex="0">
{{#if show_unread_count}}
<i class="popover-menu-icon zulip-icon zulip-icon-hide" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Hide unread counter" }}</span>
{{else}}
<i class="popover-menu-icon zulip-icon zulip-icon-eye" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Show unread counter" }}</span>
{{/if}}
</a>
</li>
{{else}}
<li role="none" class="link-item popover-menu-list-item no-auto-hide-left-sidebar-overlay">
<a role="menuitem" class="set-home-view popover-menu-link" data-view-code="{{view_code}}" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-house" aria-hidden="true"></i>
<span class="popover-menu-label">
{{#tr}}
Make <z-highlight>combined feed</z-highlight> my home view
{{#*inline "z-highlight"}}<b class="highlighted-element">{{> @partial-block}}</b>{{/inline}}
{{/tr}}
</span>
</a>
</li>
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,10 @@
<div class="popover-menu" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" id="delete_all_drafts_sidebar" class="popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-trash" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Delete all drafts" }}</span>
</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,18 @@
<div class="popover-menu" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" id="folder_popover_view_channels" class="popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-hash" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "View channels" }}</span>
</a>
</li>
{{#if can_manage_folder}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" id="folder_popover_manage_folder" class="popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-folder-cog" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Manage folder" }}</span>
</a>
</li>
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,37 @@
<div class="popover-menu" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
{{#if is_home_view}}
{{#if unread_messages_present}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="popover-menu-link mark_all_messages_as_read" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-mark-as-read" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mark messages as read" }}</span>
</a>
</li>
{{/if}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="popover-menu-link toggle_display_unread_message_count" tabindex="0">
{{#if show_unread_count}}
<i class="popover-menu-icon zulip-icon zulip-icon-hide" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Hide unread counter" }}</span>
{{else}}
<i class="popover-menu-icon zulip-icon zulip-icon-eye" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Show unread counter" }}</span>
{{/if}}
</a>
</li>
{{else}}
<li role="none" class="link-item popover-menu-list-item no-auto-hide-left-sidebar-overlay">
<a role="menuitem" class="set-home-view popover-menu-link" data-view-code="{{view_code}}" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-house" aria-hidden="true"></i>
<span class="popover-menu-label">
{{#tr}}
Make <z-highlight>inbox</z-highlight> my home view
{{#*inline "z-highlight"}}<b class="highlighted-element">{{> @partial-block}}</b>{{/inline}}
{{/tr}}
</span>
</a>
</li>
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,37 @@
<div class="popover-menu" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
{{#if is_home_view}}
{{#if unread_messages_present}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="popover-menu-link mark_all_messages_as_read" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-mark-as-read" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mark messages as read" }}</span>
</a>
</li>
{{/if}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="popover-menu-link toggle_display_unread_message_count" tabindex="0">
{{#if show_unread_count}}
<i class="popover-menu-icon zulip-icon zulip-icon-hide" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Hide unread counter" }}</span>
{{else}}
<i class="popover-menu-icon zulip-icon zulip-icon-eye" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Show unread counter" }}</span>
{{/if}}
</a>
</li>
{{else}}
<li role="none" class="link-item popover-menu-list-item no-auto-hide-left-sidebar-overlay">
<a role="menuitem" class="set-home-view popover-menu-link" data-view-code="{{view_code}}" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-house" aria-hidden="true"></i>
<span class="popover-menu-label">
{{#tr}}
Make <z-highlight>recent conversations</z-highlight> my home view
{{#*inline "z-highlight"}}<b class="highlighted-element">{{> @partial-block}}</b>{{/inline}}
{{/tr}}
</span>
</a>
</li>
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,23 @@
<div class="popover-menu no-auto-hide-left-sidebar-overlay" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
{{#if show_unstar_all_button}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" id="unstar_all_messages" class="popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-star" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Unstar all messages" }}</span>
</a>
</li>
{{/if}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" id="toggle_display_starred_msg_count" class="popover-menu-link" tabindex="0">
{{#if starred_message_counts}}
<i class="popover-menu-icon zulip-icon zulip-icon-hide" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Hide starred message count" }}</span>
{{else}}
<i class="popover-menu-icon zulip-icon zulip-icon-eye" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Show starred message count" }}</span>
{{/if}}
</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,95 @@
<div class="popover-menu no-auto-hide-left-sidebar-overlay" id="stream-actions-menu-popover" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list" data-stream-id="{{ stream.stream_id }}" data-name="{{ stream.name }}">
<li role="none" class="popover-stream-header text-item popover-menu-list-item">
<span class="stream-privacy-original-color-{{stream.stream_id}} stream-privacy filter-icon" style="color: {{stream.color}}">
{{> ../../stream_privacy
invite_only=stream.invite_only
is_web_public=stream.is_web_public }}
</span>
<span class="popover-stream-name">{{stream.name}}</span>
</li>
<li role="separator" class="popover-menu-separator"></li>
{{#if has_unread_messages}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" class="mark_stream_as_read popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-mark-as-read" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mark all messages as read"}}</span>
</a>
</li>
{{else}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" class="mark_stream_as_unread popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-mark-as-unread" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mark all messages as unread"}}</span>
</a>
</li>
{{/if}}
{{#if show_go_to_channel_feed}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="stream-popover-go-to-channel-feed popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-all-messages" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Go to channel feed" }}</span>
</a>
</li>
{{/if}}
{{#if show_go_to_list_of_topics}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="{{stream.list_of_topics_view_url}}" class="stream-popover-go-to-list-of-topics navigate-link-on-enter popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-topic-list" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Go to list of topics" }}</span>
{{../popover_hotkey_hints "Y"}}
</a>
</li>
{{/if}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="copy_stream_link popover-menu-link" data-clipboard-text="{{ stream.url }}" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-link-alt" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Copy link to channel" }}</span>
</a>
</li>
<li role="separator" class="popover-menu-separator hidden-for-spectators"></li>
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" href="{{stream_edit_hash}}" class="open_stream_settings navigate-link-on-enter popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-gear" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Channel settings" }}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" class="pin_to_top popover-menu-link" tabindex="0">
{{#if stream.pin_to_top}}
<i class="popover-menu-icon zulip-icon zulip-icon-unpin" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Unpin channel from top"}}</span>
{{else}}
<i class="popover-menu-icon zulip-icon zulip-icon-pin" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Pin channel to top"}}</span>
{{/if}}
</a>
</li>
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" class="toggle_stream_muted popover-menu-link" tabindex="0">
{{#if stream.is_muted}}
<i class="popover-menu-icon zulip-icon zulip-icon-unmute" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Unmute channel"}}</span>
{{else}}
<i class="popover-menu-icon zulip-icon zulip-icon-mute" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mute channel"}}</span>
{{/if}}
</a>
</li>
{{#unless stream.is_archived}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" class="popover_sub_unsub_button popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-circle-x" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Unsubscribe"}}</span>
</a>
</li>
<li role="separator" class="popover-menu-separator hidden-for-spectators"></li>
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" class="choose_stream_color popover-menu-link" data-stream-id="{{ stream.stream_id }}" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-pipette" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Change color"}}</span>
</a>
</li>
{{/unless}}
</ul>
</div>

View File

@@ -0,0 +1,16 @@
<div class="popover-menu" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="link-item popover-menu-list-item">
<a href="#channels/available" role="menuitem" class="popover-menu-link navigate_and_close_popover" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-browse-channels" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Browse channels" }}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a href="#channels/new" role="menuitem" class="popover-menu-link navigate_and_close_popover" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-square-plus" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Create a channel" }}</span>
</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,132 @@
<div class="popover-menu no-auto-hide-left-sidebar-overlay" id="topic-actions-menu-popover" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="popover-topic-header text-item popover-menu-list-item">
<span class="popover-topic-name {{#if is_empty_string_topic}}empty-topic-display{{/if}}">{{topic_display_name}}</span>
</li>
{{!-- Group 1 --}}
{{#unless is_spectator}}
{{#unless stream_archived}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="popover-menu-list-item">
<div role="group" class="tab-picker popover-menu-tab-group" aria-label="{{t 'Topic visibility' }}">
<input type="radio" id="sidebar-topic-muted-policy" class="tab-option" name="sidebar-topic-visibility-select" data-visibility-policy="{{all_visibility_policies.MUTED}}" {{#if (eq visibility_policy all_visibility_policies.MUTED)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content tippy-zulip-delayed-tooltip" for="sidebar-topic-muted-policy" aria-label="{{t 'Mute' }}" data-tippy-content="{{t 'Mute' }}" tabindex="0">
<i class="zulip-icon zulip-icon-mute" aria-hidden="true"></i>
</label>
<input type="radio" id="sidebar-topic-inherit-policy" class="tab-option" name="sidebar-topic-visibility-select" data-visibility-policy="{{all_visibility_policies.INHERIT}}" {{#if (eq visibility_policy all_visibility_policies.INHERIT)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content tippy-zulip-delayed-tooltip" for="sidebar-topic-inherit-policy" aria-label="{{t 'Default' }}" data-tippy-content="{{t 'Default' }}" tabindex="0">
<i class="zulip-icon zulip-icon-inherit" aria-hidden="true"></i>
</label>
{{#if (or stream_muted topic_unmuted)}}
<input type="radio" id="sidebar-topic-unmuted-policy" class="tab-option" name="sidebar-topic-visibility-select" data-visibility-policy="{{all_visibility_policies.UNMUTED}}" {{#if (eq visibility_policy all_visibility_policies.UNMUTED)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content tippy-zulip-delayed-tooltip" for="sidebar-topic-unmuted-policy" aria-label="{{t 'Unmute' }}" data-tippy-content="{{t 'Unmute' }}" tabindex="0">
<i class="zulip-icon zulip-icon-unmute" aria-hidden="true"></i>
</label>
{{/if}}
<input type="radio" id="sidebar-topic-followed-policy" class="tab-option" name="sidebar-topic-visibility-select" data-visibility-policy="{{all_visibility_policies.FOLLOWED}}" {{#if (eq visibility_policy all_visibility_policies.FOLLOWED)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content tippy-zulip-delayed-tooltip" for="sidebar-topic-followed-policy" aria-label="{{t 'Follow' }}" data-tippy-content="{{t 'Follow' }}" tabindex="0">
<i class="zulip-icon zulip-icon-follow" aria-hidden="true"></i>
</label>
<span class="slider"></span>
</div>
</li>
{{/unless}}
{{/unless}}
{{#if is_topic_empty}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="popover-menu-list-item text-item italic">
<span class="popover-menu-label">{{t "There are no messages in this topic." }}</span>
</li>
{{else}}
{{!-- Group 2 --}}
<li role="separator" class="popover-menu-separator"></li>
{{#if (and show_ai_features can_summarize_topics)}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="sidebar-popover-summarize-topic popover-menu-link" tabindex="0">
<i class="popover-menu-icon fa fa-magic" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Summarize recent messages"}}</span>
</a>
</li>
{{/if}}
{{#if has_starred_messages}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" class="sidebar-popover-unstar-all-in-topic popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-star" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Unstar all messages in topic" }}</span>
</a>
</li>
{{/if}}
{{#if has_unread_messages}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" class="sidebar-popover-mark-topic-read popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-mark-as-read" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mark all messages as read" }}</span>
</a>
</li>
{{else}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" class="sidebar-popover-mark-topic-unread popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-mark-as-unread" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mark all messages as unread" }}</span>
</a>
</li>
{{/if}}
{{#if has_topic_links}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="sidebar-open-topic-links popover-menu-link" data-clipboard-text="{{ url }}" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-link-2" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "View links" }}</span>
</a>
</li>
{{/if}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="sidebar-popover-copy-link-to-topic popover-menu-link" data-clipboard-text="{{ url }}" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-link-alt" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Copy link to topic" }}</span>
</a>
</li>
{{!-- Group 3 --}}
{{#if (or can_move_topic can_rename_topic is_realm_admin)}}
{{#unless stream_archived}}
<li role="separator" class="popover-menu-separator"></li>
{{/unless}}
{{/if}}
{{#if can_move_topic}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="sidebar-popover-move-topic-messages popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-move-alt" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Move topic" }}</span>
</a>
</li>
{{else if can_rename_topic}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="sidebar-popover-rename-topic-messages popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-rename" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Rename topic" }}</span>
</a>
</li>
{{/if}}
{{#if (and can_resolve_topic (not is_empty_string_topic))}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="sidebar-popover-toggle-resolved popover-menu-link" tabindex="0">
{{# if topic_is_resolved }}
<i class="popover-menu-icon zulip-icon zulip-icon-check-x" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mark as unresolved"}}</span>
{{else}}
<i class="popover-menu-icon zulip-icon zulip-icon-check" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mark as resolved"}}</span>
{{/if}}
</a>
</li>
{{/if}}
{{#if (and is_realm_admin (not stream_archived))}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="sidebar-popover-delete-topic-messages popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-trash" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Delete topic"}}</span>
</a>
</li>
{{/if}}
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,32 @@
<div class="popover-menu no-auto-hide-left-sidebar-overlay" id="topic-links-menu-popover" data-simplebar data-simplebar-tab-index="-1">
{{#if has_links_from_narrow}}
<div class="topic-links-menu-link-list">
<p class="topic-links-menu-title">
<i class="zulip-icon zulip-icon-arrow-up-right"></i>
{{t "Links to"}}
{{> ../../help_link_widget link="/help/link-to-a-message-or-conversation#view-links-to-and-from-a-conversation" }}
</p>
<div role="separator" class="popover-menu-separator"></div>
<ul class="popover-topic-links-list">
{{#each links_from_narrow}}
{{> ./cross_conversation_link this}}
{{/each}}
</ul>
</div>
{{/if}}
{{#if has_links_to_narrow}}
<div class="topic-links-menu-link-list">
<p class="topic-links-menu-title">
<i class="zulip-icon zulip-icon-arrow-down-left"></i>
{{t "Linked from"}}
{{> ../../help_link_widget link="/help/link-to-a-message-or-conversation#view-links-to-and-from-a-conversation" }}
</p>
<div role="separator" class="popover-menu-separator"></div>
<ul class="popover-topic-links-list">
{{#each links_to_narrow}}
{{> ./cross_conversation_link this}}
{{/each}}
</ul>
</div>
{{/if}}
</div>

View File

@@ -0,0 +1,18 @@
<li role="none" class="link-item popover-menu-list-item views-popover-menu-{{css_class_suffix}}">
<a href="#{{fragment}}" role="menuitem" class="popover-menu-link tippy-left-sidebar-tooltip" data-tooltip-template-id="{{tooltip_template_id}}" tabindex="0">
<i class="popover-menu-icon zulip-icon {{icon}}" aria-hidden="true"></i>
{{#if has_unread_count}}
<span class="label-and-unread-wrapper">
<span class="popover-menu-label">{{name}}</span>
<span class="unread_count {{unread_count_type}}">{{#unless (eq unread_count 0)}}{{unread_count}}{{/unless}}</span>
{{#if supports_masked_unread}}
<span class="masked_unread_count">
<i class="zulip-icon zulip-icon-masked-unread"></i>
</span>
{{/if}}
</span>
{{else}}
<span class="popover-menu-label">{{name}}</span>
{{/if}}
</a>
</li>

View File

@@ -0,0 +1,29 @@
<div class="popover-menu" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list condensed-views-popover-menu">
{{#each views}}
{{> left_sidebar_view_popover_item .}}
{{/each}}
{{#unless is_home_view_active}}
<li role="separator" class="popover-menu-separator"></li>
{{#if unread_messages_present}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="popover-menu-link mark_all_messages_as_read" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-mark-as-read" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mark messages as read" }}</span>
</a>
</li>
{{/if}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="popover-menu-link toggle_display_unread_message_count" tabindex="0">
{{#if show_unread_count}}
<i class="popover-menu-icon zulip-icon zulip-icon-hide" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Hide unread counter" }}</span>
{{else}}
<i class="popover-menu-icon zulip-icon zulip-icon-eye" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Show unread counter" }}</span>
{{/if}}
</a>
</li>
{{/unless}}
</ul>
</div>

View File

@@ -0,0 +1,63 @@
<div class="popover-menu" id="left-sidebar-menu-popover" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
{{#if show_collapse_expand_all_options }}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" id="left_sidebar_expand_all" class="popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-expand" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Expand all sections" }}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" id="left_sidebar_collapse_all" class="popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-collapse" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Collapse all sections" }}</span>
</a>
</li>
{{/if}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" id="{{channel_folders_id}}" class="popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-folder" aria-hidden="true"></i>
{{#if show_channel_folders}}
<span class="popover-menu-label">{{t "Don't group channels by folder" }}</span>
{{else}}
<span class="popover-menu-label">{{t "Group channels by folder" }}</span>
{{/if}}
</a>
</li>
{{#if show_channel_display_options}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item">
<label class="display-style-selector-header popover-menu-link" role="menuitem">
<span class="popover-menu-label">
{{t "Show unread counts for"}}
</span>
</label>
</li>
{{#each (object_values web_stream_unreads_count_display_policy_values)}}
<li role="none" class="web_stream_unreads_count_display_policy_selector link-item" value="{{this.code}}">
<label class="popover-menu-link" role="menuitem" tabindex="0">
<input type="radio" class="web_stream_unreads_count_display_policy_choice" name="web_stream_unreads_count_display_policy_values" value="{{this.code}}" {{#if (eq this.code ../web_stream_unreads_count_display_policy)}}checked{{/if}}/>
<span class="popover-menu-label">{{this.description}}</span>
</label>
</li>
{{/each}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item">
<label class="display-style-selector-header popover-menu-link" role="menuitem">
<span class="popover-menu-label">
{{t "Clicking on a channel navigates to"}}
</span>
</label>
</li>
{{#each (object_values web_channel_default_view_values)}}
<li role="none" class="web_channel_default_view_selector link-item" value="{{this.code}}">
<label class="popover-menu-link" role="menuitem" tabindex="0">
<input type="radio" class="web_channel_default_view_choice" name="web_channel_default_view_values" value="{{this.code}}" {{#if (eq this.code ../web_channel_default_view)}}checked{{/if}}/>
<span class="popover-menu-label">{{this.description}}</span>
</label>
</li>
{{/each}}
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,154 @@
<div class="popover-menu" id="message-actions-menu-dropdown" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
{{!-- Group 1 --}}
{{#if should_display_quote_message}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="respond_button popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-quote-message" aria-hidden="true"></i>
<span class="popover-menu-label">{{quote_message_menu_item}}</span>
{{#if show_quote_and_forward_hotkey_hints}}
{{popover_hotkey_hints ">"}}
{{/if}}
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="forward_button popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-forward-message" aria-hidden="true"></i>
<span class="popover-menu-label">{{forward_message_menu_item}}</span>
{{#if show_quote_and_forward_hotkey_hints}}
{{popover_hotkey_hints "<"}}
{{/if}}
</a>
</li>
{{/if}}
{{!-- Group 2 --}}
{{#if (or editability_menu_item move_message_menu_item should_display_delete_option should_display_message_report_option)}}
<li role="separator" class="popover-menu-separator"></li>
{{/if}}
{{#if editability_menu_item}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="popover_edit_message popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{editability_menu_item}}</span>
{{popover_hotkey_hints "E"}}
</a>
</li>
{{/if}}
{{#if move_message_menu_item}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="popover_move_message popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-move-alt" aria-hidden="true"></i>
<span class="popover-menu-label">{{move_message_menu_item}}</span>
{{popover_hotkey_hints "M"}}
</a>
</li>
{{/if}}
{{#if should_display_delete_option}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="delete_message popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-trash" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Delete message" }}</span>
</a>
</li>
{{/if}}
{{#if should_display_message_report_option}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="popover_report_message popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-flag" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Report message" }}</span>
</a>
</li>
{{/if}}
{{!-- Group 3 --}}
{{#if should_display_add_reaction_option}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="reaction_button popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-smile" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Add emoji reaction" }}</span>
{{popover_hotkey_hints ":"}}
</a>
</li>
{{/if}}
{{!-- Group 4 --}}
{{#if (or should_display_mark_as_unread should_display_remind_me_option should_display_collapse should_display_uncollapse)}}
<li role="separator" class="popover-menu-separator"></li>
{{/if}}
{{#if should_display_mark_as_unread}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="mark_as_unread popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-mark-as-unread" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Mark as unread from here" }}</span>
{{popover_hotkey_hints "Shift" "U"}}
</a>
</li>
{{/if}}
{{#if should_display_remind_me_option}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="message-reminder popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-alarm-clock" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Remind me about this" }}</span>
</a>
</li>
{{/if}}
{{#if (or should_display_hide_link_previews should_display_show_link_previews)}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="popover_toggle_hide_link_previews popover-menu-link" tabindex="0">
{{#if should_display_hide_link_previews}}
<i class="popover-menu-icon zulip-icon zulip-icon-hide" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Hide link previews" }}</span>
{{else}}
<i class="popover-menu-icon zulip-icon zulip-icon-eye" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Show link previews" }}</span>
{{/if}}
{{popover_hotkey_hints "Shift" "L"}}
</a>
</li>
{{/if}}
{{#if should_display_collapse}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="popover_toggle_collapse popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-collapse" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Collapse message" }}</span>
{{popover_hotkey_hints "-"}}
</a>
</li>
{{/if}}
{{#if should_display_uncollapse}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="popover_toggle_collapse popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-expand" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Expand message" }}</span>
{{popover_hotkey_hints "-"}}
</a>
</li>
{{/if}}
{{!-- Group 5 --}}
<li role="separator" class="popover-menu-separator hidden-for-spectators"></li>
{{#if view_source_menu_item}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="popover_view_source popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-source" aria-hidden="true"></i>
<span class="popover-menu-label">{{view_source_menu_item}}</span>
{{popover_hotkey_hints "E"}}
</a>
</li>
{{/if}}
{{#if should_display_read_receipts_option}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" data-message-id="{{message_id}}" class="view_read_receipts popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-readreceipts" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "View read receipts" }}</span>
{{popover_hotkey_hints "Shift" "V"}}
</a>
</li>
{{/if}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="copy_link navigate-link-on-enter popover-menu-link" data-message-id="{{message_id}}" data-clipboard-text="{{ conversation_time_url }}" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-link-alt" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Copy link to message" }}</span>
{{popover_hotkey_hints "L"}}
</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,210 @@
<div class="popover-menu" id="gear-menu-dropdown" aria-labelledby="settings-dropdown" data-simplebar data-simplebar-tab-index="-1">
<div class="org-info-container">
<div class="org-info org-name">{{realm_name}}</div>
<div class="org-info org-url">{{realm_url}}</div>
{{#if is_self_hosted }}
<div class="org-info org-version">
<a href="#about-zulip" class="navigate-link-on-enter popover-menu-link">{{version_display_string}}</a>
</div>
{{#if server_needs_upgrade }}
<div class="org-info org-upgrade">
<a href="https://zulip.readthedocs.io/en/stable/production/upgrade.html" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">{{t 'Upgrade to the latest release' }}</a>
</div>
{{/if}}
{{else}}
<div class="org-info org-plan hidden-for-spectators">
{{#if is_demo_organization }}
<a href="/help/demo-organizations" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">{{t "Demo organization" }}</a>
{{else if is_plan_limited }}
<a href="/plans/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">Zulip Cloud Free</a>
{{else if is_plan_standard}}
<a href="/plans/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">Zulip Cloud Standard</a>
{{else if is_plan_standard_sponsored_for_free}}
<a href="/plans/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">Zulip Cloud Standard (sponsored)</a>
{{else if is_plan_plus}}
<a href="/plans/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">Zulip Cloud Plus</a>
{{/if}}
</div>
{{/if}}
{{#if (and (not is_self_hosted) user_has_billing_access (not is_plan_standard_sponsored_for_free)) }}
{{#if sponsorship_pending }}
<div class="org-info org-upgrade">
<a href="/sponsorship/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">{{t "Sponsorship request pending" }}</a>
</div>
{{else}}
{{#if (and is_demo_organization is_owner) }}
<div class="org-info org-upgrade">
<a class="convert-demo-organization popover-menu-link">{{t "Convert into permanent organization" }}</a>
</div>
{{/if}}
{{#if (and is_plan_limited (not is_demo_organization))}}
<div class="org-info org-upgrade">
<a href="/upgrade/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">{{t "Upgrade to {standard_plan_name}" }}</a>
</div>
{{/if}}
{{#unless (or is_org_on_paid_plan is_demo_organization)}}
{{#if is_education_org }}
<div class="org-info org-upgrade">
<a href="/sponsorship/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">{{t 'Request education pricing' }}</a>
</div>
{{else if (not is_business_org) }}
<div class="org-info org-upgrade">
<a href="/sponsorship/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">{{t 'Request sponsorship' }}</a>
</div>
{{/if}}
{{/unless}}
{{/if}}
{{/if}}
</div>
<ul role="menu" class="popover-menu-list">
{{!-- Group 1 --}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" href="#channels/subscribed" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-hash" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Channel settings' }}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item admin-menu-item hidden-for-spectators">
<a role="menuitem" href="#organization" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-building" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Organization settings' }}</span>
</a>
</li>
{{#unless is_guest}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" href="#groups/your" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-user-group-cog" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Group settings' }}</span>
</a>
</li>
{{/unless}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" href="#settings" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-tool" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Personal settings' }}</span>
</a>
</li>
{{#unless is_guest}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" href="/stats" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-bar-chart" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Usage statistics' }}</span>
</a>
</li>
{{/unless}}
<li role="none" class="popover-menu-list-item only-visible-for-spectators">
<div role="group" class="theme-switcher tab-picker" aria-label="{{t 'App theme' }}">
<input type="radio" id="select-automatic-theme" class="tab-option" name="theme-select" data-theme-code="{{color_scheme_values.automatic.code}}" {{#if (eq user_color_scheme color_scheme_values.automatic.code)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content tippy-zulip-delayed-tooltip" for="select-automatic-theme" aria-label="{{t 'Select automatic theme' }}" data-tooltip-template-id="automatic-theme-template" tabindex="0">
<i class="zulip-icon zulip-icon-monitor" aria-hidden="true"></i>
</label>
<input type="radio" id="select-light-theme" class="tab-option" name="theme-select" data-theme-code="{{color_scheme_values.light.code}}" {{#if (eq user_color_scheme color_scheme_values.light.code)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content tippy-zulip-delayed-tooltip" for="select-light-theme" aria-label="{{t 'Select light theme' }}" data-tippy-content="{{t 'Light theme' }}" tabindex="0">
<i class="zulip-icon zulip-icon-sun" aria-hidden="true"></i>
</label>
<input type="radio" id="select-dark-theme" class="tab-option" name="theme-select" data-theme-code="{{color_scheme_values.dark.code}}" {{#if (eq user_color_scheme color_scheme_values.dark.code)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content tippy-zulip-delayed-tooltip" for="select-dark-theme" aria-label="{{t 'Select dark theme' }}" data-tippy-content="{{t 'Dark theme' }}" tabindex="0">
<i class="zulip-icon zulip-icon-moon" aria-hidden="true"></i>
</label>
<span class="slider"></span>
</div>
</li>
<li role="none" class="popover-menu-list-item only-visible-for-spectators">
<div class="info-density-controls">
{{> ../../settings/info_density_control_button_group
property="web_font_size_px"
default_icon_class="zulip-icon-type-big"
property_value=web_font_size_px
for_settings_ui=false
prefix="gear_menu_"
}}
{{> ../../settings/info_density_control_button_group
property="web_line_height_percent"
default_icon_class="zulip-icon-line-height-big"
property_value=web_line_height_percent
for_settings_ui=false
prefix="gear_menu_"
}}
</div>
</li>
<li role="none" class="link-item popover-menu-list-item only-visible-for-spectators">
<a role="menuitem" tabindex="0" class="change-language-spectator popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-f-globe" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Select language' }}</span>
</a>
</li>
{{!-- Group 2 --}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="{{ apps_page_url }}" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-monitor" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Desktop & mobile apps' }}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="/integrations/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-git-pull-request" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Integrations' }}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="/api/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-file-text" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'API documentation' }}</span>
</a>
</li>
{{#if (and user_has_billing_access show_billing)}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="/billing/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-credit-card" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Billing' }}</span>
</a>
</li>
{{/if}}
{{#if promote_sponsoring_zulip}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="https://zulip.com/help/support-zulip-project" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-heart" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Support Zulip' }}</span>
</a>
</li>
{{/if}}
{{#if user_has_billing_access}}
{{#if show_remote_billing }}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="/self-hosted-billing/" id="open-self-hosted-billing" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-rocket" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Plan management' }}</span>
</a>
</li>
{{/if}}
{{#if show_plans}}
{{!-- This will be hidden for self hosted realms since they will have corporate disabled. --}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="/plans/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-rocket" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Plans and pricing' }}</span>
</a>
</li>
{{/if}}
{{/if}}
{{!-- Group 3 --}}
{{#if (or can_invite_users_by_email can_create_multiuse_invite is_spectator)}}
<li role="separator" class="popover-menu-separator"></li>
{{/if}}
{{#if (or can_invite_users_by_email can_create_multiuse_invite)}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" tabindex="0" class="invite-user-link popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-user-plus" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Invite users' }}</span>
</a>
</li>
{{/if}}
<li role="none" class="link-item popover-menu-list-item only-visible-for-spectators">
<a role="menuitem" href="{{login_link}}" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-log-in" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Log in' }}</span>
</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,51 @@
<div class="popover-menu" id="help-menu-dropdown" aria-labelledby="help-menu" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="/help/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-help" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Help center' }}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" tabindex="0" class="navigate-link-on-enter popover-menu-link" data-overlay-trigger="keyboard-shortcuts">
<i class="popover-menu-icon zulip-icon zulip-icon-keyboard" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Keyboard shortcuts' }}</span>
{{popover_hotkey_hints "?"}}
</a>
</li>
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" tabindex="0" class="navigate-link-on-enter popover-menu-link" data-overlay-trigger="message-formatting">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Message formatting' }}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" tabindex="0" class="navigate-link-on-enter popover-menu-link" data-overlay-trigger="search-operators">
<i class="popover-menu-icon zulip-icon zulip-icon-manage-search" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Search filters' }}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item" id="gear_menu_about_zulip">
<a role="menuitem" href="#about-zulip" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-info" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "About Zulip" }}</span>
</a>
</li>
{{#if corporate_enabled}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="/help/contact-support" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-life-buoy" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Contact support' }}</span>
</a>
</li>
{{#if (or is_admin is_owner)}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="/contact-sales" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-handshake" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Contact sales' }}</span>
</a>
</li>
{{/if}}
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,149 @@
<div class="popover-menu" id="personal-menu-dropdown" data-simplebar data-simplebar-tab-index="-1">
<nav class="personal-menu-nav">
<header class="personal-menu-header">
<div class="avatar">
<img class="avatar-image{{#if user_is_guest}} guest-avatar{{/if}}" src="{{user_avatar}}"/>
{{#if is_active }}
<span class="status-circle zulip-icon zulip-icon-{{user_circle_class}} {{user_circle_class}} user-circle hidden-for-spectators" data-tippy-placement="bottom" data-tippy-content="{{user_last_seen_time_status}}"></span>
{{/if}}
</div>
<div class="text-area">
<p class="full-name">{{user_full_name}}</p>
<p class="user-type">{{user_type}}</p>
</div>
</header>
<section class="dropdown-menu-list-section personal-menu-actions" data-user-id="{{user_id}}">
<ul role="menu" class="popover-menu-list">
{{#if status_content_available}}
<li role="none" class="text-item popover-menu-list-item">
<span class="personal-menu-status-wrapper">
{{#if status_emoji_info}}
{{#if status_emoji_info.emoji_alt_code}}
<span class="emoji_alt_code">&nbsp;:{{status_emoji_info.emoji_name}}:</span>
{{else if status_emoji_info.url}}
<img src="{{status_emoji_info.url}}" class="emoji status_emoji" />
{{else}}
<span class="emoji status_emoji emoji-{{status_emoji_info.emoji_code}}"></span>
{{/if}}
{{/if}}
<span class="status_text personal-menu-status-text">
{{#if show_placeholder_for_status_text}}
<i class="personal-menu-no-status-text">{{t "No status text"}}</i>
{{else}}
{{status_text}}
{{/if}}
</span>
</span>
<a role="menuitem" tabindex="0" class="personal-menu-clear-status popover-menu-link" aria-label="{{t 'Clear status'}}" data-tippy-content="{{t 'Clear your status' }}">
<i class="personal-menu-clear-status-icon popover-menu-icon zulip-icon zulip-icon-x-circle" aria-hidden="true"></i>
</a>
</li>
{{!-- Group 1 --}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" tabindex="0" class="update_status_text popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-smile-smaller" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Edit status' }}</span>
{{popover_hotkey_hints "Shift" "Y"}}
</a>
</li>
{{else}}
<li role="none" class="link-item hidden-for-spectators popover-menu-list-item">
<a role="menuitem" tabindex="0" class="update_status_text popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-smile-smaller" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Set status' }}</span>
{{popover_hotkey_hints "Shift" "Y"}}
</a>
</li>
{{/if}}
{{#if invisible_mode}}
<li role="none" class="link-item hidden-for-spectators popover-menu-list-item">
<a role="menuitem" tabindex="0" class="invisible_mode_turn_off popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-play-circle" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Turn off invisible mode' }}</span>
</a>
</li>
{{else}}
<li role="none" class="link-item hidden-for-spectators popover-menu-list-item">
<a role="menuitem" tabindex="0" class="invisible_mode_turn_on popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-stop-circle" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Go invisible' }}</span>
</a>
</li>
{{/if}}
{{!-- Group 2 --}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="#user/{{user_id}}" tabindex="0" class="view_full_user_profile popover-menu-link navigate-link-on-enter">
<i class="popover-menu-icon zulip-icon zulip-icon-account" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'View your profile' }}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" tabindex="0" class="narrow-self-direct-message popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-users" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'View messages with yourself' }}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" tabindex="0" class="narrow-messages-sent popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-message-square" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'View messages sent' }}</span>
</a>
</li>
{{!-- Group 3 --}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" href="#settings/profile" class="open-profile-settings popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-tool" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Settings' }}</span>
</a>
</li>
<li role="none" class="popover-menu-list-item">
<div role="group" class="tab-picker popover-menu-tab-group" aria-label="{{t 'App theme' }}">
<input type="radio" id="select-automatic-theme" class="tab-option" name="theme-select" data-theme-code="{{color_scheme_values.automatic.code}}" {{#if (eq user_color_scheme color_scheme_values.automatic.code)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content tippy-zulip-delayed-tooltip" for="select-automatic-theme" aria-label="{{t 'Select automatic theme' }}" data-tooltip-template-id="automatic-theme-template" tabindex="0">
<i class="zulip-icon zulip-icon-monitor" aria-hidden="true"></i>
</label>
<input type="radio" id="select-light-theme" class="tab-option" name="theme-select" data-theme-code="{{color_scheme_values.light.code}}" {{#if (eq user_color_scheme color_scheme_values.light.code)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content tippy-zulip-delayed-tooltip" for="select-light-theme" aria-label="{{t 'Select light theme' }}" data-tippy-content="{{t 'Light theme' }}" tabindex="0">
<i class="zulip-icon zulip-icon-sun" aria-hidden="true"></i>
</label>
<input type="radio" id="select-dark-theme" class="tab-option" name="theme-select" data-theme-code="{{color_scheme_values.dark.code}}" {{#if (eq user_color_scheme color_scheme_values.dark.code)}}checked{{/if}} />
<label role="menuitemradio" class="tab-option-content tippy-zulip-delayed-tooltip" for="select-dark-theme" aria-label="{{t 'Select dark theme' }}" data-tippy-content="{{t 'Dark theme' }}" tabindex="0">
<i class="zulip-icon zulip-icon-moon" aria-hidden="true"></i>
</label>
<span class="slider"></span>
</div>
</li>
<li role="none" class="popover-menu-list-item">
<div class="info-density-controls">
{{> ../../settings/info_density_control_button_group
property="web_font_size_px"
default_icon_class="zulip-icon-type-big"
property_value=web_font_size_px
for_settings_ui=false
prefix="personal_menu_"
}}
{{> ../../settings/info_density_control_button_group
property="web_line_height_percent"
default_icon_class="zulip-icon-line-height-big"
property_value=web_line_height_percent
for_settings_ui=false
prefix="personal_menu_"
}}
</div>
</li>
{{!-- Group 4 --}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="logout_button hidden-for-spectators popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-log-out" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Log out' }}</span>
</a>
</li>
</ul>
</section>
</nav>
</div>

View File

@@ -0,0 +1,64 @@
<div class="popover-menu navbar-banners-testing-popover" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="desktop-notifications popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Desktop notifications"}}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="configure-outgoing-mail popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Configure outgoing mail"}}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="insecure-desktop-app popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Insecure desktop app"}}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="unsupported-browser popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Unsupported browser"}}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="profile-missing-required-fields popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Profile missing required fields"}}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="organization-profile-incomplete popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Organization profile incomplete"}}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="server-needs-upgrade popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Server needs upgrade"}}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="bankruptcy popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Bankruptcy"}}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="demo-organization-deadline popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Demo organization deadline"}}</span>
</a>
</li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="time_zone_update_offer popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-edit" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Time zone update offer"}}</span>
</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,11 @@
<div class="popover-menu playground-links-popover" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
{{#each playground_info}}
<li role="none" class="link-item popover-menu-list-item">
<a href="{{this/playground_url}}" target="_blank" rel="noopener noreferrer" role="menuitem" class="popover_playground_link popover-menu-link" tabindex="0">
<span class="popover-menu-label">{{t "View in {name}" }}</span>
</a>
</li>
{{/each}}
</ul>
</div>

View File

@@ -0,0 +1,55 @@
<div class="popover-menu {{#if is_reminder}}message-reminder-popover{{/if}}" id="send-later-options" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="text-item popover-menu-list-item">
<span class="popover-header-name">
{{#if is_reminder}}
{{t "Schedule reminder" }}
{{else}}
{{t "Schedule message" }}
{{/if}}
</span>
</li>
{{#if is_reminder}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="text-item popover-menu-list-item schedule-reminder-note-item">
<textarea class="schedule-reminder-note settings-textarea" placeholder="{{t 'Note'}}" tabindex="0"
maxlength="{{max_reminder_note_length}}"
></textarea>
</li>
{{/if}}
{{#if possible_send_later_today}}
<li role="separator" class="popover-menu-separator"></li>
{{#each (object_entries possible_send_later_today) as |entry|}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" id="{{entry.[0]}}" class="send_later_today send_later_option popover-menu-link" data-send-stamp="{{entry.[1].stamp}}" tabindex="0">
<span class="popover-menu-label">{{entry.[1].text}}</span>
</a>
</li>
{{/each}}
{{/if}}
<li role="separator" class="popover-menu-separator"></li>
{{#each (object_entries send_later_tomorrow) as |entry|}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" id="{{entry.[0]}}" class="send_later_tomorrow send_later_option popover-menu-link" data-send-stamp="{{entry.[1].stamp}}" tabindex="0">
<span class="popover-menu-label">{{entry.[1].text}}</span>
</a>
</li>
{{/each}}
{{#if possible_send_later_monday}}
<li role="separator" class="popover-menu-separator"></li>
{{#each (object_entries possible_send_later_monday) as |entry|}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" id="{{entry.[0]}}" class="send_later_monday send_later_option popover-menu-link" data-send-stamp="{{entry.[1].stamp}}" tabindex="0">
<span class="popover-menu-label">{{entry.[1].text}}</span>
</a>
</li>
{{/each}}
{{/if}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="send_later_custom send_later_option popover-menu-link" tabindex="0">
<span class="popover-menu-label">{{t 'Custom time'}}</span>
</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,26 @@
<div class="popover-menu" id="scroll-to-time-popover" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="text-item popover-menu-list-item">
<span class="popover-header-name">{{t "Scroll to" }}</span>
</li>
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="popover-menu-link" id="scroll_to_oldest" tabindex="0">
<span class="popover-menu-label">{{t "Oldest message" }}</span>
</a>
</li>
{{#each suggested_dates}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="popover-menu-link scroll-to-suggested-date" data-iso-date="{{this.iso_date_string}}" tabindex="0">
<span class="popover-menu-label">{{this.label}}</span>
</a>
</li>
{{/each}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="popover-menu-link" id="scroll_to_custom" tabindex="0">
<span class="popover-menu-label">{{t "Custom" }}</span>
</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,80 @@
<div class="popover-menu" id="send_later_popover" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="popover-menu-list-item">
<div role="group" class="enter_sends_choices" aria-label="{{t 'Enter to send choices' }}">
<label role="menuitemradio" class="enter_sends_choice" tabindex="0">
<input type="radio" class="enter_sends_choice_radio" name="enter_sends_choice" value="true"{{#if enter_sends_true }} checked{{/if}} tabindex="-1" />
<span class="enter_sends_choice_text_container">
<span class="enter_sends_major enter_sends_choice_text">
{{#tr}}
Press <z-shortcut></z-shortcut> to send
{{#*inline "z-shortcut"}}{{popover_hotkey_hints "Enter"}}{{/inline}}
{{/tr}}
</span>
<span class="enter_sends_minor enter_sends_choice_text">
{{#tr}}
Press <z-shortcut></z-shortcut> to add a new line
{{#*inline "z-shortcut"}}{{popover_hotkey_hints "Ctrl" "Enter"}}{{/inline}}
{{/tr}}
</span>
</span>
</label>
<label role="menuitemradio" class="enter_sends_choice" tabindex="0">
<input type="radio" class="enter_sends_choice_radio" name="enter_sends_choice" value="false"{{#unless enter_sends_true }} checked{{/unless}} tabindex="-1" />
<span class="enter_sends_choice_text_container">
<span class="enter_sends_major enter_sends_choice_text">
{{#tr}}
Press <z-shortcut></z-shortcut> to send
{{#*inline "z-shortcut"}}{{popover_hotkey_hints "Ctrl" "Enter"}}{{/inline}}
{{/tr}}
</span>
<span class="enter_sends_minor enter_sends_choice_text">
{{#tr}}
Press <z-shortcut></z-shortcut> to add a new line
{{#*inline "z-shortcut"}}{{popover_hotkey_hints "Enter"}}{{/inline}}
{{/tr}}
</span>
</span>
</label>
</div>
</li>
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="open_send_later_modal popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-calendar" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Schedule message" }}</span>
</a>
</li>
{{#if formatted_send_later_time}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="send_later_selected_send_later_time popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-calendar-clock" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Schedule for {formatted_send_later_time}' }}</span>
</a>
</li>
{{/if}}
<li role="none" class="link-item popover-menu-list-item">
<a href="#scheduled" role="menuitem" class="navigate-link-on-enter popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-calendar-days" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "View scheduled messages" }}</span>
</a>
</li>
<li role="separator" class="popover-menu-separator drafts-item-in-popover"></li>
<li role="none" class="link-item popover-menu-list-item drafts-item-in-popover">
<a href="#drafts" role="menuitem" class="view_contextual_drafts popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-drafts" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "View drafts" }}</span>
<span class="compose-drafts-count-container"><span class="unread_count quiet-count compose-drafts-count"></span></span>
</a>
</li>
{{#if show_compose_new_message}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" class="compose_new_message popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-file-check" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Save draft and start a new message" }}</span>
</a>
</li>
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,31 @@
<div class="popover-menu" id="stream-card-popover" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="popover-stream-header text-item popover-menu-list-item">
<span class="stream-privacy-original-color-{{stream.stream_id}} stream-privacy filter-icon" style="color: {{stream.color}}">
{{> ../stream_privacy
invite_only=stream.invite_only
is_web_public=stream.is_web_public
is_archived=stream.is_archived }}
</span>
<span class="popover-stream-name">{{stream.name}}</span>
</li>
<li role="none" class="popover-stream-info-menu-description text-item popover-menu-list-item">
{{> ../stream_settings/stream_description
rendered_description=stream.rendered_description
use_view_only_styling=false
}}
</li>
<li role="none" class="popover-menu-list-item text-item italic">
{{#tr}}
{subscribers_count, plural, =0 {No subscribers} =1 {1 subscriber} other {# subscribers}}
{{/tr}}
</li>
<li role="separator" class="popover-menu-separator hidden-for-spectators"></li>
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" class="open_stream_settings popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-gear" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Channel settings" }}</span>
</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,279 @@
<div class="popover-menu user-card-popover-actions no-auto-hide-right-sidebar-overlay" id="user_card_popover" data-simplebar data-simplebar-tab-index="-1">
<div class="popover-menu-user-header">
<div class="popover-menu-user-avatar-container {{#if (not is_active)}}deactivated{{/if}}">
<img class="popover-menu-user-avatar{{#if user_is_guest}} guest-avatar{{/if}}" src="{{user_avatar}}" />
{{#if (and is_active (not is_bot))}}
<div class="popover-menu-user-presence user-circle zulip-icon zulip-icon-{{user_circle_class}} {{user_circle_class}} hidden-for-spectators" data-presence-indicator-user-id="{{user_id}}"></div>
{{/if}}
{{#if (not is_active)}}
<span class="popover-menu-user-presence conversation-partners-icon fa fa-ban fa-lg deactivated-user-icon user_circle"></span>
{{/if}}
</div>
<div class="popover-menu-user-info">
<div class="popover-menu-user-full-name text-select" data-tippy-content="{{user_full_name}}">
{{> ../../user_full_name name=user_full_name}}
{{#if is_bot}}
<i class="zulip-icon zulip-icon-bot" aria-hidden="true"></i>
{{/if}}
</div>
<div class="popover-menu-user-type">
{{#if is_bot}}
{{#if is_system_bot}}
<div>{{t "System bot" }}</div>
{{else}}
<div>{{t "Bot" }}
{{~#unless (eq user_type "Member")}}
<span class="lowercase">({{user_type}})</span>
{{/unless~}}
</div>
{{/if}}
{{else}}
<div>{{ user_type }}</div>
{{/if}}
</div>
</div>
</div>
<ul role="menu" class="popover-menu-list" data-user-id="{{user_id}}">
{{#if status_content_available}}
<li role="none" class="text-item popover-menu-list-item hidden-for-spectators">
<span class="personal-menu-status-wrapper">
{{#if status_emoji_info}}
{{#if status_emoji_info.emoji_alt_code}}
<span class="emoji_alt_code">&nbsp;:{{status_emoji_info.emoji_name}}:</span>
{{else if status_emoji_info.url}}
<img src="{{status_emoji_info.url}}" class="emoji status_emoji" data-tippy-content=":{{status_emoji_info.emoji_name}}:"/>
{{else}}
<span class="emoji status_emoji emoji-{{status_emoji_info.emoji_code}}" data-tippy-content=":{{status_emoji_info.emoji_name}}:"></span>
{{/if}}
{{/if}}
<span class="status_text personal-menu-status-text">
{{#if show_placeholder_for_status_text}}
<i class="personal-menu-no-status-text">{{t "No status text"}}</i>
{{else}}
{{status_text}}
{{/if}}
</span>
</span>
{{#if is_me}}
<a role="menuitem" tabindex="0" class="personal-menu-clear-status user-card-clear-status-button popover-menu-link" aria-label="{{t 'Clear status'}}" data-tippy-content="{{t 'Clear your status' }}">
<i class="personal-menu-clear-status-icon popover-menu-icon zulip-icon zulip-icon-x-circle" aria-hidden="true"></i>
</a>
{{/if}}
</li>
{{/if}}
{{#if is_me}}
{{#if status_content_available}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" tabindex="0" class="update_status_text popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-smile-smaller" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Edit status' }}</span>
{{popover_hotkey_hints "Shift" "Y"}}
</a>
</li>
{{else}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" tabindex="0" class="update_status_text popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-smile-smaller" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Set status' }}</span>
{{popover_hotkey_hints "Shift" "Y"}}
</a>
</li>
{{/if}}
{{#if invisible_mode}}
<li role="none" class="link-item popover-menu-list-item">
<a role="menuitem" tabindex="0" class="invisible_mode_turn_off popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-play-circle" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Turn off invisible mode' }}</span>
</a>
</li>
{{else}}
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a role="menuitem" tabindex="0" class="invisible_mode_turn_on popover-menu-link">
<i class="popover-menu-icon zulip-icon zulip-icon-stop-circle" aria-hidden="true"></i>
<span class="popover-menu-label">{{t 'Go invisible' }}</span>
</a>
</li>
{{/if}}
{{/if}}
{{#if (or is_me status_content_available)}}
<li role="separator" class="popover-menu-separator hidden-for-spectators"></li>
{{/if}}
{{#if show_last_active_status}}
<li role="none" class="popover-menu-list-item text-item hidden-for-spectators">
<i class="popover-menu-icon zulip-icon zulip-icon-past-time" aria-hidden="true"></i>
<span class="popover-menu-label user-last-seen-time">{{user_last_seen_time_status}}</span>
</li>
{{/if}}
{{#if is_active}}
{{#if user_time}}
<li role="none" class="popover-menu-list-item text-item hidden-for-spectators">
<i class="popover-menu-icon zulip-icon zulip-icon-clock" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "{user_time} local time" }}</span>
</li>
{{/if}}
{{else}}
<li role="none" class="popover-menu-list-item text-item italic hidden-for-spectators">
{{#if is_bot}}
<span class="popover-menu-label">{{t "This bot has been deactivated." }}</span>
{{else}}
<span class="popover-menu-label">{{t "This user has been deactivated." }}</span>
{{/if}}
</li>
{{/if}}
{{#if (and is_imported_stub is_active)}}
{{#unless is_bot}}
<li role="none" class="popover-menu-list-item text-item italic hidden-for-spectators">
<span class="popover-menu-label">{{t "This user has not activated their imported account." }}</span>
</li>
{{/unless}}
{{/if}}
{{#if spectator_view}}
<li role="none" class="popover-menu-list-item text-item">
<span class="popover-menu-label">{{t "Joined {date_joined}" }}</span>
</li>
{{/if}}
<li role="separator" class="popover-menu-separator hidden-for-spectators"></li>
{{#if is_bot}}
{{#if bot_owner}}
<li role="none" class="popover-menu-list-item user-card-popover-bot-owner-field text-item hidden-for-spectators">
<span class="bot_owner" data-tippy-content="{{ bot_owner.full_name }}">{{t "Bot owner" }}:</span>
{{> ../../user_display_only_pill display_value=bot_owner.full_name user_id=bot_owner.user_id img_src=bot_owner.avatar_url is_active=true}}
</li>
{{/if}}
{{/if}}
{{#if is_active }}
{{#if user_email}}
<li role="none" class="popover-menu-list-item text-item user-card-popover-email-field hidden-for-spectators">
<span class="user_popover_email">{{ user_email }}</span>
<span role="menuitem" tabindex="0" id="popover-menu-copy-email" class="popover-menu-link copy-button hide_copy_icon" aria-label="{{t 'Copy email'}}" data-tippy-content="{{t 'Copy email' }}" data-clipboard-text="{{ user_email }}">
<i class="zulip-icon zulip-icon-copy hide" aria-hidden="true"></i>
</span>
</li>
{{/if}}
{{/if}}
{{> ./user_card_popover_custom_fields profile_fields=display_profile_fields}}
<li role="none" class="popover-menu-list-item link-item hidden-for-spectators">
<a role="menuitem" class="popover-menu-link view_full_user_profile" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-account" aria-hidden="true"></i>
{{#if is_me}}
<span class="popover-menu-label">{{t "View your profile" }}</span>
{{else}}
<span class="popover-menu-label">{{t "View profile" }}</span>
{{/if}}
</a>
</li>
{{#if can_send_private_message}}
<li role="none" class="popover-menu-list-item link-item hidden-for-spectators">
<a role="menuitem" class="popover-menu-link {{ private_message_class }}" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-send-dm" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Send direct message" }}</span>
{{#if is_sender_popover}}
{{popover_hotkey_hints "Shift" "R"}}
{{/if}}
</a>
</li>
{{/if}}
{{#unless is_me}}
<li role="none" class="popover-menu-list-item link-item hidden-for-spectators">
{{#if has_message_context}}
<a role="menuitem" class="popover-menu-link mention_user" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-at-sign" aria-hidden="true"></i>
{{#if is_bot}}
<span class="popover-menu-label">{{t "Reply mentioning bot" }}</span>
{{else}}
<span class="popover-menu-label">{{t "Reply mentioning user" }}</span>
{{/if}}
{{#if is_sender_popover}}
{{popover_hotkey_hints "@"}}
{{/if}}
</a>
{{else}}
<a role="menuitem" class="popover-menu-link copy_mention_syntax" tabindex="0" data-clipboard-text="{{ user_mention_syntax }}">
<i class="popover-menu-icon fa zulip-icon zulip-icon-at-sign" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Copy mention syntax" }}</span>
{{#if is_sender_popover}}
{{popover_hotkey_hints "@"}}
{{/if}}
</a>
{{/if}}
</li>
{{/unless}}
{{#if is_me}}
<li role="none" class="popover-menu-list-item link-item hidden-for-spectators">
<a role="menuitem" class="popover-menu-link edit-your-profile" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-tool" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Edit your profile" }}</span>
</a>
</li>
{{/if}}
<li role="separator" class="popover-menu-separator hidden-for-spectators"></li>
<li role="none" class="popover-menu-list-item link-item">
<a role="menuitem" href="{{ pm_with_url }}" class="narrow_to_private_messages popover-menu-link hidden-for-spectators" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-user" aria-hidden="true"></i>
{{#if is_me}}
<span class="popover-menu-label">{{t "View messages with yourself" }}</span>
{{else}}
<span class="popover-menu-label">{{t "View direct messages" }}</span>
{{/if}}
</a>
</li>
<li role="none" class="popover-menu-list-item link-item">
<a role="menuitem" href="{{ sent_by_url }}" class="narrow_to_messages_sent popover-menu-link hidden-for-spectators" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-message-square" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "View messages sent" }}</span>
</a>
</li>
{{#if show_manage_section}}
<li role="separator" class="popover-menu-separator hidden-for-spectators"></li>
{{#if can_mute}}
<li role="none" class="popover-menu-list-item link-item">
<a role="menuitem" class="sidebar-popover-mute-user popover-menu-link hidden-for-spectators" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-hide" aria-hidden="true"></i>
{{#if is_bot}}
<span class="popover-menu-label">{{t "Mute this bot" }}</span>
{{else}}
<span class="popover-menu-label">{{t "Mute this user" }}</span>
{{/if}}
</a>
</li>
{{/if}}
{{#if can_unmute}}
<li role="none" class="popover-menu-list-item link-item">
<a role="menuitem" class="sidebar-popover-unmute-user popover-menu-link hidden-for-spectators" tabindex="0">
<i class="popover-menu-icon fa fa-eye" aria-hidden="true"></i>
{{#if is_bot}}
<span class="popover-menu-label">{{t "Unmute this bot" }}</span>
{{else}}
<span class="popover-menu-label">{{t "Unmute this user" }}</span>
{{/if}}
</a>
</li>
{{/if}}
{{#if can_manage_user}}
<li role="separator" class="popover-menu-separator hidden-for-spectators"></li>
<li role="none" class="popover-menu-list-item link-item">
<a role="menuitem" class="sidebar-popover-manage-user popover-menu-link hidden-for-spectators" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-user-cog" aria-hidden="true"></i>
{{#if is_bot}}
<span class="popover-menu-label">{{t "Manage this bot" }}</span>
{{else}}
<span class="popover-menu-label">{{t "Manage this user" }}</span>
{{/if}}
</a>
</li>
{{#if (not is_active)}}
<li role="none" class="popover-menu-list-item link-item">
<a role="menuitem" class="sidebar-popover-reactivate-user popover-menu-link hidden-for-spectators" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-user-plus" aria-hidden="true"></i>
{{#if is_bot}}
<span class="popover-menu-label">{{t "Reactivate this bot" }}</span>
{{else}}
<span class="popover-menu-label">{{t "Reactivate this user" }}</span>
{{/if}}
</a>
</li>
{{/if}}
{{/if}}
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,46 @@
{{#each profile_fields}}
{{#unless this.is_long_text}}
<li role="none" class="popover-menu-list-item text-item custom_user_field" data-type="{{this.type}}" data-field-id="{{this.id}}">
{{#if this.is_link}}
<a href="{{this.value}}" target="_blank" rel="noopener noreferrer" class="custom-profile-field-value custom-profile-field-link" data-tippy-content="{{this.name}}" tabindex="0">
<span class="custom-profile-field-text">{{this.value}}</span>
</a>
<span role="menuitem" tabindex="0" class="popover-menu-link copy-button copy-custom-profile-field-link" aria-label="{{t 'Copy URL' }}" data-tippy-content="{{t 'Copy URL' }}">
<i class="zulip-icon zulip-icon-copy" aria-hidden="true"></i>
</span>
{{else if this.is_external_account}}
{{#if this.link}}
<a href="{{this.link}}" target="_blank" rel="noopener noreferrer" class="custom-profile-field-value custom-profile-field-link" data-tippy-content="{{this.name}}" tabindex="0">
{{> ../../default_external_account_icon subtype=this.subtype}}
<span class="custom-profile-field-text">{{this.value}}</span>
</a>
{{else}}
{{> ../../default_external_account_icon subtype=this.subtype}}
<span class="custom-profile-field-text">{{this.value}}</span>
{{/if}}
{{else if this.rendered_value}}
<div class="custom-profile-field-value rendered_markdown" data-tippy-content="{{this.name}}">
{{rendered_markdown this.rendered_value}}
</div>
{{else}}
<div class="custom-profile-field-value" data-tippy-content="{{this.name}}">
<span class="custom-profile-field-text">{{this.value}}</span>
</div>
{{/if}}
</li>
{{/unless}}
{{/each}}
{{!-- Long text custom profile fields are rendered after all other custom profile fields --}}
{{#each profile_fields}}
{{#if this.is_long_text}}
<li role="none" class="popover-menu-list-item link-item custom_user_field" data-type="{{this.type}}" data-field-id="{{this.id}}">
<div class="popover-menu-link view_full_user_profile" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-id-card" aria-hidden="true"></i>
<span class="popover-menu-label">{{this.name}}</span>
<span role="menuitem" tabindex="0" class="copy-button copy-custom-profile-field-long-text" aria-label="{{t 'Copy'}}" data-tippy-content="{{t 'Copy'}}" data-clipboard-text="{{this.value}}">
<i class="zulip-icon zulip-icon-copy" aria-hidden="true"></i>
</span>
</div>
</li>
{{/if}}
{{/each}}

View File

@@ -0,0 +1,18 @@
<div class="popover-menu user-card-popover-actions no-auto-hide-right-sidebar-overlay" id="user_card_popover" data-simplebar data-simplebar-tab-index="-1">
<div class="popover-menu-user-header">
<div class="popover-menu-user-avatar-container">
<img class="popover-menu-user-avatar" src="{{user_avatar}}" />
</div>
<div class="popover-menu-user-info">
<div class="popover-menu-user-full-name text-select" data-tippy-content="{{user_full_name}}">
{{> ../../user_full_name name=user_full_name}}
{{#if is_bot}}
<i class="zulip-icon zulip-icon-bot" aria-hidden="true"></i>
{{/if}}
</div>
<div class="popover-menu-user-type hidden-for-spectators">
<span class="popover-menu-label">{{t "This user has been deleted." }}</span>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,21 @@
<div class="popover-menu user-card-popover-actions no-auto-hide-right-sidebar-overlay" id="user_card_popover" data-simplebar data-simplebar-tab-index="-1">
<div class="popover-menu-user-header">
<div class="popover-menu-user-avatar-container">
<img class="popover-menu-user-avatar" src="{{user_avatar}}" />
</div>
<div class="popover-menu-user-info">
<div class="popover-menu-user-full-name text-select" data-tippy-content="{{t 'Unknown user' }}">
{{t 'Unknown user' }}
</div>
</div>
</div>
<ul role="menu" class="popover-menu-list" data-user-id="{{user_id}}">
<li role="separator" class="popover-menu-separator hidden-for-spectators"></li>
<li role="none" class="popover-menu-list-item link-item">
<a role="menuitem" href="{{ sent_by_url }}" class="narrow_to_messages_sent popover-menu-link hidden-for-spectators" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-message-square" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "View messages sent" }}</span>
</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,86 @@
<div class="popover-menu user-group-info-popover" data-simplebar data-simplebar-tab-index="-1">
<ul role="menu" class="popover-menu-list">
<li role="none" class="link-item popover-menu-list-item">
<div class="popover-group-menu-info">
<div class="popover-group-menu-name-container">
<i class="popover-menu-icon zulip-icon zulip-icon-user-group" aria-hidden="true"></i>
<span class="popover-group-menu-name">{{group_name}}</span>
</div>
{{#if group_description}}
<div class="popover-group-menu-description">{{group_description}}</div>
{{/if}}
</div>
</li>
{{#unless (and (eq displayed_members.length 0) (eq displayed_subgroups.length 0))}}
{{#if user_can_access_all_other_users}}
<li role="none" class="popover-menu-list-item text-item italic">
{{#tr}}
{members_count, plural, =1 {1 member} other {# members}}
{{/tr}}
</li>
{{/if}}
{{/unless}}
{{#if deactivated}}
<li role="none" class="popover-menu-list-item text-item italic hidden-for-spectators">
<span class="popover-menu-label">{{t "This group has been deactivated." }}</span>
</li>
{{/if}}
<li role="separator" class="popover-menu-separator"></li>
<li role="none" class="popover-menu-list-item">
{{#unless (and (eq displayed_members.length 0) (eq displayed_subgroups.length 0))}}
<ul class="popover-menu-list popover-group-menu-member-list" data-simplebar data-simplebar-tab-index="-1" data-simplebar-auto-hide="false">
{{#each displayed_subgroups}}
<li class="popover-group-menu-member">
<i class="popover-group-member-icon popover-menu-icon zulip-icon zulip-icon-user-group" aria-hidden="true"></i>
<span class="popover-group-menu-member-name">{{name}}</span>
</li>
{{/each}}
{{#each displayed_members}}
<li class="popover-group-menu-member">
{{#if is_bot}}
<i class="popover-group-member-icon zulip-icon zulip-icon-bot" aria-hidden="true"></i>
{{else}}
<span class="popover-group-member-icon user-circle zulip-icon zulip-icon-{{user_circle_class}} {{user_circle_class}} popover-group-menu-user-presence hidden-for-spectators" data-tippy-content="{{user_last_seen_time_status}}"></span>
{{/if}}
<span class="popover-group-menu-member-name">{{full_name}}</span>
</li>
{{/each}}
{{#unless display_all_subgroups_and_members}}
<li class="popover-group-menu-member">
<span class="popover-group-menu-member-name">
{{#if is_system_group}}
{{#if has_bots}}
{{#tr class="popover-group-menu-member"}}
View all <z-link-users>users</z-link-users> and <z-link-bots>bots</z-link-bots>
{{#*inline "z-link-users"}}<a href="#organization/users">{{> @partial-block}}</a>{{/inline}}
{{#*inline "z-link-bots"}}<a href="#organization/bots">{{> @partial-block}}</a>{{/inline}}
{{/tr}}
{{else}}
<a href="#organization/users" role="menuitem">
{{t "View all users"}}
</a>
{{/if}}
{{else}}
<a href="{{group_members_url}}" role="menuitem">
{{t "View all members"}}
</a>
{{/if}}
</span>
</li>
{{/unless}}
</ul>
{{else}}
<span class="popover-group-menu-placeholder"><i>{{t 'This group has no members.'}}</i></span>
{{/unless}}
</li>
{{#unless is_guest}}
<li role="separator" class="popover-menu-separator hidden-for-spectators"></li>
<li role="none" class="link-item popover-menu-list-item hidden-for-spectators">
<a href="{{group_edit_url}}" role="menuitem" class="navigate-link-on-enter popover-menu-link" tabindex="0">
<i class="popover-menu-icon zulip-icon zulip-icon-user-group-cog" aria-hidden="true"></i>
<span class="popover-menu-label">{{t "Group settings" }}</span>
</a>
</li>
{{/unless}}
</ul>
</div>