pull/105/head
Apex Liu 2018-05-31 01:54:11 +08:00
parent 7ca38e8bb4
commit 76a81386e5
5 changed files with 43 additions and 4 deletions

View File

@ -2,10 +2,27 @@
$app.on_init = function (cb_stack) {
$app.dom = {
// assist_ver: $('#tp-assist-ver'),
btn_sel_group: $('#btn-sel-group button'),
group_list_for_sel: $('#btn-sel-group ul'),
btn_refresh_host: $('#btn-refresh-host')
// box_rdp_option: $('#rdp-options')
};
console.log($app.options);
var html = [];
$.each($app.options.host_groups, function (i, item) {
html.push('<li><a href="javascript:;" data-tp-selector="' + item.id + '" data-name="' + item.name + '"><i class="fa fa-caret-right fa-fw"></i> ' + item.name + '</a></li>');
});
$app.dom.group_list_for_sel.append($(html.join('')));
$app.dom.group_list_for_sel.find('a[data-tp-selector]').click(function () {
var obj = $(this);
//$app.set_selected_to_role(parseInt(obj.attr('data-tp-selector')), obj.attr('data-name'));
});
cb_stack
.add($app.create_controls)
.add($app.load_role_list);

View File

@ -19,7 +19,7 @@
<div class="page-content">
<div class="info-box">
<div class="info-icon-box">
<i id="icon" class="fa" style="color:#ff7545;"></i>
<i id="icon" class="fas" style="color:#ff7545;"></i>
</div>
<div class="info-message-box">
<div id="title" class="title"></div>

View File

@ -26,6 +26,16 @@
<!-- begin box -->
<div class="box">
<p>filter goes here...</p>
<div class="btn-group dropdown" id="btn-sel-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-edit fa-fw"></i> 所有分组 <i class="fa fa-caret-right"></i></button>
<ul class="dropdown-menu dropdown-menu-sm"></ul>
</div>
<hr/>
<div class="table-prefix-area">
<div class="table-extend-cell">
<span class="table-name"><i class="fa fa-list fa-fw"></i> 主机列表</span>

View File

@ -4,7 +4,6 @@ import json
import threading
import time
import tornado.gen
import tornado.httpclient
from app.base.logger import log
from app.base.configs import tp_cfg
@ -15,6 +14,7 @@ from app.const import *
from app.model import account
from app.model import host
from app.model import ops
from app.model import group
# 连接信息ID的基数每次使用时均递增
tmp_conn_id_base = int(time.time())
@ -34,9 +34,17 @@ class RemoteHandler(TPBaseHandler):
ret = self.check_privilege(TP_PRIVILEGE_OPS)
if ret != TPE_OK:
return
err, groups = group.get_host_groups_for_user(self.current_user['id'], self.current_user['privilege'])
param = {
'host_groups': groups,
'core_cfg': tp_cfg().core
}
# param = {
# 'core_cfg': tp_cfg().core
# }
self.render('ops/remote-list.mako', page_param=json.dumps(param))

View File

@ -386,9 +386,13 @@ def get_host_groups_for_user(user_id, user_privilege):
for db_item in db_ret:
hosts.append(str(db_item[0]))
if len(hosts) == 0:
return TPE_NOT_EXISTS, None
# step 2. get groups which include those hosts.
sql = 'SELECT `gid` FROM `{dbtp}group_map` WHERE (`type`={dbph} AND `mid` IN ({dbph})) GROUP BY `gid`;'.format(dbtp=db.table_prefix, dbph=db.place_holder, hosts=','.join(hosts))
db_ret = db.query(sql, (TP_GROUP_HOST, ','.join(hosts)))
sql = 'SELECT `gid` FROM `{dbtp}group_map` WHERE (`type`={gtype} AND `mid` IN ({hids})) GROUP BY `gid`;'.format(dbtp=db.table_prefix, gtype=TP_GROUP_HOST, hids=','.join(hosts))
db_ret = db.query(sql)
if db_ret is None or len(db_ret) == 0:
return TPE_NOT_EXISTS, None