{% extends "panel.html" %}

{% load i18n %}
{% load inventree_extras %}
{% load socialaccount %}
{% load crispy_forms_tags %}
{% load user_sessions i18n %}

{% block label %}account{% endblock %}

{% block heading %}
{% trans "Account Settings" %}
{% endblock %}

{% block actions %}
{% inventree_demo_mode as demo %}
{% if not demo %}
<div class='btn btn-outline-primary' type='button' id='edit-password' title='{% trans "Change Password" %}'>
    <span class='fas fa-key'></span> {% trans "Set Password" %}
</div>
<div class='btn btn-primary' type='button' id='edit-user' title='{% trans "Edit User Information" %}'>
    <span class='fas fa-user-cog'></span> {% trans "Edit" %}
</div>
{% endif %}
{% endblock %}

{% block content %}
{% mail_configured as mail_conf %}

<table class='table table-striped table-condensed'>
    <tr>
        <td>{% trans "Username" %}</td>
        <td>{{ user.username }}</td>
    </tr>
    <tr>
        <td>{% trans "First Name" %}</td>
        <td>{{ user.first_name }}</td>
    </tr>
    <tr>
        <td>{% trans "Last Name" %}</td>
        <td>{{ user.last_name }}</td>
    </tr>
</table>

<div class='panel-heading'>
    <div class='d-flex flex-span'>
        <h4>{% trans "Email" %}</h4>
        {% include "spacer.html" %}
    </div>
</div>

<div class='row'>
    <div class='col-sm-6'>
        {% if user.emailaddress_set.all %}
        <p>{% trans 'The following email addresses are associated with your account:' %}</p>

        <form action="{% url 'account_email' %}" class="email_list" method="post">
        {% csrf_token %}
            <fieldset class="blockLabels">

            {% for emailaddress in user.emailaddress_set.all %}
            <div>
                <div class="ctrlHolder">
                    <label for="email_radio_{{forloop.counter}}" class="{% if emailaddress.primary %}primary_email{%endif%}">
                        
                        <input id="email_radio_{{forloop.counter}}" type="radio" name="email" {% if emailaddress.primary or user.emailaddress_set.count == 1 %}checked="checked"{%endif %} value="{{emailaddress.email}}"/>
                        
                        {% if emailaddress.primary %}
                        <b>{{ emailaddress.email }}</b>
                        {% else %}
                        {{ emailaddress.email }}
                        {% endif %}
                    </label>
                    {% if emailaddress.verified %}
                    <span class='badge badge-right rounded-pill bg-success'>{% trans "Verified" %}</span>
                    {% else %}
                    <span class='badge badge-right rounded-pill bg-warning'>{% trans "Unverified" %}</span>
                    {% endif %}
                    {% if emailaddress.primary %}<span class='badge badge-right rounded-pill bg-primary'>{% trans "Primary" %}</span>{% endif %}
                </div>
            </div>
            {% endfor %}

            <div class="buttonHolder">
                <button class="btn btn-primary secondaryAction" type="submit" name="action_primary" >{% trans 'Make Primary' %}</button>
                <button class="btn btn-primary secondaryAction" type="submit" name="action_send" {% if not mail_conf %}disabled{% endif %}>{% trans 'Re-send Verification' %}</button>
                <button class="btn btn-primary primaryAction" type="submit" name="action_remove" >{% trans 'Remove' %}</button>
            </div>

            </fieldset>
        </form>

        {% else %}
        <p><strong>{% trans 'Warning:'%}</strong>
            {% trans "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." %}
        </p>

        {% endif %}
    </div>
    <div class='col-sm-6'>
        {% if can_add_email %}
        <h5>{% trans "Add Email Address" %}</h5>

        <form method="post" action="{% url 'account_email' %}" class="add_email">
            {% csrf_token %}

            <label for="id_email" class=" requiredField">
                E-mail<span class="asteriskField">*</span>
            </label>
            <div id="div_id_email" class="form-group input-group mb-3">
                <div class='input-group-prepend'><span class='input-group-text'>@</span></div>
                <input type="email" name="email" placeholder='{% trans "Enter e-mail address" %}' class="textinput textInput form-control" required="" id="id_email">
                <div class='input-group-append'>
                    <button class="btn btn-primary" name="action_add" type="submit">{% trans "Add Email" %}</button>
                </div>
            </div>

        </form>
    {% endif %}
    </div>
