외사경찰 > 경력현황 작업중.
parent
b544f6296a
commit
5646a8cdb0
|
|
@ -200,7 +200,7 @@ public class FaispController {
|
|||
}
|
||||
|
||||
@GetMapping("/careerMgt")
|
||||
public ModelAndView careerMgt(@AuthenticationPrincipal UserInfo loginUser, UserInfo userInfo, HttpServletResponse response){
|
||||
public ModelAndView careerMgt(@AuthenticationPrincipal UserInfo loginUser, UserInfo userInfo){
|
||||
ModelAndView mav = new ModelAndView("faisp/career/careerMgt");
|
||||
userInfo.setDownOrganCdList(loginUser.getDownOrganCdList());
|
||||
if(userInfo.getUserStatus() == null) {
|
||||
|
|
@ -219,6 +219,18 @@ public class FaispController {
|
|||
mav.addObject("searchParams", userInfo);
|
||||
return mav;
|
||||
}
|
||||
@GetMapping("/careerEditModal")
|
||||
public ModelAndView careerEditModal(@AuthenticationPrincipal UserInfo loginUser, UserInfo userInfo){
|
||||
ModelAndView mav = new ModelAndView("faisp/career/careerEditModal");
|
||||
|
||||
//메뉴권한 확인
|
||||
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faisp/educationMgt").get(0).getAccessAuth();
|
||||
mav.addObject("accessAuth", accessAuth);
|
||||
mav.addObject("userInfo", userInfoService.selectPoliceInfo(userInfo.getUserSeq()));
|
||||
/*mav.addObject("eduList", userInfoService.selectEduList());*/
|
||||
mav.addObject("userSeq", loginUser.getUserSeq());
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/educationMgt")
|
||||
public ModelAndView educationMgt(@AuthenticationPrincipal UserInfo loginUser, UserInfo userInfo, HttpServletResponse response){
|
||||
|
|
|
|||
|
|
@ -132,7 +132,6 @@ function getFaRptEditModal(faRpt){
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
function saveFaRpt(faRptState){
|
||||
if(contentCheck()){
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
|
|
|
|||
|
|
@ -1,169 +1,158 @@
|
|||
$(document).on('change', '#year', function (){
|
||||
$("#searchFm").submit();
|
||||
let eduList=[];
|
||||
let selectedIdx=0;
|
||||
|
||||
|
||||
$(document).on('click', '#previousTab', function (){
|
||||
const userStatus = $(this).data('userstatus');
|
||||
location.href = "/faisp/careerMgt?userStatus="+userStatus;
|
||||
})
|
||||
|
||||
$(document).on('click', '#personnelStatusEditModalBtn', function (){
|
||||
$("#personnelStatusEditDiv").empty();
|
||||
$("#personnelStatusEditModal").modal('show');
|
||||
$(document).on('click', '#presentTab', function (){
|
||||
const userStatus = $(this).data('userstatus');
|
||||
location.href = "/faisp/careerMgt?userStatus="+userStatus;
|
||||
})
|
||||
$(document).on('click', '#notPoliceTab', function (){
|
||||
const userStatus = $(this).data('userstatus');
|
||||
location.href = "/faisp/careerMgt?userStatus="+userStatus;
|
||||
})
|
||||
|
||||
$(document).on('click', '#personnelStatusAddBtn', function (){
|
||||
$(document).on('click', '.policeTr', function (){
|
||||
$.ajax({
|
||||
url: '/faisp/personnelStatusRow',
|
||||
url: '/faisp/careerEditModal',
|
||||
data: {userSeq: $(this).find(".userSeq").val()},
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#personnelStatusEditDiv").append(html)
|
||||
$("#careerEditModalContent").empty().append(html);
|
||||
$(".dateSelector").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko",
|
||||
autoclose: true
|
||||
});
|
||||
$("#careerEditModal").modal('show');
|
||||
},
|
||||
error:function(){
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$(document).on('click', '#eduAddBtn', function (){
|
||||
const userSeq = (Number($(this).data('userseq')));
|
||||
$('#insertEdu').append(
|
||||
'<div id="eduDiv">'+
|
||||
'<div class="mb-4 row">'+
|
||||
'<label for="ogCd" class="col-sm-1 col-form-label col-form-label-sm text-center">교육명</label>'+
|
||||
'<div class="col-sm-2">'+
|
||||
'<input type="text" class="form-control form-control-sm tcDt eduInput" name="eduName">'+
|
||||
'</div>'+
|
||||
'<label for="ofcCd" class="col-sm-1 col-form-label col-form-label-sm text-center">교육시작</label>'+
|
||||
'<div class="col-sm-2">'+
|
||||
'<input type="text" class="form-control form-control-sm eduSdate eduInput" name="eduSdate" readonly>'+
|
||||
'</div>'+
|
||||
'<label for="ofcCd" class="col-sm-1 col-form-label col-form-label-sm text-center">교육종료</label>'+
|
||||
'<div class="col-sm-2">'+
|
||||
'<input type="text" class="form-control form-control-sm eduEdate eduInput" name="eduEdate" readonly>'+
|
||||
'</div>'+
|
||||
'<label for="ofcCd" class="col-sm-1 col-form-label col-form-label-sm text-center">담당기관</label>'+
|
||||
'<div class="col-sm-2">'+
|
||||
'<input type="text" class="form-control form-control-sm eduInput" name="eduRa">'+
|
||||
'</div>'+
|
||||
'</div>'+
|
||||
'<div class="row justify-content-center">'+
|
||||
'<div class="col-sm-1">'+
|
||||
'<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn"><i class="bi bi-x"></i></button>'+
|
||||
'</div>'+
|
||||
'</div>'+
|
||||
'</div>'
|
||||
)
|
||||
$(".eduSdate").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
});
|
||||
$(".eduEdate").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko"
|
||||
});
|
||||
eduList.push({userSeq:userSeq, eduName:"",eduSdate:"",eduEdate:"",eduRa:""});
|
||||
})
|
||||
|
||||
$(document).on('click', '.personnelStatusRemoveBtn', function (){
|
||||
$(this).parents(".personnelStatusRow").remove();
|
||||
$(document).on('click', '.rowDeleteBtn', function (){
|
||||
selectedIdx = $(this).parents("#eduDiv").index()-1;
|
||||
eduList.splice(selectedIdx,1);
|
||||
$(this).parents('#eduDiv').remove();
|
||||
})
|
||||
|
||||
$(document).on('change', '.ogCd', function (){
|
||||
const personnelStatusRow = $(this).parents(".personnelStatusRow");
|
||||
if(this.value !== ''){
|
||||
personnelStatusRow.find(".nowPersonnelStatusBtn")[0].className = "btn btn-sm btn-success nowPersonnelStatusBtn";
|
||||
$.ajax({
|
||||
url: '/faisp/selectPersonnelStatus',
|
||||
type: 'GET',
|
||||
data: {year: new Date().getFullYear(), ogCd: this.value},
|
||||
dataType:"json",
|
||||
success: function(data){
|
||||
personnelStatusRow.find(".jt007Max").val(data.jt007Max);
|
||||
personnelStatusRow.find(".jt007Now").val(data.jt007Now);
|
||||
personnelStatusRow.find(".jt006Max").val(data.jt006Max);
|
||||
personnelStatusRow.find(".jt006Now").val(data.jt006Now);
|
||||
personnelStatusRow.find(".jt005Max").val(data.jt005Max);
|
||||
personnelStatusRow.find(".jt005Now").val(data.jt005Now);
|
||||
personnelStatusRow.find(".jt004Max").val(data.jt004Max);
|
||||
personnelStatusRow.find(".jt004Now").val(data.jt004Now);
|
||||
personnelStatusRow.find(".jt003Max").val(data.jt003Max);
|
||||
personnelStatusRow.find(".jt003Now").val(data.jt003Now);
|
||||
personnelStatusRow.find(".jt002Max").val(data.jt002Max);
|
||||
personnelStatusRow.find(".jt002Now").val(data.jt002Now);
|
||||
personnelStatusRow.find(".jt001Max").val(data.jt001Max);
|
||||
personnelStatusRow.find(".jt001Now").val(data.jt001Now);
|
||||
},
|
||||
error:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}else{
|
||||
personnelStatusRow.find(".nowPersonnelStatusBtn")[0].className = "btn btn-sm btn-success nowPersonnelStatusBtn disabled";
|
||||
$(document).on('change', '.eduInput', function (){
|
||||
selectedIdx = $(this).parents("#eduDiv").index()-1;
|
||||
const target = eduList[selectedIdx];
|
||||
switch (this.name){
|
||||
case "eduName":
|
||||
target.eduName = this.value
|
||||
break;
|
||||
case "eduSdate":
|
||||
target.eduSdate = this.value
|
||||
break;
|
||||
case "eduEdate":
|
||||
target.eduEdate = this.value
|
||||
break;
|
||||
case "eduRa":
|
||||
target.eduRa = this.value
|
||||
break;
|
||||
}
|
||||
})
|
||||
|
||||
$(document).on('click', '.nowPersonnelStatusBtn', function (){
|
||||
const personnelStatusRow = $(this).parents(".personnelStatusRow");
|
||||
$.ajax({
|
||||
url: '/faisp/nowPersonnelStatus',
|
||||
type: 'GET',
|
||||
data: {ogCd: personnelStatusRow.find(".ogCd").val()},
|
||||
dataType:"json",
|
||||
success: function(data){
|
||||
if(data === null){
|
||||
alert("결과가 없습니다.")
|
||||
}else{
|
||||
personnelStatusRow.find(".jt007Now").val(data.jt007Now);
|
||||
personnelStatusRow.find(".jt006Now").val(data.jt006Now);
|
||||
personnelStatusRow.find(".jt005Now").val(data.jt005Now);
|
||||
personnelStatusRow.find(".jt004Now").val(data.jt004Now);
|
||||
personnelStatusRow.find(".jt003Now").val(data.jt003Now);
|
||||
personnelStatusRow.find(".jt002Now").val(data.jt002Now);
|
||||
personnelStatusRow.find(".jt001Now").val(data.jt001Now);
|
||||
}
|
||||
},
|
||||
error:function(){
|
||||
alert("조회에 실패하였습니다.")
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
$(document).on('click', '#saveBtn', function (){
|
||||
if($(".ogCd").length===0){
|
||||
alert("저장할 항목이 없습니다.")
|
||||
}else{
|
||||
if(personnelStatusOgCdCheck()){
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
contentFade("in");
|
||||
const personnelStatusList = [];
|
||||
const year = new Date().getFullYear();
|
||||
$.each($(".personnelStatusRow"), function(idx, personnelStatus){
|
||||
const row = $(personnelStatus);
|
||||
personnelStatusList.push({});
|
||||
personnelStatusList[idx].year = year;
|
||||
personnelStatusList[idx].ogCd = row.find(".ogCd").val()
|
||||
personnelStatusList[idx].jt007Max = row.find(".jt007Max").val()
|
||||
personnelStatusList[idx].jt007Now = row.find(".jt007Now").val()
|
||||
personnelStatusList[idx].jt006Max = row.find(".jt006Max").val()
|
||||
personnelStatusList[idx].jt006Now = row.find(".jt006Now").val()
|
||||
personnelStatusList[idx].jt005Max = row.find(".jt005Max").val()
|
||||
personnelStatusList[idx].jt005Now = row.find(".jt005Now").val()
|
||||
personnelStatusList[idx].jt004Max = row.find(".jt004Max").val()
|
||||
personnelStatusList[idx].jt004Now = row.find(".jt004Now").val()
|
||||
personnelStatusList[idx].jt003Max = row.find(".jt003Max").val()
|
||||
personnelStatusList[idx].jt003Now = row.find(".jt003Now").val()
|
||||
personnelStatusList[idx].jt002Max = row.find(".jt002Max").val()
|
||||
personnelStatusList[idx].jt002Now = row.find(".jt002Now").val()
|
||||
personnelStatusList[idx].jt001Max = row.find(".jt001Max").val()
|
||||
personnelStatusList[idx].jt001Now = row.find(".jt001Now").val()
|
||||
})
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
data : JSON.stringify(personnelStatusList),
|
||||
url : "/faisp/savePersonnelStatus",
|
||||
contentType: 'application/json',
|
||||
beforeSend: function (xhr){
|
||||
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||
},
|
||||
success : function() {
|
||||
alert("저장되었습니다.");
|
||||
contentFade("out");
|
||||
location.reload();
|
||||
},
|
||||
error : function(xhr, status) {
|
||||
alert("저장에 실패하였습니다.");
|
||||
contentFade("out");
|
||||
}
|
||||
})
|
||||
if(eduList.length < 1){
|
||||
alert("새로 입력된 교육정보가 없습니다.");
|
||||
return false;
|
||||
}
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
contentFade("in");
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
data : JSON.stringify(eduList),
|
||||
url : "/faisp/saveEdu",
|
||||
contentType: 'application/json',
|
||||
beforeSend: function (xhr){
|
||||
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||
},
|
||||
success : function(data) {
|
||||
contentFade("out");
|
||||
alert("교육등록이 완료되었습니다.");
|
||||
showModal(data);
|
||||
eduList.length = 0;
|
||||
},
|
||||
error : function(xhr, status) {
|
||||
contentFade("out");
|
||||
alert("교육등록을 실패하였습니다");
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
$(document).on('click', '.statusTr', function (){
|
||||
const statusTr = $(this);
|
||||
$.ajax({
|
||||
url: '/faisp/personnelStatusHistory',
|
||||
type: 'GET',
|
||||
data: {year: statusTr.find(".year").val(), ogCd: statusTr.find(".ogCd").val()},
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#personnelStatusHistoryModalBody").empty().append(html)
|
||||
$("#personnelStatusHistoryModal").modal('show');
|
||||
},
|
||||
error:function(){
|
||||
|
||||
}
|
||||
});
|
||||
$(document).on('click', '#deleteBtn', function (){
|
||||
const eduSeq = (Number($(this).data('eduseq')));
|
||||
const userSeq = (Number($(this).data('userseq')));
|
||||
if(confirm("삭제하시겠습니까?")){
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
url : "/faisp/deleteEdu",
|
||||
data : JSON.stringify({eduSeq:eduSeq,
|
||||
userSeq:userSeq}),
|
||||
contentType: 'application/json',
|
||||
beforeSend: function (xhr){
|
||||
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||
},
|
||||
success : function(data) {
|
||||
alert("삭제 처리되었습니다.");
|
||||
showModal(data);
|
||||
},
|
||||
error : function(xhr, status) {
|
||||
alert("삭제 처리에 실패하였습니다");
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
function personnelStatusOgCdCheck(){
|
||||
let flag = true;
|
||||
$.each($(".ogCd"), function(idx, selectBox){
|
||||
if($(selectBox).val()===''){
|
||||
|
||||
flag = false;
|
||||
}
|
||||
})
|
||||
if(!flag){
|
||||
alert("관서가 지정되지 않은 항목이 있습니다.")
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<input type="hidden" name="pageIndex" id="modalPageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<input type="hidden" name="detailType" th:value="${searchParams.detailType}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
<input type="hidden" name="detailType" th:value="${searchParams.detailType}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,90 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">경력 관리</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="mb-3 mt-3 row">
|
||||
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center">직급</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" th:value="${userInfo.titleCd}" readonly>
|
||||
</div>
|
||||
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">생년월일</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" th:value="${userInfo.birthDate}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">성명</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="tel" class="form-control form-control-sm" th:value="|${userInfo.ogCd} ${userInfo.ofcCd} ${userInfo.userNm}|" readonly>
|
||||
</div>
|
||||
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="email" class="form-control form-control-sm" th:value="${userInfo.sex}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">학력사항</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="email" class="form-control form-control-sm" readonly>
|
||||
</div>
|
||||
<label for="sex" class="col-sm-1 col-form-label col-form-label-sm text-center">학교</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="email" class="form-control form-control-sm" readonly>
|
||||
</div>
|
||||
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="email" class="form-control form-control-sm" th:value="${userInfo.languageCd}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="birthDate" class="col-sm-2 col-form-label col-form-label-sm text-center">전공</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm dateSelector" id="birthDate" name="birthDate" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body text-center">
|
||||
<div class="row">
|
||||
<table class="table table-striped" id="categoryTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>교육명</th>
|
||||
<th>교육일</th>
|
||||
<th>담당기관</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="overflow-scroll">
|
||||
<!--<tr th:each="list:${eduList}">
|
||||
<td th:text="${list.eduName}"></td>
|
||||
<td th:text="|${list.eduSdate}~${list.eduEdate}|"></td>
|
||||
<td th:text="${list.eduRa}"></td>
|
||||
<td>
|
||||
<button type="button" class="btn btn-sm btn-danger" id="deleteBtn" th:data-eduseq="${list.eduSeq}" th:data-userseq="${list.userSeq}" th:if="${accessAuth eq 'ACC003'} or ${list.wrtUserSeq eq userSeq}">삭제</button>
|
||||
</td>
|
||||
</tr>-->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div id="insertEdu">
|
||||
<div class="row justify-content-center">
|
||||
<button class="btn btn-sm btn-outline-primary col-auto" th:data-userseq="${userInfo.userSeq}" id="eduAddBtn"><i class="bi bi-plus-lg"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-primary" id="saveBtn" th:if="${accessAuth eq 'ACC003'} or ${userInfo.userSeq eq userSeq}">저장</button>
|
||||
</div>
|
||||
</div>
|
||||
</html>
|
||||
|
|
@ -30,13 +30,13 @@
|
|||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="col-12 pb-2">
|
||||
<form id="searchFm" method="get" th:action="@{/faisp/careerMgt}">
|
||||
<input type="hidden" name="userStatus" th:value="${userStatus}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
@ -65,7 +65,9 @@
|
|||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
|
||||
</div>
|
||||
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -94,9 +96,7 @@
|
|||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="policeTr" th:each="list:${policeList}">
|
||||
<th:block>
|
||||
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
|
||||
</th:block>
|
||||
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
|
||||
<td th:text="${list.rownum}"></td>
|
||||
<td th:text="${list.titleCd}"></td>
|
||||
<td th:text="${list.userNm}"></td>
|
||||
|
|
@ -158,9 +158,9 @@
|
|||
</div>
|
||||
</main>
|
||||
|
||||
<div class="modal fade" id="policeEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userEditModalLabel" aria-hidden="true">
|
||||
<div class="modal fade" id="careerEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="careerEditModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-scrollable">
|
||||
<div class="modal-content" id="policeEditModalContent">
|
||||
<div class="modal-content" id="careerEditModalContent">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row pe-3 py-1">
|
||||
<div class="col-1">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row pe-3 py-1">
|
||||
<div class="col-1">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
<input type="hidden" name="ivsgtType" th:value="${searchParams.ivsgtType}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -42,7 +42,8 @@
|
|||
<div class="mb-3 row justify-content-center">
|
||||
<label for="content" class="col-sm-2 col-form-label text-center">내용</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea type='text' id="content" name='content' th:utext="${info.content}"></textarea>
|
||||
<div id="editor"></div>
|
||||
<textarea id="content" class="d-none" th:utext="${info.content}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -42,7 +42,8 @@
|
|||
<div class="mb-3 row justify-content-center">
|
||||
<label for="content" class="col-sm-2 col-form-label text-center">내용</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea type='text' id="content" name='content' th:utext="${info.content}"></textarea>
|
||||
<div id="editor"></div>
|
||||
<textarea id="content" class="d-none" th:utext="${info.content}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
|
|
@ -148,171 +148,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</html>
|
||||
<!--<!DOCTYPE html>-->
|
||||
<!--<html lang="ko" xmlns:th="http://www.thymeleaf.org"-->
|
||||
<!-- xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5"-->
|
||||
<!-- xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"-->
|
||||
<!-- layout:decorate="~{layout/layout}">-->
|
||||
<!--<th:block layout:fragment="script">-->
|
||||
<!-- <!–<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/affairPlan.js}"></script>–>-->
|
||||
<!--</th:block>-->
|
||||
<!--<div layout:fragment="content">-->
|
||||
<!-- <main class="pt-3">-->
|
||||
<!-- <h4>Q&A</h4>-->
|
||||
<!-- <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>-->
|
||||
<!-- <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>-->
|
||||
<!-- <div class="row mx-0">-->
|
||||
<!-- <div class="col-12 card text-center">-->
|
||||
<!-- <div class="card-body">-->
|
||||
<!-- <form method="get" th:action="@{/fpiMgt/monthPlanPage}">-->
|
||||
<!-- <input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">-->
|
||||
<!-- <div class="row justify-content-between pe-3 py-1">-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <select class="form-select" name="rowCnt" id="rowCnt">-->
|
||||
<!-- <th:block th:each="num : ${#numbers.sequence(1,5)}">-->
|
||||
<!-- <option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- </select>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <!–<div class="row justify-content-end">-->
|
||||
<!-- <div class="col-auto" th:if="${accessAuth eq 'ACC003'}">-->
|
||||
<!-- <select class="form-select form-select-sm" name="wrtOrgan">-->
|
||||
<!-- <option value="">관서 선택</option>-->
|
||||
<!-- <th:block th:each="commonCode:${session.commonCode.get('OG')}">-->
|
||||
<!-- <th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">-->
|
||||
<!-- <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- </select>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <input type="text" class="form-control form-control-sm" placeholder="제목" name="contentTitle" th:value="${searchParams.contentTitle}">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-auto" th:if="${accessAuth eq 'ACC003'}">-->
|
||||
<!-- <input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <select class="form-select form-select-sm" name="planState">-->
|
||||
<!-- <option value="">상태 선택</option>-->
|
||||
<!-- <th:block th:each="commonCode:${session.commonCode.get('DST')}">-->
|
||||
<!-- <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.planState}"></option>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- </select>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-4">-->
|
||||
<!-- <div class="input-group w-auto input-daterange" id="dateSelectorDiv">-->
|
||||
<!-- <select class="form-select form-select-sm" name="dateSelector">-->
|
||||
<!-- <option value="">조건선택</option>-->
|
||||
<!-- <option value="planDt" th:selected="${searchParams.dateSelector eq 'planDt'}">시행일</option>-->
|
||||
<!-- <option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>-->
|
||||
<!-- </select>-->
|
||||
<!-- <input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">-->
|
||||
<!-- <input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">-->
|
||||
<!-- </div>–>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </form>-->
|
||||
<!-- <div class="row justify-content-start">-->
|
||||
<!-- <div class="col-12">-->
|
||||
<!-- <div class="card">-->
|
||||
<!-- <div class="card-body">-->
|
||||
<!-- <div class="row">-->
|
||||
<!-- <table class="table table-hover">-->
|
||||
<!-- <thead>-->
|
||||
<!-- <tr>-->
|
||||
<!-- <th></th>-->
|
||||
<!-- <th>제목</th>-->
|
||||
<!-- <th>관서</th>-->
|
||||
<!-- <th>부서</th>-->
|
||||
<!-- <th>작성자</th>-->
|
||||
<!-- <th>작성일시</th>-->
|
||||
<!-- <th>첨부파일</th>-->
|
||||
<!-- <th>댓글</th>-->
|
||||
<!-- </tr>-->
|
||||
<!-- </thead>-->
|
||||
<!-- <tbody>-->
|
||||
<!-- <!–<tr class="planTr" th:each="plan:${planList}">-->
|
||||
<!-- <input type="hidden" class="planKey" th:value="${plan.planKey}">-->
|
||||
<!-- <td><input type="checkbox" class="trChkBox"></td>-->
|
||||
<!-- <td th:text="${plan.contentTitle}"></td>-->
|
||||
<!-- <td th:text="${#temporals.format(plan.planDt, 'yyyy-MM-dd')}"></td>-->
|
||||
<!-- <th:block th:each="commonCode:${session.commonCode.get('OG')}">-->
|
||||
<!-- <td th:if="${plan.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- <th:block th:each="commonCode:${session.commonCode.get('OFC')}">-->
|
||||
<!-- <td th:if="${plan.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- <td th:text="${plan.wrtUserNm}"></td>-->
|
||||
<!-- <td th:text="${#temporals.format(plan.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>-->
|
||||
<!-- <td th:text="${plan.fileCnt eq null?'파일 없음':#strings.concat(plan.fileCnt,' 건')}"></td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST001'}">임시저장</td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST002'}">결재대기</td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST003'}">계장반려</td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST004'}">계장결재</td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST005'}">부장반려</td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST006'}">부장결재</td>-->
|
||||
<!-- </tr>–>-->
|
||||
<!-- </tbody>-->
|
||||
<!-- </table>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="row justify-content-between">-->
|
||||
<!-- <div class="col-auto"></div>-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <nav aria-label="Page navigation">-->
|
||||
<!-- <ul class="pagination">-->
|
||||
<!-- <th:block th:if="${searchParams.pageIndex>3}">-->
|
||||
<!-- <li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">-->
|
||||
<!-- <a class="page-link" href="#" aria-label="Previous">-->
|
||||
<!-- <span aria-hidden="true">«</span>-->
|
||||
<!-- </a>-->
|
||||
<!-- </li>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- <th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">-->
|
||||
<!-- <li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">-->
|
||||
<!-- <a class="page-link" href="#" th:text="${num}"></a>-->
|
||||
<!-- </li>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- <th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">-->
|
||||
<!-- <li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">-->
|
||||
<!-- <a class="page-link" href="#" aria-label="Next">-->
|
||||
<!-- <span aria-hidden="true">»</span>-->
|
||||
<!-- </a>-->
|
||||
<!-- </li>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </nav>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <input type="button" class="btn btn-success" value="등록" id="addqnaBtn" sec:authorize="hasRole('ROLE_SUB_ADMIN')">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </main>-->
|
||||
|
||||
<!-- <div class="modal fade" id="qnaEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="noticeEditModalLabel" aria-hidden="true">-->
|
||||
<!-- <div class="modal-dialog modal-xl modal-dialog-scrollable">-->
|
||||
<!-- <div class="modal-content" id="noticeEditContent">-->
|
||||
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="modal fade" id="noticeViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="noticeViewModalLabel" aria-hidden="true">-->
|
||||
<!-- <div class="modal-dialog modal-xl modal-dialog-scrollable">-->
|
||||
<!-- <div class="modal-content" id="noticeViewContent">-->
|
||||
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!--</div>-->
|
||||
<!--</html>-->
|
||||
</html>
|
||||
|
|
@ -61,7 +61,8 @@
|
|||
<div class="mb-3 row justify-content-center">
|
||||
<label for="content" class="col-sm-2 col-form-label text-center">내용</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea type='text' id="content" name='content' th:utext="${info.content}"></textarea>
|
||||
<div id="editor"></div>
|
||||
<textarea id="content" class="d-none" th:utext="${info.content}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
<input type="hidden" name="tabStatus" th:value="${searchParams.tabStatus}">
|
||||
<div class="row justify-content-between pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row pe-3 py-1">
|
||||
<div class="col-1">
|
||||
<select class="form-select" name="rowCnt" id="rowCnt">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
|
|
|
|||
Loading…
Reference in New Issue