SPZUM01100_정보변경.xrw 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:ex="http://www.comsquare.co.kr/xforms/excel" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:my="http://www.comsquare.co.kr/example" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:cs="http://www.comsquare.co.kr/xforms">
  4. <xhtml:head>
  5. <xhtml:title>정보변경</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <send>
  10. <oldpwd/>
  11. <pwd/>
  12. <cnfmpwd/>
  13. <menugruplist/>
  14. <deptsortlist>
  15. </deptsortlist>
  16. <userid/>
  17. <mpphonno/>
  18. <pdano/>
  19. </send>
  20. <init>
  21. <username/>
  22. </init>
  23. <main>
  24. <menugruplist>
  25. <items>
  26. <menugrupnm>공통(KH_공통)</menugrupnm>
  27. <menugrupcd>MG00010000</menugrupcd>
  28. <menuauthcd>MA00000055</menuauthcd>
  29. <sortno>1</sortno>
  30. </items>
  31. </menugruplist>
  32. <clientinfo>
  33. </clientinfo>
  34. <signinfo>
  35. <signdata/>
  36. <oldpwd/>
  37. <newpwd1/>
  38. <newpwd2/>
  39. </signinfo>
  40. <deptsortlist>
  41. <items>
  42. <dutdeptnm/>
  43. <sortno/>
  44. <userid/>
  45. <dutplceinstcd/>
  46. <dutplceinstnm/>
  47. <dutplcecd/>
  48. <dutplcenm/>
  49. </items>
  50. </deptsortlist>
  51. <phoneinfo>
  52. <mpphonno/>
  53. <pdano/>
  54. <duploginyn/>
  55. </phoneinfo>
  56. </main>
  57. </root>
  58. </instance>
  59. <submission id="TXZUM01101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  60. <submission id="TXZUM01102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp"/>
  61. <submission id="TXZUM01103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/menugruplist"/>
  62. <submission id="TXZUM01702" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp"/>
  63. <submission id="TXZUM01703" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp"/>
  64. <submission id="TRZUM01302" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/menugruplist"/>
  65. <submission id="TRZUM01702" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/deptsortlist"/>
  66. <script type="javascript" ev:event="xforms-ready">
  67. <![CDATA[
  68. //인증서 비번 입력화면에서 분기시 바로 인증서 관리 텝으로 이동시켜 주는 기능(20150420 이윤주)
  69. var flag = opener.window.javascript.getParameter("SPZUM01100_param_flag");
  70. btn_pw.selected = true;
  71. btn_pw.dispatch("DOMActivate");
  72. if (flag == "5") {
  73. btn_signinfo.selected = true;
  74. btn_signinfo.dispatch("DOMActivate");
  75. }
  76. model.setValue("/root/send/userid",getUserId());
  77. submit("TRZUM01302",false);
  78. submit("TRZUM01702",false);
  79. submit("TRZUM01104",false);
  80. model.setValue("/root/init/username", getUserInfo("dutplcenm") + ": " +getUserName());
  81. model.setValue("/root/main/clientinfo", fGetClientInfo());
  82. model.refresh();
  83. ]]>
  84. </script>
  85. <submission id="TXZUM01104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  86. <submission id="TRZUM01104" mediatype="application/x-www-form-urlencoded" method="post" resultref="/root/main/phoneinfo"/>
  87. <submission id="TXZUM02100" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/phoneinfo"/>
  88. </model>
  89. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  90. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  91. <script type="javascript" src="../../../com/signweb/js/ZES001.js"/>
  92. <script type="javascript" src="../../../com/hismainweb/js/ZUM008.js"/>
  93. <script type="javascript">
  94. <![CDATA[
  95. function fSetMenuGroupSeq(toSeq, type){
  96. var isSeq = grd_menugruplist.row;
  97. if(isSeq > 0){
  98. var srcSeq = (isSeq > toSeq) ? isSeq+1 : isSeq;
  99. grd_menugruplist.insertRow(toSeq, type, false);
  100. model.copyNode("/root/main/menugruplist/items["+grd_menugruplist.row+"]", "/root/main/menugruplist/items["+srcSeq+"]");
  101. grd_menugruplist.deleteRow(srcSeq, false);
  102. if(isSeq > toSeq){
  103. startRow = toSeq;
  104. endRow = isSeq;
  105. }else{
  106. startRow = isSeq;
  107. endRow = toSeq;
  108. }
  109. for (var i=startRow; i <= endRow; i++)
  110. {
  111. model.setValue("/root/main/menugruplist/items["+i+"]/sortno", i);
  112. grd_menugruplist.rowStatus(i) = 2;
  113. }
  114. model.refresh();
  115. }else{
  116. messageBox("변경할 메뉴그룹을","C002");
  117. }
  118. }
  119. function fSetDeptSortSeq(toSeq, type){
  120. var isSeq = grd_deptsortlist.row;
  121. if(isSeq > 0){
  122. var srcSeq = (isSeq > toSeq) ? isSeq+1 : isSeq;
  123. grd_deptsortlist.insertRow(toSeq, type, false);
  124. model.copyNode("/root/main/deptsortlist/items["+grd_deptsortlist.row+"]", "/root/main/deptsortlist/items["+srcSeq+"]");
  125. grd_deptsortlist.deleteRow(srcSeq, false);
  126. if(isSeq > toSeq){
  127. startRow = toSeq;
  128. endRow = isSeq;
  129. }else{
  130. startRow = isSeq;
  131. endRow = toSeq;
  132. }
  133. for (var i=startRow; i <= endRow; i++)
  134. {
  135. model.setValue("/root/main/deptsortlist/items["+i+"]/sortno", i);
  136. grd_deptsortlist.rowStatus(i) = 2;
  137. }
  138. model.refresh();
  139. }else{
  140. messageBox("변경할 근무지 순서를","C002");
  141. }
  142. }
  143. // 시스템 비밀번호 변경시 체크
  144. function fCheckPassword(){
  145. if(isRequiredControls("sct_oldpwd", "sct_pwd", "sct_cnfmpwd")){
  146. var pwdKind = model.getValue("/root/send/pwdkind");
  147. if (sct_pwd.value != sct_cnfmpwd.value){
  148. messageBox("새비밀번호가 ","E004");
  149. model.setFocus("sct_pwd");
  150. return false;
  151. }
  152. }else{
  153. return false;
  154. }
  155. /*
  156. var pwdNew = sct_pwd.value;
  157. if(pwdNew.length<9){
  158. messageBox("비밀번호는 최소 9자리여야 합니다.","E999");
  159. return false;
  160. }
  161. var alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  162. var number = "1234567890";
  163. var flag1,flag2;
  164. for(var i=0; i<pwdNew.length; i++){
  165. if(alpha.match(pwdNew.charAt(i))){
  166. flag1=true;
  167. }
  168. if(number.match(pwdNew.charAt(i))){
  169. flag2=true;
  170. }
  171. }
  172. if(!(flag1 && flag2)){
  173. messageBox("비밀번호는 영문자와 숫자 조합이어야 합니다.","E999");
  174. return false;
  175. }
  176. */
  177. return fCommonCheckPassword(sct_pwd.value);
  178. }
  179. // 전자인증 비밀번호 변경시 체크
  180. function fPreCheckSignPassword(){
  181. if(isRequiredControls("sct_signoldpwd", "sct_signnewpwd1", "sct_signnewpwd1")){
  182. if (sct_signnewpwd1.value != sct_signnewpwd2.value){
  183. messageBox("새비밀번호가 ","E004");
  184. model.setFocus("sct_signnewpwd1");
  185. return false;
  186. }
  187. if (sct_signoldpwd.value == sct_signnewpwd1.value){
  188. messageBox("이전비밀번호와 새비밀번호가 동일합니다","E");
  189. model.setFocus("sct_signnewpwd1");
  190. return false;
  191. }
  192. }else{
  193. return false;
  194. }
  195. return true;
  196. }
  197. function fGetClientInfo() {
  198. var html = htmlwindow;
  199. var navgr = html.navigator;
  200. var locatn = html.location;
  201. var scrn = html.screen;
  202. var userid = "user : " + getUserId() + "/" + getUserName() + "\n";
  203. var ip = "ip : " + app.clientIp + "\n";
  204. var name = "name : " + app.computerName + "\n";
  205. var macaddr = "mac : " + app.macAddress + "\n";
  206. var viewer = "viewer : " + app.appVersion + "\n";
  207. var moncnt = "moncnt : " + app.monitorNumber + "\n";
  208. var resol = "resol : " + app.monitorResolution + " & " + scrn.colorDepth + "bit\n";
  209. var brwstype = "brwstype : " + navgr.appName + "\n";
  210. var brwsfullver = "brwsfullver : " + navgr.appVersion + "\n";
  211. var lang = "brws/sys/user : " + navgr.browserLanguage + "/" + navgr.systemLanguage + "/" + navgr.userLanguage + "\n";
  212. var cookie = "iscookie : " + navgr.cookieEnabled + "\n"
  213. var host = "host : " + locatn.protocol + "//" + locatn.host + "\n";
  214. var os = "os : ", brws = "brws : ";
  215. if (navgr.userAgent) {
  216. var t = navgr.userAgent.toLowerCase();
  217. // os
  218. if (t.indexOf("98") != -1) { os += "Windows 98"; }
  219. else if (t.indexOf("95") != -1) { os += "Windows 95"; }
  220. else if (t.indexOf("nt 6.0") != -1) { os += "Windows Vista"; }
  221. else if (t.indexOf("nt 5.0") != -1) { os += "Windows 2000"; }
  222. else if (t.indexOf("nt 5.1") != -1) { os += "Windows XP"; }
  223. else if (t.indexOf("nt 5.2") != -1) { os += "Windows Server 2003"; }
  224. else if (t.indexOf("nt") != -1) { os += "Windows NT"; }
  225. else if (t.indexOf("me") != -1) { os += "Windows Me"; }
  226. else { os = "Windows"; }
  227. os += "\n";
  228. // browser
  229. if (t.indexOf("msie") != -1) {
  230. if (t.indexOf("7.0") != -1) { brws += "Internet Explorer 7.0"; }
  231. else { brws += "Internet Explorer"; }
  232. }
  233. else if (t.indexOf("opera") != -1) { brws += "Opera"; }
  234. else if (t.indexOf("netscape") != -1) { brws += "Netscape"; }
  235. else if (t.indexOf("firefox/2") != -1) { brws += "Firefox2"; }
  236. else if (t.indexOf("firefox") != -1) { brws += "Firefox"; }
  237. else if (t.indexOf("safari") != -1) { brws += "Safari"; }
  238. brws += "\n";
  239. }
  240. var clientinfo = userid + ip + name + macaddr + viewer + moncnt + resol
  241. + os + brws + brwstype + brwsfullver + lang + cookie + host ;
  242. return clientinfo;
  243. }
  244. ]]>
  245. </script>
  246. </xhtml:head>
  247. <xhtml:body pagewidth="510" pageheight="370" guideline="1,499;1,582;2,385;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  248. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:98px; height:14px; ">정보변경</caption>
  249. <output id="userName" ref="/root/init/username" class="output_text" style="left:331px; top:0px; width:150px; height:13px; "/>
  250. <group id="grp_biz" scroll="auto" style="left:0px; top:13px; width:490px; height:336px; ">
  251. <button id="btn_pw" class="btn_sw4" group="tab" selected="true" style="left:2px; top:10px; width:64px; height:22px; ">
  252. <caption>개인정보</caption>
  253. <toggle case="case1" ev:event="DOMActivate"/>
  254. </button>
  255. <button id="btn_menu" class="btn_sw6" group="tab" style="left:65px; top:10px; width:88px; height:22px; ">
  256. <caption>메뉴그룹순서</caption>
  257. <toggle case="case2" ev:event="DOMActivate"/>
  258. </button>
  259. <button id="btn_coord" class="btn_sw7" group="tab" style="left:229px; top:10px; width:100px; height:22px; ">
  260. <caption>화면좌표초기화</caption>
  261. <toggle case="case3" ev:event="DOMActivate"/>
  262. </button>
  263. <button id="btn_clientinfo" class="btn_sw4" group="tab" style="left:329px; top:10px; width:64px; height:22px; ">
  264. <caption>PC정보</caption>
  265. <toggle case="case4" ev:event="DOMActivate"/>
  266. </button>
  267. <button id="btn_signinfo" class="btn_sw6" group="tab" style="left:393px; top:10px; width:88px; height:22px; ">
  268. <caption>인증서관리</caption>
  269. <toggle case="case5" ev:event="DOMActivate"/>
  270. </button>
  271. <switch id="switch1" style="left:2px; top:31px; width:479px; height:305px; ">
  272. <case id="case1" selected="true" style="left:0px; top:0px; width:479px; height:303px; ">
  273. <caption id="cap_oldpwd" class="cell_1" style="left:65px; top:18px; width:91px; height:23px; ">현재비밀번호</caption>
  274. <caption id="cap_pwd" class="cell_1" style="left:65px; top:46px; width:91px; height:23px; ">새비밀번호</caption>
  275. <caption id="cap_cnfmpwd" class="cell_1" style="left:65px; top:74px; width:91px; height:23px; ">새비밀번호확인</caption>
  276. <secret id="sct_oldpwd" ref="/root/send/oldpwd" class="secret_essential" maxlength="20" style="left:159px; top:19px; width:130px; height:19px; "/>
  277. <secret id="sct_pwd" ref="/root/send/pwd" class="secret_essential" maxlength="20" style="left:159px; top:47px; width:130px; height:19px; "/>
  278. <secret id="sct_cnfmpwd" ref="/root/send/cnfmpwd" class="secret_essential" maxlength="20" style="left:159px; top:75px; width:130px; height:19px; "/>
  279. <line id="line6" class="line_3" style="x1:65px; y1:96px; x2:289px; y2:96px; "/>
  280. <button id="btn_pwd" class="btn4_letter10" disable.background-image="../../../com/commonweb/images/dis_btn4_letter9.gif" style="left:305px; top:75px; width:152px; height:22px; background-image:../../../com/commonweb/images/btn4_letter9.gif; ">
  281. <caption>로그인비밀번호변경</caption>
  282. <script type="javascript" ev:event="DOMActivate">
  283. <![CDATA[
  284. if(fCheckPassword()){
  285. setAlertOn();
  286. // 치과쪽 SSL이 없어서 로직 분리. SSL 생길 시 수정 요망 (behson 160311)
  287. if(getUserInfo("dutplceinstcd") == "033"){
  288. if(submit("TXZUM01101")){ // 치과인 경우
  289. window.close();
  290. }
  291. }else{
  292. if(submitSSL("TXZUM01101")){ // 치과가 아닌경우(본원,칠곡)
  293. window.close();
  294. }
  295. }
  296. }
  297. ]]>
  298. </script>
  299. </button>
  300. <line id="line1" class="line_3" style="x1:65px; y1:68px; x2:289px; y2:68px; "/>
  301. <line id="line2" class="line_3" style="x1:65px; y1:40px; x2:289px; y2:40px; "/>
  302. <caption id="caption8" class="hand" style="left:60px; top:190px; width:365px; height:20px; ">전자인증서 비밀번호는 '인증서관리' 탭을 이용하세요.</caption>
  303. <caption id="caption14" class="cell_1" style="left:65px; top:247px; width:91px; height:23px; ">휴대전화번호</caption>
  304. <input id="ipt_mpphonno" ref="/root/main/phoneinfo/mpphonno" class="input_default" imemode="disabled" maxlength="15" style="left:159px; top:250px; width:130px; height:19px; "/>
  305. <caption id="caption15" class="cell_1" style="left:66px; top:273px; width:91px; height:23px; ">N-Zone 번호</caption>
  306. <input id="ipt_pdano" ref="/root/main/phoneinfo/pdano" class="input_default" imemode="disabled" maxlength="11" format="99999999999" style="left:159px; top:274px; width:130px; height:19px; "/>
  307. <line id="line9" class="line_3" style="x1:66px; y1:299px; x2:290px; y2:299px; "/>
  308. <line id="line8" class="line_3" style="x1:65px; y1:271px; x2:289px; y2:271px; "/>
  309. <button id="btn_changeno" class="btn4_letter4" disable.background-image="../../../com/commonweb/images/dis_btn4_letter9.gif" style="left:375px; top:264px; width:80px; height:22px; background-image:../../../com/commonweb/images/btn4_letter9.gif; ">
  310. <caption>번호변경</caption>
  311. <script type="javascript" ev:event="DOMActivate">
  312. <![CDATA[
  313. model.setValue("/root/send/mpphonno", model.getValue("/root/main/phoneinfo/mpphonno"));
  314. model.setValue("/root/send/pdano", model.getValue("/root/main/phoneinfo/pdano"));
  315. setAlertOn();
  316. submit("TXZUM01104", false);
  317. submit("TRZUM01104");
  318. ]]>
  319. </script>
  320. </button>
  321. <caption id="caption3" class="hand" style="left:60px; top:101px; width:360px; height:30px; ">
  322. <![CDATA[최소 10자리 이상 숫자, 영문, 특수문자 반드시 포함
  323. (대소문자구분됨)]]>
  324. </caption>
  325. <caption id="caption16" class="hand" style="left:60px; top:130px; width:353px; height:20px; ">사용자계정(ID)은 비밀번호에 포함될 수 없음</caption>
  326. <caption id="caption17" class="hand" style="left:60px; top:150px; width:353px; height:20px; ">문자/숫자 4자리 이상 반복될 수 없음</caption>
  327. <caption id="caption18" class="hand" style="left:60px; top:170px; width:270px; height:20px; ">변경된 비밀번호는 3개월간 유지</caption>
  328. <caption id="caption20" style="left:30px; top:208px; width:315px; height:30px; font-weight:bold; color:#3366ff; ">
  329. <![CDATA[ 관련근거:본원:진료지원실(의무기록)-1042
  330. 칠곡:진료행정과(의무기록)-267 ]]>
  331. </caption>
  332. <caption id="caption1" style="left:345px; top:215px; width:123px; height:20px; ">-문의처:전산실</caption>
  333. <caption id="caption25" style="left:345px; top:232px; width:128px; height:20px; ">(T.6597)</caption>
  334. <line id="line10" class="line_3" visibility="hidden" style="x1:313px; y1:40px; x2:457px; y2:40px; "/>
  335. <caption id="caption24" class="cell_1" style="left:313px; top:18px; width:121px; height:23px; ">중복로그인가능여부</caption>
  336. <bool id="chk_duplogin" checkvalue="Y,N" ref="/root/main/phoneinfo/duploginyn" style="left:437px; top:19px; width:20px; height:20px; ">
  337. <script type="javascript" ev:event="xforms-value-changed">
  338. <![CDATA[
  339. submit("TXZUM02100");
  340. ]]>
  341. </script>
  342. </bool>
  343. <caption id="caption26" style="left:366px; top:43px; width:95px; height:20px; ">재로그인시 적용</caption>
  344. </case>
  345. <case id="case2">
  346. <datagrid id="grd_menugruplist" nodeset="/root/main/menugruplist/items" allowselection="false" allowuserresize="true" caption="메뉴그룹명^순서^temp^메뉴그룹ID^메뉴권한ID" colwidth="344, 81, 100, 100, 100, 100" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" style="left:10px; top:35px; width:458px; height:241px; ">
  347. <col ref="menugrupnm"/>
  348. <col ref="sortno"/>
  349. <col ref="menugrupcd" visibility="hidden"/>
  350. <col ref="menuauthcd" visibility="hidden"/>
  351. <col ref="defaultitemid" visibility="hidden"/>
  352. <col ref="prestdeptcd" visibility="hidden"/>
  353. <script type="javascript" ev:event="onclick">
  354. <![CDATA[
  355. if(! isDataCell() ){
  356. messageBox("변경할 메뉴그룹을","C002");
  357. }
  358. ]]>
  359. </script>
  360. </datagrid>
  361. <line id="line12" class="line_1" style="x1:10px; y1:28px; x2:468px; y2:29px; text-align:left; "/>
  362. <caption id="caption9" class="tit_2" style="left:13px; top:5px; width:126px; height:13px; vertical-align:middle; ">메뉴그룹 순서변경</caption>
  363. <button id="btn_to_top" class="icon_top" disable.background-image="../../../com/commonweb/images/dis_btn2_letter4.gif" style="left:355px; top:5px; width:26px; height:19px; ">
  364. <caption/>
  365. <script type="javascript" ev:event="DOMActivate">
  366. <![CDATA[
  367. if(grd_menugruplist.row > 1){
  368. fSetMenuGroupSeq("1", "above");
  369. grd_menugruplist.row = grd_menugruplist.fixedRows;
  370. }else{
  371. messageBox("최상위 메뉴그룹이","E005");
  372. }
  373. ]]>
  374. </script>
  375. <hint>
  376. <![CDATA[맨위로]]>
  377. </hint>
  378. </button>
  379. <button id="btn_to_up" class="icon_top_direction" disable.background-image="../../../com/commonweb/images/dis_btn2_letter2.gif" style="left:384px; top:5px; width:26px; height:19px; ">
  380. <caption/>
  381. <script type="javascript" ev:event="DOMActivate">
  382. <![CDATA[
  383. if(grd_menugruplist.row > 1){
  384. fSetMenuGroupSeq(grd_menugruplist.row-1, "above");
  385. grd_menugruplist.row = grd_menugruplist.row-2;
  386. }else{
  387. messageBox("최상위 메뉴그룹이","E005");
  388. }
  389. ]]>
  390. </script>
  391. <hint>
  392. <![CDATA[위로]]>
  393. </hint>
  394. </button>
  395. <button id="btn_to_down" class="icon_bottom_direction" disable.background-image="../../../com/commonweb/images/dis_btn2_letter3.gif" style="left:413px; top:5px; width:26px; height:19px; ">
  396. <caption/>
  397. <script type="javascript" ev:event="DOMActivate">
  398. <![CDATA[
  399. if( grd_menugruplist.rows-grd_menugruplist.fixedRows > grd_menugruplist.row ){
  400. fSetMenuGroupSeq(grd_menugruplist.row+1, "below");
  401. grd_menugruplist.row = grd_menugruplist.row+1;
  402. }else{
  403. messageBox("최하위 메뉴그룹이","E005");
  404. }
  405. ]]>
  406. </script>
  407. <hint>
  408. <![CDATA[아래로]]>
  409. </hint>
  410. </button>
  411. <button id="btn_to_bottom" class="icon_bottom" disable.background-image="../../../com/commonweb/images/dis_btn2_letter4.gif" style="left:442px; top:5px; width:26px; height:19px; ">
  412. <caption/>
  413. <script type="javascript" ev:event="DOMActivate">
  414. <![CDATA[
  415. if( grd_menugruplist.rows-grd_menugruplist.fixedRows > grd_menugruplist.row ){
  416. fSetMenuGroupSeq(grd_menugruplist.rows-grd_menugruplist.fixedRows, "below");
  417. grd_menugruplist.row= grd_menugruplist.rows-grd_menugruplist.fixedRows;
  418. }else{
  419. messageBox("최하위 메뉴그룹이","E005");
  420. }
  421. ]]>
  422. </script>
  423. <hint>
  424. <![CDATA[맨아래로]]>
  425. </hint>
  426. </button>
  427. <group id="grp_btn" style="left:5px; top:276px; width:468px; height:27px; ">
  428. <button id="btn_save" class="btn4_letter2" disable.background-image="../../../com/commonweb/images/dis_btn4_letter2.gif" style="left:335px; top:3px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  429. <caption>저장</caption>
  430. <script type="javascript" ev:event="DOMActivate">
  431. <![CDATA[
  432. var updtdata = getGridUpdateData(grd_menugruplist, "update");
  433. if (updtdata == "") {
  434. messageBox("변경된 데이터가","I004");
  435. return;
  436. }
  437. if(messageBox("변경된 메뉴그룹순서를", "Q002") == 6){
  438. for( i = grd_menugruplist.fixedRows; i < grd_menugruplist.rows ; i++ ) {
  439. if(grd_menugruplist.valueMatrix(i,2) == ""){
  440. grd_menugruplist.valueMatrix(i,2) = i;
  441. grd_menugruplist.rowStatus(i) = 2;
  442. }
  443. }
  444. model.setValue("/root/send/menugruplist", grd_menugruplist.getUpdateData("update"));
  445. if(submit("TXZUM01102")){ // 메뉴그룹 순서 저장
  446. grd_menugruplist.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  447. }
  448. }
  449. ]]>
  450. </script>
  451. </button>
  452. <line id="line14" class="line_6" style="x1:0px; y1:25px; x2:310px; y2:25px; "/>
  453. <button id="btn_reset" class="btn4_letter3" disable.background-image="../../../com/commonweb/images/dis_btn4_letter3.gif" style="left:392px; top:3px; width:68px; height:22px; background-image:../../../com/commonweb/images/btn4_letter3.gif; ">
  454. <caption>초기화</caption>
  455. <script type="javascript" ev:event="DOMActivate">
  456. <![CDATA[
  457. var nodeList = instance1.selectNodes("/root/main/menugruplist/items[sortno>'0']");
  458. if(nodeList.length > 0){
  459. if(messageBox("메뉴그룹순서를", "Q010") == 6){
  460. model.setValue("/root/send/menugruplist", getNodeListCSV(nodeList));
  461. submit("TXZUM01103");
  462. }
  463. }else{
  464. messageBox("초기화할 데이터가","I004");
  465. }
  466. ]]>
  467. </script>
  468. </button>
  469. </group>
  470. </case>
  471. <case id="case3">
  472. <caption id="caption2" class="hand" style="left:100px; top:15px; width:299px; height:70px; ">
  473. <![CDATA[아래 초기화 버튼을 누르면
  474. 팝업화면의 최종 좌표정보들이
  475. 모두 삭제됩니다.]]>
  476. </caption>
  477. <button id="button1" class="btn4_letter3" disable.background-image="../../../com/commonweb/images/dis_btn4_letter3.gif" style="left:380px; top:275px; width:68px; height:22px; background-image:../../../com/commonweb/images/btn4_letter3.gif; ">
  478. <caption>초기화</caption>
  479. <script type="javascript" ev:event="DOMActivate">
  480. <![CDATA[
  481. var viewerObj = getViewer("sysMessage");
  482. if (viewerObj != null && viewerObj.window.javascript.fClearAllScreenLocation != undefined) {
  483. viewerObj.window.javascript.fClearAllScreenLocation();
  484. }
  485. ]]>
  486. </script>
  487. </button>
  488. </case>
  489. <case id="case4">
  490. <textarea id="tar_clientinfo" ref="/root/main/clientinfo" scroll="autovscroll" editable="false" style="left:10px; top:45px; width:460px; height:250px; "/>
  491. <caption id="caption4" class="hand" style="left:10px; top:5px; width:290px; height:40px; ">현재 사용중인 PC 의 정보를 보여줍니다.</caption>
  492. </case>
  493. <case id="case5" style="left:0px; top:0px; width:477px; height:303px; ">
  494. <button id="btn_sign" class="btn3_letter11" style="left:55px; top:151px; width:164px; height:22px; background-image:../../../com/commonweb/images/btn3_letter10.gif; ">
  495. <caption>전자인증비밀번호변경</caption>
  496. <script type="javascript" ev:event="DOMActivate">
  497. <![CDATA[
  498. if (fPreCheckSignPassword() == false) {
  499. return;
  500. }
  501. if (fCommonCheckPassword(model.getValue("/root/main/signinfo/newpwd1")) == false) {
  502. return;
  503. }
  504. setParameter("titlemsg", "전자인증 비밀번호 변경을 위한 본인확인");
  505. setParameter("helpmsg", "전자인증 비밀번호를 변경하기 위해서는 본인확인을 먼저 거쳐야 합니다.");
  506. modal("SPZUM00400", "", "", "", "", "", "","width:279px;height:180px;align:center;");
  507. if (getParameter("pwdvalid") == "Y") {
  508. if(zesfInitSign()) {
  509. zesfChangeKeyPwd(model.getValue("/root/main/signinfo/oldpwd"),model.getValue("/root/main/signinfo/newpwd1"));
  510. }
  511. }
  512. // 비밀번호 변경 후 리셋
  513. model.setValue("/root/main/signinfo/oldpwd", "");
  514. model.setValue("/root/main/signinfo/newpwd1", "");
  515. model.setValue("/root/main/signinfo/newpwd2", "");
  516. model.refresh();
  517. ]]>
  518. </script>
  519. </button>
  520. <button id="btn_signupdate" class="btn3_letter11" style="left:55px; top:196px; width:164px; height:22px; ">
  521. <caption>사용자전자인증서갱신</caption>
  522. <script type="javascript" ev:event="DOMActivate">
  523. <![CDATA[
  524. setParameter("titlemsg", "전자인증서 갱신을 위한 본인확인");
  525. setParameter("helpmsg", "사용자 전자인증서를 갱신하기 위해서는 본인확인을 먼저 거쳐야 합니다.");
  526. modal("SPZUM00400", "", "", "", "", "", "","width:279px;height:180px;align:center;");
  527. if (getParameter("pwdvalid") == "Y") {
  528. if(zesfInitSign()) {
  529. zesfRenewKeyAndCert();
  530. }
  531. }
  532. ]]>
  533. </script>
  534. </button>
  535. <caption id="caption5" class="hand" style="left:45px; top:172px; width:365px; height:25px; ">기간이 만료된 전자인증서를 갱신합니다.</caption>
  536. <caption id="caption7" class="hand" style="left:45px; top:215px; width:392px; height:25px; ">전자서명이 정상적으로 이루어지는지 테스트할 수 있습니다.</caption>
  537. <button id="button2" class="btn4_letter10" style="left:278px; top:275px; width:152px; height:22px; ">
  538. <caption>전자서명 생성테스트</caption>
  539. <script type="javascript" ev:event="DOMActivate">
  540. <![CDATA[
  541. _SIGNTEST = "Y";
  542. var signedData = zesfSignData( model.getValue("/root/main/signinfo/signdata"), getUserId(), true);
  543. model.setValue( "/root/main/signinfo/signdata", signedData);
  544. model.refresh();
  545. ]]>
  546. </script>
  547. </button>
  548. <caption id="caption10" class="cell_1" style="left:60px; top:124px; width:91px; height:23px; ">새비밀번호확인</caption>
  549. <secret id="sct_signoldpwd" ref="/root/main/signinfo/oldpwd" class="secret_essential" maxlength="20" style="left:154px; top:69px; width:130px; height:19px; "/>
  550. <secret id="sct_signnewpwd1" ref="/root/main/signinfo/newpwd1" class="secret_essential" maxlength="20" style="left:154px; top:97px; width:130px; height:19px; "/>
  551. <secret id="sct_signnewpwd2" ref="/root/main/signinfo/newpwd2" class="secret_essential" maxlength="20" style="left:154px; top:125px; width:130px; height:19px; "/>
  552. <line id="line3" class="line_3" style="x1:60px; y1:118px; x2:284px; y2:118px; "/>
  553. <caption id="caption11" class="cell_1" style="left:60px; top:68px; width:91px; height:23px; ">이전비밀번호</caption>
  554. <line id="line4" class="line_3" style="x1:60px; y1:90px; x2:284px; y2:90px; "/>
  555. <caption id="caption12" class="cell_1" style="left:60px; top:96px; width:91px; height:23px; ">새비밀번호</caption>
  556. <line id="line5" class="line_3" style="x1:60px; y1:146px; x2:284px; y2:146px; "/>
  557. <textarea id="textarea1" ref="/root/main/signinfo/signdata" style="left:50px; top:240px; width:380px; height:34px; "/>
  558. <button id="button3" class="btn3_letter3" style="left:50px; top:275px; width:68px; height:22px; ">
  559. <caption>초기화</caption>
  560. <script type="javascript" ev:event="DOMActivate">
  561. <![CDATA[
  562. model.setValue("/root/main/signinfo/signdata", "");
  563. model.refresh();
  564. ]]>
  565. </script>
  566. </button>
  567. <caption id="caption19" class="hand" style="left:45px; top:1px; width:360px; height:30px; ">
  568. <![CDATA[최소 10자리 이상 숫자, 영문, 특수문자 반드시 포함
  569. (대소문자구분됨)]]>
  570. </caption>
  571. <caption id="caption21" class="hand" style="left:45px; top:30px; width:353px; height:20px; ">사용자계정(ID)은 비밀번호에 포함될 수 없음</caption>
  572. <caption id="caption22" class="hand" style="left:45px; top:48px; width:353px; height:20px; ">문자/숫자 4자리 이상 반복될 수 없음</caption>
  573. <caption id="caption23" style="left:310px; top:55px; width:145px; height:20px; ">-문의처:의무기록팀</caption>
  574. </case>
  575. <case id="case6">
  576. <button id="button5" class="icon_top_direction" disable.background-image="../../../com/commonweb/images/dis_btn2_letter2.gif" style="left:384px; top:5px; width:26px; height:19px; ">
  577. <caption/>
  578. <script type="javascript" ev:event="DOMActivate">
  579. <![CDATA[
  580. if(grd_deptsortlist.row > 1){
  581. fSetDeptSortSeq(grd_deptsortlist.row-1, "above");
  582. }else{
  583. messageBox("최상위 근무지가","E005");
  584. }
  585. ]]>
  586. </script>
  587. <hint>
  588. <![CDATA[위로]]>
  589. </hint>
  590. </button>
  591. <line id="line7" class="line_1" style="x1:10px; y1:28px; x2:468px; y2:29px; text-align:left; "/>
  592. <button id="button6" class="icon_bottom" disable.background-image="../../../com/commonweb/images/dis_btn2_letter4.gif" style="left:442px; top:5px; width:26px; height:19px; ">
  593. <caption/>
  594. <script type="javascript" ev:event="DOMActivate">
  595. <![CDATA[
  596. if( grd_deptsortlist.rows-grd_deptsortlist.fixedRows > grd_deptsortlist.row ){
  597. fSetDeptSortSeq(grd_deptsortlist.rows-grd_deptsortlist.fixedRows, "below");
  598. }else{
  599. messageBox("최하위 근무지가","E005");
  600. }
  601. ]]>
  602. </script>
  603. <hint>
  604. <![CDATA[맨아래로]]>
  605. </hint>
  606. </button>
  607. <button id="button7" class="icon_top" disable.background-image="../../../com/commonweb/images/dis_btn2_letter4.gif" style="left:355px; top:5px; width:26px; height:19px; ">
  608. <caption/>
  609. <script type="javascript" ev:event="DOMActivate">
  610. <![CDATA[
  611. if(grd_deptsortlist.row > 1){
  612. fSetDeptSortSeq("1", "above");
  613. }else{
  614. messageBox("최상위 근무지가","E005");
  615. }
  616. ]]>
  617. </script>
  618. <hint>
  619. <![CDATA[맨위로]]>
  620. </hint>
  621. </button>
  622. <button id="button8" class="icon_bottom_direction" disable.background-image="../../../com/commonweb/images/dis_btn2_letter3.gif" style="left:413px; top:5px; width:26px; height:19px; ">
  623. <caption/>
  624. <script type="javascript" ev:event="DOMActivate">
  625. <![CDATA[
  626. if( grd_deptsortlist.rows-grd_deptsortlist.fixedRows > grd_deptsortlist.row ){
  627. fSetDeptSortSeq(grd_deptsortlist.row+1, "below");
  628. }else{
  629. messageBox("최하위 근무지가","E005");
  630. }
  631. ]]>
  632. </script>
  633. <hint>
  634. <![CDATA[아래로]]>
  635. </hint>
  636. </button>
  637. <caption id="caption13" class="tit_2" style="left:13px; top:5px; width:126px; height:14px; vertical-align:middle; ">근무지 순서변경</caption>
  638. <button id="button9" class="btn4_letter2" disable.background-image="../../../com/commonweb/images/dis_btn4_letter2.gif" style="left:343px; top:278px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  639. <caption>저장</caption>
  640. <script type="javascript" ev:event="DOMActivate">
  641. <![CDATA[
  642. var updtdata = getGridUpdateData(grd_deptsortlist, "update");
  643. if (updtdata == "") {
  644. messageBox("변경된 데이터가","I004");
  645. return;
  646. }
  647. if(messageBox("변경된 근무지 순서를", "Q002") == 6){
  648. for( i = grd_deptsortlist.fixedRows; i < grd_deptsortlist.rows ; i++ ) {
  649. grd_deptsortlist.rowStatus(i) = 2;
  650. if(grd_deptsortlist.valueMatrix(i,2) == ""){
  651. grd_deptsortlist.valueMatrix(i,2) = i;
  652. }
  653. }
  654. model.setValue("/root/send/deptsortlist", grd_deptsortlist.getUpdateData("update"));
  655. if(submit("TXZUM01702")){ // 근무지 순서 저장
  656. grd_deptsortlist.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  657. }
  658. }
  659. ]]>
  660. </script>
  661. </button>
  662. <button id="button10" class="btn4_letter3" disable.background-image="../../../com/commonweb/images/dis_btn4_letter3.gif" style="left:400px; top:278px; width:68px; height:22px; background-image:../../../com/commonweb/images/btn4_letter3.gif; ">
  663. <caption>초기화</caption>
  664. <script type="javascript" ev:event="DOMActivate">
  665. <![CDATA[
  666. var nodeList = instance1.selectNodes("/root/main/deptsortlist/items[sortno>'0']");
  667. if(nodeList.length > 0){
  668. if(messageBox("근무지순서를", "Q010") == 6){
  669. model.setValue("/root/send/deptsortlist", getNodeListCSV(nodeList));
  670. submit("TXZUM01703");
  671. submit("TRZUM01702");
  672. }
  673. }else{
  674. messageBox("초기화할 데이터가","I004");
  675. }
  676. ]]>
  677. </script>
  678. </button>
  679. <datagrid id="grd_deptsortlist" nodeset="/root/main/deptsortlist/items" allowselection="false" allowuserresize="true" caption="근무지명^순서^temp^메뉴그룹ID^메뉴권한ID" colwidth="344, 81, 100, 100, 100, 100" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" style="left:10px; top:35px; width:458px; height:241px; ">
  680. <col ref="dutdeptnm"/>
  681. <col ref="sortno"/>
  682. <col ref="userid" visibility="hidden"/>
  683. <col ref="dutplceinstcd" visibility="hidden"/>
  684. <col ref="dutplceinstnm" visibility="hidden"/>
  685. <col ref="dutplcecd" visibility="hidden"/>
  686. <col ref="dutplcenm" visibility="hidden"/>
  687. <script type="javascript" ev:event="onclick">
  688. <![CDATA[
  689. if(! isDataCell() ){
  690. messageBox("변경할 근무지를","C002");
  691. }
  692. ]]>
  693. </script>
  694. </datagrid>
  695. </case>
  696. </switch>
  697. <button id="button4" class="btn_sw5" group="tab" style="left:153px; top:10px; width:76px; height:22px; ">
  698. <caption>근무지순서</caption>
  699. <toggle case="case6" ev:event="DOMActivate"/>
  700. </button>
  701. </group>
  702. <button id="btn_close" class="icon_close" style="left:431px; top:355px; width:42px; height:15px; ">
  703. <caption/>
  704. <script type="javascript" ev:event="DOMActivate">
  705. <![CDATA[
  706. if(model.getValue("/root/send/menugruplist") != ""){
  707. //menugrupcd|menuauthcd|menugrupnm^defaultitemid^prestdeptcd$
  708. var menugrouplist = "";
  709. for( i = grd_menugruplist.fixedRows; i < grd_menugruplist.rows ; i++ ) {
  710. menugrouplist = menugrouplist
  711. + grd_menugruplist.valueMatrix(i,3) + "|"
  712. + grd_menugruplist.valueMatrix(i,4) + "|"
  713. + grd_menugruplist.valueMatrix(i,1) + "^"
  714. + grd_menugruplist.valueMatrix(i,5) + "^"
  715. + grd_menugruplist.valueMatrix(i,6);
  716. if (i != grd_menugruplist.rows - 1) menugrouplist = menugrouplist + "$";
  717. }
  718. window.htmlwindow.updateMenuGroup(menugrouplist);
  719. }
  720. window.close();
  721. ]]>
  722. </script>
  723. </button>
  724. </xhtml:body>
  725. </xhtml:html>