Commit 75e1ea7f authored by halcyon's avatar halcyon

bug

parent a269c43d
...@@ -8,7 +8,6 @@ from django.shortcuts import render_to_response ...@@ -8,7 +8,6 @@ from django.shortcuts import render_to_response
from jasset.models import IDC, Asset, BisGroup, AssetAlias from jasset.models import IDC, Asset, BisGroup, AssetAlias
from jperm.models import Perm, SudoPerm from jperm.models import Perm, SudoPerm
from django.shortcuts import redirect
from jumpserver.api import * from jumpserver.api import *
cryptor = PyCrypt(KEY) cryptor = PyCrypt(KEY)
...@@ -18,6 +17,10 @@ class RaiseError(Exception): ...@@ -18,6 +17,10 @@ class RaiseError(Exception):
pass pass
def my_render(template, data, request):
return render_to_response(template, data, context_instance=RequestContext(request))
def httperror(request, emg): def httperror(request, emg):
message = emg message = emg
return render_to_response('error.html', locals(), context_instance=RequestContext(request)) return render_to_response('error.html', locals(), context_instance=RequestContext(request))
...@@ -156,7 +159,7 @@ def db_host_delete(request, host_id): ...@@ -156,7 +159,7 @@ def db_host_delete(request, host_id):
def db_idc_delete(request, idc_id): def db_idc_delete(request, idc_id):
""" IDC删除操作数据库函数 """ """ 删除IDC操作 """
if idc_id == 1: if idc_id == 1:
return httperror(request, '删除失败, 默认IDC不能删除!') return httperror(request, '删除失败, 默认IDC不能删除!')
...@@ -200,7 +203,7 @@ def host_add(request): ...@@ -200,7 +203,7 @@ def host_add(request):
if Asset.objects.filter(ip=str(j_ip)): if Asset.objects.filter(ip=str(j_ip)):
emg = u'该IP %s 已存在!' % j_ip emg = u'该IP %s 已存在!' % j_ip
return render_to_response('jasset/host_add.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_add.html', locals(), request)
if j_type == 'M': if j_type == 'M':
j_user = request.POST.get('j_user') j_user = request.POST.get('j_user')
j_password = request.POST.get('j_password', '') j_password = request.POST.get('j_password', '')
...@@ -209,7 +212,7 @@ def host_add(request): ...@@ -209,7 +212,7 @@ def host_add(request):
db_host_insert(host_info) db_host_insert(host_info)
smg = u'主机 %s 添加成功' % j_ip smg = u'主机 %s 添加成功' % j_ip
return render_to_response('jasset/host_add.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_add.html', locals(), request)
@require_admin @require_admin
...@@ -263,9 +266,9 @@ def host_add_batch(request): ...@@ -263,9 +266,9 @@ def host_add_batch(request):
db_host_insert(host_info) db_host_insert(host_info)
smg = u'批量添加添加成功' smg = u'批量添加添加成功'
return render_to_response('jasset/host_add_multi.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_add_multi.html', locals(), request)
return render_to_response('jasset/host_add_multi.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_add_multi.html', locals(), request)
@require_admin @require_admin
...@@ -297,21 +300,20 @@ def host_edit_batch(request): ...@@ -297,21 +300,20 @@ def host_edit_batch(request):
host_info = [j_id, j_ip, j_idc, j_port, j_type, j_group, j_dept, j_active, j_comment] host_info = [j_id, j_ip, j_idc, j_port, j_type, j_group, j_dept, j_active, j_comment]
batch_host_edit(host_info) batch_host_edit(host_info)
return render_to_response('jasset/host_list.html') return HttpResponseRedirect('/jasset/host_list/')
@require_login @require_login
def host_edit_common_batch(request): def host_edit_common_batch(request):
""" 普通用户批量修改主机别名 """ """ 普通用户批量修改主机别名 """
user_id = get_session_user_info(request)[0] u = get_session_user_info(request)[2]
u = User.objects.get(id=user_id)
if request.method == 'POST': if request.method == 'POST':
len_table = request.POST.get('len_table') len_table = request.POST.get('len_table')
for i in range(int(len_table)): for i in range(int(len_table)):
j_id = "editable[" + str(i) + "][j_id]" j_id = "editable[" + str(i) + "][j_id]"
j_alias = "editable[" + str(i) + "][j_alias]" j_alias = "editable[" + str(i) + "][j_alias]"
j_id = request.POST.get(j_id).strip() j_id = request.POST.get(j_id, '').strip()
j_alias = request.POST.get(j_alias).strip() j_alias = request.POST.get(j_alias, '').strip()
a = Asset.objects.get(id=j_id) a = Asset.objects.get(id=j_id)
asset_alias = AssetAlias.objects.filter(user=u, host=a) asset_alias = AssetAlias.objects.filter(user=u, host=a)
if asset_alias: if asset_alias:
...@@ -320,7 +322,7 @@ def host_edit_common_batch(request): ...@@ -320,7 +322,7 @@ def host_edit_common_batch(request):
asset_alias.save() asset_alias.save()
else: else:
AssetAlias.objects.create(user=u, host=a, alias=j_alias) AssetAlias.objects.create(user=u, host=a, alias=j_alias)
return render_to_response('jasset/host_list_common.html') return my_render('jasset/host_list_common.html')
@require_login @require_login
...@@ -342,7 +344,7 @@ def host_list(request): ...@@ -342,7 +344,7 @@ def host_list(request):
if did: if did:
dept = DEPT.objects.get(id=did) dept = DEPT.objects.get(id=did)
posts = dept.asset_set.all() posts = dept.asset_set.all()
return render_to_response('jasset/host_list_nop.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_list_nop.html', locals(), request)
elif gid: elif gid:
posts = [] posts = []
...@@ -352,7 +354,7 @@ def host_list(request): ...@@ -352,7 +354,7 @@ def host_list(request):
for post in perm.asset_group.asset_set.all(): for post in perm.asset_group.asset_set.all():
posts.append(post) posts.append(post)
posts = list(set(posts)) posts = list(set(posts))
return render_to_response('jasset/host_list_nop.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_list_nop.html', locals(), request)
elif sid: elif sid:
posts = [] posts = []
...@@ -362,7 +364,7 @@ def host_list(request): ...@@ -362,7 +364,7 @@ def host_list(request):
for post in perm.asset_group.asset_set.all(): for post in perm.asset_group.asset_set.all():
posts.append(post) posts.append(post)
posts = list(set(posts)) posts = list(set(posts))
return render_to_response('jasset/host_list_nop.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_list_nop.html', locals(), request)
else: else:
if is_super_user(request): if is_super_user(request):
...@@ -371,7 +373,7 @@ def host_list(request): ...@@ -371,7 +373,7 @@ def host_list(request):
else: else:
posts = post_all posts = post_all
contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request) contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request)
return render_to_response('jasset/host_list.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_list.html', locals(), request)
elif is_group_admin(request): elif is_group_admin(request):
if keyword: if keyword:
...@@ -380,14 +382,13 @@ def host_list(request): ...@@ -380,14 +382,13 @@ def host_list(request):
posts = post_all.filter(dept=dept) posts = post_all.filter(dept=dept)
contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request) contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request)
return render_to_response('jasset/host_list.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_list.html', locals(), request)
elif is_common_user(request): elif is_common_user(request):
user_id, username = get_session_user_info(request)[0:2] user_id, username = get_session_user_info(request)[0:2]
posts = user_perm_asset_api(username) posts = user_perm_asset_api(username)
contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request) contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request)
return render_to_response('jasset/host_list_common.html', locals(), return my_render('jasset/host_list_common.html', locals(), request)
context_instance=RequestContext(request))
@require_admin @require_admin
...@@ -435,18 +436,18 @@ def host_edit(request): ...@@ -435,18 +436,18 @@ def host_edit(request):
j_active = request.POST.get('j_active', '') j_active = request.POST.get('j_active', '')
j_comment = request.POST.get('j_comment', '') j_comment = request.POST.get('j_comment', '')
host_info = [j_ip, j_port, j_idc, j_type, j_group, j_dept, j_active, j_comment] host_info = [j_ip, j_port, j_idc, j_type, j_group, j_dept, j_active, j_comment, post]
if j_type == 'M': if j_type == 'M':
j_user = request.POST.get('j_user') j_user = request.POST.get('j_user')
j_password = request.POST.get('j_password') j_password = request.POST.get('j_password')
db_host_update(host_info, j_user, j_password, post) db_host_update(host_info, j_user, j_password)
else: else:
db_host_update(host_info, post) db_host_update(host_info)
smg = u'主机 %s 修改成功' % j_ip smg = u'主机 %s 修改成功' % j_ip
return HttpResponseRedirect('/jasset/host_detail/?id=%s' % host_id) return HttpResponseRedirect('/jasset/host_detail/?id=%s' % host_id)
return render_to_response('jasset/host_edit.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_edit.html', locals(), request)
@require_admin @require_admin
...@@ -481,7 +482,7 @@ def host_edit_adm(request): ...@@ -481,7 +482,7 @@ def host_edit_adm(request):
if not verify(request, asset_group=j_group, edept=j_dept): if not verify(request, asset_group=j_group, edept=j_dept):
emg = u'修改失败,您无权操作!' emg = u'修改失败,您无权操作!'
return render_to_response('jasset/host_edit.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_edit.html', locals(), request)
if j_type == 'M': if j_type == 'M':
j_user = request.POST.get('j_user') j_user = request.POST.get('j_user')
...@@ -493,7 +494,7 @@ def host_edit_adm(request): ...@@ -493,7 +494,7 @@ def host_edit_adm(request):
smg = u'主机 %s 修改成功' % j_ip smg = u'主机 %s 修改成功' % j_ip
return HttpResponseRedirect('/jasset/host_detail/?id=%s' % host_id) return HttpResponseRedirect('/jasset/host_detail/?id=%s' % host_id)
return render_to_response('jasset/host_edit.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_edit.html', locals(), request)
@require_login @require_login
...@@ -519,7 +520,7 @@ def host_detail(request): ...@@ -519,7 +520,7 @@ def host_detail(request):
log, log_more = log_all[:10], log_all[10:] log, log_more = log_all[:10], log_all[10:]
user_permed_list = asset_perm_api(post) user_permed_list = asset_perm_api(post)
return render_to_response('jasset/host_detail.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_detail.html', locals(), request)
@require_super_user @require_super_user
...@@ -531,12 +532,12 @@ def idc_add(request): ...@@ -531,12 +532,12 @@ def idc_add(request):
j_comment = request.POST.get('j_comment') j_comment = request.POST.get('j_comment')
if IDC.objects.filter(name=j_idc): if IDC.objects.filter(name=j_idc):
emg = u'该IDC已存在!' emg = u'该IDC已存在!'
return render_to_response('jasset/idc_add.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/idc_add.html', locals(), request)
else: else:
smg = u'IDC:%s添加成功' % j_idc smg = u'IDC:%s添加成功' % j_idc
IDC.objects.create(name=j_idc, comment=j_comment) IDC.objects.create(name=j_idc, comment=j_comment)
return render_to_response('jasset/idc_add.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/idc_add.html', locals(), request)
@require_admin @require_admin
...@@ -551,7 +552,7 @@ def idc_list(request): ...@@ -551,7 +552,7 @@ def idc_list(request):
else: else:
posts = IDC.objects.exclude(name='ALL').order_by('id') posts = IDC.objects.exclude(name='ALL').order_by('id')
contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request) contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request)
return render_to_response('jasset/idc_list.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/idc_list.html', locals(), request)
@require_super_user @require_super_user
...@@ -560,13 +561,15 @@ def idc_edit(request): ...@@ -560,13 +561,15 @@ def idc_edit(request):
header_title, path1, path2 = u'编辑IDC', u'资产管理', u'编辑IDC' header_title, path1, path2 = u'编辑IDC', u'资产管理', u'编辑IDC'
idc_id = request.GET.get('id', '') idc_id = request.GET.get('id', '')
idc = IDC.objects.filter(id=idc_id) idc = IDC.objects.filter(id=idc_id)
if int(idc_id) == 1:
return httperror(request, u'默认IDC不能编辑!')
if idc: if idc:
idc = idc[0] idc = idc[0]
default = IDC.objects.get(name='默认').asset_set.all() default = IDC.objects.get(id=1).asset_set.all()
eposts = Asset.objects.filter(idc=idc).order_by('ip') eposts = Asset.objects.filter(idc=idc).order_by('ip')
posts = [g for g in default if g not in eposts] posts = [g for g in default if g not in eposts]
else: else:
emg = '此IDC不存在' return httperror(request, u'此IDC不存在')
if request.method == 'POST': if request.method == 'POST':
idc_id = request.POST.get('id') idc_id = request.POST.get('id')
...@@ -581,16 +584,15 @@ def idc_edit(request): ...@@ -581,16 +584,15 @@ def idc_edit(request):
for host_id in j_hosts: for host_id in j_hosts:
Asset.objects.filter(id=host_id).update(idc=idc[0]) Asset.objects.filter(id=host_id).update(idc=idc[0])
i = IDC.objects.get(name='默认') i = IDC.objects.get(id=1)
for host in idc_default: for host in idc_default:
g = Asset.objects.filter(id=host).update(idc=i) g = Asset.objects.filter(id=host).update(idc=i)
else: else:
emg = '此IDC不存在' return httperror(request, u'此IDC不存在')
return render_to_response('jasset/idc_edit.html', locals(), context_instance=RequestContext(request))
return HttpResponseRedirect('/jasset/idc_list/?id=%s' % idc_id) return HttpResponseRedirect('/jasset/idc_list/?id=%s' % idc_id)
return render_to_response('jasset/idc_edit.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/idc_edit.html', locals(), request)
@require_admin @require_admin
...@@ -611,7 +613,7 @@ def idc_detail(request): ...@@ -611,7 +613,7 @@ def idc_detail(request):
posts = Asset.objects.filter(idc=idc, dept=dept).order_by('ip') posts = Asset.objects.filter(idc=idc, dept=dept).order_by('ip')
contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request) contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request)
return render_to_response('jasset/idc_detail.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/idc_detail.html', locals(), request)
@require_super_user @require_super_user
...@@ -668,7 +670,7 @@ def group_add(request): ...@@ -668,7 +670,7 @@ def group_add(request):
group.asset_set.add(g) group.asset_set.add(g)
smg = u'主机组 %s 添加成功' % j_group smg = u'主机组 %s 添加成功' % j_group
return render_to_response('jasset/group_add.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/group_add.html', locals(), request)
@require_admin @require_admin
...@@ -708,7 +710,7 @@ def group_list(request): ...@@ -708,7 +710,7 @@ def group_list(request):
else: else:
posts = BisGroup.objects.filter(dept=dept).order_by('id') posts = BisGroup.objects.filter(dept=dept).order_by('id')
contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request) contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request)
return render_to_response('jasset/group_list.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/group_list.html', locals(), request)
@require_admin @require_admin
...@@ -749,7 +751,7 @@ def group_edit(request): ...@@ -749,7 +751,7 @@ def group_edit(request):
smg = u'主机组%s修改成功' % j_group smg = u'主机组%s修改成功' % j_group
return HttpResponseRedirect('/jasset/group_list') return HttpResponseRedirect('/jasset/group_list')
return render_to_response('jasset/group_edit.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/group_edit.html', locals(), request)
@require_admin @require_admin
...@@ -765,11 +767,11 @@ def group_detail(request): ...@@ -765,11 +767,11 @@ def group_detail(request):
elif is_group_admin(request): elif is_group_admin(request):
if not verify(request, asset_group=[group_id]): if not verify(request, asset_group=[group_id]):
return httperror(request, '您无权查看!') return httperror(request, u'您无权查看!')
posts = Asset.objects.filter(bis_group=group).filter(dept=dept).order_by('ip') posts = Asset.objects.filter(bis_group=group).filter(dept=dept).order_by('ip')
contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request) contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request)
return render_to_response('jasset/group_detail.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/group_detail.html', locals(), request)
@require_admin @require_admin
...@@ -817,6 +819,7 @@ def group_del(request): ...@@ -817,6 +819,7 @@ def group_del(request):
return HttpResponseRedirect('/jasset/group_list/') return HttpResponseRedirect('/jasset/group_list/')
@require_admin
def dept_host_ajax(request): def dept_host_ajax(request):
""" 添加主机组时, 部门联动主机异步 """ """ 添加主机组时, 部门联动主机异步 """
dept_id = request.GET.get('id', '') dept_id = request.GET.get('id', '')
...@@ -828,7 +831,7 @@ def dept_host_ajax(request): ...@@ -828,7 +831,7 @@ def dept_host_ajax(request):
else: else:
hosts = Asset.objects.all() hosts = Asset.objects.all()
return render_to_response('jasset/dept_host_ajax.html', locals()) return my_render('jasset/dept_host_ajax.html', locals())
@require_login @require_login
...@@ -854,4 +857,4 @@ def host_search(request): ...@@ -854,4 +857,4 @@ def host_search(request):
contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request) contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request)
return render_to_response('jasset/host_search.html', locals(), context_instance=RequestContext(request)) return my_render('jasset/host_search.html', locals(), request)
\ No newline at end of file \ No newline at end of file
#coding: utf8 #coding: utf8
[base] [base]
ip = 192.168.20.209 ip = 192.168.8.61
port = 80 port = 80
key = 88aaaf7ffe3c6c04 key = 88aaaf7ffe3c6c04
...@@ -24,7 +24,7 @@ root_pw = secret234 ...@@ -24,7 +24,7 @@ root_pw = secret234
[websocket] [websocket]
web_socket_host = 192.168.173.129:3000 web_socket_host = 192.168.8.61:3000
[mail] [mail]
......
...@@ -70,10 +70,13 @@ function move(from, to, from_o, to_o) { ...@@ -70,10 +70,13 @@ function move(from, to, from_o, to_o) {
}); });
} }
function move_left(from, to) { function move_left(from, to, from_o, to_o) {
$("#" + from + " option").each(function () { $("#" + from + " option").each(function () {
if ($(this).prop("selected") == true) { if ($(this).prop("selected") == true) {
$("#" + to).append(this); $("#" + to).append(this);
if( typeof from_o !== 'undefined'){
$("#"+to_o).append($("#"+from_o +" option[value='"+this.value+"']"));
}
} }
$(this).attr("selected",'true'); $(this).attr("selected",'true');
}); });
......
...@@ -2,6 +2,21 @@ ...@@ -2,6 +2,21 @@
{% load mytags %} {% load mytags %}
{% block content %} {% block content %}
{% include 'nav_cat_bar.html' %} {% include 'nav_cat_bar.html' %}
<script type="text/javascript">
function search_ip(text, noselect, total){
$("#" + noselect).children().each(
function(){
$(this).remove();
});
$("#" + total).children().each(function(){
if($(this).text().search(text) != -1){
$("#" + noselect).append($(this).clone())
}
})
}
</script>
<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">
...@@ -26,6 +41,19 @@ ...@@ -26,6 +41,19 @@
</a> </a>
</div> </div>
</div> </div>
<select id="assets_total" name="assets" class="form-control m-b" size="12" multiple style="display: none">
{% for asset in posts %}
<option value="{{ asset.id }}">{{ asset.ip }}</option>
{% endfor %}
</select>
<select id="asset_select_total" name="j_hosts" class="form-control m-b" size="12" multiple style="display: none">
{% for asset in eposts %}
<option value="{{ asset.id }}">{{ asset.ip }}</option>
{% endfor %}
</select>
<div class="ibox-content"> <div class="ibox-content">
{% if emg %} {% if emg %}
<div class="alert alert-warning text-center">{{ emg }}</div> <div class="alert alert-warning text-center">{{ emg }}</div>
...@@ -63,35 +91,40 @@ ...@@ -63,35 +91,40 @@
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<div> <label for="group_name" class="col-sm-2 control-label">过滤</label>
<label for="hosts" class="col-lg-2 control-label">主机</label> <div class="col-sm-4">
<div class="col-sm-3"> <input id="noselect" class="form-control" oninput="search_ip(this.value, 'assets', 'assets_total')">
<select multiple="multiple" id="id_domains_filter" name="domains_filter" style="display: none;"> </div>
</select> <div class="col-sm-1">
<div class="input-group" style="padding-bottom: 5px"> </div>
<input type="text" size="19" class="form-control input-sm" id="search" name="keyword" placeholder="过滤"> <div id="select" class="col-sm-3">
</div> <input class="form-control" oninput="search_ip(this.value, 'asset_select', 'asset_select_total')">
<select id="hosts" size="12" class="form-control m-b" multiple> </div>
</div>
<div class="form-group">
<label for="" class="col-sm-2 control-label">主机<span class="red-fonts">*</span></label>
<div class="col-sm-4">
<div>
<select id="assets" name="assets" class="form-control m-b" size="12" multiple>
{% for post in posts %} {% for post in posts %}
<option value="{{ post.id }}">{{ post.ip }}</option> <option value="{{ post.id }}">{{ post.ip }}</option>
{% endfor %} {% endfor %}
</select> </select>
</div> </div>
<div class="col-sm-1"> </div>
<div class="btn-group" style="margin-top: 50px;">
<button type="button" class="btn btn-xm btn-white" onclick="move('hosts', 'hosts_selected')"><i class="fa fa-chevron-right"></i></button> <div class="col-sm-1">
<button type="button" class="btn btn-xm btn-white" onclick="move_left('hosts_selected', 'hosts')"><i class="fa fa-chevron-left"></i></button> <div class="btn-group" style="margin-top: 60px;">
</div> <button type="button" class="btn btn-white" onclick="move('assets', 'asset_select', 'assets_total', 'asset_select_total' )"><i class="fa fa-chevron-right"></i></button>
<button type="button" class="btn btn-white" onclick="move_left('asset_select', 'assets', 'asset_select_total', 'assets_total')"><i class="fa fa-chevron-left"></i> </button>
</div> </div>
<div class="col-sm-3"> </div>
<h4 style="padding-bottom: 5px">已选中主机</h4>
<div> <div class="col-sm-3">
<select id="hosts_selected" name="j_hosts" class="form-control m-b" size="12" multiple> <div>
{% for post in eposts %} <select id="asset_select" name="j_hosts" class="form-control m-b" size="12" multiple></select>
<option value="{{ post.id }}">{{ post.ip }}</option>
{% endfor %}
</select>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -105,7 +138,7 @@ ...@@ -105,7 +138,7 @@
<div class="form-group"> <div class="form-group">
<div class="col-sm-4 col-sm-offset-5"> <div class="col-sm-4 col-sm-offset-5">
<button class="btn btn-white" type="submit"> 重置 </button> <button class="btn btn-white" type="submit"> 重置 </button>
<button class="btn btn-primary" type="submit" onclick="on_submit('groups_selected') "> 提交 </button> <button class="btn btn-primary" id="submit_button" type="submit" onclick="on_submit('groups_selected') "> 提交 </button>
</div> </div>
</div> </div>
</form> </form>
...@@ -116,6 +149,15 @@ ...@@ -116,6 +149,15 @@
</div> </div>
<script> <script>
$(document).ready(function(){
$("#submit_button").click(function(){
$('#assetForm option').each(function(){
$(this).prop('selected', true)
})
});
})
$('#assetForm').validator({ $('#assetForm').validator({
timely: 2, timely: 2,
theme: "yellow_right_effect", theme: "yellow_right_effect",
...@@ -140,15 +182,15 @@ ...@@ -140,15 +182,15 @@
}) })
} }
$('#search').keyup(function() { // $('#search').keyup(function() {
var $rows = $('#hosts option'); // var $rows = $('#hosts option');
var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase(); // var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase();
//
$rows.show().filter(function() { // $rows.show().filter(function() {
var text = $(this).text().replace(/\s+/g, ' ').toLowerCase(); // var text = $(this).text().replace(/\s+/g, ' ').toLowerCase();
return !~text.indexOf(val); // return !~text.indexOf(val);
}).hide(); // }).hide();
}); // });
function change_dept(dept_id){ function change_dept(dept_id){
$.get('/jasset/dept_host_ajax/', $.get('/jasset/dept_host_ajax/',
...@@ -157,6 +199,7 @@ ...@@ -157,6 +199,7 @@
$('#hosts').html(data) $('#hosts').html(data)
}) })
} }
</script> </script>
{% endblock %} {% endblock %}
\ No newline at end of file
...@@ -75,7 +75,78 @@ ...@@ -75,7 +75,78 @@
<input type="button" id="del_button" class="btn btn-danger btn-sm" name="del_button" value="删除" onclick="del('contents_form')" /> <input type="button" id="del_button" class="btn btn-danger btn-sm" name="del_button" value="删除" onclick="del('contents_form')" />
<input type="button" id="alter_button" class="btn btn-warning btn-sm" name="alter_button" value="修改" onclick="alter('contents_form')" /> <input type="button" id="alter_button" class="btn btn-warning btn-sm" name="alter_button" value="修改" onclick="alter('contents_form')" />
</div> </div>
{% include 'paginator.html' %} <div class="col-sm-6">
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
<ul class="pagination" style="margin-top: 0; float: right">
{% if keyword %}
{% if contacts.has_previous %}
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="?keyword={{ keyword }}&page={{ contacts.previous_page_number }}">Previous</a>
</li>
{% else %}
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="#">Previous</a>
</li>
{% endif %}
{% ifequal show_first 1 %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?keyword={{ keyword }}&page=1&id={{ group.id }}" title="第1页">1...</a></li>
{% endifequal %}
{% for page in page_range %}
{% ifequal current_page page %}
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?keyword={{ keyword }}&page={{ page }}&id={{ group.id }}" title="第{{ page }}页">{{ page }}</a></li>
{% else %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?keyword={{ keyword }}&page={{ page }}&id={{ group.id }}" title="第{{ page }}页">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% ifequal show_end 1 %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?keyword={{ keyword }}&page={{ p.num_pages }}&id={{ group.id }}" title="第{{ page }}页">...{{ p.num_pages }}</a></li>
{% endifequal %}
{% if contacts.has_next %}
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
<a href="?keyword={{ keyword }}&page={{ contacts.next_page_number }}&id={{ group.id }}">Next</a>
</li>
{% else %}
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
<a href="#">Next</a>
</li>
{% endif %}
{% else %}
{% if contacts.has_previous %}
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="?page={{ contacts.previous_page_number }}&id={{ group.id }}">Previous</a>
</li>
{% else %}
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="#">Previous</a>
</li>
{% endif %}
{% ifequal show_first 1 %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page=1&id={{ group.id }}" title="第1页">1...</a></li>
{% endifequal %}
{% for page in page_range %}
{% ifequal current_page page %}
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?page={{ page }}&id={{ group.id }}" title="第{{ page }}页">{{ page }}</a></li>
{% else %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ page }}&id={{ group.id }}" title="第{{ page }}页">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% ifequal show_end 1 %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ p.num_pages }}&id={{ group.id }}" title="第{{ page }}页">...{{ p.num_pages }}</a></li>
{% endifequal %}
{% if contacts.has_next %}
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
<a href="?page={{ contacts.next_page_number }}&id={{ group.id }}">Next</a>
</li>
{% else %}
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
<a href="#">Next</a>
</li>
{% endif %}
{% endif %}
</ul>
</div>
</div>
</div> </div>
</form> </form>
</div> </div>
......
...@@ -2,13 +2,58 @@ ...@@ -2,13 +2,58 @@
{% load mytags %} {% load mytags %}
{% block content %} {% block content %}
{% include 'nav_cat_bar.html' %} {% include 'nav_cat_bar.html' %}
<script type="text/javascript">
function search_ip(text, noselect, total){
$("#" + noselect).children().each(
function(){
$(this).remove();
});
$("#" + total).children().each(function(){
if($(this).text().search(text) != -1){
$("#" + noselect).append($(this).clone())
}
})
}
</script>
<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">
<div id="ibox-content" class="ibox-title"> <div id="ibox-content" class="ibox-title">
<h5> 填写主机组基本信息 </h5> <h5> 填写主机组基本信息 </h5>
</div> <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">
<li><a href="#">未启用 1</a>
</li>
<li><a href="#">未启用 2</a>
</li>
</ul>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<select id="assets_total" name="assets" class="form-control m-b" size="12" multiple style="display: none">
{% for asset in posts %}
<option value="{{ asset.id }}">{{ asset.ip }}</option>
{% endfor %}
</select>
<select id="asset_select_total" name="j_hosts" class="form-control m-b" size="12" multiple style="display: none">
{% for asset in eposts %}
<option value="{{ asset.id }}">{{ asset.ip }}</option>
{% endfor %}
</select>
<div class="ibox-content"> <div class="ibox-content">
{% if emg %} {% if emg %}
<div class="alert alert-warning text-center">{{ emg }}</div> <div class="alert alert-warning text-center">{{ emg }}</div>
...@@ -48,35 +93,46 @@ ...@@ -48,35 +93,46 @@
</div> </div>
{% endifequal %} {% endifequal %}
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group">
<label for="group_name" class="col-sm-2 control-label">过滤</label>
<div class="col-sm-4">
<input id="noselect" class="form-control" oninput="search_ip(this.value, 'assets', 'assets_total')">
</div>
<div class="col-sm-1">
</div>
<div id="select" class="col-sm-3">
<input class="form-control" oninput="search_ip(this.value, 'asset_select', 'asset_select_total')">
</div>
</div>
<div class="form-group"> <div class="form-group">
<div> <label for="" class="col-sm-2 control-label">主机<span class="red-fonts">*</span></label>
<label for="hosts" class="col-lg-2 control-label">主机</label> <div class="col-sm-4">
<div class="col-sm-3"> <div>
<div class="input-group" style="padding-bottom: 5px"> <select id="assets" name="assets" class="form-control m-b" size="12" multiple>
<input type="text" size="19" class="form-control input-sm" id="search" name="keyword" placeholder="过滤">
</div>
<select id="hosts" size="12" class="form-control m-b" multiple>
{% for post in posts %} {% for post in posts %}
<option value="{{ post.id }}">{{ post.ip }}</option> <option value="{{ post.id }}">{{ post.ip }}</option>
{% endfor %} {% endfor %}
</select> </select>
</div> </div>
<div class="col-sm-1"> </div>
<div class="btn-group" style="margin-top: 50px;">
<button type="button" class="btn btn-xm btn-white" onclick="move('hosts', 'hosts_selected')"><i class="fa fa-chevron-right"></i></button> <div class="col-sm-1">
<button type="button" class="btn btn-xm btn-white" onclick="move_left('hosts_selected', 'hosts')"><i class="fa fa-chevron-left"></i></button> <div class="btn-group" style="margin-top: 60px;">
</div> <button type="button" class="btn btn-white" onclick="move('assets', 'asset_select', 'assets_total', 'asset_select_total' )"><i class="fa fa-chevron-right"></i></button>
<button type="button" class="btn btn-white" onclick="move_left('asset_select', 'assets', 'asset_select_total', 'assets_total')"><i class="fa fa-chevron-left"></i> </button>
</div> </div>
<div class="col-sm-3"> </div>
<h4 style="padding-bottom: 5px">已选中主机</h4>
<div> <div class="col-sm-3">
<select id="hosts_selected" name="j_hosts" class="form-control m-b" size="12" multiple> <div>
{% for post in eposts %} <select id="asset_select" name="j_hosts" class="form-control m-b" size="12" multiple>
<option value="{{ post.id }}">{{ post.ip }}</option> {% for asset in eposts %}
{% endfor %} <option value="{{ asset.id }}">{{ asset.ip }}</option>
</select> {% endfor %}
</div> </select>
</div> </div>
</div> </div>
</div> </div>
...@@ -90,7 +146,7 @@ ...@@ -90,7 +146,7 @@
<div class="form-group"> <div class="form-group">
<div class="col-sm-4 col-sm-offset-5"> <div class="col-sm-4 col-sm-offset-5">
<button class="btn btn-white" type="submit"> 重置 </button> <button class="btn btn-white" type="submit"> 重置 </button>
<button class="btn btn-primary" type="submit" onclick="on_submit('groups_selected') "> 提交 </button> <button class="btn btn-primary" id="submit_button" type="submit" onclick="on_submit('groups_selected') "> 提交 </button>
</div> </div>
</div> </div>
</form> </form>
...@@ -101,6 +157,15 @@ ...@@ -101,6 +157,15 @@
</div> </div>
<script> <script>
$(document).ready(function(){
$("#submit_button").click(function(){
$('#assetForm option').each(function(){
$(this).prop('selected', true)
})
});
})
$('#assetForm').validator({ $('#assetForm').validator({
timely: 2, timely: 2,
theme: "yellow_right_effect", theme: "yellow_right_effect",
...@@ -125,16 +190,16 @@ ...@@ -125,16 +190,16 @@
}) })
} }
$('#search').keyup(function() { // $('#search').keyup(function() {
var $rows = $('#hosts option'); // var $rows = $('#hosts option');
console.log($rows); // console.log($rows);
var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase(); // var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase();
//
$rows.show().filter(function() { // $rows.show().filter(function() {
var text = $(this).text().replace(/\s+/g, ' ').toLowerCase(); // var text = $(this).text().replace(/\s+/g, ' ').toLowerCase();
return !~text.indexOf(val); // return !~text.indexOf(val);
}).hide(); // }).hide();
}); // });
function change_dept(dept_id){ function change_dept(dept_id){
$.get('/jasset/dept_host_ajax/', $.get('/jasset/dept_host_ajax/',
......
...@@ -83,7 +83,78 @@ ...@@ -83,7 +83,78 @@
<input type="button" id="del_button" class="btn btn-danger btn-sm" name="del_button" value="删除" onclick="del('contents_form')" /> <input type="button" id="del_button" class="btn btn-danger btn-sm" name="del_button" value="删除" onclick="del('contents_form')" />
<input type="button" id="alter_button" class="btn btn-warning btn-sm" name="alter_button" value="修改" onclick="alter('contents_form')" /> <input type="button" id="alter_button" class="btn btn-warning btn-sm" name="alter_button" value="修改" onclick="alter('contents_form')" />
</div> </div>
{% include 'paginator.html' %} <div class="col-sm-6">
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
<ul class="pagination" style="margin-top: 0; float: right">
{% if keyword %}
{% if contacts.has_previous %}
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="?keyword={{ keyword }}&page={{ contacts.previous_page_number }}">Previous</a>
</li>
{% else %}
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="#">Previous</a>
</li>
{% endif %}
{% ifequal show_first 1 %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?keyword={{ keyword }}&page=1&id={{ idc.id }}" title="第1页">1...</a></li>
{% endifequal %}
{% for page in page_range %}
{% ifequal current_page page %}
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?keyword={{ keyword }}&page={{ page }}&id={{ idc.id }}" title="第{{ page }}页">{{ page }}</a></li>
{% else %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?keyword={{ keyword }}&page={{ page }}&id={{ idc.id }}" title="第{{ page }}页">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% ifequal show_end 1 %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?keyword={{ keyword }}&page={{ p.num_pages }}&id={{ idc.id }}" title="第{{ page }}页">...{{ p.num_pages }}</a></li>
{% endifequal %}
{% if contacts.has_next %}
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
<a href="?keyword={{ keyword }}&page={{ contacts.next_page_number }}&id={{ idc.id }}">Next</a>
</li>
{% else %}
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
<a href="#">Next</a>
</li>
{% endif %}
{% else %}
{% if contacts.has_previous %}
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="?page={{ contacts.previous_page_number }}&id={{ idc.id }}">Previous</a>
</li>
{% else %}
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="#">Previous</a>
</li>
{% endif %}
{% ifequal show_first 1 %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page=1&id={{ idc.id }}" title="第1页">1...</a></li>
{% endifequal %}
{% for page in page_range %}
{% ifequal current_page page %}
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?page={{ page }}&id={{ idc.id }}" title="第{{ page }}页">{{ page }}</a></li>
{% else %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ page }}&id={{ idc.id }}" title="第{{ page }}页">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% ifequal show_end 1 %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ p.num_pages }}&id={{ idc.id }}" title="第{{ page }}页">...{{ p.num_pages }}</a></li>
{% endifequal %}
{% if contacts.has_next %}
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
<a href="?page={{ contacts.next_page_number }}&id={{ idc.id }}">Next</a>
</li>
{% else %}
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
<a href="#">Next</a>
</li>
{% endif %}
{% endif %}
</ul>
</div>
</div>
</div> </div>
</form> </form>
</div> </div>
......
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
{% include 'nav_cat_bar.html' %} {% include 'nav_cat_bar.html' %}
<!--<h3 class="text-center">项目发布申请</h3>--> <script type="text/javascript">
function search_ip(text, noselect, total){
$("#" + noselect).children().each(
function(){
$(this).remove();
});
$("#" + total).children().each(function(){
if($(this).text().search(text) != -1){
$("#" + noselect).append($(this).clone())
}
})
}
</script>
<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">
...@@ -16,10 +29,6 @@ ...@@ -16,10 +29,6 @@
<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>
<li><a href="#">未启用 2</a>
</li>
</ul> </ul>
<a class="close-link"> <a class="close-link">
<i class="fa fa-times"></i> <i class="fa fa-times"></i>
...@@ -27,6 +36,18 @@ ...@@ -27,6 +36,18 @@
</div> </div>
</div> </div>
<select id="assets_total" name="assets" class="form-control m-b" size="12" multiple style="display: none">
{% for asset in posts %}
<option value="{{ asset.ip }}">{{ asset.ip }}</option>
{% endfor %}
</select>
<select id="asset_select_total" name="j_hosts" class="form-control m-b" size="12" multiple style="display: none">
{% for asset in eposts %}
<option value="{{ asset.ip }}">{{ asset.ip }}</option>
{% endfor %}
</select>
<div class="ibox-content"> <div class="ibox-content">
{% if emg %} {% if emg %}
<div class="alert alert-warning text-center">{{ emg }}</div> <div class="alert alert-warning text-center">{{ emg }}</div>
...@@ -46,10 +67,10 @@ ...@@ -46,10 +67,10 @@
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"><label class="col-sm-2 control-label"> 部门管理员 <span class="red-fonts">*</span></label> <div class="form-group" id="j_da"><label class="col-sm-2 control-label"> 部门管理员 <span class="red-fonts">*</span></label>
<div class="radio"> <div class="radio">
{% for da in dept_da %} {% for da in dept_da %}
<label><input type="radio" value="{{ da.id }}" id="da" name="da"> {{ da }}</label> <label><input type="radio" value="{{ da.id }}" name="da"> {{ da }}</label>
{% endfor %} {% endfor %}
</div> </div>
</div> </div>
...@@ -68,35 +89,40 @@ ...@@ -68,35 +89,40 @@
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<div> <label for="group_name" class="col-sm-2 control-label">过滤</label>
<label for="groups" class="col-lg-2 control-label">主机<span class="red-fonts">*</span></label> <div class="col-sm-4">
<div class="col-sm-3"> <input id="noselect" class="form-control" oninput="search_ip(this.value, 'assets', 'assets_total')">
<select multiple="multiple" id="id_domains_filter" name="domains_filter" style="display: none;"> </div>
</select> <div class="col-sm-1">
<div class="input-group" style="padding-bottom: 5px"> </div>
<input type="text" size="19" class="form-control input-sm" id="search" name="keyword" placeholder="过滤"> <div id="select" class="col-sm-3">
</div> <input class="form-control" oninput="search_ip(this.value, 'asset_select', 'asset_select_total')">
<select id="groups" size="12" class="form-control m-b" multiple> </div>
</div>
<div class="form-group">
<label for="" class="col-sm-2 control-label">主机<span class="red-fonts">*</span></label>
<div class="col-sm-4">
<div>
<select id="assets" name="assets" class="form-control m-b" size="12" multiple>
{% for post in posts %} {% for post in posts %}
<option value="{{ post.ip }}">{{ post.ip }}</option> <option value="{{ post.ip }}">{{ post.ip }}</option>
{% endfor %} {% endfor %}
</select> </select>
</div> </div>
<div class="col-sm-1"> </div>
<div class="btn-group" style="margin-top: 50px;">
<button type="button" class="btn btn-xm btn-white" onclick="move('groups', 'groups_selected')"><i class="fa fa-chevron-right"></i></button> <div class="col-sm-1">
<button type="button" class="btn btn-xm btn-white" onclick="move_left('groups_selected', 'groups')"><i class="fa fa-chevron-left"></i></button> <div class="btn-group" style="margin-top: 60px;">
</div> <button type="button" class="btn btn-white" onclick="move('assets', 'asset_select', 'assets_total', 'asset_select_total' )"><i class="fa fa-chevron-right"></i></button>
<button type="button" class="btn btn-white" onclick="move_left('asset_select', 'assets', 'asset_select_total', 'assets_total')"><i class="fa fa-chevron-left"></i> </button>
</div> </div>
<div class="col-sm-3"> </div>
<h4 style="padding-bottom: 5px">已选中主机</h4>
<div> <div class="col-sm-3">
<select id="groups_selected" name="hosts" class="form-control m-b" size="12" multiple> <div>
{% for post in eposts %} <select id="asset_select" name="hosts" class="form-control m-b" size="12" multiple></select>
<option value="{{ post.ip }}">{{ post.ip }}</option>
{% endfor %}
</select>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -110,7 +136,7 @@ ...@@ -110,7 +136,7 @@
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<div class="col-sm-4 col-sm-offset-5"> <div class="col-sm-4 col-sm-offset-5">
<button class="btn btn-primary" type="submit"> 提交 </button> <button class="btn btn-primary" id="submit_button" type="submit"> 提交 </button>
</div> </div>
</div> </div>
</form> </form>
...@@ -121,6 +147,32 @@ ...@@ -121,6 +147,32 @@
</div> </div>
<script> <script>
$(document).ready(function(){
$("#submit_button").click(function(){
$('#assetForm option').each(function(){
$(this).prop('selected', true)
})
});
})
$('#assetForm').validator({
timely: 2,
theme: "yellow_right_effect",
fields: {
"j_da": {
rule: "required",
tip: "选择管理员",
ok: "",
msg: {required: "管理员必须选择!"},
data: {'data-ok':"ok"}
}
},
valid: function(form) {
form.submit();
}
});
var $rows = $('#groups option'); var $rows = $('#groups option');
$('#search').keyup(function() { $('#search').keyup(function() {
var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase(); var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment