FAISP/src/main/resources/static/js/fipTarget/vulnerable.js

199 lines
4.7 KiB
JavaScript

let files = [];
$(document).ready(function(){
$(".table_id").each(function(){
var rows = $(".table_id:contains('"+$(this).text()+"')");
if(rows.length > 1){
rows.eq(0).attr("rowspan", rows.length);
rows.not(":eq(0)").remove();
}
})
});
$(document).on('click', '#addVuln', function (){
const vulnKey =null;
vulnEditModal(vulnKey);
})
function vulnEditModal(vulnKey){
$.ajax({
url: '/target/vulnEditModal',
type: 'GET',
data: {vulnKey:vulnKey},
dataType:"html",
success: function(html){
$("#vulnEditModalContent").empty().append(html);
$("#vulnEditModal").modal('show');
setUploadDiv();
},
error:function(){
}
});
}
$(document).on('click', '#saveVuln', function() {
if (Validation()) {
if (confirm("저장하시겠습니까?")) {
document.getElementById("mgtOrgan").disabled = false;
contentFade("in");
const formData = new FormData($("#saveVulnoFm")[0]);
for (const file of files) {
if (!file.isDelete)
formData.append('uploadFiles', file, file.name);
}
$.ajax({
type: 'POST',
data: formData,
url: "/target/saveVulnerable",
processData: false,
contentType: false,
success: function(result) {
alert("저장되었습니다.");
contentFade("out");
location.reload();
},
error: function(xhr, status) {
alert("저장에 실패하였습니다.")
contentFade("out");
}
})
}
}
})
$(document).on('click', '#infoModal', function (){
const mgtOrgan = $(this).attr("data-mgtOrgan");
$.ajax({
url: '/target/vulnInfoModal',
type: 'GET',
data: {mgtOrgan:mgtOrgan},
dataType:"html",
success: function(html){
$("#vulnEditModalContent").empty().append(html);
$("#vulnEditModal").modal('show');
},
error:function(){
}
});
})
$(document).on('click', '#viewModal', function (){
const vulnKey = $(this).attr("data-vulnKey");
$.ajax({
url: '/target/vulnViewModal',
type: 'GET',
data: {vulnKey:vulnKey},
dataType:"html",
success: function(html){
$("#vulnEditModalContent").empty().append(html);
$("#vulnEditModal").modal('show');
},
error:function(){
}
});
})
$(document).on('click', '#fileDown', function (){
const target = $(this)
let url = "/target/vulnFileDownload?"
url += "&fileSeq="+target.attr("data-fileSeq");
url += "&vulnKey="+target.attr("data-vulnKey");
window.open(encodeURI(url));
})
$(document).on('click', '#deleteVuln', function (){
const vulnKey = $('input[name=vulnKey]').val();
if(confirm("삭제하시겠습니까?")){
contentFade("in");
$.ajax({
type : 'POST',
url : "/target/deleteVulnerable",
data : JSON.stringify({vulnKey:vulnKey}),
contentType: 'application/json',
beforeSend: function (xhr){
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
},
success : function(data) {
alert("삭제 처리되었습니다.");
location.reload();
},
error : function(xhr, status) {
alert("삭제 처리에 실패하였습니다");
}
})
}
})
$(document).on('click', '#goEdit', function (){
const vulnKey = $(this).attr("data-vulnKey");
vulnEditModal(vulnKey);
})
$(document).on('click', '#updateVuln', function (){
if(Validation()){
if(confirm("수정하시겠습니까?")){
contentFade("in");
const formData = new FormData($("#saveVulnoFm")[0]);
document.getElementById("mgtOrgan").disabled = false;
for(const file of files) {
if(!file.isDelete)
formData.append('uploadFiles', file, file.name);
}
$(".text-decoration-line-through").each(function (idx, el){
formData.append('fileSeq', $(el).attr("data-fileseq"));
})
$.ajax({
type : 'POST',
data : formData,
url : "/target/saveVulnerable",
processData: false,
contentType: false,
success : function(data) {
alert("수정되었습니다.");
contentFade("out");
vulnEditModal(data)
},
error : function(xhr, status) {
alert("수정에 실패하였습니다.")
contentFade("out");
}
})
}
}
})
function Validation(){
let flag = true;
if($('#mgtOrgan').val() == ""){
alert("경찰서를 선택해주세요.");
$('#mgtOrgan').focus();
flag = false;
}
if($('#vulnNm').val() == ""){
alert("취약지명을 입력해주세요.");
$('#vulnNm').focus();
flag = false;
}
if($('#vulnType').val() == ""){
alert("취약등급을 선택해 주세요.");
$('#vulnType').focus();
flag = false;
}
return flag;
}
$(document).on('click', '#btn-close', function (){
location.reload();
})