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.
173 lines
8.3 KiB
173 lines
8.3 KiB
{% extends 'base.html' %}
|
|
{% load i18n %}
|
|
{% load static %}
|
|
{% load bootstrap3 %}
|
|
{% 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>
|
|
<link href="{% static 'css/plugins/datepicker/datepicker3.css' %}" rel="stylesheet">
|
|
{% 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="ibox-title">
|
|
<h5>{{ action }}</h5>
|
|
<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>
|
|
<a class="close-link">
|
|
<i class="fa fa-times"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="ibox-content">
|
|
<form method="post" class="form-horizontal" action="" >
|
|
{% if form.non_field_errors %}
|
|
<div class="alert alert-danger">
|
|
{{ form.non_field_errors }}
|
|
</div>
|
|
{% endif %}
|
|
{% csrf_token %}
|
|
<h3>{% trans 'Basic' %}</h3>
|
|
{% bootstrap_field form.name layout="horizontal" %}
|
|
<div class="hr-line-dashed"></div>
|
|
<h3>{% trans 'User' %}</h3>
|
|
{% bootstrap_field form.users layout="horizontal" %}
|
|
{% bootstrap_field form.user_groups layout="horizontal" %}
|
|
<div class="hr-line-dashed"></div>
|
|
<h3>{% trans 'Asset' %}</h3>
|
|
{% bootstrap_field form.assets layout="horizontal" %}
|
|
{% bootstrap_field form.nodes layout="horizontal" %}
|
|
{% bootstrap_field form.system_users layout="horizontal" %}
|
|
<div class="hr-line-dashed"></div>
|
|
<h3>{% trans 'Action' %}</h3>
|
|
{% bootstrap_field form.actions layout="horizontal" %}
|
|
<div class="hr-line-dashed"></div>
|
|
<h3>{% trans 'Other' %}</h3>
|
|
<div class="form-group">
|
|
<label for="{{ form.is_active.id_for_label }}" class="col-sm-2 control-label">{% trans 'Active' %}</label>
|
|
<div class="col-sm-8">
|
|
{{ form.is_active }}
|
|
</div>
|
|
</div>
|
|
<div class="form-group {% if form.date_expired.errors or form.date_start.errors %} has-error {% endif %}" id="date_5">
|
|
<label for="{{ form.date_expired.id_for_label }}" class="col-sm-2 control-label">{% trans 'Validity period' %}</label>
|
|
<div class="col-sm-9">
|
|
<div class="input-daterange input-group" id="datepicker">
|
|
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
|
{% if form.errors %}
|
|
<input type="text" class="input-sm form-control" id="date_start" name="date_start" value="{{ form.date_start.value }}">
|
|
<span class="input-group-addon">to</span>
|
|
<input type="text" class="input-sm form-control" id="date_expired" name="date_expired" value="{{ form.date_expired.value }}">
|
|
{% else %}
|
|
<input type="text" class="input-sm form-control" id="date_start" name="date_start" value="{{ form.date_start.value|date:'Y-m-d H:i' }}">
|
|
<span class="input-group-addon">to</span>
|
|
<input type="text" class="input-sm form-control" id="date_expired" name="date_expired" value="{{ form.date_expired.value|date:'Y-m-d H:i' }}">
|
|
{% endif %}
|
|
</div>
|
|
<span class="help-block ">{{ form.date_expired.errors }}</span>
|
|
<span class="help-block ">{{ form.date_start.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{% bootstrap_field form.comment layout="horizontal" %}
|
|
|
|
<div class="form-group">
|
|
<div class="col-sm-4 col-sm-offset-2">
|
|
<button class="btn btn-white" type="reset">{% trans 'Reset' %}</button>
|
|
<button id="submit_button" class="btn btn-primary" type="submit">{% trans 'Submit' %}</button>
|
|
</div>
|
|
</div>
|
|
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% include 'assets/_asset_list_modal.html' %}
|
|
{% endblock %}
|
|
{% block custom_foot_js %}
|
|
<script src="{% static 'js/plugins/datepicker/bootstrap-datepicker.js' %}"></script>
|
|
<script type="text/javascript" src='{% static "js/plugins/daterangepicker/moment.min.js" %}'></script>
|
|
<script type="text/javascript" src='{% static "js/plugins/daterangepicker/daterangepicker.min.js" %}'></script>
|
|
<link rel="stylesheet" type="text/css" href={% static "css/plugins/daterangepicker/daterangepicker.css" %} />
|
|
|
|
<script>
|
|
var dateOptions = {
|
|
singleDatePicker: true,
|
|
showDropdowns: true,
|
|
timePicker: true,
|
|
timePicker24Hour: true,
|
|
autoApply: true,
|
|
locale: {
|
|
format: 'YYYY-MM-DD HH:mm'
|
|
}
|
|
};
|
|
var api_action = "{{ api_action }}";
|
|
$(document).ready(function () {
|
|
$('.select2').select2({
|
|
closeOnSelect: false
|
|
});
|
|
$('#date_start').daterangepicker(dateOptions);
|
|
$('#date_expired').daterangepicker(dateOptions);
|
|
$("#id_assets").parent().find(".select2-selection").on('click', function (e) {
|
|
if ($(e.target).attr('class') !== 'select2-selection__choice__remove'){
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
$("#asset_list_modal").modal();
|
|
initSelectedAssets2Table();
|
|
}
|
|
})
|
|
})
|
|
.on('click', '#btn_asset_modal_confirm', function () {
|
|
var assets = asset_table2.selected;
|
|
|
|
var options = [];
|
|
$('#id_assets option').each(function (i, v) {
|
|
options.push(v.value)
|
|
});
|
|
asset_table2.selected_rows.forEach(function (i) {
|
|
var name = i.hostname + '(' + i.ip + ')';
|
|
var option = new Option(name, i.id, false, true);
|
|
|
|
if (options.indexOf(i.id) === -1) {
|
|
$('#id_assets').append(option).trigger('change');
|
|
}
|
|
});
|
|
|
|
$('#id_assets').val(assets).trigger('change');
|
|
$("#asset_list_modal").modal('hide');
|
|
})
|
|
.on("submit", "form", function (evt) {
|
|
evt.preventDefault();
|
|
var the_url = '{% url 'api-perms:asset-permission-list' %}';
|
|
var method = "POST";
|
|
{% if api_action == "update" %}
|
|
the_url = '{% url 'api-perms:asset-permission-detail' pk=object.id %}';
|
|
method = "PUT";
|
|
{% endif %}
|
|
var redirect_to = '{% url "perms:asset-permission-list" %}';
|
|
var form = $("form");
|
|
var data = form.serializeObject();
|
|
objectAttrsIsList(data, ['users', 'user_groups', 'system_users', 'nodes', 'assets', 'actions']);
|
|
objectAttrsIsDatetime(data, ['date_start', 'date_expired']);
|
|
objectAttrsIsBool(data, ['is_active']);
|
|
console.log(data)
|
|
var props = {
|
|
url: the_url,
|
|
data: data,
|
|
method: method,
|
|
form: form,
|
|
redirect_to: redirect_to
|
|
};
|
|
formSubmit(props);
|
|
})
|
|
</script>
|
|
{% endblock %} |