1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

bootstrap 5 class updates

This commit is contained in:
checktheroads
2021-04-13 21:51:12 -07:00
parent 21d31b5747
commit d1d2ad6a5c
33 changed files with 611 additions and 530 deletions

View File

@@ -7,15 +7,15 @@
<div class="row">
<div class="col-md-12">
{% for token in tokens %}
<div class="panel panel-{% if token.is_expired %}danger{% else %}default{% endif %}">
<div class="panel-heading">
<div class="pull-right noprint">
<a class="btn btn-xs btn-success copy-token" data-clipboard-target="#token_{{ token.pk }}">Copy</a>
<div class="card{% if token.is_expired %} bg-danger{% endif %}">
<div class="card-header">
<div class="float-end noprint">
<a class="m-1 btn btn-sm btn-success copy-token" data-clipboard-target="#token_{{ token.pk }}">Copy</a>
{% if perms.users.change_token %}
<a href="{% url 'user:token_edit' pk=token.pk %}" class="btn btn-xs btn-warning">Edit</a>
<a href="{% url 'user:token_edit' pk=token.pk %}" class="m-1 btn btn-sm btn-warning">Edit</a>
{% endif %}
{% if perms.users.delete_token %}
<a href="{% url 'user:token_delete' pk=token.pk %}" class="btn btn-xs btn-danger">Delete</a>
<a href="{% url 'user:token_delete' pk=token.pk %}" class="m-1 btn btn-sm btn-danger">Delete</a>
{% endif %}
</div>
<i class="mdi mdi-key"></i>
@@ -24,7 +24,7 @@
<span class="label label-danger">Expired</span>
{% endif %}
</div>
<div class="panel-body">
<div class="card-body">
<div class="row">
<div class="col-md-4">
<small class="text-muted">Created</small><br />
@@ -55,22 +55,20 @@
{% empty %}
<p>You do not have any API tokens.</p>
{% endfor %}
{% if perms.users.add_token %}
<a href="{% url 'user:token_add' %}" class="btn btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span>
Add a token
</a>
{% else %}
<div class="alert alert-info text-center" role="alert">
You do not have permission to create new API tokens. If needed, ask an administrator to enable token creation for your account or an assigned group.
<div class="row my-3">
<div class="col-md-12">
{% if perms.users.add_token %}
<a href="{% url 'user:token_add' %}" class="btn btn-primary">
<span class="mdi mdi-plus-thick" aria-hidden="true"></span>
Add a Token
</a>
{% else %}
<div class="alert alert-info text-center" role="alert">
You do not have permission to create new API tokens. If needed, ask an administrator to enable token creation for your account or an assigned group.
</div>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
{% endblock %}
{% block javascript %}
<script type="text/javascript">
new ClipboardJS('.copy-token');
</script>
{% endblock %}

View File

@@ -1,34 +1,21 @@
{% extends 'base.html' %}
{% extends 'layout.html' %}
{% block title %}{% endblock %}
{% block content %}
<div class="row">
<div class="col-sm-12 col-md-10 col-md-offset-1">
<h1>{% block title %}{% endblock %}</h1>
</div>
</div>
<div class="row">
<div class="col-sm-3 col-md-2 col-md-offset-1">
<ul class="nav nav-pills nav-stacked">
<li{% if active_tab == "profile" %} class="active"{% endif %}>
<a href="{% url 'user:profile' %}">Profile</a>
</li>
<li{% if active_tab == "preferences" %} class="active"{% endif %}>
<a href="{% url 'user:preferences' %}">Preferences</a>
</li>
<div class="col-sm-3 col-md-2 col-md-offset-1 border-end">
<nav class="nav nav-pills nav-justified flex-column">
<a class="nav-item nav-link text-start{% if active_tab == 'profile' %} active{% endif %}" href="{% url 'user:profile' %}">Profile</a>
<a class="nav-link nav-item text-start{% if active_tab == 'preferences' %} active{% endif %}" href="{% url 'user:preferences' %}">Preferences</a>
{% if not request.user.ldap_username %}
<li{% if active_tab == "change_password" %} class="active"{% endif %}>
<a href="{% url 'user:change_password' %}">Change Password</a>
</li>
<a class="nav-link nav-item text-start{% if active_tab == 'change-password' %} active{% endif %}" href="{% url 'user:change_password' %}">Change Password</a>
{% endif %}
<li{% if active_tab == "api_tokens" %} class="active"{% endif %}>
<a href="{% url 'user:token_list' %}">API Tokens</a>
</li>
<li{% if active_tab == "userkey" %} class="active"{% endif %}>
<a href="{% url 'user:userkey' %}">User Key</a>
</li>
</ul>
<a class="nav-link nav-item text-start{% if active_tab == 'api-tokens' %} active{% endif %}" href="{% url 'user:token_list' %}">API Tokens</a>
<a class="nav-link nav-item text-start{% if active_tab == 'userkey' %} active{% endif %}" href="{% url 'user:userkey' %}">User Key</a>
</nav>
</div>
<div class="col-sm-9 col-md-8">
<div class="col-sm-9 col-md-8 px-4">
{% block usercontent %}{% endblock %}
</div>
</div>

View File

