mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
8.3 KiB
172 lines
8.3 KiB
{% extends 'base.html' %}
|
|
{% load static %}
|
|
{% load i18n %}
|
|
|
|
{% block custom_head_css_js %}
|
|
<link href="{% static 'css/plugins/select2/select2.min.css' %}" rel="stylesheet">
|
|
<script src="{% static 'js/plugins/select2/select2.full.min.js' %}"></script>
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="wrapper wrapper-content animated fadeInRight">
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<div class="ibox float-e-margins">
|
|
<div class="panel-options">
|
|
<ul class="nav nav-tabs">
|
|
<li class="active">
|
|
<a href="{% url 'assets:admin-user-detail' pk=admin_user.pk %}" class="text-center"><i class="fa fa-laptop"></i> {% trans 'Detail' %} </a>
|
|
</li>
|
|
<li>
|
|
<a href="{% url 'assets:admin-user-assets' pk=admin_user.pk %}" class="text-center"><i class="fa fa-laptop"></i> {% trans 'Assets list' %} </a>
|
|
</li>
|
|
<li class="pull-right">
|
|
<a class="btn btn-outline btn-default" href="{% url 'assets:admin-user-update' pk=admin_user.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
|
</li>
|
|
<li class="pull-right">
|
|
<a class="btn btn-outline btn-danger btn-delete-admin-user">
|
|
<i class="fa fa-trash-o"></i>{% trans 'Delete' %}
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="tab-content">
|
|
<div class="col-sm-8" style="padding-left: 0;">
|
|
<div class="ibox float-e-margins">
|
|
<div class="ibox-title">
|
|
<span class="label"><b>{{ admin_user.name }}</b></span>
|
|
<div class="ibox-tools">
|
|
<a class="collapse-link">
|
|
<i class="fa fa-chevron-up"></i>
|
|
</a>
|
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
|
<i class="fa fa-wrench"></i>
|
|
</a>
|
|
<ul class="dropdown-menu dropdown-user">
|
|
</ul>
|
|
<a class="close-link">
|
|
<i class="fa fa-times"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="ibox-content">
|
|
<table class="table">
|
|
<tbody>
|
|
<tr class="no-borders-tr">
|
|
<td>{% trans 'Name' %}:</td>
|
|
<td><b>{{ admin_user.name }}</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{% trans 'Username' %}:</td>
|
|
<td><b>{{ admin_user.username }}</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{% trans 'Date created' %}:</td>
|
|
<td><b>{{ admin_user.date_created }}</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{% trans 'Created by' %}:</td>
|
|
<td><b>{{ asset_group.created_by }}</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{% trans 'Comment' %}:</td>
|
|
<td><b>{{ admin_user.comment }}</b></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4" style="padding-left: 0;padding-right: 0">
|
|
<div class="panel panel-primary">
|
|
<div class="panel-heading">
|
|
<i class="fa fa-info-circle"></i> {% trans 'Replace node assets admin user with this' %}
|
|
</div>
|
|
<div class="panel-body">
|
|
<table class="table group_edit" id="table-clusters">
|
|
<tbody>
|
|
<form>
|
|
<tr>
|
|
<td colspan="2" class="no-borders">
|
|
<select data-placeholder="{% trans 'Select nodes' %}" id="nodes_selected" class="select2" style="width: 100%" multiple="" tabindex="4">
|
|
{% for node in nodes %}
|
|
<option value="{{ node.id }}" id="opt_{{ node.id }}" >{{ node.value }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2" class="no-borders">
|
|
<button type="button" class="btn btn-primary btn-sm" id="btn-change-admin-user">{% trans 'Confirm' %}</button>
|
|
</td>
|
|
</tr>
|
|
</form>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %}
|
|
{% block custom_foot_js %}
|
|
<script>
|
|
function replaceNodeAssetsAdminUser(nodes) {
|
|
var the_url = "{% url 'api-assets:replace-nodes-admin-user' pk=admin_user.id %}";
|
|
var body = {
|
|
nodes: nodes
|
|
};
|
|
var success = function(data) {
|
|
// remove all the selected groups from select > option and rendered ul element;
|
|
$('.select2-selection__rendered').empty();
|
|
$('#nodes_selected').val('');
|
|
$.map(jumpserver.nodes_selected, function(value, index) {
|
|
$('#opt_' + index).remove();
|
|
});
|
|
// clear jumpserver.groups_selected
|
|
jumpserver.nodes_selected = {};
|
|
};
|
|
APIUpdateAttr({
|
|
url: the_url,
|
|
body: JSON.stringify(body),
|
|
success: success
|
|
});
|
|
}
|
|
|
|
jumpserver.nodes_selected = {};
|
|
$(document).ready(function () {
|
|
$('.select2').select2()
|
|
.on('select2:select', function(evt) {
|
|
var data = evt.params.data;
|
|
jumpserver.nodes_selected[data.id] = data.text;
|
|
}).on('select2:unselect', function(evt) {
|
|
var data = evt.params.data;
|
|
delete jumpserver.nodes_selected[data.id]
|
|
});
|
|
})
|
|
.on('click', '.btn-delete-admin-user', function () {
|
|
var $this = $(this);
|
|
var name = "{{ admin_user.name }}";
|
|
var uid = "{{ admin_user.id }}";
|
|
var the_url = '{% url "api-assets:admin-user-detail" pk=DEFAULT_PK %}'.replace('{{ DEFAULT_PK }}', uid);
|
|
var redirect_url = "{% url 'assets:admin-user-list' %}";
|
|
objectDelete($this, name, the_url, redirect_url);
|
|
})
|
|
.on('click', '#btn-change-admin-user', function () {
|
|
if (Object.keys(jumpserver.nodes_selected).length === 0) {
|
|
return false;
|
|
}
|
|
var nodes = [];
|
|
$.map(jumpserver.nodes_selected, function(value, index) {
|
|
nodes.push(index);
|
|
});
|
|
replaceNodeAssetsAdminUser(nodes);
|
|
})
|
|
</script>
|
|
{% endblock %}
|