329 lines
9.9 KiB
JavaScript
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;
|
|
}
|
|
})
|