diff --git a/jasset/urls.py b/jasset/urls.py
index 3b8fd120dbb2942305305d2a86507417bb4a1be5..a859e209ac7edad680139dbdf36328581f7de76a 100644
--- a/jasset/urls.py
+++ b/jasset/urls.py
@@ -5,15 +5,18 @@ from jasset.views import *
 urlpatterns = patterns('',
     url(r'^$', index),
     url(r'^host_add/$', jadd_host),
+    url(r'^host_add_multi/$', jadd_host_multi),
     url(r'^host_list/$', jlist_host),
     url(r"^(\d+.\d+.\d+.\d+)/$",jlist_ip),
     url(r'^idc_add/$', jadd_idc),
     url(r'^idc_list/$', jlist_idc),
+    url(r'^idc_detail/(\d+)$', idc_detail),
     url(r'^idc_del/(\d+)/$', idc_del),
     url(r'^group_add/$', jadd_group),
     url(r'^group_list/$', jlist_group),
+    url(r'^group_detail/(\d)/$', group_detail),
     url(r'^group_del/(\d+)/$', group_del),
-    url(r'^host_del/(\d+)/$', host_del),
+    url(r'^host_del/(\w+)/$', host_del),
     url(r'^host_edit/(\d+)$', host_edit),
     url(r'^host_edit/batch/$', batch_host_edit),
     url(r'^test/$', test),
diff --git a/jasset/views.py b/jasset/views.py
index f50f1e58369eb67d76c1a00352b8bb9a9d6caefa..81a0c7dd3d8d59505b6b9188dfc45118eed82668 100644
--- a/jasset/views.py
+++ b/jasset/views.py
@@ -8,7 +8,6 @@ from models import IDC, Asset, BisGroup
 from juser.models import UserGroup
 from connect import PyCrypt, KEY
 from jumpserver.views import jasset_group_add, jasset_host_edit
-from jperm.models import Perm
 
 cryptor = PyCrypt(KEY)
 
@@ -35,27 +34,25 @@ def jadd_host(request):
         j_comment = request.POST.get('j_comment')
         j_idc = IDC.objects.get(name=j_idc)
 
+        all_group = BisGroup.objects.get(name='ALL')
         for group in j_group:
             c = BisGroup.objects.get(name=group)
             groups.append(c)
+        groups.append(all_group)
 
         if Asset.objects.filter(ip=str(j_ip)):
-            emg = u'该IP已存在!'
+            emg = u'该IP %s 已存在!' %j_ip
             return render_to_response('jasset/host_add.html', locals(), context_instance=RequestContext(request))
 
         if j_type == 'M':
             j_user = request.POST.get('j_user')
             j_password = cryptor.encrypt(request.POST.get('j_password'))
-            j_root = request.POST.get('j_root')
-            j_passwd = cryptor.encrypt(request.POST.get('j_passwd'))
             a = Asset(ip=j_ip, port=j_port,
                       login_type=j_type, idc=j_idc,
                       is_active=int(j_active),
                       comment=j_comment,
                       username_common=j_user,
-                      password_common=j_password,
-                      username_super=j_root,
-                      password_super=j_passwd,)
+                      password_common=j_password)
         else:
             a = Asset(ip=j_ip, port=j_port,
                       login_type=j_type, idc=j_idc,
@@ -66,13 +63,63 @@ def jadd_host(request):
         a.bis_group = groups
         a.save()
         smg = u'主机 %s 添加成功' %j_ip
+
     return render_to_response('jasset/host_add.html', locals(), context_instance=RequestContext(request))
 
+
+def jadd_host_multi(request):
+    header_title, path1, path2 = u'批量添加主机 | Add Hosts', u'资产管理', u'批量添加主机'
+    login_types = {'LDAP': 'L', 'SSH_KEY': 'S', 'PASSWORD': 'P', 'MAP': 'M'}
+    if request.method == 'POST':
+        multi_hosts = request.POST.get('j_multi').split('\n')
+        for host in multi_hosts:
+            if host == '':
+                break
+            groups = []
+            j_ip, j_port, j_type, j_idc, j_group, j_user_group, j_active, j_comment = host.split()
+            j_idc = IDC.objects.get(name=j_idc)
+            j_type = login_types[j_type]
+            all_group = BisGroup.objects.get(name='ALL')
+            j_group = j_group.split(',')
+            for group in j_group:
+                g = group.strip('[]')
+                print g
+                c = BisGroup.objects.get(name=g)
+                groups.append(c)
+            groups.append(all_group)
+
+            if Asset.objects.filter(ip=str(j_ip)):
+                emg = u'该IP %s 已存在!' %j_ip
+                return render_to_response('jasset/host_add_multi.html', locals(), context_instance=RequestContext(request))
+
+            if j_type == 'M':
+                j_user = request.POST.get('j_user')
+                j_password = cryptor.encrypt(request.POST.get('j_password'))
+                a = Asset(ip=j_ip, port=j_port,
+                          login_type=j_type, idc=j_idc,
+                          is_active=int(j_active),
+                          comment=j_comment,
+                          username_common=j_user,
+                          password_common=j_password)
+            else:
+                a = Asset(ip=j_ip, port=j_port,
+                          login_type=j_type, idc=j_idc,
+                          is_active=int(j_active),
+                          comment=j_comment)
+            jasset_group_add(j_ip, j_ip, 'P')
+            a.save()
+            a.bis_group = groups
+            a.save()
+        smg = u'批量添加添加成功'
+        return HttpResponseRedirect('/jasset/host_list/')
+    return render_to_response('jasset/host_add_multi.html', locals(), context_instance=RequestContext(request))
+
+
 def batch_host_edit(request):
     if request.method == 'POST':
         len_table = request.POST.get('len_table')
-        print len_table
         for i in range(int(len_table)):
+            j_id = "editable["+str(i)+"][j_id]"
             j_ip = "editable["+str(i)+"][j_ip]"
             j_port = "editable["+str(i)+"][j_port]"
             j_idc = "editable["+str(i)+"][j_idc]"
@@ -81,6 +128,7 @@ def batch_host_edit(request):
             j_active = "editable["+str(i)+"][j_active]"
             j_comment = "editable["+str(i)+"][j_comment]"
 
+            j_id = request.POST.get(j_id).strip()
             j_ip = request.POST.get(j_ip).strip()
             j_port = request.POST.get(j_port).strip()
             j_idc = request.POST.get(j_idc).strip()
@@ -90,7 +138,7 @@ def batch_host_edit(request):
             j_comment = request.POST.get(j_comment).strip()
             print j_ip
 
-            jasset_host_edit(j_ip, j_idc, j_port, j_type, j_group, j_active, j_comment)
+            jasset_host_edit(j_id, j_ip, j_idc, j_port, j_type, j_group, j_active, j_comment)
 
         return render_to_response('jasset/host_list.html')
 
@@ -100,7 +148,7 @@ def jlist_host(request):
     login_types = {'L': 'LDAP', 'S': 'SSH_KEY', 'P': 'PASSWORD', 'M': 'MAP'}
     posts = contact_list = Asset.objects.all().order_by('ip')
     print posts
-    p = paginator = Paginator(contact_list, 5)
+    p = paginator = Paginator(contact_list, 20)
     try:
         page = int(request.GET.get('page', '1'))
     except ValueError:
@@ -113,16 +161,23 @@ def jlist_host(request):
 
     return render_to_response('jasset/host_list.html', locals(), context_instance=RequestContext(request))
 
+
 def host_del(request, offset):
-    len_list = request.POST.get("len_list")
-    for i in range(int(len_list)):
-        key = "id_list["+str(i)+"]"
-        print key
-        jid = request.POST.get(key)
-        print jid
+    print offset
+    if offset == 'multi':
+        len_list = request.POST.get("len_list")
+        for i in range(int(len_list)):
+            key = "id_list["+str(i)+"]"
+            print key
+            jid = request.POST.get(key)
+            print jid
+            Asset.objects.filter(id=jid).delete()
+    else:
+        jid = int(offset)
         Asset.objects.filter(id=jid).delete()
     return HttpResponseRedirect('/jasset/host_list/')
 
+
 def host_edit(request, offset):
     actives = {1: u'激活', 0: u'禁用'}
     login_types = {'L': 'LDAP', 'S': 'SSH_KEY', 'P': 'PASSWORD', 'M': 'MAP'}
@@ -132,7 +187,7 @@ def host_edit(request, offset):
     egroup = BisGroup.objects.filter(type='A')
     for g in Asset.objects.get(id=int(offset)).bis_group.all():
         e_group.append(g)
-    post = Asset.objects.get(id = int(offset))
+    post = Asset.objects.get(id=int(offset))
     if request.method == 'POST':
         j_ip = request.POST.get('j_ip')
         j_idc = request.POST.get('j_idc')
@@ -142,27 +197,24 @@ def host_edit(request, offset):
         j_active = request.POST.get('j_active')
         j_comment = request.POST.get('j_comment')
         j_idc = IDC.objects.get(name=j_idc)
+        print j_group
         for group in j_group:
             c = BisGroup.objects.get(name=group)
             groups.append(c)
 
-        a = Asset.objects.get(ip=int(offset))
+        a = Asset.objects.get(id=int(offset))
 
         if j_type == 'M':
             j_user = request.POST.get('j_user')
             j_password = cryptor.encrypt(request.POST.get('j_password'))
-            j_root = request.POST.get('j_root')
-            j_passwd = cryptor.encrypt(request.POST.get('j_passwd'))
             a.ip = j_ip
             a.port = j_port
             a.login_type = j_type
             a.idc = j_idc
             a.is_active = j_active
             a.comment = j_comment
-            a.username_common = j_user
-            a.password_common = j_password
-            a.username_super = j_root
-            a.password_super = j_passwd
+            a.username = j_user
+            a.password = j_password
         else:
             a.ip = j_ip
             a.port = j_port
@@ -183,9 +235,10 @@ def host_edit(request, offset):
 def jlist_ip(request, offset):
     header_title, path1, path2 = u'主机详细信息 | Host Detail.', u'资产管理', u'主机详情'
     print offset
-    post = contact_list = Asset.objects.get(ip = str(offset))
+    post = contact_list = Asset.objects.get(ip=str(offset))
     return render_to_response('jasset/jlist_ip.html', locals(), context_instance=RequestContext(request))
 
+
 def jadd_idc(request):
     header_title, path1, path2 = u'添加IDC | Add IDC', u'资产管理', u'添加IDC'
     if request.method == 'POST':
@@ -204,14 +257,16 @@ def jadd_idc(request):
 
 
 def jlist_idc(request):
-    header_title, path1, path2 = u'查看IDC | List Host', u'资产管理', u'查看IDC'
+    header_title, path1, path2 = u'查看IDC | List IDC', u'资产管理', u'查看IDC'
     posts = IDC.objects.all().order_by('id')
     return render_to_response('jasset/idc_list.html', locals(), context_instance=RequestContext(request))
 
+
 def idc_del(request, offset):
     IDC.objects.filter(id=offset).delete()
     return HttpResponseRedirect('/jasset/idc_list/')
 
+
 def jadd_group(request):
     header_title, path1, path2 = u'添加主机组 | Add Group', u'资产管理', u'添加主机组'
     if request.method == 'POST':
@@ -229,13 +284,53 @@ def jadd_group(request):
 
 
 def jlist_group(request):
-    header_title, path1, path2 = u'查看业务组 | Add Group', u'资产管理', u'查看业务组'
+    header_title, path1, path2 = u'查看主机组 | List Group', u'资产管理', u'查看主机组'
     posts = BisGroup.objects.filter(type='A').order_by('id')
     return render_to_response('jasset/group_list.html', locals(), context_instance=RequestContext(request))
 
+
+def group_detail(request, offset):
+    header_title, path1, path2 = u'主机组详情 | Group Detail', u'资产管理', u'主机组详情'
+    login_types = {'L': 'LDAP', 'S': 'SSH_KEY', 'P': 'PASSWORD', 'M': 'MAP'}
+    group_name = BisGroup.objects.get(id=offset).name
+    b = BisGroup.objects.get(id=offset)
+    posts = contact_list = Asset.objects.filter(bis_group=b).order_by('ip')
+    p = paginator = Paginator(contact_list, 5)
+    try:
+        page = int(request.GET.get('page', '1'))
+    except ValueError:
+        page = 1
+
+    try:
+        contacts = paginator.page(page)
+    except (EmptyPage, InvalidPage):
+        contacts = paginator.page(paginator.num_pages)
+    return render_to_response('jasset/group_detail.html', locals(), context_instance=RequestContext(request))
+
+
+def idc_detail(request, offset):
+    header_title, path1, path2 = u'主机组详情 | Group Detail', u'资产管理', u'主机组详情'
+    login_types = {'L': 'LDAP', 'S': 'SSH_KEY', 'P': 'PASSWORD', 'M': 'MAP'}
+    idc_name = IDC.objects.get(id=offset).name
+    b = IDC.objects.get(id=offset)
+    posts = contact_list = Asset.objects.filter(idc=b).order_by('ip')
+    p = paginator = Paginator(contact_list, 5)
+    try:
+        page = int(request.GET.get('page', '1'))
+    except ValueError:
+        page = 1
+
+    try:
+        contacts = paginator.page(page)
+    except (EmptyPage, InvalidPage):
+        contacts = paginator.page(paginator.num_pages)
+    return render_to_response('jasset/idc_detail.html', locals(), context_instance=RequestContext(request))
+
+
 def group_del(request, offset):
     BisGroup.objects.filter(id=offset).delete()
     return HttpResponseRedirect('/jasset/group_list/')
 
+
 def test(request):
     return render_to_response('jasset/test.html', locals())
diff --git a/jlog/urls.py b/jlog/urls.py
index 75f4111fec643df8adae6552f97fe1c91f4dbb67..55a17bd7b71eb50096be032daa5df215585d78ab 100644
--- a/jlog/urls.py
+++ b/jlog/urls.py
@@ -4,6 +4,6 @@ from jlog.views import *
 
 urlpatterns = patterns('',
     url(r'^$', jlog_list),
-    url(r'^log_list/$', jlog_list),
+    url(r'^log_list/(\w+)/$', jlog_list),
     url(r'^log_kill/(\d+)', jlog_kill),
 )
diff --git a/jlog/views.py b/jlog/views.py
index 6ce5714b5634d7cc0f87c6ecb2d1b83dafefbdad..af4758224799e5cc347bc4b41edc76f088cd4355 100644
--- a/jlog/views.py
+++ b/jlog/views.py
@@ -13,12 +13,14 @@ from jlog.models import Log
 CONF = ConfigParser.ConfigParser()
 CONF.read('%s/jumpserver.conf' % BASE_DIR)
 
-def jlog_list(request):
+
+def jlog_list(request, offset='online'):
     header_title, path1, path2 = u'查看日志 | Log List.', u'查看日志', u'日志列表'
+    web_socket_host = CONF.get('websocket', 'web_socket_host')
     online = Log.objects.filter(is_finished=0)
     offline = Log.objects.filter(is_finished=1)
-    web_socket_host = CONF.get('websocket', 'web_socket_host')
-    return render_to_response('jlog/log_list.html',locals())
+
+    return render_to_response('jlog/log_list.html', locals())
 
 
 def jlog_kill(request, offset):
@@ -26,4 +28,4 @@ def jlog_kill(request, offset):
     if pid:
         os.kill(int(pid), 9)
         Log.objects.filter(pid=pid).update(is_finished=1, end_time=datetime.now())
-        return render_to_response('jlog/log_list.html', locals())
\ No newline at end of file
+        return HttpResponseRedirect('jlog/log_list.html', locals())
\ No newline at end of file
diff --git a/jumpserver/templatetags/mytags.py b/jumpserver/templatetags/mytags.py
index 43bfca702463d9ecc9f6c88175c4f860f772f774..20ba40fd4d8c86eff6a3629de538ded14f18b44b 100644
--- a/jumpserver/templatetags/mytags.py
+++ b/jumpserver/templatetags/mytags.py
@@ -5,6 +5,7 @@ from django import template
 from django.db.models import Q
 from juser.models import User, UserGroup
 from jperm.views import perm_user_asset
+from jasset.models import BisGroup
 
 register = template.Library()
 
@@ -85,6 +86,15 @@ def group_type_to_str(type_name):
     }
     return group_types.get(type_name)
 
