Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
cd1d690f
Commit
cd1d690f
authored
Jul 28, 2017
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Bugfix] 修复一些bug
parent
67e95390
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
85 additions
and
111 deletions
+85
-111
_asset_import_modal.html
apps/assets/templates/assets/_asset_import_modal.html
+1
-1
asset_detail.html
apps/assets/templates/assets/asset_detail.html
+2
-2
asset_group_detail.html
apps/assets/templates/assets/asset_group_detail.html
+44
-68
idc_assets.html
apps/assets/templates/assets/idc_assets.html
+34
-35
asset.py
apps/assets/views/asset.py
+2
-3
group.py
apps/assets/views/group.py
+1
-1
user_detail.html
apps/users/templates/users/user_detail.html
+1
-1
No files found.
apps/assets/templates/assets/_asset_import_modal.html
View file @
cd1d690f
...
...
@@ -10,7 +10,7 @@
<a
href=
"{% url 'assets:asset-export' %}"
style=
"display: block"
>
{% trans 'Download' %}
</a>
</div>
<div
class=
"form-group"
>
<label
class=
"control-label"
for=
"id_users"
>
{% trans "Asset
excel
file" %}
</label>
<label
class=
"control-label"
for=
"id_users"
>
{% trans "Asset
csv
file" %}
</label>
<input
id=
"id_assets"
type=
"file"
name=
"file"
/>
<span
class=
"help-block"
>
{% trans 'If set id, will use this id update asset existed' %}
...
...
apps/assets/templates/assets/asset_detail.html
View file @
cd1d690f
...
...
@@ -243,7 +243,7 @@
</div>
<div
class=
"panel panel-warning"
>
<div
class=
"panel-heading"
>
<i
class=
"fa fa-info-circle"
></i>
{% trans '
S
ystem users' %}
<i
class=
"fa fa-info-circle"
></i>
{% trans '
Push s
ystem users' %}
</div>
<div
class=
"panel-body"
>
<table
class=
"table group_edit"
id=
"add-asset2systemuser"
>
...
...
@@ -252,7 +252,7 @@
<tr
class=
"no-borders-tr"
>
<td
colspan=
"2"
>
<select
data-placeholder=
"{% trans 'Select system users' %}"
class=
"select2"
style=
"width: 100%"
multiple=
""
tabindex=
"4"
>
{% for system_user in system_users_
remain
%}
{% for system_user in system_users_
all
%}
<option
value=
"{{ system_user.id }}"
id=
"opt_{{ system_user.id }}"
>
{{ system_user.name }}
</option>
{% endfor %}
</select>
...
...
apps/assets/templates/assets/asset_group_detail.html
View file @
cd1d690f
...
...
@@ -45,9 +45,9 @@
<th>
{% trans 'Hostname' %}
</th>
<th>
{% trans 'IP' %}
</th>
<th>
{% trans 'Port' %}
</th>
<th>
{% trans 'Type' %}
</th>
<th>
{% trans 'Type' %}
</th>
<th>
{% trans 'Alive' %}
</th>
<th>
{% trans 'Action' %}
</th>
<th>
{% trans 'Action' %}
</th>
</tr>
</thead>
<tbody>
...
...
@@ -56,40 +56,11 @@
</div>
</div>
</div>
<div
class=
"col-sm-5"
style=
"padding-left: 0;padding-right: 0"
>
<div
class=
"panel panel-primary"
>
<div
class=
"panel-heading"
>
<i
class=
"fa fa-info-circle"
></i>
{% trans 'Add asset to this group' %}
</div>
<div
class=
"panel-body"
>
<table
class=
"table"
>
<tbody>
<form>
<tr
class=
"no-borders-tr"
>
<td
colspan=
"2"
>
<select
data-placeholder=
"{% trans 'Select assets' %}"
class=
"select2 asset-select"
style=
"width: 100%"
multiple=
""
tabindex=
"4"
>
{% for asset in assets_remain %}
<option
value=
"{{ asset.id }}"
id=
"opt_{{ asset.id }}"
>
{{ asset.hostname }}
</option>
{% endfor %}
</select>
</td>
</tr>
<tr
class=
"no-borders-tr"
>
<td
colspan=
"2"
>
<button
type=
"button"
class=
"btn btn-primary btn-sm btn-asset-add-groups"
>
{% trans 'Add' %}
</button>
</td>
</tr>
</form>
</tbody>
</table>
</div>
</div>
</div>
<div
class=
"col-sm-5"
style=
"padding-left: 0;padding-right: 0"
>
<div
class=
"panel panel-
warning
"
>
<div
class=
"panel panel-
primary
"
>
<div
class=
"panel-heading"
>
<i
class=
"fa fa-info-circle"
></i>
{% trans 'Push system user
to this group asset
s' %}
<i
class=
"fa fa-info-circle"
></i>
{% trans 'Push system users' %}
</div>
<div
class=
"panel-body"
>
<table
class=
"table"
>
...
...
@@ -106,7 +77,7 @@
</tr>
<tr
class=
"no-borders-tr"
>
<td
colspan=
"2"
>
<button
type=
"button"
class=
"btn btn-
warning
btn-sm btn-push-system-user"
>
{% trans 'Push' %}
</button>
<button
type=
"button"
class=
"btn btn-
primary
btn-sm btn-push-system-user"
>
{% trans 'Push' %}
</button>
</td>
</tr>
</form>
...
...
@@ -125,45 +96,28 @@
{% endblock %}
{% block custom_foot_js %}
<script>
function
updateAssetsGroup
(
assets
)
{
var
the_url
=
"{% url 'api-assets:asset-groups-update' pk=asset_group.id %}"
;
jumpserver
.
assets_selected
=
{};
function
updateGroupAssets
(
assets
)
{
var
the_url
=
"{}"
;
var
body
=
{
assets
:
Object
.
assign
([],
assets
)
assets
:
Object
.
assign
([],
assets
)
};
var
$data_table
=
$
(
"#asset_list_table"
).
DataTable
();
var
success
=
function
(
data
)
{
$
(
'select2-selection__rendered'
).
empty
();
$
(
'#groups_selected'
).
val
(
''
);
$
(
'#asset_list_table > tbody'
).
empty
();
$
.
map
(
jumpserver
.
assets_selected
,
function
(
asset_ip
,
index
)
{
var
url
=
'{% url "api-assets:asset-detail" pk=99991937 %}'
.
replace
(
99991937
,
index
);
asset
=
$
.
ajax
({
url
:
url
,
method
:
"GET"
,
dataType
:
"json"
,
success
:
function
(
data
,
textStatus
)
{
var
add_tr
=
'<tr id="bdg_asset" data-aid="'
+
data
.
id
+
'">'
+
'<td>'
+
data
.
hostname
+
'</td>'
+
'<td>'
+
data
.
ip
+
'</td>'
+
'<td>'
+
data
.
port
+
'</td>'
+
'<td>status</td>'
+
'<td>'
+
'<a class="btn btn-xs btn-danger m-l-xs btn_asset_delete" data-aid="'
+
data
.
id
+
'">{% trans "Delete" %}</a>'
+
'<a class="btn btn-xs btn-info m-l-xs btn_asset_update" data-aid="'
+
data
.
id
+
'" href="'
+
'{% url "assets:asset-update" pk=99991937 %}'
.
replace
(
99991937
,
data
.
id
)
+
'">{% trans "Update" %}</a>'
+
'</td>'
+
'</tr>'
;
(
data
.
is_active
==
true
)
?
tr
=
add_tr
.
replace
(
'<td>status</td>'
,
'<td><i class="fa fa-circle text-navy"></i></td>'
):
tr
=
add_tr
.
replace
(
'<td>status</td>'
,
'<td><i class="fa fa-circle text-danger"></i></td>'
);
$
(
'#asset_list_table > tbody'
).
append
(
tr
);
}
});
});
$
(
'.select2-selection__rendered'
).
empty
();
$
.
map
(
jumpserver
.
assets_selected
,
function
(
asset_ip
,
index
)
{
$
(
'#opt_'
+
index
).
remove
();
$data_table
.
ajax
.
reload
();
});
jumpserver
.
groups_selected
=
{};
};
APIUpdateAttr
({
url
:
the_url
,
body
:
JSON
.
stringify
(
body
),
success
:
success
url
:
the_url
,
body
:
JSON
.
stringify
(
body
),
method
:
'PUT'
,
success
:
success
});
}
}
function
leaveGroup
(
obj
,
name
,
url
,
data
)
{
function
doDelete
()
{
...
...
@@ -204,7 +158,9 @@ function pushSystemUser(sysUserID) {
};
var
success
=
function
(
data
)
{
var
url
=
"{% url 'ops:task-detail' pk=234234234 %}"
.
replace
(
"234234234"
,
data
);
location
.
href
=
url
setTimeout
(
function
()
{
location
.
href
=
url
},
1000
);
};
APIUpdateAttr
({
url
:
the_url
,
...
...
@@ -236,6 +192,17 @@ Array.prototype.unique = function(){
$
(
document
).
ready
(
function
()
{
$
(
'.select2'
).
select2
();
$
(
'.select2.asset-select'
).
select2
()
.
on
(
'select2:select'
,
function
(
evt
)
{
var
data
=
evt
.
params
.
data
;
jumpserver
.
assets_selected
[
data
.
id
]
=
data
.
text
;
console
.
log
(
jumpserver
.
assets_selected
)
})
.
on
(
'select2:unselect'
,
function
(
evt
)
{
var
data
=
evt
.
params
.
data
;
delete
jumpserver
.
assets_selected
[
data
.
id
]
});
var
options
=
{
ele
:
$
(
'#asset_list_table'
),
buttons
:
[],
...
...
@@ -266,6 +233,15 @@ $(document).ready(function () {
jumpserver
.
initDataTable
(
options
);
})
.
on
(
'click'
,
".btn-asset-group-add-asset"
,
function
()
{
if
(
Object
.
keys
(
jumpserver
.
assets_selected
).
length
===
0
)
{
return
false
;
}
updateGroupAssets
(
jumpserver
.
assets_selected
);
})
.
on
(
'click'
,
'.btn-push-system-user'
,
function
()
{
var
data
=
$
(
'.system-user-select'
).
select2
();
var
system_id
=
data
.
val
()[
0
];
...
...
apps/assets/templates/assets/idc_assets.html
View file @
cd1d690f
...
...
@@ -62,19 +62,18 @@
</tbody>
</table>
<div
id=
"actions"
class=
"hide"
>
<div
class=
"input-group"
>
<select
class=
"form-control m-b"
style=
"width: auto"
id=
"slct_bulk_update"
>
<option
value=
"delete"
>
{% trans 'Delete selected' %}
</option>
</select>
<div
class=
"input-group-btn pull-left"
style=
"padding-left: 5px;"
>
<button
id=
'btn_bulk_update'
style=
"height: 32px;"
class=
"btn btn-sm btn-warning"
>
{% trans 'Submit' %}
</button>
</div>
</div>
</div>
<div
id=
"actions"
class=
"hide"
>
<div
class=
"input-group"
>
<select
class=
"form-control m-b"
style=
"width: auto"
id=
"slct_bulk_update"
>
<option
value=
"delete"
>
{% trans 'Remove selected' %}
</option>
</select>
<div
class=
"input-group-btn pull-left"
style=
"padding-left: 5px;"
>
<button
id=
'btn_bulk_update'
style=
"height: 32px;"
class=
"btn btn-sm btn-warning"
>
{% trans 'Submit' %}
</button>
</div>
</div>
</div>
</div>
</div>
</div>
...
...
@@ -254,28 +253,28 @@ $(document).ready(function () {
assets
.
remove
(
plain_id_list
[
j
])
}
function
doDelete
()
{
swal
({
title
:
"{% trans 'Are you sure?' %}"
,
text
:
"{% trans 'This will delete the selected assets !!!' %}"
,
type
:
"warning"
,
showCancelButton
:
true
,
confirmButtonColor
:
"#DD6B55"
,
confirmButtonText
:
"{% trans 'Confirm' %}"
,
closeOnConfirm
:
false
},
function
()
{
var
success
=
function
()
{
var
msg
=
"{% trans 'Asset Deleted.' %}"
;
swal
(
"{% trans 'Asset Delete' %}"
,
msg
,
"success"
);
$
(
'#idc_assets_table'
).
DataTable
().
ajax
.
reload
();
};
var
fail
=
function
()
{
var
msg
=
"{% trans 'Asset Deleting failed.' %}"
;
swal
(
"{% trans 'Asset Delete' %}"
,
msg
,
"error"
);
};
var
url_delete
=
"{% url 'api-assets:idc-update-assets' pk=idc.id %}"
;
var
body
=
{
assets
:
Object
.
assign
([],
assets
)
};
swal
({
title
:
"{% trans 'Are you sure?' %}"
,
text
:
"{% trans 'This will delete the selected assets !!!' %}"
,
type
:
"warning"
,
showCancelButton
:
true
,
confirmButtonColor
:
"#DD6B55"
,
confirmButtonText
:
"{% trans 'Confirm' %}"
,
closeOnConfirm
:
false
},
function
()
{
var
success
=
function
()
{
var
msg
=
"{% trans 'Asset Deleted.' %}"
;
swal
(
"{% trans 'Asset Delete' %}"
,
msg
,
"success"
);
$
(
'#idc_assets_table'
).
DataTable
().
ajax
.
reload
();
};
var
fail
=
function
()
{
var
msg
=
"{% trans 'Asset Deleting failed.' %}"
;
swal
(
"{% trans 'Asset Delete' %}"
,
msg
,
"error"
);
};
var
url_delete
=
"{% url 'api-assets:idc-update-assets' pk=idc.id %}"
;
var
body
=
{
assets
:
Object
.
assign
([],
assets
)
};
APIUpdateAttr
({
url
:
url_delete
,
body
:
JSON
.
stringify
(
body
),
method
:
'PUT'
,
success
:
success
,
error
:
fail
});
jumpserver
.
checked
=
false
;
});
...
...
apps/assets/views/asset.py
View file @
cd1d690f
...
...
@@ -189,8 +189,7 @@ class AssetDetailView(DetailView):
'asset_groups_remain'
:
[
asset_group
for
asset_group
in
AssetGroup
.
objects
.
all
()
if
asset_group
not
in
asset_groups
],
'asset_groups'
:
asset_groups
,
'system_users_remain'
:
[
system_user
for
system_user
in
SystemUser
.
objects
.
all
()
if
system_user
not
in
system_users
],
'system_users_all'
:
SystemUser
.
objects
.
all
(),
'system_users'
:
system_users
,
}
kwargs
.
update
(
context
)
...
...
@@ -315,7 +314,7 @@ class BulkImportAssetView(AdminUserRequiredMixin, JSONResponseMixin, FormView):
failed
.
append
(
'
%
s:
%
s'
%
(
asset_dict
[
'hostname'
],
str
(
e
)))
if
assets
:
update_assets_hardware_info
.
delay
(
assets
)
update_assets_hardware_info
.
delay
(
[
asset
.
_to_secret_json
()
for
asset
in
assets
]
)
data
=
{
'created'
:
created
,
...
...
apps/assets/views/group.py
View file @
cd1d690f
...
...
@@ -67,7 +67,7 @@ class AssetGroupDetailView(AdminUserRequiredMixin, DetailView):
def
get_context_data
(
self
,
**
kwargs
):
assets_remain
=
Asset
.
objects
.
exclude
(
id__in
=
self
.
object
.
assets
.
all
())
system_users
=
self
.
object
.
system_user
s
.
all
()
system_users
=
SystemUser
.
object
s
.
all
()
system_users_remain
=
SystemUser
.
objects
.
exclude
(
id__in
=
system_users
)
context
=
{
'app'
:
_
(
'Assets'
),
...
...
apps/users/templates/users/user_detail.html
View file @
cd1d690f
...
...
@@ -266,7 +266,7 @@ $(document).ready(function() {
delete
jumpserver
.
groups_selected
[
data
.
id
]
})
})
.
on
(
'click'
,
'#is_active'
,
function
()
{
.
on
(
'click'
,
'#is_active'
,
function
()
{
var
the_url
=
"{% url 'api-users:user-detail' pk=user_object.id %}"
;
var
checked
=
$
(
this
).
prop
(
'checked'
);
var
body
=
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment