修改授权移动

pull/6/head
ibuler 2015-01-25 21:46:19 +08:00
parent caff3e5d0c
commit 569e12e83c
5 changed files with 108 additions and 33 deletions

View File

@ -32,6 +32,9 @@ def perm_edit(request):
header_title, path1, path2 = u'授权编辑 | Perm Edit.', u'jperm', u'perm_edit' header_title, path1, path2 = u'授权编辑 | Perm Edit.', u'jperm', u'perm_edit'
if request.method == 'GET': if request.method == 'GET':
if request.GET.get('id', None): if request.GET.get('id', None):
user_id = request.GET.get('id')
user = User.objects.get(id=user_id)
assets = Asset.objects.all()
return render_to_response('jperm/perm_edit.html', locals()) return render_to_response('jperm/perm_edit.html', locals())

View File

@ -2623,6 +2623,9 @@ a:focus {
.b-r { .b-r {
border-right: 1px solid #e7eaec; border-right: 1px solid #e7eaec;
} }
.b-l {
border-left: 1px solid #e7eaec;
}
.hr-line-dashed { .hr-line-dashed {
border-top: 1px dashed #e7eaec; border-top: 1px dashed #e7eaec;
color: #ffffff; color: #ffffff;

View File

@ -2,13 +2,40 @@
{% load mytags %} {% load mytags %}
{% block content %} {% block content %}
<script type="text/javascript">
function move(from, to) {
$("#"+from+" option").each(function(){
if ( $(this).prop("selected") == true ) {
$("#"+to).append(this);
}
});
}
function move_all(from, to){
$("#"+from).children().each(function(){
$("#"+to).append(this);
});
}
function search_host(text){
$("#host_unperm").children().each(function(){$(this).remove();});
$("#host_all").children().each(function(){
if ($(this).text().search(text) != -1) {
$("#host_unperm").append($(this).clone())
}
});
}
</script>
{% include 'nav_cat_bar.html' %} {% include 'nav_cat_bar.html' %}
<div class="wrapper wrapper-content animated fadeInRight"> <div class="wrapper wrapper-content animated fadeInRight">
<div class="row"> <div class="row">
<div class="col-lg-10"> <div class="col-lg-10">
<div class="ibox float-e-margins"> <div class="ibox float-e-margins">
<!-- title -->
<div class="ibox-title"> <div class="ibox-title">
<h5>编辑授权 {{ user.name }} <small> Edit perm info.</small></h5> <h5>Basic form <small>Simple login form example</small></h5>
<div class="ibox-tools"> <div class="ibox-tools">
<a class="collapse-link"> <a class="collapse-link">
<i class="fa fa-chevron-up"></i> <i class="fa fa-chevron-up"></i>
@ -17,9 +44,9 @@
<i class="fa fa-wrench"></i> <i class="fa fa-wrench"></i>
</a> </a>
<ul class="dropdown-menu dropdown-user"> <ul class="dropdown-menu dropdown-user">
<li><a href="#">未启用 1</a> <li><a href="#">Config option 1</a>
</li> </li>
<li><a href="#">未启用 2</a> <li><a href="#">Config option 2</a>
</li> </li>
</ul> </ul>
<a class="close-link"> <a class="close-link">
@ -27,52 +54,90 @@
</a> </a>
</div> </div>
</div> </div>
<!-- end title -->
<div class="ibox-content"> <div class="ibox-content">
<form method="post" class="form-horizontal" action=""> <div class="row">
{% if error %} <div class="col-sm-5 ">
<div class="alert alert-warning text-center">{{ error }}</div>
{% endif %}
{% if msg %}
<div class="alert alert-success text-center">{{ msg }}</div>
{% endif %}
<div class="form-group"> <div class="form-group">
<div class="col-sm-8"> <label></label>
<input name="username" value="{{ user.username }}" readonly="readonly"> <input type="text" id="host_filter" placeholder="过滤" class="form-control" value="" oninput="search_host(this.value)">
</div> </div>
</div> </div>
<div class="col-sm-1 ">
<div class="form-group"> <div class="form-group">
<div class="col-sm-4"> <label></label>
<input id="filter" name="filter" placeholder="过滤" type="text" class="form-control"> </div>
<select id="host_ids" name="host_ids" multiple style="width: 100%"> </div>
{% for host in hosts %} <div class="col-sm-5 ">
<option value="{{ host.id }}">{{ host.ip }}</option> <div class="form-group">
{% endfor %} <label></label>
</select> <input type="text" class="form-control" value="{{ user.name }}" readonly>
</div>
</div> </div>
<div class="col-sm-2">
</div> </div>
<div class="col-sm-4"> <form method="post" action="">
<select id="host_ids" name="host_ids" multiple style="width: 100%"> <div class="row">
{% for host in hosts %} <div class="col-sm-5"><h4>未授权主机</h4>
<option value="{{ host.id }}">{{ host.ip }}</option> <div>
<select id="host_all" name="host_all" class="form-control" size="10" multiple style="display: none">
{% for asset in assets %}
<option value="{{ asset.ip }}">{{ asset.ip }}</option>
{% endfor %}
</select>
<select id="host_unperm" name="host_unperm" class="form-control m-b" size="12" multiple>
{% for asset in assets %}
<option value="{{ asset.ip }}">{{ asset.ip }}</option>
{% endfor %} {% endfor %}
</select> </select>
</div> </div>
</div> </div>
<div class="hr-line-dashed"></div> <div class="col-sm-1">
<div class="btn-group" style="margin-top: 50px;">
<button type="button" class="btn btn-white" onclick="move('host_unperm', 'host_permed')"><i class="fa fa-chevron-right"></i></button>
<button type="button" class="btn btn-white" onclick="move('host_permed', 'host_unperm')"><i class="fa fa-chevron-left"></i> </button>
</div>
</div>
<div class="col-sm-5"><h4>已授权主机</h4>
<div>
<select id="host_permed" name="host_permed" class="form-control m-b" size="12" multiple>
</select>
</div>
</div>
</div>
<div class="row">
<div class="form-group"> <div class="form-group">
<div class="col-sm-4 col-sm-offset-2"> <div class="col-sm-4 col-sm-offset-2">
<button class="btn btn-white" type="submit">取消</button> <button class="btn btn-white" type="submit">取消</button>
<button id="submit_button" class="btn btn-primary" type="submit">确认保存</button> <button class="btn btn-primary" type="submit">确认保存</button>
</div>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<script>
var str = document.location.pathname.split("/")[1];
var str1 = document.location.pathname.split("/")[2];
$("#"+str).addClass('active');
$("#"+str1).addClass('active');
</script>
<script type="text/javascript">
$("#host_permed").children().each(function(){
$("#host_all").append($(this).clone());
if ($(this).prop("selected") == false) {
$("#host_unperm").append(this);
}
$("#host_all").children().each(function(){$(this).prop("selected", false)});
});
</script>
{% endblock %} {% endblock %}

View File

@ -1,6 +1,8 @@
<link href="/static/css/bootstrap.min.css" rel="stylesheet"> <link href="/static/css/bootstrap.min.css" rel="stylesheet">
<link href="/static/font-awesome/css/font-awesome.css" rel="stylesheet"> <link href="/static/font-awesome/css/font-awesome.css" rel="stylesheet">
<link href="/static/css/plugins/iCheck/custom.css" rel="stylesheet"> <link href="/static/css/plugins/iCheck/custom.css" rel="stylesheet">
<link href="/static/css/plugins/fullcalendar/fullcalendar.css" rel="stylesheet">
<link href="/static/css/plugins/fullcalendar/fullcalendar.print.css" rel="stylesheet">
<link href="/static/css/animate.css" rel="stylesheet"> <link href="/static/css/animate.css" rel="stylesheet">
<link href="/static/css/style.css" rel="stylesheet"> <link href="/static/css/style.css" rel="stylesheet">
<link href="/static/css/colorbox.css" rel="stylesheet"> <link href="/static/css/colorbox.css" rel="stylesheet">

View File

@ -27,6 +27,8 @@
<!--</script>--> <!--</script>-->
<script src="/static/js/plugins/fullcalendar/fullcalendar.min.js"></script>
<!-- pop windows --> <!-- pop windows -->
<script src="/static/js/jquery.colorbox.js"></script> <script src="/static/js/jquery.colorbox.js"></script>