
/* ##############################################################
	설  명 : [Modal]직무 상세/수정 팝업
	작성일 : 2023. 01. 19.
	작성자 : NTsoft
	수정일 	        수정자 	 수정내용
	-------         -------- ---------------------------
	2023. 01. 19.	NTsoft 	 최초 생성
*/
let authUpdateModal = {
    callback : null,
    reqParam : null,
    dataList : null,
    /* 모달 초기화 작업 */
    init : function () {
        $('#authUpdateModal').remove();
        $('body').append( this.HtmlTemplate);
        //그리드 이벤트
        this.setEvent();
    },
    /* 그리드 이벤트 설정 */
    setEvent:function() {
        $('#authUpdateModal .btnCancle').on("click", function(){
            authUpdateModal.close();
        });

        $('#authUpdateModal .btnSave').on("click", function(){
            authUpdateModal.save("I");
        });
    },
    /* 데이터 선택 */
    setSelect:function(selectNumber) {
        let checkedData = dataList[selectNumber];
        if(dataList==null||checkedData==undefined){
            return ;
        }

        if( authUpdateModal.callback )  {
            authUpdateModal.callback(checkedData);
        }
        authUpdateModal.close();
    },
    // 상세 조회
    search:function(state) {
        let muAuthId = authUpdateModal.reqParam.muAuthId;

        if(true != fn_emptyCheck(muAuthId)){
            modalEvent.warning("수정", "직무 정보가 없습니다.");
            return;
        }

        let formData = new FormData();
        formData.append("menuClass", menuClass);
        formData.append("muAuthId", muAuthId);

        $.ajax({
            url: encodeURI('/webauth/selectAuth.do'),
            data: formData,
            dataType: "json",
            processData: false,
            contentType: false,
            type: 'POST',
            async: true,
            success: function(data){
                if('0'==data.msgCode){
                    $("#authUpdateModal #modalorderNumber").val(data.rows[0].orderNumber);
                    $("#authUpdateModal #modalAuthName").val(data.rows[0].authName);
                }
                else{
                    modalEvent.danger("조회 오류", data.msgDesc);
                }
            },
            error : function(xhr, status, error) {
                modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
            },
            beforeSend:function(){

            },
            complete:function(){

            }
        });
    },
    //저장
    save:function(state) {
        let muAuthId     = authUpdateModal.reqParam.muAuthId;
        let orderNumber     = $("#authUpdateModal #modalorderNumber").val();
        let authName     = $("#authUpdateModal #modalAuthName").val();

        if(true != fn_emptyCheck(authName)){
            modalEvent.warning("수정", "권한 그룹명 정보가 없습니다.");
            return;
        }
        else{
            if(true != fn_lengthCheck(authName, 35)) {
                modalEvent.warning("수정", "권한 그룹명 정보는 35자를 넘을 수 없습니다.");
                return;
            }
        }
        if(true != fn_emptyCheck(orderNumber)){
            modalEvent.warning("수정", "정렬 순서가 없습니다.");
            return;
        }
        modalEvent.info("수정", "권한 그룹 정보를 수정하시겠습니까?", function(){
            let formData = new FormData();
            formData.append("menuClass", menuClass);
            formData.append("muAuthId", muAuthId);
            formData.append("orderNumber", orderNumber);
            formData.append("authName", authName);

            $.ajax({
                url: encodeURI('/webauth/updateAuth.do'),
                data: formData,
                dataType: "json",
                processData: false,
                contentType: false,
                type: 'POST',
                async: true,
                success: function(data){
                    if('0'==data.msgCode){
                        modalEvent.success("수정 성공", data.msgDesc, function(){
                            if( authUpdateModal.callback )  {
                                authUpdateModal.callback();
                            }
                            authUpdateModal.close();
                        });
                    }
                    else{
                        modalEvent.danger("수정 오류", data.msgDesc);
                    }
                },
                error : function(xhr, status, error) {
                    modalEvent.danger("수정 오류", "등록 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
                },
                beforeSend:function(){

                },
                complete:function(){

                }
            });
        });
    },
    /*
     * 팝업
     * callback : 콜백함수, reqParam: 팝업파라미터
     */
    popup:function(callback, reqParam) {
        // 초기화 후 열기
        authUpdateModal.init();

        //콜백함수 지정.
        authUpdateModal.callback = callback;
        authUpdateModal.reqParam = reqParam;
        authUpdateModal.dataList = null;

        authUpdateModal.search();

        setTimeout(function(){
            $('#authUpdateModal').modal('show')
        }, 200);
    },
    /*
     * 팝업 닫기
     */
    close:function() {
        $('#authUpdateModal').modal('hide');

		setTimeout(function(){
			$('#authUpdateModal').remove();
		},500);
    },
    HtmlTemplate : `
	<div id="authUpdateModal" class="modal group_job_modal fade" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="">
		<div class="modal-dialog">
			<div class="modal-content">
				<div class="modal-header">
					<p class="title">권한 그룹 정보 수정</p>
				</div>
	
				<div class="modal-body">
					<div class="form_box">
						<div class="input_box">
							<label>권한 그룹명</label>
							<input type="text" id="modalAuthName" placeholder="권한 그룹명" maxlength="35">
						</div>
						<div class="input_box">
							<label>정렬 순서</label>
							<input type="number" id="modalorderNumber" placeholder="0" maxlength="35">
						</div>
					</div>
				</div>

				<div class="modal-footer">
					<div class="btn_box">
						<button type="button" class="cancel_btn btnCancle">취소</button>
						<button type="button" class="save_bth btnSave">수정</button>
					</div>
				</div>
			</div>
		</div>
	</div>
    `
};
