2012-10-16 06:03:29 +02:00
|
|
|
{# Settings tab of the app. #}
|
|
|
|
|
2012-10-05 17:46:07 +02:00
|
|
|
<div class="row-fluid">
|
2013-05-03 00:28:13 +02:00
|
|
|
<div id="current_settings" class="span12">
|
2013-04-03 23:17:20 +02:00
|
|
|
<h1>Settings</h1>
|
|
|
|
|
2013-04-08 19:22:05 +02:00
|
|
|
{# One text line worth of space #}
|
|
|
|
<div> </div>
|
2013-04-03 23:17:20 +02:00
|
|
|
|
2013-04-08 19:37:52 +02:00
|
|
|
<div class="alert" id="settings-status"></div>
|
|
|
|
|
2012-10-17 22:26:59 +02:00
|
|
|
<div id="settings-change-box">
|
2013-04-03 22:47:59 +02:00
|
|
|
<form action="/json/settings/change" method="post"
|
2013-04-03 22:51:14 +02:00
|
|
|
class="form-horizontal">{% csrf_token %}
|
2013-04-03 22:47:59 +02:00
|
|
|
<div class="control-group">
|
|
|
|
<label for="full_name" class="control-label">Full name</label>
|
|
|
|
<div class="controls">
|
|
|
|
<input type="text" name="full_name" id="full_name"
|
|
|
|
value="{{ user_profile.full_name }}" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2013-04-08 20:03:21 +02:00
|
|
|
<div class="control-group" id="pw_change_link">
|
2013-05-28 23:10:11 +02:00
|
|
|
<div class="controls">
|
|
|
|
<button class="btn change_password_button" data-dismiss="modal" aria-hidden="true">Change Password</button>
|
|
|
|
</div>
|
2013-04-03 22:47:59 +02:00
|
|
|
</div>
|
|
|
|
|
2013-04-08 20:03:21 +02:00
|
|
|
<div id="pw_change_controls">
|
|
|
|
|
|
|
|
<div class="control-group">
|
|
|
|
<label for="old_password" class="control-label">Old password</label>
|
|
|
|
<div class="controls">
|
|
|
|
<input type="password" autocomplete="off"
|
|
|
|
name="old_password" id="old_password" value="" />
|
|
|
|
</div>
|
2013-04-03 22:47:59 +02:00
|
|
|
</div>
|
|
|
|
|
2013-04-08 20:03:21 +02:00
|
|
|
<div class="control-group">
|
|
|
|
<label for="new_password" class="control-label">New password</label>
|
|
|
|
<div class="controls">
|
|
|
|
<input type="password" autocomplete="off"
|
|
|
|
name="new_password" id="new_password" value="" />
|
2013-04-04 00:55:36 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2013-04-08 20:03:21 +02:00
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label">Password strength</label>
|
|
|
|
<div class="controls">
|
2013-04-08 20:21:20 +02:00
|
|
|
<div class="progress" id="pw_strength">
|
2013-04-08 20:31:00 +02:00
|
|
|
<div class="bar bar-danger" style="width: 10%;"></div>
|
2013-04-08 20:03:21 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
2013-04-03 22:47:59 +02:00
|
|
|
</div>
|
2013-04-08 20:03:21 +02:00
|
|
|
|
|
|
|
<div class="control-group">
|
|
|
|
<label for="confirm_password" class="control-label">Confirm password</label>
|
|
|
|
<div class="controls">
|
|
|
|
<input type="password" autocomplete="off"
|
|
|
|
name="confirm_password" id="confirm_password" value="" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2013-04-03 22:47:59 +02:00
|
|
|
</div>
|
|
|
|
|
2013-05-28 20:03:38 +02:00
|
|
|
<div class="form-horizontal">
|
|
|
|
<div class="control-group">
|
|
|
|
<label class="control-label">Your picture</label>
|
|
|
|
<div class="controls">
|
|
|
|
<a href="https://en.gravatar.com/emails" target="_blank" class="change_gravatar_button">
|
2013-06-10 21:35:48 +02:00
|
|
|
<p><img class="img-rounded gravatar-profile user-image-settings"
|
|
|
|
src="{{ avatar_url }}&s=60" /></p>
|
2013-05-28 20:03:38 +02:00
|
|
|
<p>Change at Gravatar.com</p>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2013-05-28 23:10:11 +02:00
|
|
|
<div class="control-group">
|
|
|
|
<div class="controls">
|
|
|
|
<input type="submit" name="change_settings"
|
|
|
|
value="Save changes" class="btn btn-big btn-primary" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2013-05-28 20:03:38 +02:00
|
|
|
<hr class="settings_separator">
|
|
|
|
<h2>Notification settings</h2>
|
2013-05-28 21:33:59 +02:00
|
|
|
<div id="notification-settings">
|
2013-04-03 22:47:59 +02:00
|
|
|
<div class="control-group">
|
|
|
|
<label for="enable_desktop_notifications" class="control-label">
|
|
|
|
Desktop notifications (Chrome only)</label>
|
|
|
|
<div class="controls">
|
|
|
|
<input type="checkbox" name="enable_desktop_notifications" id="enable_desktop_notifications"
|
2012-11-23 21:23:41 +01:00
|
|
|
{% if user_profile.enable_desktop_notifications %}
|
|
|
|
checked="yes"
|
2013-04-03 22:47:59 +02:00
|
|
|
{% endif %} />
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-05-03 21:49:01 +02:00
|
|
|
<div class="control-group">
|
|
|
|
<label for="enable_sounds" class="control-label">
|
|
|
|
Audible notifications for messages</label>
|
|
|
|
<div class="controls">
|
|
|
|
<input type="checkbox" name="enable_sounds" id="enable_sounds"
|
|
|
|
{% if user_profile.enable_sounds %}
|
|
|
|
checked="yes"
|
|
|
|
{% endif %} />
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-04-03 22:47:59 +02:00
|
|
|
|
2013-05-07 23:19:52 +02:00
|
|
|
<div class="control-group">
|
|
|
|
<label for="enable_offline_email_notifications" class="control-label">
|
2013-05-22 23:52:17 +02:00
|
|
|
Notify on PMs and @-mentions when offline</label>
|
2013-05-07 23:19:52 +02:00
|
|
|
<div class="controls">
|
|
|
|
<input type="checkbox" name="enable_offline_email_notifications" id="enable_offline_email_notifications"
|
|
|
|
{% if user_profile.enable_offline_email_notifications %}
|
|
|
|
checked="yes"
|
|
|
|
{% endif %} />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2013-04-03 22:47:59 +02:00
|
|
|
<div class="control-group">
|
|
|
|
<div class="controls">
|
|
|
|
<input type="submit" name="change_settings" value="Save changes" class="btn btn-big btn-primary" />
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-05-28 21:33:59 +02:00
|
|
|
</div>
|
2012-09-21 19:32:01 +02:00
|
|
|
</form>
|
2012-10-17 22:26:59 +02:00
|
|
|
</div>
|
2013-02-20 04:19:18 +01:00
|
|
|
|
2013-04-03 22:58:17 +02:00
|
|
|
<hr class="settings_separator" />
|
2013-02-20 04:19:18 +01:00
|
|
|
|
2013-05-03 00:29:52 +02:00
|
|
|
<h2>Your bots</h2>
|
|
|
|
<form id="create_bot_form">
|
|
|
|
<div id="bot_table_error" class="alert alert-error hide"></div>
|
|
|
|
<table class="table table-condensed table-striped" id="bots_table">
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
2013-06-14 20:03:54 +02:00
|
|
|
<th class="bot_name_header">Name</th>
|
|
|
|
<th>Username</th>
|
|
|
|
<th>Avatar (optional)</th>
|
|
|
|
<th class="bot_api_key_header">API key</th>
|
2013-05-03 00:29:52 +02:00
|
|
|
</tr>
|
|
|
|
<tr id="create_bot_row">
|
|
|
|
<td>
|
|
|
|
<div class="create_bot_control">
|
|
|
|
<input type="text" name="bot_name" id="create_bot_name" class="required"
|
|
|
|
maxlength=100 placeholder="Bot name" value="" />
|
|
|
|
</div>
|
|
|
|
<div><label for="create_bot_name" generated="true" class="text-error"></label></div>
|
2013-06-14 20:03:54 +02:00
|
|
|
</td>
|
2013-05-03 00:29:52 +02:00
|
|
|
<td>
|
|
|
|
<div class="create_bot_control">
|
|
|
|
<input type="text" name="bot_short_name" id="create_bot_short_name" class="required bot_local_part"
|
|
|
|
placeholder="Bot username" value="" />-bot@{{ user_profile.realm.domain }}
|
|
|
|
</div>
|
|
|
|
<div><label for="create_bot_short_name" generated="true" class="text-error"></label></div>
|
2013-06-14 20:03:54 +02:00
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<p>
|
|
|
|
<input type="file" name="bot_avatar_file_input" id="bot_avatar_file_input" value="Upload avatar" />
|
|
|
|
</p>
|
|
|
|
<div id="bot_avatar_file_input_error"></div>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<input type="submit" class="btn btn-primary" id="create_bot_button" value="Create Bot" />
|
|
|
|
<div id="create_bot_spinner"></div>
|
|
|
|
</td>
|
2013-05-03 00:29:52 +02:00
|
|
|
</tr>
|
|
|
|
</tbody>
|
2013-06-03 23:02:24 +02:00
|
|
|
</table>
|
2013-05-03 00:29:52 +02:00
|
|
|
</form>
|
|
|
|
|
|
|
|
<hr class="settings_separator" />
|
|
|
|
|
2013-05-28 20:03:38 +02:00
|
|
|
<div class="form-horizontal" id="api_key_button_box">
|
|
|
|
<p class="small">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 e.g. read your own private
|
|
|
|
messages, you should use your personal API key.</p>
|
2013-05-28 23:10:11 +02:00
|
|
|
<div class="controls">
|
|
|
|
<button class="btn" id="api_key_button">Show your API key</button>
|
|
|
|
</div>
|
2013-05-28 20:03:38 +02:00
|
|
|
</div>
|
|
|
|
<div id="get_api_key_box">
|
|
|
|
<p>Please re-enter your password to confirm your identity.</p>
|
|
|
|
<form action="/json/fetch_api_key" method="post" class="form-horizontal">{% csrf_token %}
|
|
|
|
<div class="control-group">
|
|
|
|
<label for="password" class="control-label">Current password</label>
|
|
|
|
<div class="controls">
|
|
|
|
<input type="password" autocomplete="off"
|
|
|
|
name="password" id="get_api_key_password" value="" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
|
|
<div class="controls">
|
|
|
|
<input type="submit" name="view_api_key" value="Get API key"
|
|
|
|
class="btn btn-primary" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
<div id="show_api_key_box">
|
|
|
|
<p>Your API key:</p>
|
|
|
|
<p><b><span id="api_key_value"></span></b></p>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<hr class="settings_separator">
|
|
|
|
|
2013-05-03 00:28:13 +02:00
|
|
|
</div>
|
2012-09-21 19:32:01 +02:00
|
|
|
</div>
|
|
|
|
|