Commit 97fb2a4f authored by ibuler's avatar ibuler

[Fixture] 修改index页面

parent 709552f1
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
<th class="text-center">{% trans 'Name' %}</th> <th class="text-center">{% trans 'Name' %}</th>
<th class="text-center">{% trans 'Username' %}</th> <th class="text-center">{% trans 'Username' %}</th>
<th class="text-center">{% trans 'Asset num' %}</th> <th class="text-center">{% trans 'Asset num' %}</th>
<th class="text-center">{% trans 'Lost connection' %}</th>
<th class="text-center">{% trans 'Comment' %}</th> <th class="text-center">{% trans 'Comment' %}</th>
<th class="text-center">{% trans 'Action' %}</th> <th class="text-center">{% trans 'Action' %}</th>
</tr> </tr>
...@@ -23,18 +22,6 @@ ...@@ -23,18 +22,6 @@
<tbody> <tbody>
</tbody> </tbody>
</table> </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-primary">
{% trans 'Submit' %}
</button>
</div>
</div>
</div>
{% endblock %} {% endblock %}
{% block content_bottom_left %}{% endblock %} {% block content_bottom_left %}{% endblock %}
{% block custom_foot_js %} {% block custom_foot_js %}
...@@ -47,11 +34,11 @@ $(document).ready(function(){ ...@@ -47,11 +34,11 @@ $(document).ready(function(){
var detail_btn = '<a href="{% url "assets:admin-user-detail" pk=99991937 %}">' + cellData + '</a>'; var detail_btn = '<a href="{% url "assets:admin-user-detail" pk=99991937 %}">' + cellData + '</a>';
$(td).html(detail_btn.replace('99991937', rowData.id)); $(td).html(detail_btn.replace('99991937', rowData.id));
}}, }},
{targets: 5, createdCell: function (td, cellData) { {targets: 4, createdCell: function (td, cellData) {
var innerHtml = cellData.length > 8 ? cellData.substring(0, 24) + '...': cellData; var innerHtml = cellData.length > 8 ? cellData.substring(0, 24) + '...': cellData;
$(td).html('<a href="javascript:void(0);" data-toggle="tooltip" title="' + cellData + '">' + innerHtml + '</a>'); $(td).html('<a href="javascript:void(0);" data-toggle="tooltip" title="' + cellData + '">' + innerHtml + '</a>');
}}, }},
{targets: 6, createdCell: function (td, cellData, rowData) { {targets: 5, createdCell: function (td, cellData, rowData) {
{# var script_btn = '<a href="{% url "assets:admin-user-update" pk=99991937 %}" class="btn btn-xs btn-primary">{% trans "Script" %}</a>'.replace('99991937', cellData);#} {# var script_btn = '<a href="{% url "assets:admin-user-update" pk=99991937 %}" class="btn btn-xs btn-primary">{% trans "Script" %}</a>'.replace('99991937', cellData);#}
var update_btn = '<a href="{% url "assets:admin-user-update" pk=99991937 %}" class="btn btn-xs m-l-xs btn-info">{% trans "Update" %}</a>'.replace('99991937', cellData); var update_btn = '<a href="{% url "assets:admin-user-update" pk=99991937 %}" class="btn btn-xs m-l-xs btn-info">{% trans "Update" %}</a>'.replace('99991937', cellData);
var del_btn = '<a class="btn btn-xs btn-danger m-l-xs btn_admin_user_delete" data-uid="99991937">{% trans "Delete" %}</a>'.replace('99991937', cellData); var del_btn = '<a class="btn btn-xs btn-danger m-l-xs btn_admin_user_delete" data-uid="99991937">{% trans "Delete" %}</a>'.replace('99991937', cellData);
...@@ -59,9 +46,8 @@ $(document).ready(function(){ ...@@ -59,9 +46,8 @@ $(document).ready(function(){
$(td).html(update_btn + del_btn) $(td).html(update_btn + del_btn)
}}], }}],
ajax_url: '{% url "api-assets:admin-user-list" %}', ajax_url: '{% url "api-assets:admin-user-list" %}',
columns: [{data: function(){return ""}}, {data: "name" }, {data: "username" }, {data: "assets_amount" }, {data: function () {return 'lost'} }, columns: [{data: function(){return ""}}, {data: "name" }, {data: "username" }, {data: "assets_amount" },
{data: "comment" }, {data: "id" }], {data: "comment" }, {data: "id" }],
op_html: $('#actions').html()
}; };
jumpserver.initDataTable(options); jumpserver.initDataTable(options);
}) })
...@@ -76,59 +62,7 @@ $(document).ready(function(){ ...@@ -76,59 +62,7 @@ $(document).ready(function(){
setTimeout( function () { setTimeout( function () {
$data_table.ajax.reload(); $data_table.ajax.reload();
}, 3000); }, 3000);
})
.on('click', '#btn_bulk_update', function () {
var action = $('#slct_bulk_update').val();
var $data_table = $('#admin_user_list_table').DataTable();
var id_list = [];
var plain_id_list = [];
$data_table.rows({selected: true}).every(function(){
id_list.push({id: this.data().id});
plain_id_list.push(this.data().id);
});
if (plain_id_list.length == 0) {
return false;
}
var the_url = "{% url 'api-assets:admin-user-list' %}";
function doDelete() {
swal({
title: "{% trans 'Are you sure?' %}",
text: "{% trans 'This will delete the selected Admin Users !!!' %}",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "{% trans 'Confirm' %}",
closeOnConfirm: false
}, function() {
var success = function() {
var msg = "{% trans 'Admin Users Deleted.' %}";
swal("{% trans 'Admin Users Delete' %}", msg, "success");
$('#admin_user_list_table').DataTable().ajax.reload();
};
var fail = function() {
var msg = "{% trans 'Admin Users Deleting failed.' %}";
swal("{% trans 'Admin Users Delete' %}", msg, "error");
};
var url_delete = the_url + '?id__in=' + JSON.stringify(plain_id_list);
APIUpdateAttr({url: url_delete, method: 'DELETE', success: success, error: fail});
$data_table.ajax.reload();
jumpserver.checked = false;
});
}
function doUpdate() {
}
switch (action) {
case 'delete':
doDelete();
break;
case 'update':
doUpdate();
break;
default:
break;
}
}); });
</script> </script>
{% endblock %} {% endblock %}
......
...@@ -188,7 +188,7 @@ $(document).ready(function(){ ...@@ -188,7 +188,7 @@ $(document).ready(function(){
var uid = $this.data('uid'); var uid = $this.data('uid');
var the_url = '{% url "api-assets:asset-detail" pk=99991937 %}'.replace('99991937', uid); var the_url = '{% url "api-assets:asset-detail" pk=99991937 %}'.replace('99991937', uid);
console.log(the_url); console.log(the_url);
objDelete($this, name, the_url); objectDelete($this, name, the_url);
setTimeout( function () { setTimeout( function () {
$data_table.ajax.reload(); $data_table.ajax.reload();
}, 3000); }, 3000);
......
...@@ -22,12 +22,14 @@ from django.views.decorators.csrf import csrf_protect, csrf_exempt ...@@ -22,12 +22,14 @@ from django.views.decorators.csrf import csrf_protect, csrf_exempt
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.core.cache import cache from django.core.cache import cache
from django.utils import timezone from django.utils import timezone
from django.contrib.auth.mixins import LoginRequiredMixin
from common.mixins import JSONResponseMixin from common.mixins import JSONResponseMixin
from common.utils import get_object_or_none from common.utils import get_object_or_none
from . import forms from . import forms
from .models import Asset, AssetGroup, AdminUser, IDC, SystemUser from .models import Asset, AssetGroup, AdminUser, IDC, SystemUser
from .hands import AdminUserRequiredMixin from .hands import AdminUserRequiredMixin
from .tasks import update_assets_hardware_info
class AssetListView(AdminUserRequiredMixin, TemplateView): class AssetListView(AdminUserRequiredMixin, TemplateView):
...@@ -44,7 +46,7 @@ class AssetListView(AdminUserRequiredMixin, TemplateView): ...@@ -44,7 +46,7 @@ class AssetListView(AdminUserRequiredMixin, TemplateView):
return super(AssetListView, self).get_context_data(**kwargs) return super(AssetListView, self).get_context_data(**kwargs)
class UserAssetListView(TemplateView): class UserAssetListView(LoginRequiredMixin, TemplateView):
template_name = 'assets/user_asset_list.html' template_name = 'assets/user_asset_list.html'
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
...@@ -64,7 +66,7 @@ class AssetCreateView(AdminUserRequiredMixin, CreateView): ...@@ -64,7 +66,7 @@ class AssetCreateView(AdminUserRequiredMixin, CreateView):
success_url = reverse_lazy('assets:asset-list') success_url = reverse_lazy('assets:asset-list')
def form_valid(self, form): def form_valid(self, form):
asset = form.save() self.asset = asset = form.save()
asset.created_by = self.request.user.username or 'Admin' asset.created_by = self.request.user.username or 'Admin'
asset.save() asset.save()
return super(AssetCreateView, self).form_valid(form) return super(AssetCreateView, self).form_valid(form)
...@@ -77,6 +79,10 @@ class AssetCreateView(AdminUserRequiredMixin, CreateView): ...@@ -77,6 +79,10 @@ class AssetCreateView(AdminUserRequiredMixin, CreateView):
kwargs.update(context) kwargs.update(context)
return super(AssetCreateView, self).get_context_data(**kwargs) return super(AssetCreateView, self).get_context_data(**kwargs)
def get_success_url(self):
update_assets_hardware_info.delay([self.asset])
return super(AssetCreateView, self).get_success_url()
class AssetModalCreateView(AdminUserRequiredMixin, ListView): class AssetModalCreateView(AdminUserRequiredMixin, ListView):
model = Asset model = Asset
...@@ -439,16 +445,12 @@ class AdminUserDetailView(AdminUserRequiredMixin, SingleObjectMixin, ListView): ...@@ -439,16 +445,12 @@ class AdminUserDetailView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
context_object_name = 'admin_user' context_object_name = 'admin_user'
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
self.object = self.get_object(queryset=AdminUser.objects.all()) self.object = self.get_object(queryset=AdminUser.objects.all())
return super(AdminUserDetailView, self).get(request, *args, **kwargs) return super(AdminUserDetailView, self).get(request, *args, **kwargs)
# Todo: queryset default order by connectivity, need ops support
def get_queryset(self): def get_queryset(self):
return self.object.assets.all() return self.object.assets.all()
# def get_asset_groups(self):
# return self.object.asset_groups.all()
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
asset_groups = AssetGroup.objects.all() asset_groups = AssetGroup.objects.all()
assets = self.get_queryset() assets = self.get_queryset()
...@@ -457,8 +459,6 @@ class AdminUserDetailView(AdminUserRequiredMixin, SingleObjectMixin, ListView): ...@@ -457,8 +459,6 @@ class AdminUserDetailView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
'action': 'Admin user detail', 'action': 'Admin user detail',
'assets_remain': [asset for asset in Asset.objects.all() if asset not in assets], 'assets_remain': [asset for asset in Asset.objects.all() if asset not in assets],
'asset_groups': asset_groups, 'asset_groups': asset_groups,
# 'asset_groups_remain': [asset_group for asset_group in AssetGroup.objects.all()
# if asset_group not in asset_groups]
} }
kwargs.update(context) kwargs.update(context)
return super(AdminUserDetailView, self).get_context_data(**kwargs) return super(AdminUserDetailView, self).get_context_data(**kwargs)
......
from django.views.generic import TemplateView from django.views.generic import TemplateView
from django.utils import timezone from django.utils import timezone
from django.db.models import Count from django.db.models import Count
from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import redirect
from users.utils import AdminUserRequiredMixin from users.utils import AdminUserRequiredMixin
from users.models import User from users.models import User
...@@ -8,9 +11,14 @@ from assets.models import Asset ...@@ -8,9 +11,14 @@ from assets.models import Asset
from audits.models import ProxyLog from audits.models import ProxyLog
class IndexView(AdminUserRequiredMixin, TemplateView): class IndexView(LoginRequiredMixin, TemplateView):
template_name = 'index.html' template_name = 'index.html'
def get(self, request, *args, **kwargs):
if not request.user.is_superuser:
return redirect('assets:user-asset-list')
return super(IndexView, self).get(request, *args, **kwargs)
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
seven_days_ago = timezone.now() - timezone.timedelta(days=7) seven_days_ago = timezone.now() - timezone.timedelta(days=7)
month_ago = timezone.now() - timezone.timedelta(days=30) month_ago = timezone.now() - timezone.timedelta(days=30)
......
{% load i18n %} {% load i18n %}
<li id="index">
<a href="">
<i class="fa fa-dashboard"></i><span class="nav-label">{% trans 'Dashboard' %}</span><span class="label label-info pull-right"></span>
</a>
</li>
<li id="assets"> <li id="assets">
<a href="{% url 'assets:user-asset-list' %}"> <a href="{% url 'assets:user-asset-list' %}">
<i class="fa fa-files-o"></i><span class="nav-label">{% trans 'My assets' %}</span><span class="label label-info pull-right"></span> <i class="fa fa-files-o"></i><span class="nav-label">{% trans 'My assets' %}</span><span class="label label-info pull-right"></span>
......
...@@ -100,8 +100,8 @@ class DevelopmentConfig(Config): ...@@ -100,8 +100,8 @@ class DevelopmentConfig(Config):
DB_NAME = os.path.join(BASE_DIR, 'db.sqlite3') DB_NAME = os.path.join(BASE_DIR, 'db.sqlite3')
EMAIL_HOST = 'smtp.exmail.qq.com' EMAIL_HOST = 'smtp.exmail.qq.com'
EMAIL_PORT = 465 EMAIL_PORT = 465
EMAIL_HOST_USER = 'ask@jumpserver.org' EMAIL_HOST_USER = 'a@jumpserver.org'
EMAIL_HOST_PASSWORD = 'xfDf4x1n' EMAIL_HOST_PASSWORD = 'somepasswrd'
EMAIL_USE_SSL = True EMAIL_USE_SSL = True
EMAIL_USE_TLS = False EMAIL_USE_TLS = False
EMAIL_SUBJECT_PREFIX = '[Jumpserver] ' EMAIL_SUBJECT_PREFIX = '[Jumpserver] '
......
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