Update sửa đổi địa chỉ IP ở phần Thêm thiết bị

This commit is contained in:
dongpd 2020-10-26 10:18:25 +07:00
parent fbb8a80da8
commit 7204a46da7
5 changed files with 208 additions and 3 deletions

View File

@ -502,4 +502,38 @@ class DeviceController extends Controller {
}
}
public function actionChangeIpSearchForm() {
Yii::$app->response->format = "json";
if (Yii::$app->request->post()) {
$data = json_decode(Yii::$app->request->post("data"), true);
return [
"title" => Html::tag("i", "", ["class" => "fa fa-pencil"]) . " Thay đổi địa chỉ IP",
"form" => $this->renderPartial("change-ip-search", [
"data" => $data,
"url" => Url::to(["change-ip-search"])
])
];
}
}
public function actionChangeIpSearch() {
Yii::$app->response->format = "json";
if (Yii::$app->request->post()) {
$data = Yii::$app->request->post();
if ($data["IpOld"] !== $data["IpNew"]) {
$res = common::requestToCardService("/ModifyIPAddress", [
"OldIPAddress" => $data["IpOld"],
"NewIPAddress" => $data["IpNew"],
"NetMask" => $data["SubnetMask"],
"GATEIPAddress" => $data["Gateway"],
"MAC" => $data["MAC"]
]);
if ($res == 0) {
return ["status" => true];
}
}
return ["status" => true];
}
}
}

View File

@ -0,0 +1,52 @@
<style>
.input-group-addon{
width: 140px;
text-align: left;
}
.input-group{
width: 100%;
}
.select2{
width: 100% !important;
}
</style>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">Địa chỉ IP cũ</div>
<input type="text" class="form-control" value="{$data.IP|default:""}" name="IpOld" readonly="">
</div>
<span class="help-block hidden"></span>
</div>
<div class="form-group" id="ip">
<div class="input-group">
<div class="input-group-addon">Địa chỉ IP mới</div>
<input type="text" class="form-control" value="{$data.IP|default:""}" name="IpNew">
</div>
<span class="help-block hidden"></span>
</div>
<div class="form-group" id="subnet_mask">
<div class="input-group">
<div class="input-group-addon">Subnet Mask</div>
<input type="text" class="form-control" value="{$data.NetMask|default:""}" name="SubnetMaskDevice">
</div>
<span class="help-block hidden"></span>
</div>
<div class="form-group" id="gateway">
<div class="input-group">
<div class="input-group-addon">Gateway</div>
<input type="text" class="form-control" value="{$data.GATEIPAddress|default:""}" name="Gateway">
</div>
<span class="help-block hidden"></span>
</div>
<input type="hidden" value="{$data.MAC}" name="MAC">
<input type="hidden" value="{$data.SN}" name="SN">
<input type="hidden" value="{$data.Device}" name="Device">
<input type="hidden" value="{$data.Ver}" name="Ver">
<div class="text-right">
<button class="btn btn-primary" onclick="changeIP(this);" data-href="{$url}">
<i class="fa fa-floppy-o"></i> Lưu
</button>
<button class="btn btn-default" data-dismiss="modal">
<span class="fa fa-remove"></span> Hủy
</button>
</div>

View File

@ -20,9 +20,9 @@
{/if}
</td>
<td>{$d.MAC|default:""}</td>
<td>{$d.IP|default:""}</td>
<td>{$d.NetMask|default:""}</td>
<td>{$d.GATEIPAddress|default:""}</td>
<td id="ip-{$d.SN}">{$d.IP|default:""}</td>
<td id="subnet-mask-{$d.SN}">{$d.NetMask|default:""}</td>
<td id="gateway-{$d.SN}">{$d.GATEIPAddress|default:""}</td>
<td>{$d.SN|default:""}</td>
<td>{$d.Device|default:""}</td>
<td class="text-center" id="status-{$d.SN}">

View File

