<commit_before>{# 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 PMs and @-mentions 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>

<commit_msg>Rearrange the settings page to highlight bots more.<commit_after>{# 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 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="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">
      <h2>Notification settings</h2>

        <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 PMs and @-mentions 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 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>
          <div class="control-group">
              <label class="control-label label_for_text">Your
              personal 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>Your API key:</p>
          <p><b><span id="api_key_value"></span></b></p>
      </div>

      <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>


{'fraction_non_alphanumeric': 0.14071874806705018, 'fraction_numerical': 0.0018556318426424198, 'mean_word_length': 1.7813521417512472, 'pattern_counts': {'":': 0, '<': 389, '<?xml version=': 0, '>': 389, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3843301', 'n_tokens_mistral': 4544, 'n_tokens_neox': 4285, 'n_words': 916}