mirror of
https://github.com/inventree/InvenTree.git
synced 2025-05-01 04:56:45 +00:00
256 lines
9.5 KiB
HTML
256 lines
9.5 KiB
HTML
{% extends "panel.html" %}
|
|
|
|
{% load i18n %}
|
|
{% load inventree_extras %}
|
|
{% load socialaccount %}
|
|
{% load crispy_forms_tags %}
|
|
|
|
{% block label %}account{% endblock %}
|
|
|
|
{% block heading %}
|
|
{% trans "Account Settings" %}
|
|
{% endblock %}
|
|
|
|
{% block actions %}
|
|
<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>
|
|
<div class='btn btn-primary' type='button' id='edit-password' title='{% trans "Change Password" %}'>
|
|
<span class='fas fa-key'></span> {% trans "Set Password" %}
|
|
</div>
|
|
{% 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 %}
|
|
<p>{% trans 'You currently have no social network accounts connected to this account.' %}</p>
|
|
{% 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'>
|
|
<h4>{% trans "Theme Settings" %}</h4>
|
|
</div>
|
|
|
|
<div class='row'>
|
|
|
|
<div class='col-sm-6'>
|
|
<form action='{% url "settings-appearance" %}' method='post'>
|
|
{% csrf_token %}
|
|
<input name='next' type='hidden' value='{% url "settings" %}'>
|
|
<label for='theme' class=' requiredField'>
|
|
{% trans "Select theme" %}
|
|
</label>
|
|
<div class='form-group input-group mb-3'>
|
|
<select id='theme' name='theme' class='select form-control'>
|
|
{% get_available_themes as themes %}
|
|
{% for theme in themes %}
|
|
<option value='{{ theme.key }}'>{{ theme.name }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
<div class='input-group-append'>
|
|
<input type="submit" value="{% trans 'Set Theme' %}" class="btn btn-primary">
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<div class='panel-heading'>
|
|
<h4>{% trans "Language Settings" %}</h4>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col">
|
|
<form action="{% url 'set_language' %}" method="post">
|
|
{% csrf_token %}
|
|
<input name="next" type="hidden" value="{% url 'settings' %}">
|
|
<label for='language' class=' requiredField'>
|
|
{% trans "Select language" %}
|
|
</label>
|
|
<div class='form-group input-group mb-3'>
|
|
<select name="language" class="select form-control">
|
|
{% get_current_language as LANGUAGE_CODE %}
|
|
{% get_available_languages as LANGUAGES %}
|
|
{% get_language_info_list for LANGUAGES as languages %}
|
|
{% for language in languages %}
|
|
{% define language.code as lang_code %}
|
|
{% define locale_stats|keyvalue:lang_code as lang_translated %}
|
|
<option value="{{ lang_code }}"{% if lang_code == LANGUAGE_CODE %} selected{% endif %}>
|
|
{{ language.name_local }} ({{ lang_code }})
|
|
{% if lang_translated %}
|
|
{% blocktrans %}{{ lang_translated }}% translated{% endblocktrans %}
|
|
{% else %}
|
|
{% trans 'No translations available' %}
|
|
{% endif %}
|
|
</option>
|
|
{% endfor %}
|
|
</select>
|
|
<div class='input-group-append'>
|
|
<input type="submit" value="{% trans 'Set Language' %}" class="btn btn btn-primary">
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<h4>{% trans "Help the translation efforts!" %}</h4>
|
|
<p>{% blocktrans with link="https://crowdin.com/project/inventree" %}Native language translation of the InvenTree web application is <a href="{{link}}">community contributed via crowdin</a>. Contributions are welcomed and encouraged.{% endblocktrans %}</p>
|
|
</div>
|
|
</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 %} |