/* /js/modalPopUpControl.js 시스템 alert()/ confirm() 의 단조로운 외관을 피하고 통일되고 고급스러운 UI 를 위해 커스텀 alert() 를 사용할 수 있도록 한다. modalAlert( str, fadeOutTimer ); str 을 alert 해주는 팝업을 띄운다. fadeOutTimer 가 있으면 그 타임 경과후 fadeOut fadeOutTimer 가 없으면 OK 버튼을 추가한다. modalConfirm( str, func ); str 을 컨펌 받는 팝업을 띄운다. OK 버튼 클릭시 func 펑션을 수행. modalPopupDiv( div ); 팝업을 간편하게 해주기 위해, Division 을 전달받아 팝업해준다. */ // 모덜 다이얼로그 컨트롤 코드를 분리하자. 2017-05-20오전 11:46 // /* 모달 다이얼로그와 팝업을 컨트롤... HTML 하단에 사전준비 되어야 할 Divisions...
Usage : modalAlert( "인증에 성공하였습니다.", 1500 ); modalPopupDiv( $("#logInDiv") ); */ /* 2017-05-29오후 5:04 문제점... alert/confirm 모든 경우에서도 [ OK ] 버튼 클릭시 필요에 따라 펑션을 호출할 수 있어야 한다. 방법은?? - 콜백 펑션이 필요한 상황... - 버튼에 addClass("callBack"), attr("callbackFunc","functionName"), afft("callBackParam","paramData") 를 해주고, - 버튼 클릭시, if($(this).hasClass("callBack")) window[dialogCallBackFunc]( dialogCallBackFuncParam ); - 콜백 펑션의 마지막에 .class 와 .attr 를 리셋시킨다. * 버튼클릭시 콜백펑션이 필요한 모든 경우들.. - "법적고지에 동의하셔야 이용하실 수 있습니다" ==> modalOn( "#orderConfirmPopupDiv" ); - "비밀번호가 존재합니다. 로그인하시겠습니까?" ==> modalOn( "#logInFormDiv" ); - "비밀번호가 설정되었습니다. 로그인 해주세요." ==> modalOn( "#logInFormDiv" ); */ // alertStr 을 알러트 해준다. // 2nd 파라메터로 AlertDiv.fadeOut 시간을 지정할 수 있다. // fadeOutTimer 가 없으면, 디폴트 버튼 [OK] 를 추가해준다. // Header 는 없다. function modalAlert( alertStr, fadeOutTimer ) { fadeOutTimer = fadeOutTimer || ""; console.log("모달 알러트 !!"); // 팝업의 헤더를 넣어준다. $(".poppy-popup-title-text-public").text("시스템 메세지"); // 스트링을 넣어준다. $("#modalAlertDiv .alertStr").text( alertStr ); // 자동소멸 타이머 없으면 close 버튼을 추가해준다 if( ! fadeOutTimer ) { // 소멸 타이머가 없다면.... 디폴트 버튼셋 추가 $("#modalAlertDiv .alertStr").parent().append( $("#defaultModalBtn").html() ); } else { // 소멸 타이머가 있다면, 결국은 허용되지 않는 가벼운 워닝이다. //$(".poppy-popup-title-text-public").text("입력오류!!"); setTimeout( function() { modalOff( $("#modalAlertDiv") ) } , fadeOutTimer ); } modalOn( "#modalAlertDiv" ); } // 모달 컨펌 팝업 function modalConfirm( alertStr, func ) { console.log("모달 컨펌 !!"); // 팝업의 헤더를 넣어준다. $(".poppy-popup-title-text-public").text("시스템 메세지"); // 스트링을 넣어준다. $("#modalAlertDiv .alertStr").text( alertStr ); // confirm 버튼셋을 추가해준다. $("#modalAlertDiv .alertStr").parent().append( $("#confirmModalBtn").html() ); modalOn( "#modalAlertDiv" ); } // Div 를 전달해 모달 팝업을 만들어준다. // Div 안에 버튼은 없고,…. 버튼은 펑션에서 판단해서 자동 추가된다. // 버튼의 종류 // 디폴트 버튼 : [OK] // 로그인 디비전은 별도의 펑션에서 담당한다. 여기선 신경쓰지 않는다. function modalPopupDiv( div ) { // 전달변수 div 는 ".class" , "#id" 와 같은 식별자 문자열이다. obj = $(div); console.log("div: "+div); // 팝업의 헤더를 넣어준다. //$(".poppy-popup-title-text-public").text( obj.find(".header").text() ); //$(".poppy-popup-title-text-public").text("시스템 메세지"); // 팝업의 인너를 채워준다. $("#modalPopupDiv ").html( obj.html() ); console.log("여기서 팝업의 헤더내용을 확인해본다. :"+$(".poppy-popup-title-text").text() ); // 디폴트 OK 버튼 추가 $("#modalPopupDiv").parent().append( $("#defaultModalBtn").html() ); modalOn( "#modalPopupDiv" ); } // 모달 다이얼로그/ 팝업 Div 를 모달-에코우 On/Off 해준다. function modalOn( div ) { //$('.wrap-loading').removeClass('display-none'); ajaxLoadingScreenOn(); obj = $(div); obj.center( ); //obj.css("top","-200px"); //obj.css("display","block"); obj.slideDown(); //console.log("div: "+div); } function modalOff( div ) { obj = $(div); resetModalWins(); obj.slideUp( ); ajaxLoadingScreenOff(); //$('.wrap-loading').addClass('display-none'); } // 모달 창을 초기화 시킨다. function resetModalWins() { // 팝업의 헤더를 모두 제거. //$(".poppy-popup-title-text").text(""); // 콜백 데이터를 모두 초기화 // dialogCallBackFunc = dialogCallBackFuncParam = ""; // 삽입된 버튼 종류를 모두 제거 $("#modalAlertDiv .poppy-popup-buttons, #modalConfirmDiv .poppy-popup-buttons").remove(); } // 모덜 다이알로그로 로그인 디비전을 팝업시키는 펑션.. // 굳이 펑션이 필요한 이유는... 공통 사용되는 펑션 modalAlert() 에서 요청상황에 따라 콜백 펑션을 달리해야 하므로, function popUpModalLogInDiv() { //$(".poppy-popup-title-text").text("로그인"); ajaxLoadingScreenOn(); //modalPopupDiv( "#logInFormDiv" ); console.log("dialogCallBackFuncParam :"+dialogCallBackFuncParam); obj = $( "#"+dialogCallBackFuncParam ); modalOn( "#logInFormDiv" ); //dialogCallBackFunc = dialogCallBackFuncParam=""; }