@ -16,6 +16,9 @@
<label class="action-button hidden" id='add-button-enabled' onclick="_process(this);" data-href='{Url::to(['process'])}'>
<i class="fa fa-plus fa-1-5x"></i> Thêm thiết bị
</label>
<label class="action-button" onclick="_form(this);" data-href="{Url::to(['change-ip-search-form'])}">
<i class="fa fa-pencil fa-1-5x"></i> Thay đổi địa chỉ IP
</label>
</div>
<div id="table-device">
<table class="table table-bordered table-hover table-striped" style="background:#fff;">

View File

@ -94,4 +94,120 @@ function _import(data) {
common.ajaxError();
}
});
}
function _form(e) {
var lists = [];
$.each($("input[name='checkbox-device']:checked"), function () {
lists.push($(this).val());
});
if (lists.length == 0) {
alert("Vui lòng lựa chọn đối tượng để thay đổi!");
return;
}
if (lists.length > 1) {
alert("Tác vụ này không thể lựa chọn nhiều hơn một đối tượng!");
return;
}
common.modalBlock(true);
$.ajax({
url: $(e).attr('data-href'),
type: 'POST',
data: {
data: lists[0]
},
success: function (data) {
common.modalBlock(false);
common.modalOpen(data.form, false, data.title);
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
common.ajaxError();
}
});
}
function validateChangeIP() {
var error = 0;
var Ip = $("input[name='IpNew']").val();
if (Ip === "") {
common.error("ip", "Địa chỉ IP mới không được để trống");
error++;
} else if (!common.validateIp(Ip)) {
common.error("ip", "Định dạng địa chỉ IP không đúng");
error++;
} else {
common.success("ip");
}
var SubnetMask = $("input[name='SubnetMask']").val();
if (SubnetMask === "") {
common.error("subnet_mask", "Subnet mask không được để trống");
error++;
} else if (!common.validateIp(SubnetMask)) {
common.error("subnet_mask", "Định dạng Subnet mask không đúng");
error++;
} else {
common.success("subnet_mask");
}
var Gateway = $("input[name='Gateway']").val();
if (Gateway === "") {
common.error("gateway", "Gateway không được để trống");
error++;
} else if (!common.validateIp(Gateway)) {
common.error("gateway", "Định dạng Gateway không đúng");
error++;
} else {
common.success("gateway");
}
return error == 0 ? true : false;
}
function changeIP(e) {
if (validateChangeIP()) {
common.modalBlock(true);
$.ajax({
url: $(e).attr('data-href'),
type: 'POST',
data: {
IpOld: $("input[name='IpOld']").val(),
IpNew: $("input[name='IpNew']").val(),
SubnetMask: $("input[name='SubnetMaskDevice']").val(),
Gateway: $("input[name='Gateway']").val(),
MAC: $("input[name='MAC']").val()
},
success: function (data) {
common.modalBlock(false);
var SN = $("input[name='SN']").val();
if (data.status) {
notification.success("Đổi IP thiết bị thành công", 1000);
$("#myModal").modal("hide");
$("#ip-" + SN).html($("input[name='IpNew']").val());
$("#subnet-mask-" + SN).html($("input[name='SubnetMaskDevice']").val());
$("#gateway-" + SN).html($("input[name='Gateway']").val());
var params = {
MAC: $("input[name='MAC']").val(),
IP: $("input[name='IpNew']").val(),
NetMask: $("input[name='SubnetMaskDevice']").val(),
GATEIPAddress: $("input[name='Gateway']").val(),
SN: $("input[name='SN']").val(),
Device: $("input[name='Device']").val(),
Ver: $("input[name='Ver']").val()
};
$("#checkbox-" + SN).find("input").val(JSON.stringify(params));
} else {
if (data.type === "ip") {
common.error("ip", "Địa chỉ ip đã tồn tại");
} else {
notification.danger("Có lỗi xảy ra, không lưu được dữ liệu!", 1000);
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
alert("Có lỗi xảy ra! hãy kiểm tra lại service!");
}
});
}
}