Commit cd1d690f authored by ibuler's avatar ibuler

[Bugfix] 修复一些bug

parent 67e95390
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<a href="{% url 'assets:asset-export' %}" style="display: block">{% trans 'Download' %}</a> <a href="{% url 'assets:asset-export' %}" style="display: block">{% trans 'Download' %}</a>
</div> </div>
<div class="form-group"> <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" /> <input id="id_assets" type="file" name="file" />
<span class="help-block"> <span class="help-block">
{% trans 'If set id, will use this id update asset existed' %} {% trans 'If set id, will use this id update asset existed' %}
......
...@@ -243,7 +243,7 @@ ...@@ -243,7 +243,7 @@
</div> </div>
<div class="panel panel-warning"> <div class="panel panel-warning">
<div class="panel-heading"> <div class="panel-heading">
<i class="fa fa-info-circle"></i> {% trans 'System users' %} <i class="fa fa-info-circle"></i> {% trans 'Push system users' %}
</div> </div>
<div class="panel-body"> <div class="panel-body">
<table class="table group_edit" id="add-asset2systemuser"> <table class="table group_edit" id="add-asset2systemuser">
...@@ -252,7 +252,7 @@ ...@@ -252,7 +252,7 @@
<tr class="no-borders-tr"> <tr class="no-borders-tr">
<td colspan="2"> <td colspan="2">
<select data-placeholder="{% trans 'Select system users' %}" class="select2" style="width: 100%" multiple="" tabindex="4"> <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> <option value="{{ system_user.id }}" id="opt_{{ system_user.id }}">{{ system_user.name }}</option>
{% endfor %} {% endfor %}
</select> </select>
......
...@@ -56,40 +56,11 @@ ...@@ -56,40 +56,11 @@
</div> </div>
</div> </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="col-sm-5" style="padding-left: 0;padding-right: 0">
<div class="panel panel-warning"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-heading">
<i class="fa fa-info-circle"></i> {% trans 'Push system user to this group assets' %} <i class="fa fa-info-circle"></i> {% trans 'Push system users' %}
</div> </div>
<div class="panel-body"> <div class="panel-body">
<table class="table"> <table class="table">
...@@ -106,7 +77,7 @@ ...@@ -106,7 +77,7 @@
</tr> </tr>
<tr class="no-borders-tr"> <tr class="no-borders-tr">
<td colspan="2"> <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> </td>
</tr> </tr>
</form> </form>
...@@ -125,45 +96,28 @@ ...@@ -125,45 +96,28 @@
{% endblock %} {% endblock %}
{% block custom_foot_js %} {% block custom_foot_js %}
<script> <script>
function updateAssetsGroup(assets) { jumpserver.assets_selected = {};
var the_url = "{% url 'api-assets:asset-groups-update' pk=asset_group.id %}"; function updateGroupAssets(assets) {
var the_url = "{}";
var body = { var body = {
assets: Object.assign([], assets) assets: Object.assign([], assets)
}; };
var $data_table = $("#asset_list_table").DataTable();
var success = function(data) { var success = function(data) {
$('select2-selection__rendered').empty(); $('.select2-selection__rendered').empty();
$('#groups_selected').val('');
$('#asset_list_table > tbody').empty();
$.map(jumpserver.assets_selected, function(asset_ip, index) { $.map(jumpserver.assets_selected, function(asset_ip, index) {
var url = '{% url "api-assets:asset-detail" pk=99991937 %}'.replace(99991937, index); $('#opt_' + index).remove();
asset = $.ajax({ $data_table.ajax.reload();
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);
}
});
}); });
jumpserver.groups_selected = {};
}; };
APIUpdateAttr({ APIUpdateAttr({
url: the_url, url: the_url,
body: JSON.stringify(body), body: JSON.stringify(body),
method: 'PUT',
success: success success: success
}); });
} }
function leaveGroup(obj, name, url, data) { function leaveGroup(obj, name, url, data) {
function doDelete() { function doDelete() {
...@@ -204,7 +158,9 @@ function pushSystemUser(sysUserID) { ...@@ -204,7 +158,9 @@ function pushSystemUser(sysUserID) {
}; };
var success = function(data) { var success = function(data) {
var url = "{% url 'ops:task-detail' pk=234234234 %}".replace("234234234", data); var url = "{% url 'ops:task-detail' pk=234234234 %}".replace("234234234", data);
setTimeout(function () {
location.href = url location.href = url
}, 1000);
}; };
APIUpdateAttr({ APIUpdateAttr({
url: the_url, url: the_url,
...@@ -236,6 +192,17 @@ Array.prototype.unique = function(){ ...@@ -236,6 +192,17 @@ Array.prototype.unique = function(){
$(document).ready(function () { $(document).ready(function () {
$('.select2').select2(); $('.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 = { var options = {
ele: $('#asset_list_table'), ele: $('#asset_list_table'),
buttons: [], buttons: [],
...@@ -266,6 +233,15 @@ $(document).ready(function () { ...@@ -266,6 +233,15 @@ $(document).ready(function () {
jumpserver.initDataTable(options); 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 () { .on('click', '.btn-push-system-user', function () {
var data = $('.system-user-select').select2(); var data = $('.system-user-select').select2();
var system_id = data.val()[0]; var system_id = data.val()[0];
......
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
<div id="actions" class="hide"> <div id="actions" class="hide">
<div class="input-group"> <div class="input-group">
<select class="form-control m-b" style="width: auto" id="slct_bulk_update"> <select class="form-control m-b" style="width: auto" id="slct_bulk_update">
<option value="delete">{% trans 'Delete selected' %}</option> <option value="delete">{% trans 'Remove selected' %}</option>
</select> </select>
<div class="input-group-btn pull-left" style="padding-left: 5px;"> <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"> <button id='btn_bulk_update' style="height: 32px;" class="btn btn-sm btn-warning">
...@@ -74,7 +74,6 @@ ...@@ -74,7 +74,6 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -189,8 +189,7 @@ class AssetDetailView(DetailView): ...@@ -189,8 +189,7 @@ class AssetDetailView(DetailView):
'asset_groups_remain': [asset_group for asset_group in AssetGroup.objects.all() 'asset_groups_remain': [asset_group for asset_group in AssetGroup.objects.all()
if asset_group not in asset_groups], if asset_group not in asset_groups],
'asset_groups': asset_groups, 'asset_groups': asset_groups,
'system_users_remain': [system_user for system_user in SystemUser.objects.all() 'system_users_all': SystemUser.objects.all(),
if system_user not in system_users],
'system_users': system_users, 'system_users': system_users,
} }
kwargs.update(context) kwargs.update(context)
...@@ -315,7 +314,7 @@ class BulkImportAssetView(AdminUserRequiredMixin, JSONResponseMixin, FormView): ...@@ -315,7 +314,7 @@ class BulkImportAssetView(AdminUserRequiredMixin, JSONResponseMixin, FormView):
failed.append('%s: %s' % (asset_dict['hostname'], str(e))) failed.append('%s: %s' % (asset_dict['hostname'], str(e)))
if assets: if assets:
update_assets_hardware_info.delay(assets) update_assets_hardware_info.delay([asset._to_secret_json() for asset in assets])
data = { data = {
'created': created, 'created': created,
......
...@@ -67,7 +67,7 @@ class AssetGroupDetailView(AdminUserRequiredMixin, DetailView): ...@@ -67,7 +67,7 @@ class AssetGroupDetailView(AdminUserRequiredMixin, DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
assets_remain = Asset.objects.exclude(id__in=self.object.assets.all()) assets_remain = Asset.objects.exclude(id__in=self.object.assets.all())
system_users = self.object.system_users.all() system_users = SystemUser.objects.all()
system_users_remain = SystemUser.objects.exclude(id__in=system_users) system_users_remain = SystemUser.objects.exclude(id__in=system_users)
context = { context = {
'app': _('Assets'), 'app': _('Assets'),
......
...@@ -266,7 +266,7 @@ $(document).ready(function() { ...@@ -266,7 +266,7 @@ $(document).ready(function() {
delete jumpserver.groups_selected[data.id] 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 the_url = "{% url 'api-users:user-detail' pk=user_object.id %}";
var checked = $(this).prop('checked'); var checked = $(this).prop('checked');
var body = { var body = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment