zulip/static/templates/settings_tab.handlebars
Rishi Gupta 4bfac78303 Refactor /integrations page links to support subdomains.
Also changes all links to /integrations to be relative rather than
absolute, so that users will primarily access the /integrations page
for their subdomain.
2016-08-22 22:39:53 -07:00

458 lines
19 KiB
Handlebars
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<h1><i class="icon-vector-wrench settings-icon"></i>{{t "Settings" }}</h1>
<div id="settings-change-box">
<div class="alert" id="settings-status"></div>
<div id="account-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-user settings-section-icon"></i>{{t "Your Account" }}</div>
<div class="account-settings-form">
<form action="/json/settings/change" method="post"
class="form-horizontal your-account-settings">
<div class="control-group" id="name_change_container">
<label for="full_name" class="control-label">{{t "Full name" }}</label>
<div class="controls">
<input type="text" name="full_name" id="full_name"
value="{{ page_params.fullname }}" />
</div>
</div>
{{#if page_params.password_auth_enabled}}
<div class="control-group" id="pw_change_link">
<label for="change_password_button" class="control-label">{{t "Password" }}</label>
<div class="controls">
<button class="btn btn-default change_password_button" data-dismiss="modal" aria-hidden="true">{{t "Change Password" }}</button>
</div>
</div>
<div id="pw_change_controls">
<div class="control-group">
<label for="old_password" class="control-label">{{t "Old password" }}</label>
<div class="controls">
<input type="password" autocomplete="off"
name="old_password" id="old_password" value="" />
(<a href="/accounts/password/reset/" target="_blank">{{t "Forgotten it?" }}</a>)
</div>
</div>
<div class="control-group">
<label for="new_password" class="control-label">{{t "New password" }}</label>
<div class="controls">
<input type="password" autocomplete="off"
name="new_password" id="new_password" value="" />
</div>
</div>
<div class="control-group">
<label class="control-label">{{t "Password strength" }}</label>
<div class="controls">
<div class="progress" id="pw_strength">
<div class="bar bar-danger fade" style="width: 10%;"></div>
</div>
</div>
</div>
<div class="control-group">
<label for="confirm_password" class="control-label">{{t "Confirm password" }}</label>
<div class="controls">
<input type="password" autocomplete="off"
name="confirm_password" id="confirm_password" value="" />
</div>
</div>
</div>
{{/if}}
<div class="control-group">
<div class="controls">
<input type="submit" name="change_settings"
value="{{t 'Save changes' }}" class="btn btn-big btn-primary" />
</div>
</div>
<div class="user-avatar-section">
<p>
<img id="user-settings-avatar" src="{{ page_params.avatar_url }}" />
</p>
<div id="user_avatar_file_input_error" class="text-error"></div>
<div id="user_avatar_file"></div>
<input type="file" name="user_avatar_file_input" class="notvisible" id="user_avatar_file_input" value="{{t 'Upload avatar' }}" />
<div id="upload_avatar_spinner"></div>
<button class="btn btn-default" id="user_avatar_upload_button">{{t 'Customize avatar' }}</button>
</div>
</form>
</div>
</div>
<div>
<div id="display-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-time settings-section-icon"></i>
{{t 'Display Settings' }}</div>
<div class="alert" id="display-settings-status"></div>
<div class="display-settings-form">
<div class="control-group">
<label for="default_language" class="control-label inline">{{t "Default Language" }}: <span id='default_language_name'>{{page_params.default_language_name}}</span></label>
<a id="default_language" href="#default_language" title='Change default language'>[Change]</a>
<div id="default_language_modal" class="modal hide" tabindex="-1" role="dialog"
aria-labelledby="default_language_modal_label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="default_language_modal_label">{{t "Select Default Language" }}</h3>
</div>
<div class="modal-body">
<p>
The following is a few of the languages we have started to
support or are hoping to support in the near future. We would
love help translating; if you're interested in helping, make an
account at <a href='https://www.transifex.com/zulip/zulip/'>
https://www.transifex.com/zulip/zulip/</a>, and sign up for a
language! You can also request any language we don't currently
have. It only takes a few hours to translate the most important
parts of the app.
</p>
<div>
<table>
{{#each page_params.language_list_dbl_col}}
<tr>
<td>
<a class="language" data-code="{{this.first.code}}" data-name="{{this.first.name}}">
{{#if this.first.selected}}
<b>{{this.first.percent}}</b>
{{else}}
{{this.first.percent}}
{{/if}}
</a>
</td>
<td>
<a class="language" data-code="{{this.second.code}}" data-name="{{this.second.name}}">
{{#if this.second.selected}}
<b>{{this.second.percent}}</b>
{{else}}
{{this.second.percent}}
{{/if}}
</a>
</td>
</tr>
{{/each}}
</table>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" data-dismiss="modal" aria-hidden="true">{{t "Close" }}</button>
</div>
</div>
</div>
<div class="control-group">
<div class="controls">
<input type="checkbox" name="left_side_userlist" id="left_side_userlist"
{{#if page_params.left_side_userlist}}
checked="checked"
{{/if}} />
</div>
<label for="left_side_userlist" class="control-label">{{t "Display user list on left side in narrow windows." }}</label>
</div>
<div class="control-group">
<div class="controls">
<input type="checkbox" name="twenty_four_hour_time" id="twenty_four_hour_time"
{{#if page_params.twenty_four_hour_time}}
checked="checked"
{{/if}} />
</div>
<label for="twenty_four_hour_time" class="control-label">
{{t "Display time in 24-hour format (17:00 instead of 5:00 PM)" }}
</label>
</div>
</div>
</div>
</div>
<div>
<div id="notification-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-warning-sign settings-section-icon"></i>{{t "Notifications" }}</div>
<div class="notification-reminder">{{#tr this }}You'll receive notifications when a message arrives and __page_params.product_name__ isn't in focus or the message is offscreen.{{/tr}}</div>
<div class="alert" id="notify-settings-status"></div>
<div class="notification-settings-form">
<h4>{{t "Stream messages" }}</h4>
<p>{{t "Unless I say otherwise for a particular stream, I want:" }}</p>
<div class="control-group">
<div class="controls">
<input type="checkbox" name="enable_stream_desktop_notifications"
id="enable_stream_desktop_notifications"
{{#if page_params.stream_desktop_notifications_enabled}}
checked="checked"
{{/if}} />
</div>
<label for="enable_stream_desktop_notifications" class="control-label">
{{t "Desktop notifications" }}
</label>
<div class="propagate_stream_notifications_change"></div>
</div>
<div class="control-group">
<div class="controls">
<input type="checkbox" name="enable_stream_sounds" id="enable_stream_sounds"
{{#if page_params.stream_sounds_enabled}}
checked="checked"
{{/if}} />
</div>
<label for="enable_stream_sounds" class="control-label">
{{t "Audible notifications" }}
</label>
<div class="propagate_stream_notifications_change"></div>
</div>
<p class="notification-settings-note">
{{#tr this}}Change notification settings for individual streams on your <a href="/#subscriptions">Streams page</a>.{{/tr}}
</p>
<h4>{{t "Private messages and @-mentions" }}</h4>
<p>{{t "I want:" }}</p>
<div class="control-group">
<div class="controls">
<input type="checkbox" name="enable_desktop_notifications" id="enable_desktop_notifications"
{{#if page_params.desktop_notifications_enabled}}
checked="checked"
{{/if}} />
</div>
<label for="enable_desktop_notifications" class="control-label">
{{t "Desktop notifications" }}
</label>
</div>
<div class="control-group">
<div class="controls">
<input type="checkbox" name="enable_sounds" id="enable_sounds"
{{#if page_params.sounds_enabled}}
checked="checked"
{{/if}} />
</div>
<label for="enable_sounds" class="control-label">
{{t "Audible notifications" }}
</label>
</div>
<div class="control-group">
<div class="controls">
<input type="checkbox" name="enable_offline_email_notifications" id="enable_offline_email_notifications"
{{#if page_params.enable_offline_email_notifications}}
checked="checked"
{{/if}} />
</div>
<label for="enable_offline_email_notifications" class="control-label">
{{t "Email notifications when offline" }}
</label>
</div>
<div class="control-group">
<div class="controls">
<input type="checkbox" name="enable_offline_push_notifications" id="enable_offline_push_notifications"
{{#if page_params.enable_offline_push_notifications}}
checked="checked"
{{/if}} />
</div>
<label for="enable_offline_push_notifications" class="control-label">
{{t "Mobile push notifications when offline" }}
</label>
</div>
<div id="other_notifications">
<h4>{{t "Other notifications" }}</h4>
<p>{{t "I want:" }}</p>
<div class="control-group" id="digest_container">
<div class="controls">
<input type="checkbox" name="enable_digest_emails" id="enable_digest_emails"
{{#if page_params.enable_digest_emails}}
checked="checked"
{{/if}} />
</div>
<label for="enable_digest_emails" class="control-label">
{{t "Digest emails when I'm away" }}
</label>
</div>
{{!-- If you add another control group here, make sure to change
$("#other_notifications").hide(); in settings.js to
$("#digest_container").hide();
--}}
</div>
<div class="control-group">
<div class="controls notification-submission">
<input type="submit" id="change_notification_settings"
name="change_notification_settings" value="{{t 'Save changes' }}"
class="btn btn-big btn-primary" />
</div>
</div>
</div>
</div>
</div>
</div>
<div id="bot-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-github settings-section-icon"></i>{{t "Your Bots" }}</div>
<div class="bot-settings-form">
{{#tr this}}
<p class="bot-settings-note">Looking for our <a href="/integrations" target="_blank">Integrations</a>
or <a href="{{ server_uri }}/api" target="_blank">API</a> documentation?</p>
{{/tr}}
<ol id="bots_list">
</ol>
<div id="bot_table_error" class="alert alert-error hide"></div>
<form id="create_bot_form" class="form-horizontal">
<div class="add-new-bot-box">
<div class="settings-section-title new-bot-section-title">Add a New Bot</div>
<div class="new-bot-form">
<div class="control-group">
<label for="create_bot_name" class="control-label">{{t "Full name" }}</label>
<input type="text" name="bot_name" id="create_bot_name" class="required"
maxlength=100 placeholder="{{t 'Full Bot Name' }}" value="" />
<div><label for="create_bot_name" generated="true" class="text-error"></label></div>
</div>
<div class="control-group">
<label for="bot_short_name" class="control-label">{{t "Username" }}</label>
<input type="text" name="bot_short_name" id="create_bot_short_name" class="required bot_local_part"
placeholder="{{t 'bot_user_name' }}" value="" />-{{t "bot" }}@{{ page_params.domain }}
<div><label for="create_bot_short_name" generated="true" class="text-error"></label></div>
</div>
<div class="control-group new-bot-ui">
<label for="create_bot_default_sending_stream" class="control-label">{{t "Send to stream" }}</label>
<select name="bot_default_sending_stream" id="create_bot_default_sending_stream"></select>
</div>
<div class="control-group new-bot-ui">
<label for="create_bot_default_events_register_stream" class="control-label">{{t "Listen on" }}</label>
<select name="bot_default_events_register_stream" id="create_bot_default_events_register_stream"></select>
</div>
<div class="control-group">
<div class="controls">
<div id="bot_avatar_file"></div>
<input type="file" name="bot_avatar_file_input" class="notvisible" id="bot_avatar_file_input" value="{{t 'Upload avatar' }}" />
<button class="btn btn-default" id="bot_avatar_clear_button">{{t "Clear avatar" }}</button>
<button class="btn btn-default" id="bot_avatar_upload_button">{{t "Customize avatar" }}</button> ({{t "Optional" }})
</div>
</div>
<p>
<div id="bot_avatar_file_input_error" class="text-error"></div>
</p>
<div class="control-group">
<div class="controls">
<input type="submit" class="btn btn-primary" id="create_bot_button" value="{{t 'Create Bot' }}" />
</div>
</div>
</div>
</div>
</form>
<hr class="settings_separator" />
<div class="form-horizontal" id="api_key_button_box">
{{#tr this}}
<p class="api-key-note">For most bots using the API, you'll want to give each bot
its own name and API key using the above section. But if you
want to write a bot that can access your own private
messages, you should use your personal API key.
</p>
{{/tr}}
<div class="control-group">
<button class="btn btn-default" id="api_key_button">{{t "Show/change your API key" }}</button>
</div>
</div>
<div id="get_api_key_box">
{{#tr this}}
<p>Please re-enter your password to confirm your identity.
(<a href="/accounts/password/reset/" target="_blank">Forgotten it?</a>)</p>
{{/tr}}
<form action="/json/fetch_api_key" method="post" class="form-horizontal">
<div class="control-group">
<label for="password" class="control-label">{{t "Current password" }}</label>
<input type="password" autocomplete="off"
name="password" id="get_api_key_password" value="" />
</div>
<div class="control-group">
<input type="submit" name="view_api_key" value="{{t 'Get API key' }}"
class="btn btn-primary" />
</div>
</form>
</div>
<div id="show_api_key_box">
<p>{{t "Your API key:" }}</p>
<p><b><span id="api_key_value"></span></b></p>
<button type="submit" class="btn btn-primary regenerate_api_key">
{{t "Generate new API Key" }}
</button>
<div id="user_api_key_error text-error">
</div>
</div>
</div>
</div>
<div id="alert-word-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-book settings-section-icon"></i>{{t "Custom Alert Words" }}</div>
<div class="form-horizontal" id="alert_word_info_box">
{{#tr this}}
<p class="alert-word-settings-note">
{{t "Alert words allow you to be notified as if you were @-mentioned
when certain words or phrases are used in Zulip."}}
</p>
{{/tr}}
</div>
<ul id="alert_words_list">
</ul>
</div>
<div class="ui-settings">
<div id="ui-settings" class="settings-section">
<div class="settings-section-title"><i class="icon-vector-beaker settings-section-icon"></i>{{#tr this}}__page_params.product_name__ Labs{{/tr}}</div>
<div class="alert" id="ui-settings-status"></div>
<div class="ui-settings-form">
<p>
{{t "Warning: the below features are experimental features and may not work as well as you would like." }}
</p>
<div class="control-group">
<div class="controls">
<input type="checkbox" name="autoscroll_forever" id="autoscroll_forever"
{{#if page_params.autoscroll_forever}}
checked="checked"
{{/if}} />
</div>
<label for="autoscroll_forever" class="control-label">
{{t "Always auto-scroll to new messages" }}
</label>
<div class="controls">
<input type="checkbox" name="default_desktop_notifications" id="default_desktop_notifications"
{{#if page_params.default_desktop_notifications}}
checked="checked"
{{/if}} />
</div>
<label for="default_desktop_notifications" class="control-label">
{{t "Enable desktop notifications for new streams" }}
</label>
</div>
<div class="control-group">
<div class="controls ui-submission">
<input type="submit" name="change_settings" value="{{t 'Save changes' }}" class="btn btn-big btn-primary" />
</div>
</div>
</div>
</div>
</div>