+
 @register.filter(name='perm_asset_count')
 def perm_asset_count(user_id):
     return len(perm_user_asset(user_id))
+
+
+@register.filter(name='filter_private')
+def filter_private(group):
+    agroup = []
+    p = BisGroup.objects.get(name='ALL')
+    [agroup.append(g) for g in group if g != p]
+    return agroup
diff --git a/jumpserver/views.py b/jumpserver/views.py
index b19e7364405d5a3809aad23c7f89d2dd2cf38276..44e5d1f5d1e8bb70278b57d7f581bd5a7c5a09ac 100644
--- a/jumpserver/views.py
+++ b/jumpserver/views.py
@@ -30,17 +30,23 @@ def jasset_group_add(name, comment, type):
         BisGroup.objects.create(name=name, comment=comment, type=type)
         smg = u'业务组%s添加成功' %name
 
-def jasset_host_edit(j_ip, j_idc, j_port, j_type, j_group, j_active, j_comment):
+
+def jasset_host_edit(j_id, j_ip, j_idc, j_port, j_type, j_group, j_active, j_comment):
+    print 'ok'
     groups = []
     is_active = {u'是': '1', u'否': '2'}
     login_types = {'LDAP': 'L', 'SSH_KEY': 'S', 'PASSWORD': 'P', 'MAP': 'M'}
