2016-10-06 20:34:07 +02:00
|
|
|
<div id="account-settings" class="settings-section show" data-name="your-account">
|
2017-04-26 04:52:39 +02:00
|
|
|
<div class="alert" id="account-settings-status"></div>
|
|
|
|
<div class="account-settings-form">
|
2017-07-05 21:54:58 +02:00
|
|
|
<div class="inline-block">
|
|
|
|
<form class="email-change-form grid">
|
2018-01-25 02:11:17 +01:00
|
|
|
<h3>{{t "User settings" }}</h3>
|
2017-07-05 21:54:58 +02:00
|
|
|
<div class="input-group user-name-section">
|
|
|
|
<label class="inline-block title">{{t "Email" }}</label>
|
2018-02-02 16:54:26 +01:00
|
|
|
<a id="change_email" {{#if page_params.is_admin}}href="#change_email"{{else}}{{#unless page_params.realm_email_changes_disabled}}href="#change_email"{{/unless}}{{/if}}>
|
2017-07-17 19:33:58 +02:00
|
|
|
<button type="button" class="button small rounded inline-block" id='email_value'
|
2018-04-05 08:38:46 +02:00
|
|
|
{{#unless page_params.is_admin}}{{#if page_params.realm_email_changes_disabled}}disabled="disabled"{{/if}}{{/unless}}>
|
2018-07-16 09:26:05 +02:00
|
|
|
{{page_params.delivery_email}}
|
2017-07-17 19:33:58 +02:00
|
|
|
<i class="fa fa-pencil"></i>
|
2017-07-05 21:54:58 +02:00
|
|
|
</button>
|
|
|
|
</a>
|
2018-07-04 01:16:40 +02:00
|
|
|
<i class="fa fa-question-circle change_email_tooltip settings-info-icon" {{#if page_params.is_admin}}style="display:none"{{else}}{{#unless page_params.realm_email_changes_disabled}}style="display:none"{{/unless}}{{/if}} data-toggle="tooltip"
|
2019-06-07 06:16:20 +02:00
|
|
|
title="{{t 'Email address changes are disabled in this organization.' }}"></i>
|
2017-07-05 21:54:58 +02:00
|
|
|
</div>
|
|
|
|
|
2018-04-19 04:40:26 +02:00
|
|
|
<div id="change_email_modal" class="modal modal-bg hide fade" tabindex="-1" role="dialog"
|
2018-04-05 08:38:46 +02:00
|
|
|
aria-labelledby="change_email_modal_label" aria-hidden="true">
|
2017-07-05 21:54:58 +02:00
|
|
|
<div class="modal-header">
|
2017-08-23 00:58:22 +02:00
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="{{t 'Close' }}"><span aria-hidden="true">×</span></button>
|
2017-07-05 21:54:58 +02:00
|
|
|
<h3 id="change_email_modal_label">{{t "Change email" }}</h3>
|
2017-04-26 04:52:39 +02:00
|
|
|
</div>
|
2017-07-05 21:54:58 +02:00
|
|
|
<div class="modal-body">
|
|
|
|
<div class="input-group email_change_container">
|
2017-12-15 12:59:29 +01:00
|
|
|
<label for="email">{{t "New email" }}</label>
|
2018-08-02 08:54:28 +02:00
|
|
|
<input type="text" name="email" value="{{ page_params.delivery_email }}" autocomplete="off" spellcheck="false" autofocus="autofocus"/>
|
2017-07-05 21:54:58 +02:00
|
|
|
</div>
|
2019-07-10 19:13:31 +02:00
|
|
|
<div class="alert change_email_info"></div>
|
2017-04-26 04:52:39 +02:00
|
|
|
</div>
|
2017-07-05 21:54:58 +02:00
|
|
|
<div class="modal-footer">
|
2018-01-30 09:07:38 +01:00
|
|
|
<button class="button white rounded" type="button" data-dismiss="modal">{{t "Cancel" }}</button>
|
2017-07-18 01:39:05 +02:00
|
|
|
<button id='change_email_button' class="button rounded sea-green" data-dismiss="modal">{{t "Change" }}</button>
|
2017-04-26 04:52:39 +02:00
|
|
|
</div>
|
2017-07-05 21:54:58 +02:00
|
|
|
</div>
|
|
|
|
</form>
|
2016-10-05 02:23:09 +02:00
|
|
|
|
2017-07-17 07:17:21 +02:00
|
|
|
{{#if page_params.two_fa_enabled }}
|
|
|
|
<p for="two_factor_auth" class="inline-block title">
|
|
|
|
{{t "Two factor authentication" }}: {{#if page_params.two_fa_enabled_user }}{{t "Enabled" }}{{else}}{{t "Disabled" }}{{/if}}
|
|
|
|
<a target="_blank" id="two_factor_auth" href="/account/two_factor/" title="{{t 'Setup two factor authentication' }}">[{{t "Setup" }}]</a>
|
|
|
|
</p>
|
|
|
|
{{/if}}
|
|
|
|
|
2018-02-02 01:04:49 +01:00
|
|
|
<form class="form-horizontal full-name-change-form">
|
2018-03-31 01:47:06 +02:00
|
|
|
<div class="input-group inline-block grid user-name-parent">
|
2018-02-02 01:04:49 +01:00
|
|
|
<div class="user-name-section inline-block">
|
|
|
|
<label for="full_name" class="inline-block title">{{t "Full name" }}</label>
|
2019-05-03 08:09:03 +02:00
|
|
|
<a id="change_full_name"
|
|
|
|
{{#unless page_params.is_admin}}{{#if page_params.realm_name_changes_disabled}}{{else}}{{#unless page_params.server_name_changes_disabled}}href="#change_email"{{/unless}}{{/if}}{{/unless}}>
|
|
|
|
<button type="button" class="button small white rounded inline-block" id="full_name"
|
|
|
|
{{#unless page_params.is_admin}}{{#if page_params.realm_name_changes_disabled}}disabled="disabled"{{else}}{{#if page_params.server_name_changes_disabled}}disabled="disabled"{{/if}}{{/if}}{{/unless}}>
|
2018-02-02 01:04:49 +01:00
|
|
|
<span id="full_name_value">{{page_params.full_name}}</span>
|
|
|
|
<i class="fa fa-pencil"></i>
|
|
|
|
</button>
|
|
|
|
</a>
|
2018-07-04 01:16:40 +02:00
|
|
|
<i class="fa fa-question-circle change_name_tooltip settings-info-icon" data-toggle="tooltip"
|
2019-05-03 08:09:03 +02:00
|
|
|
{{#unless page_params.is_admin}}{{#if page_params.realm_name_changes_disabled}}{{else}}{{#unless page_params.server_name_changes_disabled}}style="display:none"{{/unless}}{{/if}}{{/unless}}
|
2019-06-07 06:16:20 +02:00
|
|
|
title="{{t 'Name changes are disabled in this organization. Contact an administrator to change your name.' }}"/>
|
2018-02-02 01:04:49 +01:00
|
|
|
</div>
|
2018-04-19 04:40:26 +02:00
|
|
|
<div id="change_full_name_modal" class="modal modal-bg hide fade" tabindex="-1" role="dialog"
|
2018-04-05 08:38:46 +02:00
|
|
|
aria-labelledby="change_full_name_modal_label" aria-hidden="true">
|
2018-02-02 01:04:49 +01:00
|
|
|
<div class="modal-header">
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="{{t 'Close' }}"><span aria-hidden="true">×</span></button>
|
|
|
|
<h3 id="change_full_name_modal_label">{{t "Change full name" }}</h3>
|
|
|
|
</div>
|
|
|
|
<div class="modal-body">
|
|
|
|
<div class="input-group full_name_change_container">
|
|
|
|
<label for="email">{{t "New full name" }}</label>
|
|
|
|
<input type="text" name="full_name" value="{{ page_params.full_name }}" autocomplete="off" spellcheck="false" autofocus="autofocus"/>
|
|
|
|
</div>
|
2019-07-10 19:13:31 +02:00
|
|
|
<div class="alert change_full_name_info"></div>
|
2018-02-02 01:04:49 +01:00
|
|
|
</div>
|
|
|
|
<div class="modal-footer">
|
|
|
|
<button class="button white rounded" type="button" data-dismiss="modal">{{t "Cancel" }}</button>
|
|
|
|
<button id='change_full_name_button' class="button rounded sea-green" data-dismiss="modal">{{t "Change" }}</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
|
2017-12-24 19:00:29 +01:00
|
|
|
<form class="password-change-form grid">
|
2018-02-10 14:28:16 +01:00
|
|
|
{{#if page_params.realm_email_auth_enabled}}
|
2018-01-24 14:18:29 +01:00
|
|
|
<div class="user-name-section">
|
2017-12-24 19:00:29 +01:00
|
|
|
<label class="inline-block title">{{t "Password" }}</label>
|
|
|
|
<a id="change_password" {{#if page_params.realm_email_auth_enabled}}href="#change_password"{{/if}}>
|
|
|
|
<div class="input-group inline-block" id="pw_change_link">
|
2018-03-07 10:29:58 +01:00
|
|
|
<button type="button" class="change_password_button small button rounded inline-block" data-dismiss="modal">********<i class="fa fa-pencil"></i>
|
2018-01-24 13:30:27 +01:00
|
|
|
</button>
|
2017-12-24 19:00:29 +01:00
|
|
|
</div>
|
|
|
|
</a>
|
|
|
|
</div>
|
2018-02-10 14:28:16 +01:00
|
|
|
{{/if}}
|
2017-12-24 19:00:29 +01:00
|
|
|
|
2018-04-19 04:40:26 +02:00
|
|
|
<div id="change_password_modal" class="modal modal-bg hide fade" tabindex="-1" role="dialog"
|
2018-04-05 08:38:46 +02:00
|
|
|
aria-labelledby="change_password_modal_label" aria-hidden="true">
|
2017-12-24 19:00:29 +01:00
|
|
|
<div class="modal-header">
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="{{t 'Close' }}"><span aria-hidden="true">×</span></button>
|
|
|
|
<h3 id="change_password_modal_label">{{t "Change password" }}</h3>
|
|
|
|
</div>
|
|
|
|
<div class="flex-row normal">
|
|
|
|
<div class="field">
|
|
|
|
<label for="old_password" class="title">{{t "Old password" }}</label>
|
|
|
|
<input type="password" autocomplete="off" name="old_password" id="old_password" class="w-200 inline-block" value="" />
|
|
|
|
<div class="info">
|
|
|
|
<a href="/accounts/password/reset/" class="sea-green" target="_blank">{{t "Forgotten it?" }}</a>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
<div class="field">
|
|
|
|
<label for="new_password" class="title">{{t "New password" }}</label>
|
|
|
|
<input type="password" autocomplete="off" name="new_password" id="new_password" class="w-200 inline-block" value=""
|
2018-04-03 10:07:23 +02:00
|
|
|
data-min-length="{{ page_params.password_min_length }}" data-min-guesses="{{ page_params.password_min_guesses }}" />
|
2017-12-24 19:00:29 +01:00
|
|
|
<div class="progress inline-block" id="pw_strength">
|
|
|
|
<div class="bar bar-danger fade" style="width: 10%;"></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="alert change_password_info"></div>
|
|
|
|
<div class="modal-footer">
|
2018-01-24 13:30:27 +01:00
|
|
|
<button class="button white rounded" type="button" data-dismiss="modal">{{t "Cancel" }}</button>
|
2018-02-02 15:35:42 +01:00
|
|
|
<button id='change_password_button' class="button rounded sea-green">{{t "Change" }}</button>
|
2017-12-24 19:00:29 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</form>
|
2018-02-26 20:08:23 +01:00
|
|
|
|
2018-12-07 18:24:56 +01:00
|
|
|
<div class="user-role input-group grid">
|
|
|
|
<label for="user_role" class="inline-block title">{{t "Role" }}</label>
|
2019-02-07 22:31:24 +01:00
|
|
|
<span>
|
2018-12-07 18:24:56 +01:00
|
|
|
{{#if page_params.is_admin}}
|
|
|
|
{{t "Administrator" }}
|
|
|
|
{{else if page_params.is_guest}}
|
|
|
|
{{t "Guest" }}
|
|
|
|
{{else}}
|
|
|
|
{{t "Member" }}
|
|
|
|
{{/if}}
|
2019-02-07 22:31:24 +01:00
|
|
|
</span>
|
2018-12-07 18:24:56 +01:00
|
|
|
</div>
|
|
|
|
|
2018-08-22 23:58:39 +02:00
|
|
|
<form class="deactivate_account grid">
|
|
|
|
<div class="input-group">
|
|
|
|
<button type="submit" class="button rounded btn-danger" id="user_deactivate_account_button">
|
|
|
|
{{t 'Deactivate account' }}
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
|
2018-06-07 11:39:12 +02:00
|
|
|
<h3 class="inline-block" id="custom-field-header" {{#unless page_params.custom_profile_fields}}style="display: none"{{/unless}}>{{t "Profile" }}</h3>
|
2018-02-26 20:08:23 +01:00
|
|
|
<div class="alert-notification" id="custom-field-status"></div>
|
|
|
|
<form class="form-horizontal custom-profile-fields-form grid"></form>
|
2018-08-25 15:27:28 +02:00
|
|
|
<button class="button rounded sea-green w-200 block" id="show_my_user_profile_modal">
|
2018-08-28 20:43:27 +02:00
|
|
|
{{t 'Preview profile' }}
|
|
|
|
<i class="fa fa-external-link" aria-hidden="true" title="{{t 'Preview profile' }}"></i>
|
2018-08-25 15:27:28 +02:00
|
|
|
</button>
|
2018-02-26 20:08:23 +01:00
|
|
|
|
2017-07-05 21:54:58 +02:00
|
|
|
</div>
|
2016-12-02 21:42:11 +01:00
|
|
|
|
2017-07-05 21:54:58 +02:00
|
|
|
<div class="inline-block user-avatar-section">
|
2019-03-09 17:43:48 +01:00
|
|
|
<h3>{{t "Profile picture" }}</h3>
|
2017-05-17 19:07:00 +02:00
|
|
|
|
2017-07-05 21:54:58 +02:00
|
|
|
<div class="inline-block">
|
2018-03-02 18:33:20 +01:00
|
|
|
<div id="user-settings-avatar">
|
2018-12-19 02:25:13 +01:00
|
|
|
<div id="user-avatar-block" style="background-image: url({{ page_params.avatar_url_medium }})" {{#if page_params.is_guest}} class="guest-avatar"{{/if}}/>
|
2018-03-02 18:33:20 +01:00
|
|
|
<div id="user-avatar-source">
|
|
|
|
<a href="https://en.gravatar.com/" target="_blank" class="white-color">{{t "Avatar from Gravatar" }}</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
2019-03-09 17:43:48 +01:00
|
|
|
<input type="file" name="user_avatar_file_input" class="notvisible" id="user_avatar_file_input" value="{{t 'Upload profile picture' }}" />
|
2017-07-05 21:54:58 +02:00
|
|
|
<div id="upload_avatar_spinner"></div>
|
2016-12-02 21:42:11 +01:00
|
|
|
</div>
|
2017-07-05 21:54:58 +02:00
|
|
|
<div class="avatar-controls">
|
2019-04-23 04:51:04 +02:00
|
|
|
<button class="button rounded sea-green w-200 block" id="user_avatar_upload_button"
|
2019-04-29 08:41:00 +02:00
|
|
|
{{#unless page_params.is_admin}}{{#if page_params.realm_avatar_changes_disabled}}style="display:none"{{else}}{{#if page_params.server_avatar_changes_disabled}}style="display:none"{{/if}}{{/if}}{{/unless}}>
|
2019-03-09 17:43:48 +01:00
|
|
|
{{t 'Upload new profile picture' }}
|
2017-07-05 21:54:58 +02:00
|
|
|
</button>
|
2018-03-28 15:56:14 +02:00
|
|
|
<div id="user_avatar_file_input_error" class="text-error"></div>
|
2019-04-23 04:51:04 +02:00
|
|
|
<button class="button rounded btn-danger w-200 m-t-20 block" id="user_avatar_delete_button"
|
2019-04-29 08:41:00 +02:00
|
|
|
{{#unless page_params.is_admin}}{{#if page_params.realm_avatar_changes_disabled}}style="display:none"{{else}}{{#if page_params.server_avatar_changes_disabled}}style="display:none"{{/if}}{{/if}}{{/unless}}>
|
2019-03-09 17:43:48 +01:00
|
|
|
{{t 'Delete profile picture' }}
|
2017-07-05 21:54:58 +02:00
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="clear-float"></div>
|
2016-10-05 02:23:09 +02:00
|
|
|
|
2018-02-02 02:58:18 +01:00
|
|
|
<div id="deactivate_self_modal" class="modal modal-bg hide fade" tabindex="-1" role="dialog" aria-labelledby="deactivation_self_modal_label" aria-hidden="true">
|
2017-04-26 04:52:39 +02:00
|
|
|
<div class="modal-header">
|
2017-08-23 00:58:22 +02:00
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="{{t 'Close' }}"><span aria-hidden="true">×</span></button>
|
2017-07-11 11:24:51 +02:00
|
|
|
<h3 id="deactivation_self_modal_label">{{t "Deactivate your account" }} </h3>
|
2017-04-26 04:52:39 +02:00
|
|
|
</div>
|
|
|
|
<div class="modal-body">
|
|
|
|
<p>{{#tr this}}By deactivating your account, you will be logged out immediately.{{/tr}}</p>
|
|
|
|
<p>{{t "Note that any bots that you maintain will be disabled." }}</p>
|
|
|
|
</div>
|
|
|
|
<div class="modal-footer">
|
2017-07-07 17:30:22 +02:00
|
|
|
<button class="button" data-dismiss="modal">{{t "Cancel" }}</button>
|
2018-01-26 08:01:58 +01:00
|
|
|
<button class="button btn-danger rounded" id="do_deactivate_self_button">
|
|
|
|
<object class="loader" type="image/svg+xml" data="/static/images/loader.svg"></object>
|
|
|
|
<span>{{t "Deactivate now" }}</span>
|
|
|
|
</button>
|
2017-04-26 04:52:39 +02:00
|
|
|
</div>
|
2016-10-13 20:09:32 +02:00
|
|
|
</div>
|
|
|
|
|
2017-06-13 17:57:33 +02:00
|
|
|
<hr class="settings_separator" />
|
|
|
|
|
|
|
|
<div class="form-horizontal" id="api_key_button_box">
|
2018-01-25 02:11:17 +01:00
|
|
|
<h3>{{t "API key" }}</h3>
|
2017-07-05 21:54:58 +02:00
|
|
|
|
|
|
|
<div class="input-group">
|
2017-06-13 17:57:33 +02:00
|
|
|
<p class="api-key-note">
|
|
|
|
{{#tr this}}
|
2017-07-12 22:22:07 +02:00
|
|
|
An API key can be used to programmatically access a Zulip account.
|
|
|
|
Anyone with access to your API key has the ability to read your messages, send
|
|
|
|
messages on your behalf, and otherwise impersonate you on Zulip, so you should
|
|
|
|
guard your API key as carefully as you guard your password. <br />
|
|
|
|
We recommend creating bots and using the bots' accounts and API keys to access
|
|
|
|
the Zulip API, unless the task requires access to your account.
|
2017-06-13 17:57:33 +02:00
|
|
|
{{/tr}}
|
|
|
|
</p>
|
|
|
|
<button class="button rounded" id="api_key_button">{{t "Show/change your API key" }}</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
2017-07-05 21:54:58 +02:00
|
|
|
<div id="get_api_key_box">
|
2017-06-13 17:57:33 +02:00
|
|
|
<p>{{t "Please re-enter your password to confirm your identity." }}
|
2017-08-29 04:13:15 +02:00
|
|
|
<a href="/accounts/password/reset/" target="_blank">{{t "Never had one? Forgotten it?" }}</a></p>
|
2018-05-18 15:21:44 +02:00
|
|
|
<form cslass="form-horizontal" id="get_api_key_form">
|
2017-06-13 17:57:33 +02:00
|
|
|
<div class="control-group">
|
|
|
|
<label for="password" class="control-label">{{t "Current password" }}</label>
|
|
|
|
<input type="password" autocomplete="off"
|
2018-04-03 10:07:23 +02:00
|
|
|
name="password" id="get_api_key_password" value="" />
|
2018-05-18 15:21:44 +02:00
|
|
|
<button type="submit" name="view_api_key" id="get_api_key_button"
|
2018-04-05 08:38:46 +02:00
|
|
|
class="button sea-green">{{t 'Get API key' }}</button>
|
2017-06-13 17:57:33 +02:00
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
</div>
|
2017-07-05 21:54:58 +02:00
|
|
|
<div id="show_api_key_box">
|
2017-06-13 17:57:33 +02:00
|
|
|
<p>{{t "Your API key:" }}</p>
|
|
|
|
<p><b><span id="api_key_value"></span></b></p>
|
2018-09-30 22:00:09 +02:00
|
|
|
<div id="api_key_buttons">
|
|
|
|
<button type="submit" class="button white rounded regenerate_api_key">
|
|
|
|
{{t "Generate new API key" }}
|
|
|
|
</button>
|
|
|
|
<a id="download_zuliprc" download="{{zuliprc}}" class="button sea-green">
|
|
|
|
{{t "Download .zuliprc" }}
|
|
|
|
</a>
|
2017-06-13 17:57:33 +02:00
|
|
|
</div>
|
2018-09-30 22:00:09 +02:00
|
|
|
<div id="user_api_key_error" class="text-error"></div>
|
2017-06-13 17:57:33 +02:00
|
|
|
</div>
|
2017-04-26 04:52:39 +02:00
|
|
|
</div>
|
2016-10-05 02:23:09 +02:00
|
|
|
</div>
|