From 8e51f97dc7ca29a571870d5e92afe7ae3836c9de Mon Sep 17 00:00:00 2001 From: BaiJiangJie <32935519+BaiJiangJie@users.noreply.github.com> Date: Wed, 26 Dec 2018 13:54:42 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E6=B7=BB=E5=8A=A0=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E6=A0=91=E5=8F=B3=E5=87=BB=E8=8F=9C=E5=8D=95:=20=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E6=89=80=E6=9C=89=E8=8A=82=E7=82=B9=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E6=95=B0=E9=87=8F=20(#2274)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Update] æ·»åŠ èµ„äº§æ ‘å³å‡»èœå•: åˆ·æ–°æ‰€æœ‰èŠ‚ç‚¹èµ„äº§æ•°é‡ * [Update] 修改å³å‡»èœå•æ ·å¼ --- apps/assets/api/node.py | 11 +++- apps/assets/templates/assets/asset_list.html | 12 +++++ apps/assets/urls/api_urls.py | 2 + apps/locale/zh/LC_MESSAGES/django.mo | Bin 60289 -> 60399 bytes apps/locale/zh/LC_MESSAGES/django.po | 54 ++++++++++--------- 5 files changed, 53 insertions(+), 26 deletions(-) diff --git a/apps/assets/api/node.py b/apps/assets/api/node.py index 4295b261..052d70e3 100644 --- a/apps/assets/api/node.py +++ b/apps/assets/api/node.py @@ -34,7 +34,7 @@ __all__ = [ 'NodeAddAssetsApi', 'NodeRemoveAssetsApi', 'NodeReplaceAssetsApi', 'NodeAddChildrenApi', 'RefreshNodeHardwareInfoApi', 'TestNodeConnectiveApi', 'NodeListAsTreeApi', - 'NodeChildrenAsTreeApi', + 'NodeChildrenAsTreeApi', 'RefreshAssetsAmount', ] @@ -275,3 +275,12 @@ class TestNodeConnectiveApi(APIView): task_name = _("Test if the assets under the node are connectable: {}".format(node.name)) task = test_asset_connectivity_util.delay(assets, task_name=task_name) return Response({"task": task.id}) + + +class RefreshAssetsAmount(APIView): + permission_classes = (IsOrgAdmin,) + model = Node + + def get(self, request, *args, **kwargs): + self.model.expire_nodes_assets_amount() + return Response("Ok") diff --git a/apps/assets/templates/assets/asset_list.html b/apps/assets/templates/assets/asset_list.html index c3c3a7ed..c560c8e6 100644 --- a/apps/assets/templates/assets/asset_list.html +++ b/apps/assets/templates/assets/asset_list.html @@ -133,6 +133,8 @@ <li id="menu_refresh_hardware_info" class="btn-refresh-hardware" tabindex="-1"><a><i class="fa fa-refresh"></i> {% trans 'Refresh node hardware info' %}</a></li> <li id="menu_test_connective" class="btn-test-connective" tabindex="-1"><a><i class="fa fa-chain"></i> {% trans 'Test node connective' %}</a></li> <li class="divider"></li> + <li id="menu_refresh_assets_amount" class="btn-refresh-assets-amount" tabindex="-1"><a><i class="fa fa-refresh"></i> {% trans 'Refresh all node assets amount' %}</a></li> + <li class="divider"></li> <li id="show_current_asset" class="btn-show-current-asset" style="display: none;" tabindex="-1"><a><i class="fa fa-hand-o-up"></i> {% trans 'Display only current node assets' %}</a></li> <li id="show_all_asset" class="btn-show-all-asset" style="display: none;" tabindex="-1"><a><i class="fa fa-th"></i> {% trans 'Displays all child node assets' %}</a></li> {# <li id="fresh_tree" class="btn-refresh-tree" tabindex="-1"><a><i class="fa fa-refresh"></i> {% trans 'Refresh' %}</a></li>#} @@ -558,6 +560,15 @@ $(document).ready(function(){ hideRMenu(); }) +.on('click', '#menu_refresh_assets_amount', function () { + hideRMenu(); + var url = "{% url 'api-assets:refresh-assets-amount' %}"; + APIUpdateAttr({ + 'url': url, + 'method': 'GET' + }); + window.location.reload(); +}) .on('click', '.btn_asset_delete', function () { var $this = $(this); var $data_table = $("#asset_list_table").DataTable(); @@ -724,6 +735,7 @@ $(document).ready(function(){ }).on('click', '#menu_asset_move', function () { update_node_action = "move" }) + </script> {% endblock %} \ No newline at end of file diff --git a/apps/assets/urls/api_urls.py b/apps/assets/urls/api_urls.py index ca426a83..4aceda2e 100644 --- a/apps/assets/urls/api_urls.py +++ b/apps/assets/urls/api_urls.py @@ -74,6 +74,8 @@ urlpatterns = [ api.RefreshNodeHardwareInfoApi.as_view(), name='node-refresh-hardware-info'), path('nodes/<uuid:pk>/test-connective/', api.TestNodeConnectiveApi.as_view(), name='node-test-connective'), + path('nodes/refresh-assets-amount/', + api.RefreshAssetsAmount.as_view(), name='refresh-assets-amount'), path('gateway/<uuid:pk>/test-connective/', api.GatewayTestConnectionApi.as_view(), name='test-gateway-connective'), diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index a5a414c63b909c7501e047a31f208e278346cc0e..a6518874eff0d18bf78d4278827e25b5eb29bf5f 100644 GIT binary patch delta 17975 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 F{T~R9zKj3> delta 17905 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 O&B<JH?W7}Za{dqEmZ5F{ diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index ecd343f8..a4cc9798 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Jumpserver 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-26 11:39+0800\n" +"POT-Creation-Date: 2018-12-26 13:42+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler <ibuler@qq.com>\n" "Language-Team: Jumpserver team<ibuler@qq.com>\n" @@ -116,7 +116,7 @@ msgstr "端å£" #: audits/templates/audits/ftp_log_list.html:41 #: audits/templates/audits/ftp_log_list.html:71 perms/forms.py:42 #: perms/models.py:31 -#: perms/templates/perms/asset_permission_create_update.html:40 +#: perms/templates/perms/asset_permission_create_update.html:45 #: perms/templates/perms/asset_permission_list.html:56 #: perms/templates/perms/asset_permission_list.html:114 #: terminal/backends/command/models.py:13 terminal/models.py:140 @@ -630,7 +630,7 @@ msgstr "默认资产组" #: ops/templates/ops/command_execution_list.html:34 #: ops/templates/ops/command_execution_list.html:59 perms/forms.py:36 #: perms/models.py:29 -#: perms/templates/perms/asset_permission_create_update.html:36 +#: perms/templates/perms/asset_permission_create_update.html:41 #: perms/templates/perms/asset_permission_list.html:54 #: perms/templates/perms/asset_permission_list.html:108 templates/index.html:87 #: terminal/backends/command/models.py:12 terminal/models.py:139 @@ -858,7 +858,7 @@ msgstr "资产列表" #: assets/templates/assets/asset_create.html:16 #: assets/templates/assets/asset_update.html:21 #: assets/templates/assets/gateway_create_update.html:37 -#: perms/templates/perms/asset_permission_create_update.html:33 +#: perms/templates/perms/asset_permission_create_update.html:38 msgid "Basic" msgstr "基本" @@ -878,7 +878,7 @@ msgstr "自动生æˆå¯†é’¥" #: assets/templates/assets/asset_create.html:60 #: assets/templates/assets/asset_update.html:64 #: assets/templates/assets/gateway_create_update.html:53 -#: perms/templates/perms/asset_permission_create_update.html:45 +#: perms/templates/perms/asset_permission_create_update.html:50 #: terminal/templates/terminal/terminal_update.html:42 msgid "Other" msgstr "其它" @@ -900,7 +900,7 @@ msgstr "其它" #: common/templates/common/replay_storage_create.html:138 #: common/templates/common/security_setting.html:70 #: common/templates/common/terminal_setting.html:68 -#: perms/templates/perms/asset_permission_create_update.html:75 +#: perms/templates/perms/asset_permission_create_update.html:80 #: terminal/templates/terminal/terminal_update.html:47 #: users/templates/users/_user.html:50 #: users/templates/users/user_bulk_update.html:23 @@ -933,7 +933,7 @@ msgstr "é‡ç½®" #: common/templates/common/replay_storage_create.html:139 #: common/templates/common/security_setting.html:71 #: common/templates/common/terminal_setting.html:70 -#: perms/templates/perms/asset_permission_create_update.html:76 +#: perms/templates/perms/asset_permission_create_update.html:81 #: terminal/templates/terminal/command_list.html:103 #: terminal/templates/terminal/session_list.html:127 #: terminal/templates/terminal/terminal_update.html:48 @@ -1008,7 +1008,7 @@ msgstr "测试" #: assets/templates/assets/admin_user_detail.html:24 #: assets/templates/assets/admin_user_list.html:88 #: assets/templates/assets/asset_detail.html:24 -#: assets/templates/assets/asset_list.html:175 +#: assets/templates/assets/asset_list.html:177 #: assets/templates/assets/cmd_filter_detail.html:29 #: assets/templates/assets/cmd_filter_list.html:57 #: assets/templates/assets/cmd_filter_rule_list.html:86 @@ -1040,7 +1040,7 @@ msgstr "æ›´æ–°" #: assets/templates/assets/admin_user_detail.html:28 #: assets/templates/assets/admin_user_list.html:89 #: assets/templates/assets/asset_detail.html:28 -#: assets/templates/assets/asset_list.html:176 +#: assets/templates/assets/asset_list.html:178 #: assets/templates/assets/cmd_filter_detail.html:33 #: assets/templates/assets/cmd_filter_list.html:58 #: assets/templates/assets/cmd_filter_rule_list.html:87 @@ -1082,7 +1082,7 @@ msgstr "选择节点" #: assets/templates/assets/admin_user_detail.html:100 #: assets/templates/assets/asset_detail.html:208 -#: assets/templates/assets/asset_list.html:624 +#: assets/templates/assets/asset_list.html:635 #: assets/templates/assets/cmd_filter_detail.html:106 #: assets/templates/assets/system_user_asset.html:112 #: assets/templates/assets/system_user_detail.html:182 @@ -1166,7 +1166,7 @@ msgstr "快速修改" #: assets/templates/assets/asset_detail.html:151 #: assets/templates/assets/user_asset_list.html:47 perms/models.py:34 #: perms/models.py:82 -#: perms/templates/perms/asset_permission_create_update.html:47 +#: perms/templates/perms/asset_permission_create_update.html:52 #: perms/templates/perms/asset_permission_detail.html:120 #: perms/templates/perms/asset_permission_list.html:59 #: terminal/templates/terminal/terminal_list.html:34 @@ -1272,34 +1272,38 @@ msgid "Test node connective" msgstr "测试节点资产å¯è¿žæŽ¥æ€§" #: assets/templates/assets/asset_list.html:136 +msgid "Refresh all node assets amount" +msgstr "刷新所有节点资产数é‡" + +#: assets/templates/assets/asset_list.html:138 msgid "Display only current node assets" msgstr "仅显示当å‰èŠ‚ç‚¹èµ„äº§" -#: assets/templates/assets/asset_list.html:137 +#: assets/templates/assets/asset_list.html:139 msgid "Displays all child node assets" msgstr "显示所有å节点资产" -#: assets/templates/assets/asset_list.html:214 +#: assets/templates/assets/asset_list.html:216 msgid "Create node failed" msgstr "创建节点失败" -#: assets/templates/assets/asset_list.html:226 +#: assets/templates/assets/asset_list.html:228 msgid "Have child node, cancel" msgstr "å˜åœ¨å节点,ä¸èƒ½åˆ 除" -#: assets/templates/assets/asset_list.html:228 +#: assets/templates/assets/asset_list.html:230 msgid "Have assets, cancel" msgstr "å˜åœ¨èµ„产,ä¸èƒ½åˆ 除" -#: assets/templates/assets/asset_list.html:299 +#: assets/templates/assets/asset_list.html:301 msgid "Rename success" msgstr "é‡å‘½åæˆåŠŸ" -#: assets/templates/assets/asset_list.html:300 +#: assets/templates/assets/asset_list.html:302 msgid "Rename failed, do not change the root node name" msgstr "é‡å‘½å失败,ä¸èƒ½æ›´æ”¹root节点的åç§°" -#: assets/templates/assets/asset_list.html:618 +#: assets/templates/assets/asset_list.html:629 #: assets/templates/assets/system_user_list.html:137 #: users/templates/users/user_detail.html:380 #: users/templates/users/user_detail.html:406 @@ -1309,11 +1313,11 @@ msgstr "é‡å‘½å失败,ä¸èƒ½æ›´æ”¹root节点的åç§°" msgid "Are you sure?" msgstr "ä½ ç¡®è®¤å—?" -#: assets/templates/assets/asset_list.html:619 +#: assets/templates/assets/asset_list.html:630 msgid "This will delete the selected assets !!!" msgstr "åˆ é™¤é€‰æ‹©èµ„äº§" -#: assets/templates/assets/asset_list.html:622 +#: assets/templates/assets/asset_list.html:633 #: assets/templates/assets/system_user_list.html:141 #: common/templates/common/terminal_setting.html:163 #: users/templates/users/user_detail.html:384 @@ -1326,16 +1330,16 @@ msgstr "åˆ é™¤é€‰æ‹©èµ„äº§" msgid "Cancel" msgstr "å–æ¶ˆ" -#: assets/templates/assets/asset_list.html:628 +#: assets/templates/assets/asset_list.html:639 msgid "Asset Deleted." msgstr "å·²è¢«åˆ é™¤" -#: assets/templates/assets/asset_list.html:629 -#: assets/templates/assets/asset_list.html:634 +#: assets/templates/assets/asset_list.html:640 +#: assets/templates/assets/asset_list.html:645 msgid "Asset Delete" msgstr "åˆ é™¤" -#: assets/templates/assets/asset_list.html:633 +#: assets/templates/assets/asset_list.html:644 msgid "Asset Deleting failed." msgstr "åˆ é™¤å¤±è´¥" @@ -2610,7 +2614,7 @@ msgstr "æ·»åŠ èŠ‚ç‚¹" msgid "Join" msgstr "åŠ å…¥" -#: perms/templates/perms/asset_permission_create_update.html:53 +#: perms/templates/perms/asset_permission_create_update.html:58 msgid "Validity period" msgstr "有效期" -- 2.18.0