</div>

<div class='panel-heading'>
    <h4>{% trans "Social Accounts" %}</h4>
</div>

<div>
    {% if social_form.accounts %}
    <p>{% blocktrans %}You can sign in to your account using any of the following third party accounts:{% endblocktrans %}</p>
    
    
    <form method="post" action="{% url 'socialaccount_connections' %}">
    {% csrf_token %}
    
    <fieldset>
    {% if social_form.non_field_errors %}
    <div id="errorMsg">{{ social_form.non_field_errors }}</div>
    {% endif %}
    
    {% for base_account in social_form.accounts %}
    {% with base_account.get_provider_account as account %}
    <div>
    <label for="id_account_{{ base_account.id }}">
    <input id="id_account_{{ base_account.id }}" type="radio" name="account" value="{{ base_account.id }}"/>
    <span class="socialaccount_provider {{ base_account.provider }} {{ account.get_brand.id }}">
        <span class='brand-icon' brand_name='{{account.get_brand.id}}'></span>{{account.get_brand.name}}</span>
    {{ account }}
    </label>
    </div>
    {% endwith %}
    {% endfor %}

    <div>
    <button class="btn btn-primary" type="submit">{% trans 'Remove' %}</button>
    </div>
    
    </fieldset>
    
    </form>
    
    {% else %}
    <div class='alert alert-block alert-warning'>
        {% trans "There are no social network accounts connected to your InvenTree account" %}
    </div>
    {% endif %}

    <br>
    <h4>{% trans 'Add a 3rd Party Account' %}</h4>
    <div>
    {% include "socialaccount/snippets/provider_list.html" with process="connect" %}
    </div>
    {% include "socialaccount/snippets/login_extra.html" %}
    <br>

</div>

<div class='panel-heading'>
    <div class='d-flex flex-wrap'>
        <h4>{% trans "Active Sessions" %}</h4>
        {% include "spacer.html" %}
        <div class='btn-group' role='group'>
            {% if session_list.count > 1 %}
            <form method="post" action="{% url 'session_delete_other' %}">
                {% csrf_token %}
                <button type="submit" class="btn btn-sm btn-default btn-danger" title='{% trans "Log out active sessions (except this one)" %}'>
                    {% trans "Log Out Active Sessions" %}
                </button>
            </form>
            {% endif %}
        </div>
    </div>
</div>

<div>
    {% trans "<em>unknown on unknown</em>" as unknown_on_unknown %}
    {% trans "<em>unknown</em>" as unknown %}
    <table class="table table-striped table-condensed">
    <thead>
        <tr>
        <th>{% trans "IP Address" %}</th>
        <th>{% trans "Device" %}</th>
        <th>{% trans "Last Activity" %}</th>
        </tr>
    </thead>
    {% for object in session_list %}
        <tr {% if object.session_key == session_key %}class="active"{% endif %}>
        <td>{{ object.ip }}</td>
        <td>{{ object.user_agent|device|default_if_none:unknown_on_unknown|safe }}</td>
        <td>
            {% if object.session_key == session_key %}
            {% blocktrans with time=object.last_activity|timesince %}{{ time }} ago (this session){% endblocktrans %}
            {% else %}
            {% blocktrans with time=object.last_activity|timesince %}{{ time }} ago{% endblocktrans %}
            {% endif %}
        </td>
        </tr>
    {% endfor %}
    </table>
</div>
{% endblock %}

{% block js_ready %}
(function() {
  var message = "{% trans 'Do you really want to remove the selected email address?' %}";
  var actions = document.getElementsByName('action_remove');
  if (actions.length) {
    actions[0].addEventListener("click", function(e) {
      if (! confirm(message)) {
        e.preventDefault();
      }
    });
  }
})();
{% endblock %}