-    for group in j_group:
+    for group in j_group[0].split():
+        print group.strip()
         c = BisGroup.objects.get(name=group.strip())
         groups.append(c)
     j_type = login_types[j_type]
+    print j_type
     j_idc = IDC.objects.get(name=j_idc)
-    a = Asset.objects.get(ip=str(j_ip))
-
+    print j_idc
+    print
+    a = Asset.objects.get(id=j_id)
+    print '123'
     if j_type == 'M':
         a.ip = j_ip
         a.port = j_port
@@ -48,10 +54,8 @@ def jasset_host_edit(j_ip, j_idc, j_port, j_type, j_group, j_active, j_comment):
         a.idc = j_idc
         a.is_active = j_active
         a.comment = j_comment
-        a.username_common = j_user
-        a.password_common = j_password
-        a.username_super = j_root
-        a.password_super = j_passwd
+        a.username = j_user
+        a.password = j_password
     else:
         a.ip = j_ip
         a.port = j_port
@@ -59,7 +63,6 @@ def jasset_host_edit(j_ip, j_idc, j_port, j_type, j_group, j_active, j_comment):
         a.login_type = j_type
         a.is_active = is_active[j_active]
         a.comment = j_comment
-
     a.save()
     a.bis_group = groups
     a.save()
diff --git a/templates/head_script.html b/templates/head_script.html
index 4e4716ded475aaf5a502dd665819f28bb4f594b0..a2d50f12e37145dd1c4b3fc3ac5c736839091554 100644
--- a/templates/head_script.html
+++ b/templates/head_script.html
@@ -1,48 +1,54 @@
 <script src="/static/js/jquery-2.1.1.js"></script>
 <script src="/static/js/bootstrap.min.js"></script>
-
-<script>
-
-    function selectAll(){
-         var checklist = document.getElementsByName ("selected");
-            if(document.getElementById("select_all").checked)
-            {
-            for(var i=0;i<checklist.length;i++)
-            {
-              checklist[i].checked = 1;
-            }
-            }else{
-            for(var j=0;j<checklist.length;j++)
-            {
-             checklist[j].checked = 0;
-            }
-            }
-
-        }
-
-        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);
-        });
-    }
+<script src="/static/js/base.js"></script>
+<!--<script>-->
+    <!--$(document).ready(function(){-->
+        <!--$('.i-checks').iCheck({-->
+            <!--checkboxClass: 'icheckbox_square-green',-->
+            <!--radioClass: 'iradio_square-green'-->
+        <!--});-->
+    <!--});-->
+
+    <!--function selectAll(){-->
+         <!--var checklist = document.getElementsByName ("selected");-->
+            <!--if(document.getElementById("select_all").checked)-->
+            <!--{-->
+            <!--for(var i=0;i<checklist.length;i++)-->
+            <!--{-->
+              <!--checklist[i].checked = 1;-->
+            <!--}-->
+            <!--}else{-->
+            <!--for(var j=0;j<checklist.length;j++)-->
+            <!--{-->
+             <!--checklist[j].checked = 0;-->
+            <!--}-->
+            <!--}-->
+
+        <!--}-->
+
+        <!--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);-->
+        <!--});-->
+    <!--}-->
 
 
 </script>
 
-<!-- validator js -->
-<script src="/static/js/validator/jquery.validator.js"></script>
-<script src="/static/js/validator/zh_CN.js"></script>
+
 
 
 <!-- pop windows -->
 <script src="/static/js/jquery.colorbox.js"></script>
 
-
+<!-- validator js -->
+<script src="/static/js/validator/jquery.validator.js"></script>
+<script src="/static/js/validator/zh_CN.js"></script>
diff --git a/templates/jasset/group_detail.html b/templates/jasset/group_detail.html
new file mode 100644
index 0000000000000000000000000000000000000000..650404d06a2fb7dc98951de218b96353ee29e80c
--- /dev/null
+++ b/templates/jasset/group_detail.html
@@ -0,0 +1,151 @@
+{% extends 'base.html' %}
+{% load mytags %}
+{% block content %}
+{% include 'nav_cat_bar.html' %}
+
+<div class="wrapper wrapper-content animated fadeInRight">
+    <div class="row">
+        <div class="col-lg-12">
+            <div class="ibox float-e-margins" id="all">
+                <div class="ibox-title">
+                    <h5> 主机组<span class="text-info">{{ group_name }}</span>详细信息列表 </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>
+                        <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>
+
+                <div class="ibox-content">
+                    <div class="">
+                    <a target="_blank" href="/jasset/host_add" class="btn btn-sm btn-primary "> 添加 </a>
+                    </div>
+
+                    <form id="contents_form" name="contents_form">
+                    <table class="table table-striped table-bordered table-hover " id="editable" name="editable">
+                        <thead>
+                            <tr>
+                                <th class="text-center"><input id="checkall" type="checkbox" class="i-checks" name="checkall" value="checkall" data-editable='false' onclick="check_all('contents_form')"></th>
+                                <th class="text-center" name="j_ip"> IP地址 </th>
+                                <th class="text-center"> 端口号 </th>
+                                <th class="text-center" name="j_type"> 登录方式 </th>
+                                <th class="text-center" name="j_idc"> 所属IDC </th>
+                                <th class="text-center"> 所属业务组 </th>
+                                 <th class="text-center"> 是否激活 </th>
+                                <th class="text-center" name="j_time"> 添加时间 </th>
+                                <th class="text-center" name="j_comment"> 备注 </th>
+                                <th class="text-center"> 操作 </th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                        {% for post in contacts.object_list %}
+                            <tr class="gradeX">
+                                <td class="text-center" name="j_id" value="{{ post.id }}" data-editable='false'><input name="id" value="{{ post.id }}" type="checkbox" class="i-checks"></td>
+                                <td class="text-center" name="j_ip"> {{ post.ip }} </td>
+                                <td class="text-center" name="j_port"> {{ post.port }} </td>
+                                <td class="text-center" name="j_type"> {{ login_types|get_item:post.login_type }} </td>
+                                <td class="text-center" name="j_idc"> {{ post.idc.name }} </td>
+                                <td class="text-center" name="j_group">{% for group in post.bis_group.all %} {{ group }} {% endfor %}</td>
+                                <td class="text-center" name="j_active"> {{ post.is_active|bool2str }} </td>
+                                <td class="text-center"> {{ post.date_added|date:"Y-m-d H:i:s" }} </td>
+                                <td class="text-center" name="j_comment"> {{ post.comment }} </td>
+                                <td class="text-center" data-editable='false'>
+                                    <a href="/jasset/{{ post.ip }}/" class="iframe btn btn-xs btn-primary">详情</a>
+                                    <a href="/jasset/host_edit/{{ post.id }}" class="btn btn-xs btn-info">编辑</a>
+                                    <a href="/jasset/host_del/{{ post.id }}" class="btn btn-xs btn-danger">删除</a>
+                                </td>
+                            </tr>
+                        {% endfor %}
+                        </tbody>
+                    </table>
+                    <div class="row">
+                        <div class="col-sm-6">
+                            <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')" />
+                        </div>
+                        <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 contacts.has_previous %}
+                                        <li><a href="?page={{ contacts.previous_page_number }}">&laquo;</a></li>
+                                    {% endif %}
+
+                                    {% for page in p.page_range %}
+                                        {% ifequal offset1 page %}
+                                            <li class="active"><a href="?page={{ page }}"  title="第{{ page }}页">{{ page }}</a></li>
+                                        {% else %}
+                                          <li><a href="?page={{ page }}"  title="第{{ page }}页">{{ page }}</a></li>
+                                        {% endifequal %}
+                                    {% endfor %}
+                                    {% if contacts.has_next %}
+                                        <li><a href="?page={{ contacts.next_page_number }}">&raquo;</a></li>
+                                    {% endif %}
+                                </ul>
+                            </div>
+                        </div>
+                    </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script>
+    $(document).ready(function(){
+        $(".iframe").colorbox({iframe:true, width:"70%", height:"70%"});
+        $('#editable').editableTableWidget();
+    });
+
+    function alter(form) {
+        selectData = GetTableDataBox();
+        if (selectData[1] != 0) {
+            $.ajax({
+                type: "post",
+                url: "/jasset/host_edit/batch/",
+                data: {"editable": selectData[0], "len_table": selectData[1]},
+                success: function (data) {
+                    alert("修改成功");
+                    window.open("/jasset/host_list/", "_self");
+                }
+            });
+        }
+    }
+
+    function del(form) {
+        var checkboxes = document.getElementById(form);
+        var id_list = {};
+        var j = 0;
+        for (var i = 0; i < checkboxes.elements.length; i++) {
+            if (checkboxes.elements[i].type == "checkbox" && checkboxes.elements[i].checked == true && checkboxes.elements[i].value != "checkall") {
+                id_list[j] = checkboxes.elements[i].value;
+                j++;
+            }
+        }
+        if (confirm("确定删除")) {
+            $.ajax({
+                type: "POST",
+                url: "/jasset/host_del/",
+                data: {"id_list": id_list, "len_list": j},
+                success: function (data) {
+                    window.open("/jasset/host_list/", "_self");
+                }
+            });
+        }
+    }
+</script>
+
+{% endblock %}
\ No newline at end of file
diff --git a/templates/jasset/group_list.html b/templates/jasset/group_list.html
index bd57a5abfa56e8a7b135eae91181b14218f1162f..69ceff7e3fb46c80b9503941f9623b4cea430127 100644
--- a/templates/jasset/group_list.html
+++ b/templates/jasset/group_list.html
@@ -22,6 +22,7 @@
                             <tr>
                                 <th class="text-center"> ID </th>
                                 <th class="text-center"> 主机组名 </th>
