FAISP/src/main/resources/static/js/translator/translator.js

329 lines
9.9 KiB
JavaScript

let trCarrerList=[];
let selectedIdx=0;
$(document).on('click', '.userInfoTr', function (event){
$("#selectedKey").val($(this).find(".trKey").val())
$("#selectedVerNo").val($(this).find(".verNo").val())
const x = event.clientX;
const y = event.clientY;
$(".dropdown-menu.show").attr('style','position: absolute; inset: 0px auto auto 0px; margin: 0px; transform: translate(4px, 100px);');
})
function traslatorInfo(trKey){
console.log(trKey);
}
$(document).on('click', '.translatorInfo', function (){
console.log($(this));
document.getElementById('accessTab').classList.add('active');
document.getElementById('approvalTab').classList.remove('active');
const trKey = Number($("#selectedKey").val());
const verNo = Number($("#selectedVerNo").val());
console.log(trKey);
console.log(verNo);
const url = '/translator/translatorEditModal';
revisionHistory(trKey,verNo,url);
var html="";
html += '<input type="hidden" class="tapTrKey" value="'+trKey+'">';
html += '<input type="hidden" class="tapVerNo" value="'+verNo+'">';
$("#KeyValue").empty().html(html)
})
$(document).on('click', '.careerInfo', function (){
const trKey = (Number($(this).parents("tr").find('.trKey').val()));
$.ajax({
url: '/translator/careerView',
data: {
translatorKey: trKey,
},
type: 'GET',
dataType:"html",
success: function(html){
$("#careerView").empty().append(html)
$("#translatorCareerModal").modal('show');
},
error:function(){
}
});
})
$(document).on('click', '#trView', function (){
document.getElementById('accessTab').classList.add('active');
document.getElementById('approvalTab').classList.remove('active');
const trKey = (Number($(this).find(".trKey").val()));
const verNo = (Number($(this).find(".verNo").val()));
const url = '/translator/translatorEditModal';
revisionHistory(trKey,verNo,url);
var html="";
html += '<input type="hidden" class="tapTrKey" value="'+trKey+'">';
html += '<input type="hidden" class="tapVerNo" value="'+verNo+'">';
$("#KeyValue").empty().html(html);
})
$(document).on('click', '#updateBtn', function (){
if(confirm("수정하시겠습니까?")){
contentFade("in");
const formData = new FormData($("#trInfoUpdate")[0]);
$.ajax({
type : 'POST',
data : formData,
url : "/translator/updatetranslatorInfo",
processData: false,
contentType: false,
success : function() {
alert("수정되었습니다.");
contentFade("out");
location.reload();
},
error : function(xhr, status) {
alert("수정에 실패하였습니다.");
contentFade("out");
}
})
}
})
$(document).on('click', '#saveBtn', function (){
console.log(trCarrerList);
if(confirm("저장하시겠습니까?")){
contentFade("in");
const formData = new FormData($("#translatorInsert")[0]);
for(const carrer of trCarrerList){
formData.append('contents', carrer.contents)
formData.append('hisGubun', carrer.hisGubun)
formData.append('remark', carrer.remark)
formData.append('tcDt', carrer.tcDt)
}
// var values = JSON.stringify(trCarrerList);
// $('input[name=TranslatorCrr]').val(values);
$.ajax({
type : 'POST',
data : formData,
url : "/translator/insertTranslatorInfo",
processData: false,
contentType: false,
success : function(result) {
alert("저장되었습니다.")
contentFade("out");
location.reload();
},
error : function(xhr, status) {
alert("저장에 실패하였습니다.")
contentFade("out");
}
})
}
})
function valueCheck(form){
const targetForm = $("#"+form);
const userId = targetForm.find("#userId").val();
const password = targetForm.find("#modalPassword");
const passwordConfirm = targetForm.find("#passwordConfirm");
const userNm = targetForm.find("#userNm").val();
const ogCd = targetForm.find("#ogCd").val();
const ofcCd = targetForm.find("#ofcCd").val();
let returnFlag = true;
if(!userId){
alert("아이디를 입력해주세요.");
returnFlag = false;
}else{
const idReg = /^[a-z]+[a-z0-9]{5,19}$/g;
if(!idReg.test(userId)){
returnFlag = false;
alert("아이디 조건이 맞지 않습니다.")
}
}
if(!password[0].disabled && !password.val()){
alert("비밀번호를 입력해주세요.");
returnFlag = false;
}
if(!password[0].disabled && !passwordConfirm.val()){
alert("비밀번호 확인을 입력해주세요.");
returnFlag = false;
}
if(!userNm){
alert("이름 입력해주세요.");
returnFlag = false;
}
if(returnFlag){
const passwordReg = /^(?=.*[a-zA-z])(?=.*[0-9])(?=.*[$`~!@$!%*#^?&\\(\\)\-_=+]).{8,16}$/;
if(!password[0].disabled){
if(!passwordReg.test(password.val())){
alert("비밀번호 조건이 맞지 않습니다.")
returnFlag = false;
}else{
if(password.val() !== passwordConfirm.val()){
alert("비밀번호가 같지 않습니다.");
returnFlag = false;
}
}
}
}
if(!ogCd){
alert("관서를 선택해주세요.");
returnFlag = false;
}
if(!ofcCd){
alert("부서를 선택해주세요.");
returnFlag = false;
}
return returnFlag;
}
$(document).on('click', '.historyInfoTr', function (){
$.ajax({
url: '/translator/HistoryView',
data: {
translatorKey: Number($(this).find(".trKey").val()),
versionNo : Number($(this).find(".verNo").val())
},
type: 'GET',
dataType:"json",
success: function(data){
$("#ogdp1V").val(data.ogdp1);
$("#trLangV").val(data.trLang);
$("#trCareerV").val(data.trCareer);
$("#trNameV").val(data.trName);
$("#trSexV").val(data.trSex);
$("#trPhoneV").val(data.trPhone);
$("#trNnyV").val(data.trNny);
$("#trAgeV").val(data.trAge);
$("#trVisaV").val(data.trVisa);
$("#trEduV").val(data.trEdu);
$("#trCftV").val(data.trCft);
$("#aptDtV").val(data.aptDt);
$("#dmlYnV").val(data.dmlYn);
$("#remarkV").val(data.remark);
// $("#configInfo").empty().append(html)
// $("#translatorEditModal").modal('show');
},
error:function(){
}
});
})
$(document).ready( function() {
$("#aptDt").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$(".tcDt").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
});
$(document).on('click', '#approvalTab', function (){
const trKey = (Number($('.tapTrKey').val()));
const verNo = (Number($('.tapVerNo').val()));
const url = '/translator/revisionHistory';
revisionHistory(trKey,verNo,url);
document.getElementById('accessTab').classList.remove('active');
document.getElementById('approvalTab').classList.add('active');
})
$(document).on('click', '#accessTab', function (){
const trKey = (Number($('.tapTrKey').val()));
const verNo = (Number($('.tapVerNo').val()));
const url = '/translator/translatorEditModal';
revisionHistory(trKey,verNo,url);
document.getElementById('approvalTab').classList.remove('active');
document.getElementById('accessTab').classList.add('active');
})
function revisionHistory(trKey,verNo,url){
$.ajax({
url: url,
data: {
translatorKey: trKey,
versionNo : verNo
},
type: 'GET',
dataType:"html",
success: function(html){
$("#configInfo").empty().append(html)
$("#translatorEditModal").modal('show');
},
error:function(){
}
});
}
$(document).on('change', '#trNny', function (){
if($(this).val() == "NNY001"){
$("#trVisa").attr("disabled",true);
}else{
$("#trVisa").removeAttr("disabled");
}
});
$(document).on('click', '#crrAddBtn', function (){
$('#crr').append(
'<div class="mb-5 row" id="crrDiv">'+
'<div class="col-sm-1">'+
'<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn"><i class="bi bi-x"></i></button>'+
'</div>'+
'<label for="ogCd" class="col-sm-2 col-form-label text-center">경력구분</label>'+
'<div class="col-sm-2">'+
'<select class="form-select form-select-sm crrInput" name="hisGubun">'+
'<option value="">선택</option>'+
'<option value="Y">해양경찰청</option>'+
'<option value="N">타기관</option>'+
'</select>'+
'</div>'+
'<label for="ofcCd" class="col-sm-1 col-form-label text-center">날짜</label>'+
'<div class="col-sm-2">'+
'<input type="text" class="form-control tcDt crrInput" id="tcDt" name="tcDt">'+
'</div>'+
'<label for="ofcCd" class="col-sm-1 col-form-label text-center">내용</label>'+
'<div class="col-sm-4">'+
'<input type="text" class="form-control crrInput" id="contents" name="contents">'+
'</div>'+
'<label for="ofcCd" class="col-sm-1 col-form-label text-center">비고</label>'+
'<div class="col-sm-4">'+
'<input type="text" class="form-control crrInput" id="remark" name="remark">'+
'</div>'+
'</div>'
)
$(".tcDt").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
trCarrerList.push({hisGubun:"",tcDt:"",contents:"",remark:""});
console.log(trCarrerList);
})
$(document).on('click', '.rowDeleteBtn', function (){
console.log($(this).parents('#crr').children('#crrDiv'));
selectedIdx = $(this).parents('#crr').children('#crrDiv').length-1;
trCarrerList.splice(selectedIdx,1);
console.log(selectedIdx);
console.log(trCarrerList);
$(this).parents('#crrDiv').remove();
})
$(document).on('change', '.crrInput', function (){
selectedIdx = $(this).parents('#crr').children('#crrDiv').length-1;
const target = trCarrerList[selectedIdx];
console.log(target)
switch (this.name){
case "hisGubun":
target.hisGubun = this.value
break;
case "tcDt":
target.tcDt = this.value
break;
case "contents":
target.contents = this.value
break;
case "remark":
target.remark = this.value
break;
}
})