@@ -3,28 +3,20 @@
{% block title %}Change Password{% endblock %}
{% render_errors form %}
{% block usercontent %}
<form action="." method="post" class="form form-horizontal col-md-10 col-md-offset-1">
{% csrf_token %}
{% if form.non_field_errors %}
<div class="panel panel-danger">
<div class="panel-heading"><strong>Errors</strong></div>
<div class="panel-body">
{{ form.non_field_errors }}
</div>
</div>
{% endif %}
<div class="panel panel-default">
<div class="panel-heading"><strong>Password</strong></div>
<div class="panel-body">
{% render_field form.old_password %}
{% render_field form.new_password1 %}
{% render_field form.new_password2 %}
</div>
<div class="field-group">
<h4>Password</h4>
{% render_field form.old_password %}
{% render_field form.new_password1 %}
{% render_field form.new_password2 %}
</div>
<div class="text-right">
<div class="text-end">
<a href="{% url 'user:profile' %}" class="btn btn-outline-danger">Cancel</a>
<button type="submit" name="_update" class="btn btn-primary">Update</button>
<a href="{% url 'user:profile' %}" class="btn btn-default">Cancel</a>
</div>
</form>
{% endblock %}

View File

@@ -4,16 +4,34 @@
{% block title %}User Profile{% endblock %}
{% block usercontent %}
<small class="text-muted">User login</small>
<small class="text-muted">User Login</small>
<h5>{{ request.user.username }}</h5>
<small class="text-muted">Full name</small>
<h5>{{ request.user.first_name }} {{ request.user.last_name }}</h5>
<small class="text-muted">Full Name</small>
<h5>
{% if request.user.first_name and request.user.last_name %}
{{ request.user.first_name }} {{ request.user.last_name }}
{% elif request.user.first_name and not request.user.last_name %}
{{ request.user.first_name }}
{% elif request.user.last_name and not request.user.first_name %}
{{ request.user.last_name }}
{% else %}
<span class="text-muted">None</span>
{% endif %}
</h5>
<small class="text-muted">Email</small>
<h5>{{ request.user.email }}</h5>
<small class="text-muted">Registered</small>
<h5>{{ request.user.date_joined }}</h5>
<small class="text-muted">Groups</small>
<h5>{{ request.user.groups.all|join:', ' }}</h5>
<small class="text-muted">Admin access</small>
<h5>
{% if request.user.groups.all %}
{% for group in request.user.groups.all %}
<span class="badge bg-secondary">{{ group }}</span>
{% endfor %}
{% else %}
<span class="text-muted">None</span>
{% endif %}
</h5>
<small class="text-muted">Admin Access</small>
<h5>{{ request.user.is_staff|yesno|capfirst }}</h5>
{% endblock %}

View File

@@ -4,18 +4,18 @@
{% block usercontent %}
{% if object %}
<div class="pull-right noprint">
<div class="float-end noprint">
<a href="{% url 'user:userkey_edit' %}" class="btn btn-warning">
<span class="mdi mdi-pencil" aria-hidden="true"></span>
Edit user key
Edit User Key
</a>
</div>
<h4>
Your user key is:
Your user key is
{% if object.is_active %}
<span class="label label-success">Active</span>
<span class="badge bg-success">Active</span>
{% else %}
<span class="label label-danger">Inactive</span>
<span class="badge bg-danger">Inactive</span>
{% endif %}
</h4>
{% include 'inc/created_updated.html' %}
@@ -25,7 +25,7 @@
Your user key is inactive. Ask an administrator to enable it for you.
</div>
{% endif %}
<pre>{{ object.public_key }}</pre>
<pre class="border rounded p-3 copyable">{{ object.public_key }}</pre>
<hr />
{% if object.session_key %}
<div class="pull-right noprint">

View File

@@ -13,48 +13,43 @@
{% endif %}
<form action="." method="post" class="form">
{% csrf_token %}
<div class="form-group">
<div class="field-group">
{% render_field form.public_key %}
</div>
<div class="row">
<div class="form-group">
<div class="col-sm-6 col-md-6">
<button type="button" class="btn btn-info" id="generate_keypair">Generate a New Key Pair</button>
</div>
<div class="col-sm-6 col-md-6 text-right">
<button type="submit" name="_update" class="btn btn-primary">Save</button>
<a href="{% url 'user:userkey' %}" class="btn btn-default">Cancel</a>
</div>
<div class="row my-3">
<div class="col-4 text-start">
<button type="button" class="btn btn-info" id="generate_keypair" data-bs-toggle="modal" data-bs-target="#new_keypair_modal">Generate a New Key Pair</button>
</div>
<div class="col-8 text-end">
<a href="{% url 'user:userkey' %}" class="btn btn-outline-danger">Cancel</a>
<button type="submit" name="_update" class="btn btn-primary">Save</button>
</div>
</div>
</form>
<div class="modal fade" id="new_keypair_modal" tabindex="-1" role="dialog">
<div class="modal-dialog modal-md" role="document">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="new_keypair_modal_title">
New RSA Key Pair
</h4>
<button type="button" class="btn btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<strong>New Public Key</strong>
<div class="form-group">
<textarea class="form-control" id="new_pubkey" style="height: 250px;"></textarea>
<div class="field-group">
<h5>New Public Key</h5>
<textarea class="form-control" rows="10" id="new_pubkey" style="height: 250px;font-family:var(--bs-font-monospace);"></textarea>
</div>
<strong>New Private Key</strong>
<div class="form-group">
<textarea class="form-control" id="new_privkey" style="height: 250px;"></textarea>
<div class="field-group">
<h5>New Private Key</h5>
<textarea class="form-control" rows="10" id="new_privkey" style="height: 250px;font-family:var(--bs-font-monospace);"></textarea>
</div>
</div>
<div class="modal-footer text-center">
<button type="button" class="btn btn-danger" id="use_new_pubkey" data-dismiss="modal">I have saved my new private key</button>
<button type="button" class="btn btn-danger" id="use_new_pubkey" data-bs-dismiss="modal">I Saved My New Private Key</button>
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascript %}
<script src="{% static 'js/secrets.js' %}?v{{ settings.VERSION }}"></script>
{% endblock %}