+                                <th class="text-center"> 主机数量 </th>
                                 <th class="text-center"> 备注 </th>
                                 <th class="text-center"> 操作 </th>
                             </tr>
@@ -31,10 +32,10 @@
                             <tr class="gradeX">
                                 <td class="text-center"> {{ post.id }} </td>
                                 <td class="text-center"> {{ post.name }} </td>
+                                <td class="text-center"> <a href="/jasset/group_detail/{{ post.id }}">{{ post.asset_set.count }}</a> </td>
                                 <td class="text-center"> {{ post.comment }} </td>
                                 <td class="text-center">
-                                    <a href="/jasset/{{ post.ip }}/" class="iframe btn btn-xs btn-primary">详情</a>
-                                    <a href="/jasset/host_edit/{{ post.ip }}" class="btn btn-xs btn-info">编辑</a>
+                                    <a href="/jasset/group_detail/{{ post.id }}" class="btn btn-xs btn-info">详情</a>
                                     <a href="/jasset/group_del/{{ post.id }}" class="btn btn-xs btn-danger">删除</a>
                                 </td>
                             </tr>
diff --git a/templates/jasset/host_add.html b/templates/jasset/host_add.html
index 4483ac57cd1cc54606bdd818c0c7640f88914616..ab28db1e353155628f1c137281930871e6544cf2 100644
--- a/templates/jasset/host_add.html
+++ b/templates/jasset/host_add.html
@@ -4,13 +4,7 @@
 <div class="wrapper wrapper-content animated fadeInRight">
     <div class="row">
         <div class="col-lg-10">
-            <div class="text-center">
-                <span>请选择添加内容: </span>
-                <a href="#" class="btn btn-xs btn-primary" onclick='change("addhost")'>添加主机</a>
-                <a href="#" class="btn btn-xs btn-primary" onclick='change("addidc")'>添加IDC</a>
-                <a href="#" class="btn btn-xs btn-primary" onclick='change("addgroup")'>添加业务组</a>
-            </div>
-            <div id="add_asset" class="ibox float-e-margins">
+            <div class="ibox float-e-margins">
                 <div id="ibox-content" class="ibox-title">
                     <h5> 填写主机基本信息 </h5>
                     <div class="ibox-tools">
@@ -33,107 +27,112 @@
                 </div>
 
                 <div class="ibox-content">
-                    {% if emg %}
-                        <div class="alert alert-warning text-center">{{ emg }}</div>
-                    {% endif %}
-                    {% if smg %}
-                        <div class="alert alert-success text-center">{{ smg }}</div>
-                    {% endif %}
-                    <form id="assetForm" method="post" class="form-horizontal">
-                        <div class="form-group"><label class="col-sm-2 control-label"> IP地址 </label>
-                            <div class="col-sm-8"><input type="text" name="j_ip" placeholder="192.168.1.1" class="form-control"></div>
-                        </div>
-
-                        <div class="hr-line-dashed"></div>
-                        <div class="form-group"><label class="col-sm-2 control-label"> 端口号 </label>
-                            <div class="col-sm-8"><input type="text" placeholder="22" name="j_port" class="form-control"></div>
+                    <div class="panel blank-panel">
+                        <div class="panel-options">
+                            <ul class="nav nav-tabs">
+                                <li class="active"><a href="/jasset/host_add/" class="text-center"><i class="fa fa-laptop"></i> 单台添加 </a></li>
+                                <li><a href="/jasset/host_add_multi" class="text-center"><i class="fa fa-bar-chart-o"></i> 批量添加 </a></li>
+                            </ul>
                         </div>
-
-                        <div class="hr-line-dashed"></div>
-                        <div class="form-group"><label class="col-sm-2 control-label"> 登录方式 </label>
-                            <div class="col-sm-8">
-                                <div class="radio i-checks"><label> <input type="radio" id="L" checked="" value="L" name="j_type" onclick="show(this)"> <i> LDAP </i></label></div>
-                                <div class="radio i-checks"><label> <input type="radio" id="S" value="S" name="j_type" onclick="show(this)"> <i> SSH_KEY </i></label></div>
-                                <div class="radio i-checks"><label> <input type="radio" id="P" value="P" name="j_type" onclick="show(this)"> <i> PASSWORD </i></label></div>
-                                <div class="radio i-checks"><label> <input type="radio" id="M" value="M" name="j_type" onclick="show(this)"> <i> MAP </i></label></div>
-                            </div>
-
-                            <div name="a1" id=a1 style="display:none;">
-                                <div class="form-group"><label class="col-sm-2 col-sm-offset-1 control-label"> 普通用户名 </label>
-                                    <div class="col-sm-6"><input type="text" name="j_user" placeholder="lilei" class="form-control"></div>
-                                </div>
-
-                                <div class="hr-line-dashed"></div>
-                                <div class="form-group"><label class="col-sm-2 col-sm-offset-1 control-label"> 普通用户密码 </label>
-                                    <div class="col-sm-6"><input type="password" name="j_password" placeholder="Password" class="form-control"></div>
+                        <div class="panel-body">
+                            <div class="tab-content">
+                                <div id="tab-1" class="ibox float-e-margins tab-pane active">
+                                    {% if emg %}
+                                        <div class="alert alert-warning text-center">{{ emg }}</div>
+                                    {% endif %}
+                                    {% if smg %}
+                                        <div class="alert alert-success text-center">{{ smg }}</div>
+                                    {% endif %}
+                                    <form id="assetForm" method="post" class="form-horizontal">
+                                        <div class="form-group"><label class="col-sm-2 control-label"> IP地址<span class="red-fonts">*</span> </label>
+                                            <div class="col-sm-8"><input type="text" name="j_ip" placeholder="192.168.1.1" class="form-control"></div>
+                                        </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="col-sm-8"><input type="text" placeholder="22" name="j_port" class="form-control"></div>
+                                        </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="col-sm-8">
+                                                <div class="radio i-checks"><label> <input type="radio" id="L" checked="" value="L" name="j_type" onclick="show(this)"> <i> LDAP </i></label></div>
+                                                <div class="radio i-checks"><label> <input type="radio" id="S" value="S" name="j_type" onclick="show(this)"> <i> SSH_KEY </i></label></div>
+                                                <div class="radio i-checks"><label> <input type="radio" id="P" value="P" name="j_type" onclick="show(this)"> <i> PASSWORD </i></label></div>
+                                                <div class="radio i-checks"><label> <input type="radio" id="M" value="M" name="j_type" onclick="show(this)"> <i> MAP </i></label></div>
+                                            </div>
+
+                                            <div name="a1" id=a1 style="display:none;">
+                                                <div class="form-group"><label class="col-sm-2 col-sm-offset-1 control-label"> 普通用户名 </label>
+                                                    <div class="col-sm-6"><input type="text" name="j_user" placeholder="lilei" class="form-control"></div>
+                                                </div>
+
+                                                <div class="form-group"><label class="col-sm-2 col-sm-offset-1 control-label"> 普通用户密码 </label>
+                                                    <div class="col-sm-6"><input type="password" name="j_password" placeholder="Password" class="form-control"></div>
+                                                </div>
+
+                                            </div>
+                                        </div>
+
+                                        <div class="hr-line-dashed"></div>
+                                        <div class="form-group">
+                                            <label for="j_idc"  class="col-lg-2 control-label"> 所属IDC<span class="red-fonts">*</span> </label>
+                                            <div class="col-sm-8">
+                                                <select id="j_idc" name="j_idc" class="form-control m-b">
+                                                    {% for i in eidc %}
+                                                        <option> {{ i }} </option>
+                                                    {% endfor %}
+                                                </select>
+                                            </div>
+                                        </div>
+
+                                        <div class="hr-line-dashed"></div>
+                                        <div class="form-group">
+                                            <label for="j_group" class="col-lg-2 control-label">所属主机组<span class="red-fonts">*</span></label>
+                                            <div class="col-sm-8">
+                                                <select id="j_group" name="j_group" class="form-control m-b" multiple size="10">
+                                                    {% for g in egroup %}
+                                                        <option type="checkbox" value="{{ g.name }}">{{ g.name }} --- {{ g.comment }}</option>
+                                                    {% endfor %}
+                                                </select>
+                                            </div>
+                                        </div>
+
+                                        <div class="hr-line-dashed"></div>
+                                        <div class="form-group">
+                                            <label for="j_group" class="col-sm-2 control-label"> 所属用户组<span class="red-fonts">*</span> </label>
+                                            <div class="col-sm-8">
+                                                {% for g in eusergroup %}
+                                                    <label class="checkbox-inline"><input type="checkbox" id="j_usergroup" value="{{ g }}" name="j_usergroup"> {{ g }} </label>
+                                                {% endfor %}
+                                            </div>
+                                        </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="col-sm-8">
+                                                <div class="radio i-checks"><label> <input type="radio" checked="" value="1" name="j_active"> <i> 激活 </i></label></div>
+                                                <div class="radio i-checks"><label> <input type="radio"  value="0" name="j_active"> <i> 禁用 </i></label></div>
+                                            </div>
+                                        </div>
+
+                                        <div class="hr-line-dashed"></div>
+                                        <div class="form-group"><label class="col-sm-2 control-label"> 备注 </label>
+                                            <div class="col-sm-8"><input type="text" placeholder="hadoop01" name="j_comment" class="form-control"></div>
+                                        </div>
+
+                                        <div class="hr-line-dashed"></div>
+                                        <div class="form-group">
+                                            <div class="col-sm-4 col-sm-offset-5">
+                                                <button class="btn btn-white" type="submit"> 重置 </button>
+                                                <button class="btn btn-primary" type="submit"> 提交 </button>
+                                            </div>
+                                        </div>
+                                    </form>
                                 </div>
