zulip/templates/zerver/app/index.html

213 lines
9.8 KiB
HTML

{% extends "zerver/base.html" %}
{% set entrypoint = "app" %}
{# The app itself. #}
{# Includes some other templates as tabs. #}
{% block meta_viewport %}
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
{% endblock %}
{% block customhead %}
<meta name="apple-mobile-web-app-capable" content="yes" />
<link href="/static/images/logo/apple-touch-icon-precomposed.png" rel="apple-touch-icon-precomposed" />
<style>
#app-loading {
font-size: 16px;
background-color: hsl(0, 0%, 100%);
position: fixed;
height: 100%;
width: 100%;
padding: 10px;
top: 0px;
left: 0px;
z-index: 9001;
}
#app-loading-middle-content, #app-loading-bottom-content {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
padding: 10px;
}
#app-loading-logo {
width: 96px;
height: 96px;
margin: 0 auto 24px;
}
#app-loading-middle-content h3 {
text-align: center;
}
#app-loading-bottom-content {
top: unset;
bottom: 20px;
}
body.night-mode #app-loading {
background-color: hsl(212, 28%, 18%);
color: hsl(236, 33%, 90%);
}
</style>
{% endblock %}
{% block content %}
<div id="feedback_container" class="new-style">
</div>
<div id="app-loading">
<div id="app-loading-middle-content">
<div id="app-loading-logo">
<img src="/static/images/logo/zulip-icon-circle.svg" />
</div>
<h3>{{ _('Loading...') }}</h3>
</div>
<div id="app-loading-bottom-content">
<p>{% trans %}If this message does not go away, please wait a couple seconds and <a id="reload-lnk">reload</a> the page.{% endtrans %}</p>
<script nonce="{{ csp_nonce }}">
document.addEventListener('DOMContentLoaded', function () {
function reload() {
location.reload(true);
}
document.getElementById('reload-lnk').addEventListener('click', reload);
});
</script>
</div>
</div>
<div class="subscriptions">
<div id="subscriptions_table">
</div>
</div>
<div id="drafts_table"></div>
<div id="settings_overlay_container" class="overlay" data-overlay="settings" aria-hidden="true">
</div>
<div id="navbar_alerts_wrapper"></div>
<div id="navbar-container"></div>
<div class="fixed-app">
<div class="app-main">
<div class="column-middle column-overlay">
<div id="message_view_header_underpadding"></div>
</div>
</div>
</div>
<div class="app">
<div class="alert-box">
<div class="alert alert_sidebar alert-error home-error-bar" id="connection-error">
<div class="exit"></div>
{% trans %}<strong class="message">Unable to connect to
Zulip.</strong> Updates may be delayed.{% endtrans %} {{ _('Retrying soon...') }} <a class="restart_get_events_button">{{ _('Try now.') }}</a>
</div>
<div class="alert alert_sidebar alert-error home-error-bar" id="zephyr-mirror-error">
<div class="exit"></div>
{# The below isn't tagged for translation
intentionally, because the feature is only used at
MIT. #}
<strong>Your Zephyr mirror is not working.</strong>
<span id="normal-zephyr-mirror-error-text">
We recommend that
you <a class="webathena_login">give Zulip the ability to mirror the messages for you via
WebAthena</a>. If you'd prefer, you can instead
<a href="/zephyr-mirror" target="_blank" rel="noopener noreferrer">run the
Zephyr mirror script yourself</a> in a screen
session.
</span>
<span id="desktop-zephyr-mirror-error-text" class="notdisplayed">To fix
this, you'll need to use the web interface.</span>
</div>
<div class="alert alert_sidebar alert-error home-error-bar" id="home-error"></div>
<div class="alert alert_sidebar alert-error home-error-bar" id="reloading-application"></div>
</div>
<div class="app-main">
<div class="column-left" id="left-sidebar-container">
</div>
<div class="column-middle">
<div class="column-middle-inner tab-content">
<div id="recent_topics_view">
<div class="recent_topics_container">
<div id="recent_topics_table"></div>
</div>
</div>
<div class="tab-pane" id="message_feed_container">
<div class="fixed-app" id="floating_recipient_bar">
<div class="app-main recipient_bar_content">
<div class="column-middle column-overlay recipient-bar-main">
<div class="floating_recipient">
<div style="display: none;" id="current_label_stream" class="recipient_row">
<div class="message_label_clickable message_header message_header_stream right_part"></div>
</div>
<div style="display: none;" id="current_label_private_message" class="recipient_row">
<div class="message_label_clickable message_header message_header_private_message right_part"></div>
</div>
</div>
</div>
</div>
</div>
<div id="alert-bar-container" class="alert-bar-container" style='display: none;'>
<div id="alert-bar" class="alert-bar">
<div id="alert-bar-contents" class="alert-bar-contents">
<div id="custom-alert-bar-content"></div>
<i class="fa fa-remove close-alert-icon" aria-hidden="true"></i>
</div>
</div>
</div>
<div class="message_area_padder message_list" id="main_div">
<div class="top-messages-logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 773.12 773.12">
<circle cx="386.56" cy="386.56" r="386.56"/>
<path d="M566.66 527.25c0 33.03-24.23 60.05-53.84 60.05H260.29c-29.61 0-53.84-27.02-53.84-60.05 0-20.22 9.09-38.2 22.93-49.09l134.37-120c2.5-2.14 5.74 1.31 3.94 4.19l-49.29 98.69c-1.38 2.76.41 6.16 3.25 6.16h191.18c29.61 0 53.83 27.03 53.83 60.05zm0-281.39c0 20.22-9.09 38.2-22.93 49.09l-134.37 120c-2.5 2.14-5.74-1.31-3.94-4.19l49.29-98.69c1.38-2.76-.41-6.16-3.25-6.16H260.29c-29.61 0-53.84-27.02-53.84-60.05s24.23-60.05 53.84-60.05h252.54c29.61 0 53.83 27.02 53.83 60.05z"/>
</svg>
</div>
<div id="loading_older_messages_indicator"></div>
<div id="page_loading_indicator"></div>
{% include "zerver/app/message_feed_errors.html" %}
<div class="message_table focused_table" id="zhome" role="list" aria-live="polite" aria-label="{{ _('Messages') }}">
</div>
<div class="message_table" id="zfilt" role="list" aria-live="polite" aria-label="{{ _('Messages') }}">
</div>
<div id="typing_notifications">
</div>
<div id="bottom_whitespace">
<div class="bottom-messages-logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 773.12 773.12">
<circle cx="386.56" cy="386.56" r="386.56"/>
<path d="M566.66 527.25c0 33.03-24.23 60.05-53.84 60.05H260.29c-29.61 0-53.84-27.02-53.84-60.05 0-20.22 9.09-38.2 22.93-49.09l134.37-120c2.5-2.14 5.74 1.31 3.94 4.19l-49.29 98.69c-1.38 2.76.41 6.16 3.25 6.16h191.18c29.61 0 53.83 27.03 53.83 60.05zm0-281.39c0 20.22-9.09 38.2-22.93 49.09l-134.37 120c-2.5 2.14-5.74-1.31-3.94-4.19l49.29-98.69c1.38-2.76-.41-6.16-3.25-6.16H260.29c-29.61 0-53.84-27.02-53.84-60.05s24.23-60.05 53.84-60.05h252.54c29.61 0 53.83 27.02 53.83 60.05z"/>
</svg>
</div>
<div id="loading_newer_messages_indicator"></div>
</div>
</div>
</div>
<div id="compose" {% if embedded %}data-embedded{% endif %}>
<div id="compose-container"></div>
</div>
</div><!--/tab-content-->
</div>
<div class="column-right" id="right-sidebar-container">
</div><!--/right sidebar-->
</div><!--/row-->
<div class="informational-overlays overlay new-style" data-overlay="informationalOverlays" aria-hidden="true">
<div class="overlay-content modal-bg">
<div class="overlay-tabs">
<button class="button no-style exit">&times;</button>
</div>
<div class="overlay-body">
</div>
</div>
</div>
<div class="hidden">
<form id="logout_form" action="/accounts/logout/" method="POST">{{ csrf_input }}
</form>
</div>
<div id="user-profile-modal-holder"></div>
<div id="delete-topic-modal-holder"></div>
<div class="left-sidebar-modal-holder"></div>
<div class="mute-user-modal-holder"></div>
<div id="move-a-topic-modal-holder"></div>
<audio id="notification-sound-audio">
<source id="notification-sound-source-ogg" type="audio/ogg" />
<source id="notification-sound-source-mp3" type="audio/mpeg" />
</audio>
</div>
{% endblock %}