mirror of https://github.com/jumpserver/jumpserver
[Update] 优化用户资产页面
parent
de3695bf97
commit
b7fcf80fc5
|
@ -62,7 +62,7 @@
|
||||||
|
|
||||||
{% block custom_foot_js %}
|
{% block custom_foot_js %}
|
||||||
<script>
|
<script>
|
||||||
var zTree, rMenu, asset_table;
|
var zTree, asset_table;
|
||||||
var inited = false;
|
var inited = false;
|
||||||
var url;
|
var url;
|
||||||
function initTable() {
|
function initTable() {
|
||||||
|
@ -71,14 +71,11 @@ function initTable() {
|
||||||
} else {
|
} else {
|
||||||
inited = true;
|
inited = true;
|
||||||
}
|
}
|
||||||
|
console.log("init table")
|
||||||
|
url = "{% url 'api-perms:my-assets' %}";
|
||||||
var options = {
|
var options = {
|
||||||
ele: $('#user_assets_table'),
|
ele: $('#user_assets_table'),
|
||||||
columnDefs: [
|
columnDefs: [
|
||||||
{#{targets: 1, createdCell: function (td, cellData, rowData) {#}
|
|
||||||
{# {% url 'assets:asset-detail' pk=DEFAULT_PK as the_url %}#}
|
|
||||||
{# var detail_btn = '<a href="{{ the_url }}">' + cellData + '</a>';#}
|
|
||||||
{# $(td).html(detail_btn.replace('{{ DEFAULT_PK }}', rowData.id));#}
|
|
||||||
{# }},#}
|
|
||||||
{targets: 1, createdCell: function (td, cellData, rowData) {
|
{targets: 1, createdCell: function (td, cellData, rowData) {
|
||||||
var detail_btn = '<a class="asset_detail" asset-id="rowData_id" data-toggle="modal" data-target="#user_asset_detail_modal" tabindex="0">'+ cellData +'</a>'
|
var detail_btn = '<a class="asset_detail" asset-id="rowData_id" data-toggle="modal" data-target="#user_asset_detail_modal" tabindex="0">'+ cellData +'</a>'
|
||||||
$(td).html(detail_btn.replace("rowData_id", rowData.id));
|
$(td).html(detail_btn.replace("rowData_id", rowData.id));
|
||||||
|
@ -110,33 +107,13 @@ function initTable() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function onSelected(event, treeNode) {
|
function onSelected(event, treeNode) {
|
||||||
console.log("select");
|
|
||||||
url = '{% url "api-perms:my-node-assets" node_id=DEFAULT_PK %}';
|
url = '{% url "api-perms:my-node-assets" node_id=DEFAULT_PK %}';
|
||||||
url = url.replace("{{ DEFAULT_PK }}", treeNode.id);
|
url = url.replace("{{ DEFAULT_PK }}", treeNode.node_id);
|
||||||
initTable();
|
|
||||||
setCookie('node_selected', treeNode.id);
|
setCookie('node_selected', treeNode.id);
|
||||||
asset_table.ajax.url(url);
|
asset_table.ajax.url(url);
|
||||||
asset_table.ajax.reload();
|
asset_table.ajax.reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectQueryNode() {
|
|
||||||
var query_node_id = $.getUrlParam("node");
|
|
||||||
var cookie_node_id = getCookie('node_selected');
|
|
||||||
var node;
|
|
||||||
var node_id;
|
|
||||||
|
|
||||||
if (query_node_id !== null) {
|
|
||||||
node_id = query_node_id
|
|
||||||
} else if (cookie_node_id !== null) {
|
|
||||||
node_id = cookie_node_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
node = zTree.getNodesByParam("id", node_id, null);
|
|
||||||
if (node){
|
|
||||||
zTree.selectNode(node[0]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function initTree() {
|
function initTree() {
|
||||||
var setting = {
|
var setting = {
|
||||||
view: {
|
view: {
|
||||||
|
@ -156,22 +133,25 @@ function initTree() {
|
||||||
var zNodes = [];
|
var zNodes = [];
|
||||||
$.get("{% url 'api-perms:my-nodes' %}", function(data, status){
|
$.get("{% url 'api-perms:my-nodes' %}", function(data, status){
|
||||||
$.each(data, function (index, value) {
|
$.each(data, function (index, value) {
|
||||||
value["pId"] = value["parent"];
|
value["node_id"] = value["id"];
|
||||||
if (value["key"] === "0") {
|
value["id"] = value["tree_id"];
|
||||||
value["open"] = true;
|
if (value["tree_id"] !== value["tree_parent"]) {
|
||||||
|
value["pId"] = value["tree_parent"];
|
||||||
}
|
}
|
||||||
value["name"] = value["value"]
|
value["isParent"] = value["is_node"];
|
||||||
|
value['name'] = value['value'];
|
||||||
});
|
});
|
||||||
zNodes = data;
|
zNodes = data;
|
||||||
$.fn.zTree.init($("#assetTree"), setting, zNodes);
|
$.fn.zTree.init($("#assetTree"), setting, zNodes);
|
||||||
zTree = $.fn.zTree.getZTreeObj("assetTree");
|
zTree = $.fn.zTree.getZTreeObj("assetTree");
|
||||||
rMenu = $("#rMenu");
|
var root = zTree.getNodes()[0];
|
||||||
selectQueryNode();
|
zTree.expandNode(root);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
initTree();
|
initTree();
|
||||||
|
initTable();
|
||||||
})
|
})
|
||||||
.on('click', '.asset_detail', function() {
|
.on('click', '.asset_detail', function() {
|
||||||
var data = asset_table.ajax.json();
|
var data = asset_table.ajax.json();
|
||||||
|
|
|
@ -15,8 +15,6 @@ from .models import AssetPermission
|
||||||
from .hands import AssetGrantedSerializer, User, UserGroup, Asset, Node, \
|
from .hands import AssetGrantedSerializer, User, UserGroup, Asset, Node, \
|
||||||
NodeGrantedSerializer, SystemUser, NodeSerializer
|
NodeGrantedSerializer, SystemUser, NodeSerializer
|
||||||
from . import serializers
|
from . import serializers
|
||||||
from orgs.utils import set_current_org
|
|
||||||
from orgs.models import Organization
|
|
||||||
|
|
||||||
|
|
||||||
class AssetPermissionViewSet(viewsets.ModelViewSet):
|
class AssetPermissionViewSet(viewsets.ModelViewSet):
|
||||||
|
@ -58,7 +56,7 @@ class AssetPermissionViewSet(viewsets.ModelViewSet):
|
||||||
return permissions
|
return permissions
|
||||||
|
|
||||||
|
|
||||||
class UserGrantedAssetsApi(ListAPIView):
|
class UserGrantedAssetsApi(RootOrgViewMixin, ListAPIView):
|
||||||
"""
|
"""
|
||||||
用户授权的所有资产
|
用户授权的所有资产
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -72,6 +72,7 @@ function initTable() {
|
||||||
} else {
|
} else {
|
||||||
inited = true;
|
inited = true;
|
||||||
}
|
}
|
||||||
|
url = "{% url 'api-perms:user-assets' pk=object.id %}";
|
||||||
var options = {
|
var options = {
|
||||||
ele: $('#user_assets_table'),
|
ele: $('#user_assets_table'),
|
||||||
columnDefs: [
|
columnDefs: [
|
||||||
|
@ -102,15 +103,12 @@ function initTable() {
|
||||||
{data: "system_users_granted", orderable: false}
|
{data: "system_users_granted", orderable: false}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
return jumpserver.initDataTable(options);
|
asset_table = jumpserver.initDataTable(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onSelected(event, treeNode) {
|
function onSelected(event, treeNode) {
|
||||||
url = '{% url "api-perms:user-node-assets" pk=object.id node_id=DEFAULT_PK %}';
|
url = '{% url "api-perms:user-node-assets" pk=object.id node_id=DEFAULT_PK %}';
|
||||||
console.log(">>>>>>>>>>>>>>>>>>>>>>>", treeNode.node_id, treeNode.id, treeNode);
|
|
||||||
url = url.replace("{{ DEFAULT_PK }}", treeNode.node_id);
|
url = url.replace("{{ DEFAULT_PK }}", treeNode.node_id);
|
||||||
setCookie('node_selected', treeNode.node_id);
|
|
||||||
asset_table = initTable();
|
|
||||||
asset_table.ajax.url(url);
|
asset_table.ajax.url(url);
|
||||||
asset_table.ajax.reload();
|
asset_table.ajax.reload();
|
||||||
}
|
}
|
||||||
|
@ -153,6 +151,7 @@ function initTree() {
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
initTree();
|
initTree();
|
||||||
|
initTable();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -342,7 +342,6 @@ class UserBulkImportView(AdminUserRequiredMixin, JSONResponseMixin, FormView):
|
||||||
class UserGrantedAssetView(AdminUserRequiredMixin, DetailView):
|
class UserGrantedAssetView(AdminUserRequiredMixin, DetailView):
|
||||||
model = User
|
model = User
|
||||||
template_name = 'users/user_granted_asset.html'
|
template_name = 'users/user_granted_asset.html'
|
||||||
object = None
|
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = {
|
context = {
|
||||||
|
|
Loading…
Reference in New Issue