-
-                                <div class="hr-line-dashed"></div>
-                                <div class="form-group"><label class="col-sm-2 col-sm-offset-1 control-label"> 超管用户名 </label>
-                                    <div class="col-sm-6"><input type="text" name="j_root" placeholder="root" class="form-control"></div>
-                                </div>
-
-                                <div class="hr-line-dashed"></div>
-                                <div class="form-group"><label class="col-sm-2 col-sm-offset-1 control-label"> 超管用户密码 </label>
-                                    <div class="col-sm-6"><input type="password" name="j_passwd" placeholder="Password" class="form-control"></div>
-                                </div>
-
-                            </div>
-                        </div>
-
-                        <div class="hr-line-dashed"></div>
-                        <div class="form-group">
-                            <label for="j_idc"  class="col-lg-2 control-label"> 所属IDC </label>
-                            <div class="col-sm-8">
-                                <select id="j_idc" name="j_idc" class="form-control m-b">
-                                    {% for i in eidc %}
-                                        <option> {{ i }} </option>
-                                    {% endfor %}
-                                </select>
-                            </div>
-                        </div>
-
-                        <div class="hr-line-dashed"></div>
-                        <div class="form-group">
-                            <label for="j_group" class="col-sm-2 control-label"> 所属业务组 </label>
-                            <div class="col-sm-8">
-                                {% for g in egroup %}
-                                    <label class="checkbox-inline"><input type="checkbox" id="j_group" value="{{ g }}" name="j_group"> {{ g }} </label>
-                                {% endfor %}
-                            </div>
-                        </div>
-
-                        <div class="hr-line-dashed"></div>
-                        <div class="form-group">
-                            <label for="j_group" class="col-sm-2 control-label"> 所属用户组 </label>
-                            <div class="col-sm-8">
-                                {% for g in eusergroup %}
-                                    <label class="checkbox-inline"><input type="checkbox" id="j_usergroup" value="{{ g }}" name="j_usergroup"> {{ g }} </label>
-                                {% endfor %}
                             </div>
                         </div>
-
-                        <div class="hr-line-dashed"></div>
-                        <div class="form-group"><label class="col-sm-2 control-label"> 是否激活 </label>
-                            <div class="col-sm-8">
-                                <div class="radio i-checks"><label> <input type="radio" checked="" value="1" name="j_active"> <i> 激活 </i></label></div>
-                                <div class="radio i-checks"><label> <input type="radio"  value="0" name="j_active"> <i> 禁用 </i></label></div>
-                            </div>
-                        </div>
-
-                        <div class="hr-line-dashed"></div>
-                        <div class="form-group"><label class="col-sm-2 control-label"> 备注 </label>
-                            <div class="col-sm-8"><input type="text" placeholder="hadoop01" name="j_comment" class="form-control"></div>
-                        </div>
-
-                        <div class="hr-line-dashed"></div>
-                        <div class="form-group">
-                            <div class="col-sm-4 col-sm-offset-5">
-                                <!--<button class="btn btn-white" type="submit"> 重置 </button>-->
-                                <button class="btn btn-primary" type="submit"> 提交 </button>
-                            </div>
-                        </div>
-                    </form>
+                    </div>
                 </div>
             </div>
         </div>
@@ -151,17 +150,6 @@
         document.getElementById("a1").style.display="none";
     }};
 
