forked from RobbieHan/sandboxMP
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
478 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
from django.views.generic import TemplateView | ||
|
||
from system.mixin import LoginRequiredMixin | ||
from custom import (BreadcrumbMixin, SandboxDeleteView, | ||
SandboxListView, SandboxUpdateView, SandboxCreateView) | ||
from .models import Cabinet | ||
|
||
|
||
class CabinetView(LoginRequiredMixin, BreadcrumbMixin, TemplateView): | ||
template_name = 'cmdb/cabinet.html' | ||
|
||
|
||
class CabinetCreateView(SandboxCreateView): | ||
model = Cabinet | ||
fields = '__all__' | ||
|
||
|
||
class CabinetUpdateView(SandboxUpdateView): | ||
model = Cabinet | ||
fields = '__all__' | ||
|
||
|
||
class CabinetListView(SandboxListView): | ||
model = Cabinet | ||
fields = ['id', 'number', 'position', 'desc'] | ||
|
||
def get_filters(self): | ||
data = self.request.GET | ||
filters = {} | ||
if 'number' in data and data['number']: | ||
filters['number__icontains'] = data['number'] | ||
if 'position' in data and data['position']: | ||
filters['position__icontains'] = data['position'] | ||
return filters | ||
|
||
|
||
class CabinetDeleteView(SandboxDeleteView): | ||
model = Cabinet |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,276 @@ | ||
{% extends "base-left.html" %} | ||
{% load staticfiles %} | ||
|
||
{% block css %} | ||
<link rel="stylesheet" href="{% static 'plugins/datatables/jquery.dataTables.min.css' %}"> | ||
<link rel="stylesheet" href="{% static 'js/plugins/layer/skin/layer.css' %}"> | ||
<link rel="stylesheet" href="{% static 'plugins/select2/select2.min.css' %}"> | ||
{% endblock %} | ||
|
||
{% block content %} | ||
|
||
<!-- Main content --> | ||
<section class="content"> | ||
<div id="devlist"> | ||
<div class="box box-primary" id="liebiao"> | ||
<div class="box-header"> | ||
<div class="btn-group pull-left"> | ||
<button type="button" id="btnRefresh" class="btn btn-default"> | ||
<i class="glyphicon glyphicon-repeat"></i>刷新 | ||
</button> | ||
</div> | ||
<div class="btn-group pull-left"> </div> | ||
<div class="btn-group pull-left"> | ||
<button type="button" id="btnCreate" class="btn btn-default"> | ||
<i class="glyphicon glyphicon-plus"></i>新增 | ||
</button> | ||
|
||
</div> | ||
<div class="btn-group pull-left"> </div> | ||
<div class="btn-group pull-left"> | ||
<button type="button" id="btnDelete" class="btn btn-default"> | ||
<i class="glyphicon glyphicon-trash"></i>删除 | ||
</button> | ||
</div> | ||
<div class="pull-right"> | ||
<form class="form-inline" id="queryForm"> | ||
<div class="form-group searchArea margin-r-5 margin-top-5"> | ||
<label>机柜编号:</label> | ||
<input type="text" name="number" class="form-control inputText" id="number"> | ||
</div> | ||
<div class="form-group searchArea margin-r-5 margin-top-5"> | ||
<label>机柜位置:</label> | ||
<input type="text" name="position" class="form-control inputText" id="position"> | ||
</div> | ||
<button type="button" id="btnSearch" class="btn btn-default"> | ||
<i class="glyphicon glyphicon-search"></i>查询 | ||
</button> | ||
</form> | ||
</div> | ||
</div> | ||
|
||
<div class="box-body"> | ||
<table id="dtbList" class="display" cellspacing="0" width="100%"> | ||
<thead> | ||
<tr valign="middle"> | ||
<th><input type="checkbox" id="checkAll"></th> | ||
<th>ID</th> | ||
<th>机柜编号</th> | ||
<th>机柜位置</th> | ||
<th>备注信息</th> | ||
<th>操作</th> | ||
</tr> | ||
</thead> | ||
<tbody> | ||
</tbody> | ||
</table> | ||
<br> <br> | ||
</div> | ||
</div> | ||
</div> | ||
|
||
</section> | ||
|
||
<!-- /.content --> | ||
|
||
{% endblock %} | ||
|
||
|
||
{% block javascripts %} | ||
|
||
<script src="{% static 'plugins/datatables/jquery.dataTables.min.js' %}"></script> | ||
<script src="{% static 'plugins/datatables/dataTables.const-1.js' %}"></script> | ||
<script src="{% static 'js/plugins/layer/layer.js' %}"></script> | ||
<script src="{% static 'plugins/select2/select2.full.min.js' %}"></script> | ||
|
||
<script type="text/javascript"> | ||
// 菜单选中高亮 | ||
$(function () { | ||
$('#CMDB-EAM').addClass('active'); | ||
$('#CMDB-EAM-CABINET').addClass('active'); | ||
|
||
}); | ||
|
||
// datatables 初始化配置 | ||
var oDataTable = null; | ||
$(function () { | ||
oDataTable = initTable(); | ||
|
||
function initTable() { | ||
var oTable = $('#dtbList').DataTable($.extend(true, {}, | ||
DATATABLES_CONSTANT.DATA_TABLES.SERVER_SIDE_OPTION, | ||
|
||
{ | ||
ajax: { | ||
"url": "{% url 'cmdb:eam-cabinet-list' %}", | ||
"data": function (d) { | ||
d.number = $("#number").val(); | ||
d.position = $("#position").val(); | ||
} | ||
}, | ||
columns: [ | ||
DATATABLES_CONSTANT.DATA_TABLES.COLUMN.CHECKBOX, | ||
{ | ||
data: "id", | ||
width: "5%", | ||
}, | ||
{ | ||
data: "number", | ||
//width : "20%", | ||
}, | ||
{ | ||
data: "position", | ||
//width : "20%", | ||
}, | ||
{ | ||
data: "desc", | ||
//width : "20%", | ||
}, | ||
{ | ||
data: "id", | ||
width: "10%", | ||
bSortable: "false", | ||
render: function (data, type, row, meta) { | ||
var ret = ""; | ||
var ret = "<button title='详情-修改' onclick='doUpdate(" | ||
+ data + ")'><i class='glyphicon glyphicon-pencil'></i></button>"; | ||
ret = ret + "<button title='删除' onclick='doDelete(" | ||
+ data + ")'><i class='glyphicon glyphicon-trash'></i></button>"; | ||
return ret; | ||
} | ||
}], | ||
})); | ||
return oTable; | ||
} | ||
|
||
}); | ||
|
||
// 刷新数据 | ||
$("#btnRefresh").click(function () { | ||
oDataTable.ajax.reload(); | ||
}); | ||
//新建数据 | ||
$("#btnCreate").click(function () { | ||
layer.open({ | ||
type: 2, | ||
title: '新增', | ||
shadeClose: false, | ||
maxmin: true, | ||
area: ['800px', '400px'], | ||
content: "{% url 'cmdb:eam-cabinet-create' %}", | ||
end: function () { | ||
//关闭时做的事情 | ||
oDataTable.ajax.reload(); | ||
} | ||
}); | ||
}); | ||
|
||
//修改数据 | ||
function doUpdate(id) { | ||
layer.open({ | ||
type: 2, | ||
title: '编辑', | ||
shadeClose: false, | ||
maxmin: true, | ||
area: ['800px', '400px'], | ||
content: ["{% url 'cmdb:eam-cabinet-update' %}" + '?id=' + id, 'no'], | ||
end: function () { | ||
oDataTable.ajax.reload(); | ||
} | ||
}); | ||
} | ||
|
||
//checkbox全选 | ||
$("#checkAll").on("click", function () { | ||
if ($(this).prop("checked") === true) { | ||
$("input[name='checkList']").prop("checked", $(this).prop("checked")); | ||
$('#example tbody tr').addClass('selected'); | ||
} else { | ||
$("input[name='checkList']").prop("checked", false); | ||
$('#example tbody tr').removeClass('selected'); | ||
} | ||
}); | ||
|
||
//批量删除 | ||
$("#btnDelete").click(function () { | ||
if ($("input[name='checkList']:checked").length == 0) { | ||
layer.msg("请选择要删除的记录"); | ||
return; | ||
} | ||
|
||
var arrId = new Array(); | ||
$("input[name='checkList']:checked").each(function () { | ||
//alert($(this).val()); | ||
arrId.push($(this).val()); | ||
}); | ||
|
||
sId = arrId.join(','); | ||
|
||
layer.alert('确定删除吗?', { | ||
title: '提示' | ||
, icon: 3 //0:感叹号 1:对号 2:差号 3:问号 4:小锁 5:哭脸 6:笑脸 | ||
, time: 0 //不自动关闭 | ||
, btn: ['YES', 'NO'] | ||
, yes: function (index) { | ||
layer.close(index); | ||
$.ajax({ | ||
type: "POST", | ||
url: "{% url 'cmdb:eam-cabinet-delete' %}", | ||
data: {"id": sId, csrfmiddlewaretoken: '{{ csrf_token }}'}, | ||
cache: false, | ||
success: function (msg) { | ||
if (msg.result) { | ||
layer.alert("操作成功", {icon: 1}); | ||
oDataTable.ajax.reload(); | ||
} else { | ||
//alert(msg.message); | ||
layer.alert("操作失败", {icon: 2}); | ||
} | ||
return; | ||
} | ||
}); | ||
} | ||
}); | ||
}); | ||
|
||
//删除单个数据 | ||
function doDelete(id) { | ||
layer.alert('确定删除吗?', { | ||
title: '提示' | ||
, icon: 3 //0:感叹号 1:对号 2:差号 3:问号 4:小锁 5:哭脸 6:笑脸 | ||
, time: 0 //不自动关闭 | ||
, btn: ['YES', 'NO'] | ||
, yes: function (index) { | ||
layer.close(index); | ||
$.ajax({ | ||
type: "POST", | ||
url: "{% url 'cmdb:eam-cabinet-delete' %}", | ||
data: {"id": id, csrfmiddlewaretoken: '{{ csrf_token }}'}, | ||
cache: false, | ||
success: function (msg) { | ||
if (msg.result) { | ||
layer.alert('删除成功', {icon: 1}); | ||
oDataTable.ajax.reload(); | ||
} else { | ||
//alert(msg.message); | ||
layer.alert('删除失败', {icon: 2}); | ||
} | ||
return; | ||
} | ||
}); | ||
} | ||
}); | ||
} | ||
|
||
//select2 | ||
$(function () { | ||
//Initialize Select2 Elements | ||
$(".select2").select2(); | ||
}); | ||
|
||
$("#btnSearch").click(function(){ | ||
oDataTable.ajax.reload(); | ||
}); | ||
|
||
</script> | ||
{% endblock %} |
Oops, something went wrong.