123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408 |
- <?xml version="1.0" encoding="utf-8"?>
- <FDL version="1.5">
- <TypeDefinition url="..\..\..\default_typedef.xml"/>
- <Form id="SPZUM00400" classname="Guide_SA_01" inheritanceid="" position="absolute 0 0 300 177" titletext="암호확인" class="frm_POP" onload="SPZUM00400_onload" onkeydown="SPZUM00400_onkeydown">
- <Layouts>
- <Layout>
- <Static id="stt_infoBox" class="sta_DA_box" position="absolute 12 66 288 143"/>
- <Static id="stt_titleText" text="암호확인" class="sta_POP_title" position="absolute 12 8 266 28" usedecorate="false" wordwrap="none" transparenthittest="true"/>
- <Button id="btn_close" taborder="2" anchor="default" position="absolute 274 12 288 25" positiontype="position" class="btn_POP_cls" onclick="btn_close_onclick"/>
- <Button id="btn_confirm" taborder="3" text="확인" class="btn5" position="absolute 197 147 241 167" onclick="btn_confirm_onclick"/>
- <Static id="stt_subTitle" text="사용자 정보" class="tit_2" position="absolute 12 46 288 86" style="linespace:2;background:URL('theme://images/icon_tit_bullet2.png');align:left top;"/>
- <Static id="stt_userTitle" text="사용자" class="cell_1" position="absolute 13 68 113 92"/>
- <Static id="stt_deptTitle" text="근무지 부서" class="cell_1" position="absolute 13 93 113 117"/>
- <Static id="stt_passwordTitle" text="비밀번호 입력" class="cell_1" position="absolute 13 118 113 142"/>
- <Static id="stt_userNm" position="absolute 116 70 284 91" style="font:Dotum,11,bold;"/>
- <Static id="stt_deptNm" position="absolute 116 95 284 116"/>
- <Edit id="edt_password" taborder="4" class="input_essential" position="absolute 116 120 284 140" onkeyup="edt_password_onkeyup" password="true" imemode="alpha" autoselect="true"/>
- <Button id="btn_cancel" taborder="5" text="취소" class="btn5" position="absolute 244 147 288 167" onclick="btn_cancel_onclick"/>
- <Static id="stt_helpMsg" text="도움말" class="hand" position="absolute 12 184 282 224" visible="false"/>
- </Layout>
- </Layouts>
- <Bind/>
- <Objects>
- <Dataset id="ds_login" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
- <ColumnInfo>
- <ConstColumn id="ConstColumn0" type="STRING" size="30" value="n"/>
- <Column id="Column0" type="STRING" size="256"/>
- <Column id="Column1" type="STRING" size="256"/>
- <Column id="Column2" type="STRING" size="256"/>
- </ColumnInfo>
- </Dataset>
- </Objects>
- <Script type="xscript4.0"><![CDATA[/***************************************************************************************
- * System Name : HIT
- * Job Name :
- * File Name : SPZUM00400_암호확인.xfdl
- * Creator : 임준호
- * Make Date : 2014-02-26
- *
- * Description : 암호확인 팝업
- *---------------------------------------------------------------------------------------
- * Modify Date Modifier Modify Description
- *---------------------------------------------------------------------------------------
- * 2014-02-26 임준호
- *
- *---------------------------------------------------------------------------------------
- ****************************************************************************************/
-
-
-
-
-
- //=======================================================================================
- // Lib Include
- //---------------------------------------------------------------------------------------
- include "com_commonxp::comm_main.xjs"
- //=======================================================================================
- // Global Form Variable
- //---------------------------------------------------------------------------------------
- var lgv_bPwdvalid = false;
- var lgv_bExcept = true;
- //=======================================================================================
- // Function
- //---------------------------------------------------------------------------------------
- /****************************************************************************************
- * Argument :
- * Description : 비밀번호 확인
- ****************************************************************************************/
- function lf_confirmPassword(exLgRsYn){
- trace("## exLgRsYn : " + exLgRsYn);
-
- if(utlf_isNull(edt_password.value)){
- alert("비밀번호를 입력하세요.");
- edt_password.setFocus();
- return;
- }
-
- var sIndsReq = "ds_req";
- var objColInfo = new Array();
-
- if(plgv_sType == "logdetail") {
- objColInfo.push({col: "userid", val: "EMR"});
- } else {
- objColInfo.push({col: "userid", val: sysf_getUserId()});
- }
- objColInfo.push({col: "pwd", val: edt_password.value});
- if(plgv_sType == "session" || plgv_sType == "duplogin"){
- // 재로그인 관련으로 이 팝업창이 떴을때 logoutdt 시간을 넘겨주고 비지니스 단에서 로그아웃, 로그인시간을 다시 갱신한다. 2015.11.03 김상목
- // 마지막 서브밋 시간과 현재 시간을 비교해서 한시간이 지났으면 logoutdt를 last_submit + 1시간 뒤로 하고
- // 아직 한시간이 지나지 않았다면 logoutdt를 현재시간으로 설정
- var logoutDateObj;
- var timeOut = toNumber(sysf_getSystemInfo("sessiontimeout"));
-
- if (utlf_isNull(timeOut) || timeOut <= 0) { // timeout 적용하지 않음
- logoutDateObj = new Date();
- } else {
- var curTime = (new Date()).getTime();
- var last_submit = agv_nLastTransactionTime; // 마지막으로 서브밋한 시간
- var lastSubmitDateObj = new Date(last_submit);
-
- if (curTime - parseInt(last_submit) >= (60*60000)) { // 마지막 서브밋 시간과 현재시간의 차이가 1시간이 넘는다면 로그아웃 시간은 마지막 서브밋 시간에서 한시간 뒤로 설정
- logoutDateObj = new Date(lastSubmitDateObj.getYear(), lastSubmitDateObj.getMonth(), lastSubmitDateObj.getDate()
- , lastSubmitDateObj.getHours() + 1, lastSubmitDateObj.getMinutes(), lastSubmitDateObj.getSeconds(), lastSubmitDateObj.getMilliseconds());
- } else { // 1시간이 넘지 않는다면 로그아웃 시간을 현재시간으로 설정
- logoutDateObj = new Date();
- }
- }
-
- var year = logoutDateObj.getYear().toString();
- var month = (logoutDateObj.getMonth() + 1).toString();
- var date = logoutDateObj.getDate().toString();
- var hour = logoutDateObj.getHours().toString();
- var minute = logoutDateObj.getMinutes().toString();
- var second = logoutDateObj.getSeconds().toString();
- var millisecond = logoutDateObj.getMilliseconds().toString();
-
- var logoutdt = year + utlf_lPad(month, 2, '0') + utlf_lPad(date, 2, '0') + utlf_lPad(hour, 2, '0') + utlf_lPad(minute, 2, '0') + utlf_lPad(second, 2, '0') + utlf_lPad(millisecond, 3, '0');
- objColInfo.push({col: "logoutdt", val: logoutdt});
- objColInfo.push({col: "sessionStr", val: gv_sSessionToken});
- }
-
-
- dsf_createDsRow(sIndsReq, objColInfo);
-
- var isCDW = false;
- try {
- isCDW = gv_isCDW;
- } catch(e) {
- }
-
- var CDWyn = (isCDW) ? "Y" : "N";
-
- tranf_submit({
- id: "TRZUM00401"
- , service: "hismainapp.HisMain"
- , method: "reqGetPasswordValidation"
- , args: "CDWyn="+wrapQuote(CDWyn) + " " +
- "exLgRsYn="+wrapQuote(exLgRsYn)
- , inds : "req="+sIndsReq
- , outds: "ds_login=ret"
- , async: true
- , force: true
- , callback: "cbf_TRZUM00401"
- });
- }
- /****************************************************************************************
- * Argument :
- * Description : 타입별로 컴포넌트 위치 변경
- ****************************************************************************************/
- function movePosition(sType){
- if(sType == "session" || sType == "duplogin"){
- stt_subTitle.position.height = 40;
- stt_infoBox.move(stt_infoBox.position.left, stt_infoBox.position.top+12);
- stt_userTitle.move(stt_userTitle.position.left, stt_userTitle.position.top+12);
- stt_deptTitle.move(stt_deptTitle.position.left, stt_deptTitle.position.top+12);
- stt_passwordTitle.move(stt_passwordTitle.position.left, stt_passwordTitle.position.top+12);
- stt_userNm.move(stt_userNm.position.left, stt_userNm.position.top+12);
- stt_deptNm.move(stt_deptNm.position.left, stt_deptNm.position.top+12);
- edt_password.move(edt_password.position.left, edt_password.position.top+12);
- btn_confirm.move(btn_confirm.position.left, btn_confirm.position.top+12);
- btn_cancel.move(btn_cancel.position.left, btn_cancel.position.top+12);
- this.parent.position.height = this.parent.position.height + 12;
- }else{
-
- }
- }
- //=======================================================================================
- // Transaction Callback
- //---------------------------------------------------------------------------------------
- /****************************************************************************************
- * Argument : 01.sSvcId : 서비스 ID
- * : 02.nErrorCode : 에러코드
- * : 03.sErrorMsg : 에러메시지
- * Description : TRZUM00401의 콜백함수
- ****************************************************************************************/
- function cbf_TRZUM00401(sSvcId, nErrorCode, sErrorMsg){
- if(ds_login.rowcount > 0){
- var sValid = ds_login.getColumn(0, "valid");
- var exLgYn = ds_login.getColumn(0, "exLgYn"); // 휴진일 예외 로그인 여부
- var validmsg = ds_login.getColumn(0, "validmsg"); // 휴진정보
-
- // 휴진 교수 예외로그인 처리
- if(exLgYn == "Y") {
- var objArg = new Object();
- objArg.sUserId = sysf_getUserId();
- objArg.sResnmsg = validmsg;
-
- var rtnVal = frmf_modalInternal("SPZUM00500", "com_hismainxp::SPZUM00500_예외로그인.xfdl", objArg, false, null, null, null, 300, 290, "layered=true", null, null, null, "P");
-
- if(rtnVal == "Y"){
- lf_confirmPassword(rtnVal);
- return;
- }else{
- sysf_messageBox("휴진일에는 로그인 사유를 입력해야만 로그인 할 수 있습니다.");
- return;
- }
- }
-
- if(sValid == "Y"){
- lf_loginSucc();
- }else{
- // var validmsg = ds_login.getColumn(0, "validmsg");
-
- if(!utlf_isNull(validmsg) && plgv_sType != "logdetail") {
- sysf_messageBox(validmsg, "E"); // 전공의 당직 로그인 제어(근무시간 외 로그인 금지) 2017.05.29 smkim
- } else {
- // 암호 틀림
- sysf_messageBox("암호가", "E004");
- }
- }
- }else{
- sysf_messageBox("암호가", "E004");
- }
-
- try {
- edt_password.setFocus();
- } catch (e) {
- }
- }
- function lf_loginSucc(){
- if(plgv_sType != "logdetail") {
- // 암호 확인 OK
- var newSessionStr = ds_login.getColumn(0, "newSessionStr");
- if(!utlf_isNull(newSessionStr)) {
- // 로그인 시간 변경 되면서 세션 다시 갱신
- gds_userInfo.setColumn(0,"sessioninfo", newSessionStr);
- gv_sSessionToken = newSessionStr;
- }
- var newSessionStr_enc = ds_login.getColumn(0, "newSessionStr_enc");
- if(!utlf_isNull(newSessionStr_enc)) {
- gds_userInfo.setColumn(0,"sessioninfo_enc", newSessionStr_enc);
- gv_sSessionToken_ENC = newSessionStr_enc;
- }
- }
- // if(plgv_sType == "session" || plgv_sType == "duplogin" ){
- // // 암호 확인 OK, 최근 submit 시간 업데이트한다.
- // //setGlobalVariable("last_submit", (new Date()).getTime());
- // }
- //btn_cancel.dispatch("DOMActivate");
-
- var isCDW = false;
- try {
- isCDW = gv_isCDW;
- } catch(e) {
- }
-
- if(isCDW == "false" || isCDW != true) {
- agv_objAppBottomPath.form.lf_connectMsgsvr();
- }
-
- sysf_accountTrace(" 암 호 확 인 ");
- this.close(false);
- }
- //=======================================================================================
- // Event
- //---------------------------------------------------------------------------------------
- /****************************************************************************************
- * Components :
- * Components ID : SPZUM00400
- * Event : onload
- * Argument : 01.obj : Form
- * : 02.e : LoadEventInfo
- * Description :
- ****************************************************************************************/
- function SPZUM00400_onload(obj:Form, e:LoadEventInfo){
-
- //frmf_initForm(obj);
-
- // 중복로그인으로 암호확인 팝업이 떴을 때 메인프레임이 enable false 되면서 이 팝업도 같이 enable false 된다.
- this.enable = true;
-
- stt_userNm.text = sysf_getUserName() + "(" + sysf_getUserId() + ")";
- stt_deptNm.text = sysf_getUserInfo("dutplcenm");
-
- if(plgv_sType == "session"){
- stt_subTitle.text = "오랜 시간 사용자 입력이 없어\n정보보호를 위해 본인확인을 합니다.";
- //stt_titlemsg2.visible = true;
- //stt_titlemsg2.text = "";
- //stt_helpMsg.visible = false;
- movePosition(plgv_sType);
- }else if (plgv_sType == "duplogin"){
- stt_subTitle.text = "동일 사용자가 로그인 하였습니다\n정보보호를 위해 본인확인을 합니다.";
- //stt_titlemsg2.visible = true;
- //stt_titlemsg2.text = "";
- //stt_helpMsg.visible = false;
- movePosition(plgv_sType);
-
- frmf_setFocus(true);
- }else{
- if (plgv_sType == "logdetail") {
- stt_userNm.text = "의무기록";
- stt_deptNm.text = "의료정보과";
- }
-
- stt_subTitle.text = plgv_sTitlemsg;
- if(!utlf_isNull(plgv_sHelpmsg)){
- this.parent.position.height = this.parent.position.height + 50;
- this.position.height = this.position.height + 50;
- stt_helpMsg.visible = true;
- stt_helpMsg.text = plgv_sHelpmsg;
- }
- }
-
- edt_password.setFocus();
-
- if(plgv_sType == "pwdcnfm" || "logdetail"){
- btn_cancel.text = "취소";
- }else{
- btn_cancel.text = "종료";
- }
- }
- /****************************************************************************************
- * Components : Button
- * Components ID : btn_cancel
- * Event : onclick
- * Argument : 01.obj : Button
- * : 02.e : ClickEventInfo
- * Description : 취소
- ****************************************************************************************/
- function btn_cancel_onclick(obj:Button, e:ClickEventInfo)
- {
- var nRtn = null;
-
- if(plgv_sType == "pwdcnfm" || plgv_sType == "logdetail"){
- //비밀번호 확인용
- this.close(true);
- } else if(plgv_sType == "session") {
- this.close(true);
- } else{
- //세션 타임아웃 및 중복 로그인용
- nRtn = sysf_messageBox("현재 로그인한 사용자를 강제로 로그아웃시킵니다.\n저장하지 않은 모든 내용은 사라집니다.\n그래도 종료를", "Q003");
- if(nRtn == 6){
- this.close(true);
- }
- }
- }
- /****************************************************************************************
- * Components : Button
- * Components ID : btn_confirm
- * Event : onclick
- * Argument : 01.obj : Button
- * : 02.e : ClickEventInfo
- * Description : 비밀번호 확인
- ****************************************************************************************/
- function btn_confirm_onclick(obj:Button, e:ClickEventInfo){
-
- lf_confirmPassword("");
- }
- /****************************************************************************************
- * Components : Button
- * Components ID : btn_close
- * Event : onclick
- * Argument : 01.obj : Button
- * : 02.e : ClickEventInfo
- * Description : 팝업 닫기
- ****************************************************************************************/
- function btn_close_onclick(obj:Button, e:ClickEventInfo){
- this.close(true);
- }
- /****************************************************************************************
- * Components : Edit
- * Components ID : edt_password
- * Event : onkeyup
- * Argument : 01.obj : Edit
- * : 02.e : KeyEventInfo
- * Description : 비밀번호 입력 후 엔터키 처리
- ****************************************************************************************/
- function edt_password_onkeyup(obj:Edit, e:KeyEventInfo){
-
- if(e.keycode == 13){
- lf_confirmPassword("");
- }
- }
- function SPZUM00400_onkeydown(obj:Form, e:KeyEventInfo)
- {
- if(e.altKey) { // Alt 키가 눌러져 있는지 체크
- if(e.keycode == 115) return true; // F4키
- }
- }
- ]]></Script>
- </Form>
- </FDL>
|