-    function change(type){
-        if (type == 'addhost') {
-            var data = $('#add_asset');
-        } else if (type == 'addidc') {
-            var data = $('#addidc');
-        } else {
-            var data = $('addgroup');
-        }
-        $("#add_asset").html(data);
-    }
-
 $('#assetForm').validator({
     timely: 2,
     theme: "yellow_right_effect",
diff --git a/templates/jasset/host_add_multi.html b/templates/jasset/host_add_multi.html
new file mode 100644
index 0000000000000000000000000000000000000000..df88841087ee981062fb55f5bdda77fbecf2f289
--- /dev/null
+++ b/templates/jasset/host_add_multi.html
@@ -0,0 +1,67 @@
+{% extends 'base.html' %}
+{% block content %}
+{% include 'nav_cat_bar.html' %}
+<div class="wrapper wrapper-content animated fadeInRight">
+    <div class="row">
+        <div class="col-lg-10">
+            <div class="ibox float-e-margins">
+                <div id="ibox-content" class="ibox-title">
+                    <h5> 填写主机基本信息 </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>
+                        <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>
+
+                <div class="ibox-content">
+                    <div class="panel blank-panel">
+                        <div class="panel-options">
+                            <ul class="nav nav-tabs">
+                                <li><a href="/jasset/host_add/" class="text-center"><i class="fa fa-laptop"></i> 单台添加 </a></li>
+                                <li class="active"><a href="/jasset/host_add_multi/" class="text-center"><i class="fa fa-bar-chart-o"></i> 批量添加 </a></li>
+                            </ul>
+                        </div>
+                        <div class="panel-body">
+                            <div id="tab-2" class="ibox float-e-margins tab-pane active">
+                                {% if emg %}
+                                    <div class="alert alert-warning text-center">{{ emg }}</div>
+                                {% endif %}
+                                {% if smg %}
+                                    <div class="alert alert-success text-center">{{ smg }}</div>
+                                {% endif %}
+                                <h4>按照文本框内主机信息格式填写, 多台主机回车换行</h4>
+                                    <form id="assetMulti" method="post" class="form-horizontal">
+                                        <div><textarea id="j_multi" name="j_multi" type="text" placeholder="192.168.1.1 22 LDAP 北京联通 [网站,数据库] admin 1 网站服务器" class="form-control" style="width:700px;height:500px"></textarea></div>
+                                        <div class="hr-line-dashed"></div>
+                                        <div class="form-group">
+                                            <div class="col-sm-4 col-sm-offset-4">
+                                                <button class="btn btn-white" type="submit"> 重置 </button>
+                                                <button class="btn btn-primary" type="submit"> 提交 </button>
+                                            </div>
+                                        </div>
+                                    </form>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/templates/jasset/host_edit.html b/templates/jasset/host_edit.html
index f197efa53d8031a1a6c84d504534fdcae27ef40a..00e8483f582122adaec6344f9a027fdc7a6aff2b 100644
--- a/templates/jasset/host_edit.html
+++ b/templates/jasset/host_edit.html
@@ -35,17 +35,17 @@
                         <div class="alert alert-success text-center">{{ smg }}</div>
                     {% endif %}
                     <form id="assetForm" method="post" class="form-horizontal" autocomplete="off">
-                        <div class="form-group"><label class="col-sm-2 control-label"> IP地址 </label>
+                        <div class="form-group"><label class="col-sm-2 control-label"> IP地址<span class="red-fonts">*</span> </label>
                             <div class="col-sm-8"><input type="text" name="j_ip" value="{{ post.ip }}" placeholder="192.168.1.1" class="form-control"></div>
                         </div>
 
                         <div class="hr-line-dashed"></div>
-                        <div class="form-group"><label class="col-sm-2 control-label"> 端口号 </label>
+                        <div class="form-group"><label class="col-sm-2 control-label"> 端口号<span class="red-fonts">*</span> </label>
                             <div class="col-sm-8"><input type="text" placeholder="22" name="j_port" value="{{ post.port }}" class="form-control"></div>
                         </div>
 
                         <div class="hr-line-dashed"></div>
-                        <div class="form-group"><label class="col-sm-2 control-label"> 登录方式 </label>
+                        <div class="form-group"><label class="col-sm-2 control-label"> 登录方式<span class="red-fonts">*</span> </label>
                             <div class="col-sm-8">
                                 {% for t, type in login_types.items %}
                                     {% ifequal t post.login_type %}
@@ -61,27 +61,15 @@
                                     <div class="col-sm-6"><input type="text" name="j_user" placeholder="lilei" class="form-control"></div>
                                 </div>
 
-                                <div class="hr-line-dashed"></div>
                                 <div class="form-group"><label class="col-sm-2 col-sm-offset-1 control-label"> 普通用户密码 </label>
                                     <div class="col-sm-6"><input type="password" name="j_password" placeholder="Password" class="form-control"></div>
                                 </div>
-
-                                <div class="hr-line-dashed"></div>
-                                <div class="form-group"><label class="col-sm-2 col-sm-offset-1 control-label"> 超管用户名 </label>
-                                    <div class="col-sm-6"><input type="text" name="j_root" placeholder="root" class="form-control"></div>
-                                </div>
-
-                                <div class="hr-line-dashed"></div>
-                                <div class="form-group"><label class="col-sm-2 col-sm-offset-1 control-label"> 超管用户密码 </label>
-                                    <div class="col-sm-6"><input type="password" name="j_passwd" placeholder="Password" class="form-control"></div>
-                                </div>
-
                             </div>
                         </div>
 
                         <div class="hr-line-dashed"></div>
                         <div class="form-group">
-                            <label for="j_idc"  class="col-lg-2 control-label"> 所属IDC </label>
+                            <label for="j_idc"  class="col-lg-2 control-label"> 所属IDC<span class="red-fonts">*</span> </label>
                             <div class="col-sm-8">
                                 <select id="j_idc" name="j_idc" class="form-control m-b">
                                     {% for i in eidc %}
@@ -97,20 +85,22 @@
 
                         <div class="hr-line-dashed"></div>
                         <div class="form-group">
-                            <label for="j_group" class="col-sm-2 control-label"> 所属业务组 </label>
+                            <label for="j_group" class="col-lg-2 control-label"> 所属主机组<span class="red-fonts">*</span> </label>
                             <div class="col-sm-8">
-                                {% for g in egroup %}
-                                    {% if g in e_group %}
-                                        <label class="checkbox-inline"><input type="checkbox" id="j_group" checked value="{{ g }}" name="j_group"> {{ g }} </label>
-                                    {% else %}
-                                        <label class="checkbox-inline"><input type="checkbox" id="j_group" value="{{ g }}" name="j_group"> {{ g }} </label>
-                                    {% endif %}
-                                {% endfor %}
+                                <select id="j_group" name="j_group" class="form-control m-b" multiple size="10">
+                                    {% for g in egroup %}
+                                        {% if g in e_group %}
+                                            <option type="checkbox" value="{{ g.name }}" selected>{{ g.name }} --- {{ g.comment }}</option>
+                                        {% else %}
+                                            <option type="checkbox" value="{{ g.name }}" >{{ g.name }} --- {{ g.comment }}</option>
+                                        {% endif %}
+                                    {% endfor %}
+                                </select>
                             </div>
                         </div>
 
                         <div class="hr-line-dashed"></div>
-                        <div class="form-group"><label class="col-sm-2 control-label"> 是否激活 </label>
+                        <div class="form-group"><label class="col-sm-2 control-label"> 是否激活<span class="red-fonts">*</span> </label>
                             <div class="col-sm-8">
                                 {% for a,active in actives.items %}
                                     {% ifequal a post.is_active %}
diff --git a/templates/jasset/host_list.html b/templates/jasset/host_list.html
index 5d485a6232aed5a404b61568ab6fb80e55114360..4b333fdfb8591055e76b072bfb1924a0ab8797d5 100644
--- a/templates/jasset/host_list.html
+++ b/templates/jasset/host_list.html
@@ -52,12 +52,12 @@
                         <tbody>
                         {% for post in contacts.object_list %}
                             <tr class="gradeX">
-                                <td class="text-center" data-editable='false'><input name="id" value="{{ post.id }}" type="checkbox" class="i-checks"></td>
+                                <td class="text-center" name="j_id" value="{{ post.id }}" data-editable='false'><input name="id" value="{{ post.id }}" type="checkbox" class="i-checks"></td>
                                 <td class="text-center" name="j_ip"> {{ post.ip }} </td>
                                 <td class="text-center" name="j_port"> {{ post.port }} </td>
                                 <td class="text-center" name="j_type"> {{ login_types|get_item:post.login_type }} </td>
                                 <td class="text-center" name="j_idc"> {{ post.idc.name }} </td>
-                                <td class="text-center" name="j_group">{% for group in post.bis_group.all %} {{ group }} {% endfor %}</td>
+                                <td class="text-center" name="j_group">{% for group in post.bis_group.all|filter_private %} {{ group }} {% endfor %}</td>
                                 <td class="text-center" name="j_active"> {{ post.is_active|bool2str }} </td>
                                 <td class="text-center"> {{ post.date_added|date:"Y-m-d H:i:s" }} </td>
                                 <td class="text-center" name="j_comment"> {{ post.comment }} </td>
@@ -112,40 +112,40 @@
 
     function alter(form) {
         selectData = GetTableDataBox();
-        if (selectData[1] != 0){
+        if (selectData[1] != 0) {
             $.ajax({
                 type: "post",
                 url: "/jasset/host_edit/batch/",
-                data : {"editable":selectData[0],"len_table":selectData[1]},
-                success: function(data){
+                data: {"editable": selectData[0], "len_table": selectData[1]},
+                success: function (data) {
                     alert("修改成功");
-                    window.open("/jasset/host_list/","_self");
+                    window.open("/jasset/host_list/", "_self");
                 }
             });
         }
+    }
 
-    function del(form) {
-        var checkboxes = document.getElementById(form);
-        var id_list = {};
-        var j = 0;
-        for (var i = 0; i < checkboxes.elements.length; i++) {
-            if (checkboxes.elements[i].type == "checkbox" && checkboxes.elements[i].checked == true && checkboxes.elements[i].value != "checkall") {
-                id_list[j] = checkboxes.elements[i].value;
-                j++;
-            }
-        }
-        if (confirm("确定删除")) {
-            $.ajax({
-                type: "POST",
-                url: "/jasset/host_del/",
-                data: {"id_list": id_list, "len_list": j},
-                success: function (data) {
-                    window.open("/jasset/host_list/", "_self");
+        function del(form) {
+            var checkboxes = document.getElementById(form);
+            var id_list = {};
+            var j = 0;
+            for (var i = 0; i < checkboxes.elements.length; i++) {
+                if (checkboxes.elements[i].type == "checkbox" && checkboxes.elements[i].checked == true && checkboxes.elements[i].value != "checkall") {
+                    id_list[j] = checkboxes.elements[i].value;
+                    j++;
                 }
-            });
+            }
+            if (confirm("确定删除")) {
+                $.ajax({
+                    type: "POST",
+                    url: "/jasset/host_del/multi/",
+                    data: {"id_list": id_list, "len_list": j},
+                    success: function (data) {
+                        window.open("/jasset/host_list/", "_self");
+                    }
+                });
+            }
         }
-    }
-}
 </script>
 
 {% endblock %}
\ No newline at end of file
diff --git a/templates/jasset/idc_detail.html b/templates/jasset/idc_detail.html
new file mode 100644
index 0000000000000000000000000000000000000000..c76f40b54ce7953ddcb203e43f930cf6b55f6ad9
--- /dev/null
+++ b/templates/jasset/idc_detail.html
@@ -0,0 +1,150 @@
+{% extends 'base.html' %}
+{% load mytags %}
+{% block content %}
+{% include 'nav_cat_bar.html' %}
+
+<div class="wrapper wrapper-content animated fadeInRight">
+    <div class="row">
+        <div class="col-lg-12">
+            <div class="ibox float-e-margins" id="all">
+                <div class="ibox-title">
+                    <h5> IDC<span class="text-info"> {{ idc_name }} </span>详细信息列表 </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>
+                        <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>
+
+                <div class="ibox-content">
+                    <div class="">
+                    <a target="_blank" href="/jasset/host_add" class="btn btn-sm btn-primary "> 添加 </a>
+                    </div>
+
+                    <form id="contents_form" name="contents_form">
+                    <table class="table table-striped table-bordered table-hover " id="editable" name="editable">
+                        <thead>
+                            <tr>
+                                <th class="text-center"><input id="checkall" type="checkbox" class="i-checks" name="checkall" value="checkall" data-editable='false' onclick="check_all('contents_form')"></th>
+                                <th class="text-center" name="j_ip"> IP地址 </th>
+                                <th class="text-center"> 端口号 </th>
+                                <th class="text-center" name="j_type"> 登录方式 </th>
+                                <th class="text-center" name="j_idc"> 所属IDC </th>
+                                <th class="text-center"> 所属业务组 </th>
+                                 <th class="text-center"> 是否激活 </th>
+                                <th class="text-center" name="j_time"> 添加时间 </th>
+                                <th class="text-center" name="j_comment"> 备注 </th>
+                                <th class="text-center"> 操作 </th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                        {% for post in contacts.object_list %}
+                            <tr class="gradeX">
+                                <td class="text-center" name="j_id" value="{{ post.id }}" data-editable='false'><input name="id" value="{{ post.id }}" type="checkbox" class="i-checks"></td>
+                                <td class="text-center" name="j_ip"> {{ post.ip }} </td>
+                                <td class="text-center" name="j_port"> {{ post.port }} </td>
+                                <td class="text-center" name="j_type"> {{ login_types|get_item:post.login_type }} </td>
+                                <td class="text-center" name="j_idc"> {{ post.idc.name }} </td>
+                                <td class="text-center" name="j_group">{% for group in post.bis_group.all %} {{ group }} {% endfor %}</td>
+                                <td class="text-center" name="j_active"> {{ post.is_active|bool2str }} </td>
+                                <td class="text-center"> {{ post.date_added|date:"Y-m-d H:i:s" }} </td>
+                                <td class="text-center" name="j_comment"> {{ post.comment }} </td>
+                                <td class="text-center" data-editable='false'>
+                                    <a href="/jasset/{{ post.ip }}/" class="iframe btn btn-xs btn-primary">详情</a>
+                                    <a href="/jasset/host_del/{{ post.id }}" class="btn btn-xs btn-danger">删除</a>
+                                </td>
+                            </tr>
+                        {% endfor %}
+                        </tbody>
+                    </table>
+                    <div class="row">
+                        <div class="col-sm-6">
+                            <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')" />
+                        </div>
+                        <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 contacts.has_previous %}
+                                        <li><a href="?page={{ contacts.previous_page_number }}">&laquo;</a></li>
+                                    {% endif %}
+
+                                    {% for page in p.page_range %}
+                                        {% ifequal offset1 page %}
+                                            <li class="active"><a href="?page={{ page }}"  title="第{{ page }}页">{{ page }}</a></li>
+                                        {% else %}
+                                          <li><a href="?page={{ page }}"  title="第{{ page }}页">{{ page }}</a></li>
+                                        {% endifequal %}
+                                    {% endfor %}
+                                    {% if contacts.has_next %}
+                                        <li><a href="?page={{ contacts.next_page_number }}">&raquo;</a></li>
+                                    {% endif %}
+                                </ul>
+                            </div>
+                        </div>
+                    </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script>
+    $(document).ready(function(){
+        $(".iframe").colorbox({iframe:true, width:"70%", height:"70%"});
+        $('#editable').editableTableWidget();
+    });
+
+    function alter(form) {
+        selectData = GetTableDataBox();
+        if (selectData[1] != 0){
+            $.ajax({
+                type: "post",
+                url: "/jasset/host_edit/batch/",
+                data : {"editable":selectData[0],"len_table":selectData[1]},
+                success: function(data){
+                    alert("修改成功");
+                    window.open("/jasset/host_list/","_self");
+                }
+            });
+        }
+
+    function del(form) {
+        var checkboxes = document.getElementById(form);
+        var id_list = {};
+        var j = 0;
+        for (var i = 0; i < checkboxes.elements.length; i++) {
+            if (checkboxes.elements[i].type == "checkbox" && checkboxes.elements[i].checked == true && checkboxes.elements[i].value != "checkall") {
+                id_list[j] = checkboxes.elements[i].value;
+                j++;
+            }
+        }
+        if (confirm("确定删除")) {
+            $.ajax({
+                type: "POST",
+                url: "/jasset/host_del/",
+                data: {"id_list": id_list, "len_list": j},
+                success: function (data) {
+                    window.open("/jasset/host_list/", "_self");
+                }
+            });
+        }
+    }
+}
+</script>
+
+{% endblock %}
\ No newline at end of file
diff --git a/templates/jasset/idc_list.html b/templates/jasset/idc_list.html
index a8693ea2f35ce0bc414be20148effc25fe0acd93..81912f6ac6357b981db1f4bb5265762e3b40c185 100644
--- a/templates/jasset/idc_list.html
+++ b/templates/jasset/idc_list.html
@@ -22,6 +22,7 @@
                             <tr>
                                 <th class="text-center"> ID </th>
                                 <th class="text-center"> 机房名 </th>
+                                <th class="text-center"> 主机数量 </th>
                                 <th class="text-center"> 备注 </th>
                                 <th class="text-center"> 操作 </th>
                             </tr>
@@ -31,10 +32,10 @@
                             <tr class="gradeX">
                                 <td class="text-center"> {{ post.id }} </td>
                                 <td class="text-center"> {{ post.name }} </td>
+                                <td class="text-center"> <a href="/jasset/idc_detail/{{ post.id }}">{{ post.asset_set.count }}</a> </td>
                                 <td class="text-center"> {{ post.comment }} </td>
                                 <td class="text-center">
-                                    <a href="/jasset/{{ post.ip }}/" class="iframe btn btn-xs btn-primary">详情</a>
-                                    <a href="/jasset/host_edit/{{ post.ip }}" class="btn btn-xs btn-info">编辑</a>
+                                    <a href="/jasset/idc_detail/{{ post.id }}" class="iframe btn btn-xs btn-primary">详情</a>
                                     <a href="/jasset/idc_del/{{ post.id }}" class="btn btn-xs btn-danger">删除</a>
                                 </td>
                             </tr>
diff --git a/templates/jlog/log_list.html b/templates/jlog/log_list.html
index c015ee6bd1d5ef612e90e59599e48c6e9447cb67..cd9b98720d4b0260e6c35d60e5a4e2da28c98d1d 100644
--- a/templates/jlog/log_list.html
+++ b/templates/jlog/log_list.html
@@ -2,83 +2,115 @@
 {% block content %}
 {% include 'nav_cat_bar.html' %}
 <style>
+    .bootstrap-dialog-body  {
+        background-color: rgba(0, 0, 0, 0);
+    }
+    .bootstrap-dialog-message {
+        background-color: rgba(0, 0, 0, 0);
+    }
+    .modal-content {
+        background-color: rgba(0, 0, 0, 0.6);
+    }
     .modal-dialog {
+        background-color: rgba(0, 0, 0, 0);
         width: 800px;
     }
     .modal-body {
-        background-color: #000000;
+        background-color: rgba(0, 0, 0, 0);
+    }
+    .modal-header {
+        background-color: #FFFFFF;
     }
 </style>
 
 <div class="wrapper wrapper-content animated fadeInRight">
     <div class="row">
         <div class="col-lg-12">
-            <div class="panel-heading">
-                <div class="panel-title m-b-md"><h4> 用户日志详细信息列表 </h4></div>
-                <div class="panel-options">
-
-                    <ul class="nav nav-tabs">
-                        <li class="active"><a data-toggle="tab" href="#tab-1" class="text-center"><i class="fa fa-laptop"></i> 在线 </a></li>
-                        <li><a data-toggle="tab" href="#tab-2" class="text-center"><i class="fa fa-bar-chart-o"></i> 历史记录 </a></li>
-                    </ul>
+            <div class="ibox float-e-margins">
+                <div id="ibox-content" class="ibox-title">
+                    <h5> 用户日志详细信息列表 </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>
+                        <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>
-            </div>
-            <div class="panel-body">
-                <div class="tab-content">
-                    <div id="tab-1" class="ibox float-e-margins tab-pane active">
-                        <div class="ibox-content">
-                            <table class="table table-striped table-bordered table-hover ">
-                                <thead>
-                                    <tr>
-                                        <th class="text-center"> 用户名 </th>
-                                        <th class="text-center"> 登录主机 </th>
-                                        <th class="text-center"> 实时监控 </th>
-                                        <th class="text-center"> 阻断 </th>
-                                        <th class="text-center"> 登录时间 </th>
-                                        <th class="text-center"> 结束时间 </th>
 
-                                    </tr>
-                                </thead>
-                                <tbody>
-                                {% for post in online %}
-                                    <tr class="gradeX">
-                                        <td class="text-center"> {{ post.user.name }} </td>
-                                        <td class="text-center"> {{ post.asset.ip }} </td>
-                                        <td class="text-center"><a class="monitor" filename="{{ post.log_path }}"> 监控 </a></td>
-                                        <td class="text-center"><a href="/jlog/log_kill/{{ post.pid }}"> 阻断 </a></td>
-                                        <td class="text-center"> {{ post.start_time|date:"Y-m-d H:i:s" }} </td>
-                                        <td class="text-center"> {{ post.end_time|date:"Y-m-d H:i:s" }} </td>
-                                    </tr>
-                                {% endfor %}
-                                </tbody>
-                            </table>
+                <div class="ibox-content">
+                    <div class="panel blank-panel">
+                        <div class="panel-options">
+                            <ul class="nav nav-tabs">
+                                <li class="active"><a data-toggle="tab" href="#tab-1" class="text-center" onclick='log_fresh'><i class="fa fa-laptop"></i> 在线 </a></li>
+                                <li><a data-toggle="tab" href="#tab-2" class="text-center" onclick='log_fresh'><i class="fa fa-bar-chart-o"></i> 历史记录 </a></li>
+                            </ul>
                         </div>
-                    </div>
-                    <div id="tab-2" class="ibox float-e-margins tab-pane">
-                        <div class="ibox-content">
-                            <table class="table table-striped table-bordered table-hover ">
-                                <thead>
-                                    <tr>
-                                        <th class="text-center"> 用户名 </th>
-                                        <th class="text-center"> 登录主机 </th>
-                                        <th class="text-center"> 命令统计 </th>
-                                        <th class="text-center"> 登录时间 </th>
-                                        <th class="text-center"> 结束时间 </th>
+                        <div class="panel-body">
+                            <div class="tab-content">
+                                <div id="tab-1" class="ibox float-e-margins tab-pane active">
+                                    <table class="table table-striped table-bordered table-hover ">
+                                        <thead>
+                                            <tr>
+                                                <th class="text-center"> 用户名 </th>
+                                                <th class="text-center"> 登录主机 </th>
+                                                <th class="text-center"> 实时监控 </th>
+                                                <th class="text-center"> 阻断 </th>
+                                                <th class="text-center"> 登录时间 </th>
+                                                <th class="text-center"> 结束时间 </th>
+
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                        {% for post in online %}
+                                            <tr class="gradeX">
+                                                <td id="username" class="text-center"> {{ post.user.name }} </td>
+                                                <td id="ip" class="text-center"> {{ post.asset.ip }} </td>
+                                                <td class="text-center"><a class="monitor" filename="{{ post.log_path }}"> 监控 </a></td>
+                                                <td class="text-center"><input type="button" id="cut" class="btn btn-danger btn-xs"  name="cut" value="阻断" onclick='cut("{{ post.pid }}")' /></td>
+                                                <td class="text-center"> {{ post.start_time|date:"Y-m-d H:i:s" }} </td>
+                                                <td class="text-center"> {{ post.end_time|date:"Y-m-d H:i:s" }} </td>
+                                            </tr>
+                                        {% endfor %}
+                                        </tbody>
+                                    </table>
+                                </div>
+                                <div id="tab-2" class="ibox float-e-margins tab-pane">
+                                    <table class="table table-striped table-bordered table-hover ">
+                                        <thead>
+                                            <tr>
+                                                <th class="text-center"> 用户名 </th>
+                                                <th class="text-center"> 登录主机 </th>
+                                                <th class="text-center"> 命令统计 </th>
+                                                <th class="text-center"> 登录时间 </th>
+                                                <th class="text-center"> 结束时间 </th>
 
-                                    </tr>
-                                </thead>
-                                <tbody>
-                                {% for post in offline %}
-                                    <tr class="gradeX">
-                                        <td class="text-center"> {{ post.user.name }} </td>
-                                        <td class="text-center"> {{ post.asset.ip }} </td>
-                                        <td class="text-center"> 命令统计 </td>
-                                        <td class="text-center"> {{ post.start_time|date:"Y-m-d H:i:s"}} </td>
-                                        <td class="text-center"> {{ post.end_time|date:"Y-m-d H:i:s" }} </td>
-                                    </tr>
-                                {% endfor %}
-                                </tbody>
-                            </table>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                        {% for post in offline %}
+                                            <tr class="gradeX">
+                                                <td class="text-center"> {{ post.user.name }} </td>
+                                                <td class="text-center"> {{ post.asset.ip }} </td>
+                                                <td class="text-center"> 命令统计 </td>
+                                                <td class="text-center"> {{ post.start_time|date:"Y-m-d H:i:s"}} </td>
+                                                <td class="text-center"> {{ post.end_time|date:"Y-m-d H:i:s" }} </td>
+                                            </tr>
+                                        {% endfor %}
+                                        </tbody>
+                                    </table>
+                                </div>
+                            </div>
                         </div>
                     </div>
                 </div>
@@ -103,6 +135,8 @@
         var node = $(e.target);
         message.id = genUid();
         message.filename = node.attr('filename');
+        var username = $('#username')[0].innerText;
+        var ip = $('#ip')[0].innerText;
         BootstrapDialog.show({message:function(){
             var escapeString = function (html){
                 var elem = document.createElement('div')
@@ -110,7 +144,7 @@
                 elem.appendChild(txt)
                 return elem.innerHTML;
             }
-            var tag = $('<div id="log" style="height: 500px;overflow: auto;"></div>');
+            var tag = $('<div id="log" style="height: 500px;overflow: auto;background-color: rgba(0, 0, 0, 0);"></div>');
             //告诉服务器端有用户登录
             socket.emit('login', {userid:message.id, filename:message.filename});
             socket.on('message',function(obj){
@@ -123,7 +157,7 @@
             tag[0].style.color = "#00FF00";
             return tag[0];
         } ,
-            title:'Jumpserver实时监控:',
+            title:'Jumpserver实时监控 '+' 登录用户名: '+'<span class="text-info">'+username+'</span>'+' 登录主机: '+'<span class="text-info">'+ip,
             onhide:function(){
                 socket.emit('disconnect');
         }});
@@ -144,5 +178,25 @@
         SOCKET_HOST: "{{ web_socket_host }}"
    }
    $(".monitor").webSocket()
+
+//   function log_fresh(str){
+//   $.ajax({
+//          type: "GET",
+//          url: "/jlog/log_list/",
+//          data : $(".panel-body").serialize(),
+//          success: function(data){
+//              $("#tab-1").html(data);
+//          }
+//      });
+
+   function cut(num){
+      var g_url = "/jlog/log_kill/"+num;
+       console.log(g_url);
+       $.ajax({
+           type: "GET",
+           url: g_url,
+           success: window.open("/jlog/","_self")
+       });
+}
 </script>
 {% endblock %}
\ No newline at end of file
diff --git a/templates/nav.html b/templates/nav.html
index bf2440b3545648977059e36c9eaa4d4e95fc5a65..f4c069580a5f97e36d6475af91bf184b226ac8f7 100644
--- a/templates/nav.html
+++ b/templates/nav.html
@@ -39,7 +39,7 @@
             <li id="jlog">
                 <a href="#"><i class="fa fa-files-o"></i> <span class="nav-label">日志审计</span><span class="fa arrow"></span></a>
                 <ul class="nav nav-second-level">
-                    <li id="log_list"><a href="/jlog/log_list/">查看日志</a></li>
+                    <li id="log_list"><a href="/jlog/">查看日志</a></li>
                     <li id="log_detail"><a href="/jlog/log_detail/">日志分析</a></li>
                 </ul>
             </li>