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