Files
zulip/templates/zephyr/settings.html
Zev Benjamin 7b3f5ed14c Add interface for creating and viewing bots
We really should not be storing bot API keys in the DOM and should
require some sort of additional authentication before showing them,
but this seems reasonable for a first pass.

(imported from commit c7d75aa52e21894bf53917457e771c18de38bbcc)
2013-05-11 02:38:32 -04:00

205 lines
7.7 KiB
HTML

{# Settings tab of the app. #}
<div class="row-fluid">
<div id="current_settings" class="span12">
<h1>Settings</h1>
{# One text line worth of space #}
<div>&nbsp;</div>
<div class="alert" id="settings-status"></div>
<div class="form-horizontal" id="api_key_button_box">
<div class="control-group">
<label class="control-label label_for_text">API key</label>
<div class="controls">
<a href="#settings" id="api_key_button">(show)</a>
</div>
</div>
</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>API key:</p>
<p><b><span id="api_key_value"></span></b></p>
</div>
<hr class="settings_separator">
<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">
<p><img class="img-rounded gravatar-profile"
src="https://secure.gravatar.com/avatar/{{ email_hash }}?d=identicon&s=60" /></p>
<p>Change at Gravatar.com</p>
</a>
</div>
</div>
</div>
<hr class="settings_separator">
<div id="settings-change-box">
<form action="/json/settings/change" method="post"
class="form-horizontal">{% csrf_token %}
<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>
<div class="control-group" id="pw_change_link">
<label class="control-label">
<a href="#settings">Change password</a>
</label>
</div>
<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>
</div>
<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="" />
</div>
</div>
<div class="control-group">
<label class="control-label">Password strength</label>
<div class="controls">
<div class="progress" id="pw_strength">
<div class="bar bar-danger" style="width: 10%;"></div>
</div>
</div>
</div>
<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>
</div>
<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"
{% if user_profile.enable_desktop_notifications %}
checked="yes"
{% endif %} />
</div>
</div>
<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>
<div class="control-group">
<label for="enable_offline_email_notifications" class="control-label">
Notify on receiving PMs when offline</label>
<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>
<div class="control-group">
<div class="controls">
<input type="submit" name="change_settings" value="Save changes" class="btn btn-big btn-primary" />
</div>
</div>
</form>
</div>
<hr class="settings_separator" />
<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>
<th class="bot_name_header">Name</th><th>Username</th><th class="bot_api_key_header">API key</th>
</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>
<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>
<td><input type="submit" class="btn btn-primary"
id="create_bot_button" value="Create Bot" />
</tr>
</tbody>
</form>
</table>
<hr class="settings_separator" />
</div>
<div class="span7">
<p><button class="btn declare_bankruptcy_button" data-dismiss="modal" aria-hidden="true">
Declare Humbug bankruptcy
</button></p>
<p>
Too many unread messages? Press this button to declare Humbug
bankruptcy and travel to right now in your feed.
</p>
<p>
Your historical messages will all still exist and be searchable.
</p>
</div>
</div>