SMZSA20400_메뉴권한관리.xrw 65 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" 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">
  4. <xhtml:head>
  5. <xhtml:title>Untitle</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list_authgrup>
  11. <menuauthgruplist/>
  12. </list_authgrup>
  13. <list_authuser>
  14. <menuauthuserlist/>
  15. <menudenyuserlist/>
  16. <menugrupauthlist>
  17. <menugrupnm/>
  18. <menugrupcd/>
  19. </menugrupauthlist>
  20. </list_authuser>
  21. <list_menu>
  22. <menulist/>
  23. </list_menu>
  24. <list_temp>
  25. <menuuserlist>
  26. <rgstnm/>
  27. <rgstcd/>
  28. <deptcd/>
  29. <deptnm/>
  30. </menuuserlist>
  31. </list_temp>
  32. <list_authmenu>
  33. <menugrupauthlist/>
  34. <menuauthlist/>
  35. </list_authmenu>
  36. <item>
  37. <menuauthnm/>
  38. <menuauthcd/>
  39. </item>
  40. </main>
  41. <send>
  42. <menuauthgruplist/>
  43. <searchitem/>
  44. <flag/>
  45. <optmenuauthcd/>
  46. <menuauthuserlist/>
  47. <menudenyuserlist/>
  48. <menulist/>
  49. <menuauthlist/>
  50. <menugrupcd/>
  51. <useyn/>
  52. <scrnauth/>
  53. <menugrupauthcd/>
  54. </send>
  55. <init>
  56. <flag>
  57. <lable>권한그룹명</lable>
  58. <value>menuauthnm</value>
  59. </flag>
  60. <searchitem/>
  61. <flag>
  62. <lable>권한그룹코드</lable>
  63. <value>menuauthcd</value>
  64. </flag>
  65. <flag>
  66. <lable>메뉴그룹명</lable>
  67. <value>menugrupnm</value>
  68. </flag>
  69. <flag>
  70. <lable>메뉴그룹코드</lable>
  71. <value>menugrupcd</value>
  72. </flag>
  73. <menulist>
  74. <menugruplist>
  75. <menugrupnm/>
  76. <menugrupcd/>
  77. </menugruplist>
  78. </menulist>
  79. <menugrupcd/>
  80. <menugrupauthcd/>
  81. <comcd>
  82. <R0061>
  83. <cdid/>
  84. <cdnm/>
  85. </R0061>
  86. <R0063>
  87. <cdid/>
  88. <cdnm/>
  89. </R0063>
  90. <Z0007>
  91. <cdid/>
  92. <cdnm/>
  93. </Z0007>
  94. <Z0016>
  95. <cdid/>
  96. <cdnm/>
  97. </Z0016>
  98. <R0059>
  99. <cdid/>
  100. <cdnm/>
  101. </R0059>
  102. <R0058>
  103. <cdid/>
  104. <cdnm/>
  105. </R0058>
  106. <R0062>
  107. <cdid/>
  108. <cdnm/>
  109. </R0062>
  110. </comcd>
  111. </init>
  112. <mamenu>
  113. <label>메뉴권한그룹삭제</label>
  114. <func>delmagrup</func>
  115. </mamenu>
  116. <mamenu>
  117. <label>메뉴권한그룹수정</label>
  118. <func>setmagrup</func>
  119. </mamenu>
  120. <authmenu1>
  121. <label>계정그룹삭제</label>
  122. <func>setAcntgroup</func>
  123. </authmenu1>
  124. <authmenu2>
  125. <label>근무지삭제</label>
  126. <func>setDutplce</func>
  127. </authmenu2>
  128. <authmenu3>
  129. <label>계정그룹삭제</label>
  130. <func>setDAcntgroup</func>
  131. </authmenu3>
  132. <authmenu4>
  133. <label>근무지삭제</label>
  134. <func>setDDutplce</func>
  135. </authmenu4>
  136. <hidden>
  137. <temp>
  138. <menuauthlist/>
  139. </temp>
  140. </hidden>
  141. </root>
  142. </instance>
  143. <script type="javascript" ev:event="xforms-ready">
  144. <![CDATA[
  145. //grd_menuauthlist.fixedcellcheckbox(0,5) = true;
  146. grd_menuauthlist.fixedcellcheckbox(0,6) = true;
  147. grd_menuauthlist.fixedcellcheckbox(0,7) = true;
  148. grd_menuauthlist.fixedcellcheckbox(0,8) = true;
  149. fInitialize();
  150. combo1.select(0);
  151. zbcfGetCodeList( new Array("R0061", "R0063", "Z0007", "Z0016", "R0058", "R0059", "R0062"),
  152. new Array("/root/init/comcd", "/root/init/comcd", "/root/init/comcd", "/root/init/comcd", "/root/init/comcd", "/root/init/comcd", "/root/init/comcd"),
  153. true,
  154. new Array("cdnm", "cdnm", "cdnm", "cdnm", "cdnm", "cdnm", "cdnm"),
  155. new Array("asc", "asc", "asc", "asc", "asc", "asc", "asc")
  156. );
  157. ]]>
  158. </script>
  159. <submission id="TRZBC00101" method="post" replace="instance"/>
  160. <submission id="TRZSA20400" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/list_authgrup"/>
  161. <submission id="TXZSA20400" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  162. <submission id="TRZSA20401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/list_authuser"/>
  163. <submission id="TRZSA20402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/menulist"/>
  164. <submission id="TRZSA20403" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/list_menu"/>
  165. <submission id="TXZSA20401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  166. <submission id="TRZSA20406" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/list_authmenu"/>
  167. <submission id="TXZSA20402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  168. </model>
  169. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  170. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  171. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  172. <script type="javascript" src="../../../com/authinfoweb/js/ZSA001.js"/>
  173. <script type="javascript">
  174. <![CDATA[
  175. /*
  176. 초기화 작업을 합니다.
  177. */
  178. function fInitialize(){
  179. cmb_menugrup.visible = "false";
  180. caption8.visible = "true";
  181. model.removeNodeset("/root/main/list_authgrup/menuauthgruplist");
  182. model.removeNodeset("/root/main/list_authuser/menuauthuserlist");
  183. model.removeNodeset("/root/main/list_authuser/menudenyuserlist");
  184. model.removeNodeset("/root/main/list_authmenu/menuauthlist");
  185. model.removeNodeset("/root/main/list_authmenu/menugrupauthlist");
  186. model.removeNodeset("/root/main/list_menu/menulist");
  187. model.removeNodeset("/root/main/list_temp/menuuserlist");
  188. // model.removeNodeset("/root/main/list_authuser/menuauthuserlist");
  189. // model.removeNodeset("/root/main/list_denyuser/menudenyuserlist");
  190. // model.removeNodeset("/root/main/list_menu/menulist");
  191. // model.removeNodeset("/root/main/list_menuauth/menuauthlist");
  192. //combo1.select(0);
  193. model.refresh();
  194. }
  195. /*
  196. 버튼 컨트롤들을 클릭했을때 공통으로 타는 함수입니다.
  197. control : "search" 는 조회 버튼 클릭
  198. "init"은 신규 버튼 클릭
  199. "save"는 저장 버튼 클릭
  200. grid : 그리드 컨트롤을 넘겨줍니다.
  201. param : 기타 param을 넘겨줍니다.
  202. */
  203. function fClicked(control, grid, param){
  204. if ("search" == control){
  205. fSearchClick(grid, param);
  206. model.resetInstanceNode("/root/send");
  207. } else if ("init" == control){
  208. model.reset();
  209. } else if ("save" == control){
  210. fSaveClick(grid, param);
  211. } else if ("delete" == control){
  212. fDeleteClick(grid, param);
  213. }else {
  214. messageBox("처리를 수행","E002");
  215. }
  216. model.refresh();
  217. }
  218. /*
  219. 조회버튼 클릭 타는 함수입니다.
  220. grid.explorerbar = "sortshow" sort설정합니다.
  221. ipt_usercdnm_flag는 검색조건의 사용자코드 or 사용자명입니다.
  222. radio1은 사용자코드 or 사용자명 선택 라디오 버튼입니다.
  223. submit을 날립니다.
  224. .
  225. */
  226. function fSearchClick(grid,param){
  227. // window.setPopupMenu(true, "/root/menu/menu", "Label", "func", true);
  228. // window.showPopupMenu(true);
  229. var RemNSet = "";
  230. if(param == "menuauthgrup"){
  231. RemNSet = "/root/main/list_authgrup/menuauthgruplist";
  232. } else if(param == "menu"){
  233. RemNSet = "/root/main/list_menu/menulist";
  234. } else if(param == "menulist"){
  235. RemNSet = "/root/main/list_menu/menulist";
  236. } else if(param == "menugrupauthlist"){
  237. RemNSet = "/root/main/list_authmenu/menugrupauthlist";
  238. } else if(param == "menuauthlist"){
  239. RemNSet = "/root/main/list_authmenu/menuauthlist";
  240. }
  241. grid.explorerbar = "sortshow";
  242. model.removeNodeset(RemNSet);
  243. grid.rebuild();
  244. // alert("조회를 눌렀습니다.");
  245. model.resetInstanceNode("/root/send");
  246. model.setValue("/root/send/searchitem", ipt_search_item.currentText);
  247. model.setValue("/root/send/flag", combo1.value);
  248. if(param == "menuauthgrup"){
  249. submit("TRZSA20400");
  250. } else if(param == "menu"){
  251. submit("TRZSA20402");
  252. } else if(param == "menulist"){
  253. model.setValue("/root/send/menugrupcd", cmb_menugrup.value);
  254. submit("TRZSA20403");
  255. } else if(param == "menugrupauthlist"){
  256. model.setValue("/root/send/menugrupauthcd", cmb_menugrupauthlist.value);
  257. model.setValue("/root/send/optmenuauthcd", opt_menuauthcd.value);
  258. submit("TRZSA20406");
  259. } else if(param == "menuauthlist"){
  260. model.setValue("/root/send/menugrupauthcd", cmb_menugrupauthlist.value);
  261. model.setValue("/root/send/optmenuauthcd", opt_menuauthcd.value);
  262. submit("TRZSA20406");
  263. } else {
  264. alert("Submit 실패입니다! 조회조건을 확인하세요!");
  265. }
  266. }
  267. /*
  268. 저장 버튼 클릭시 사는 함수입니다.
  269. 사용자코드, 사용자명, 비밀번호, 적용시작일자, 적용종료일자는 필수 항목 입니다.
  270. 필수항목 모두 입력시 /root/main/item 노드를 send 노드로 복사합니다.
  271. submit을 날립니다.
  272. */
  273. function fSaveClick(grid, param){
  274. if("menuauthgrup" == param){
  275. // alert("메뉴권한을 저장합니다.");
  276. model.setValue("/root/send/menuauthgruplist", grid.getUpdateData());
  277. if ( submit("TXZSA20400") ) {
  278. grid.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  279. }
  280. } else if("menuitem" == param){
  281. // alert("메뉴항목을 저장합니다.");
  282. // alert(opt_menugrupcd.value);
  283. model.setValue("/root/send", opt_menugrupcd.value);
  284. model.setValue("/root/send/menuitemlist", grid.getUpdateData());
  285. if ( submit("TXZSA20401") ) {
  286. grid.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  287. }
  288. }
  289. // model.copyNode("/root/send/item", "/root/hide/item");
  290. // submit("TXZSU10101");
  291. }
  292. // 화면 상단오른쪽에 저장버튼을 클릭시 호출되는 함수
  293. function fSaveTotal(){
  294. var temp_menuauthcd = opt_menuauthcd.value;
  295. var temp_menuauthnm = opt_menuauthnm.value;
  296. // 메뉴허용자조건에 비어있는 조건이 있는지 확인
  297. if(checkAuthColumn("grd_menuauthuserlist") == false || checkAuthColumn("grd_menudenyuserlist")==false)
  298. {
  299. messageBox("비어있는 조건식이 있습니다. 확인하여 주세요.", "I999");
  300. return;
  301. }
  302. // 메뉴제한자조건에 비어있는 조건이 있는지 확인
  303. // 메뉴권한설정 추가
  304. for(var i = 1; i < grd_menuauthlist.rows; i++){
  305. var iTypeR = fGetValue("/root/main/list_authmenu/menuauthlist", i, "r");
  306. var iTypeX = fGetValue("/root/main/list_authmenu/menuauthlist", i, "x");
  307. var iTypeP = fGetValue("/root/main/list_authmenu/menuauthlist", i, "p");
  308. var iScrnAuth = iTypeR + iTypeX + iTypeP;
  309. fSetRowValue("/root/main/list_authmenu/menuauthlist", "scrnauth", iScrnAuth+"00000", i);
  310. }
  311. model.setValue("/root/send/optmenuauthcd", opt_menuauthcd.value);
  312. model.setValue("/root/send/menuauthlist", grd_menuauthlist.getUpdateData());
  313. model.setValue("/root/send/menuauthuserlist",grd_menuauthuserlist.getUpdateData());
  314. model.setValue("/root/send/menudenyuserlist",grd_menudenyuserlist.getUpdateData());
  315. model.setValue("/root/send/menulist",grd_menulist.getUpdateData());
  316. if ( submit("TXZSA20401") ) {
  317. grd_menuauthlist.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  318. grd_menuauthuserlist.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  319. grd_menudenyuserlist.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  320. btn_search_menuauth.dispatch("DOMActivate");
  321. opt_menuauthnm.value = temp_menuauthnm;
  322. opt_menuauthcd.value = temp_menuauthcd;
  323. model.setValue("/root/send/optmenuauthcd", opt_menuauthcd.value );
  324. submit("TRZSA20401");
  325. }
  326. }
  327. function fDeleteClick(grid, param){
  328. if(param == "menuauthgrup"){
  329. grid.addStatus(grid.row,"delete");
  330. model.setValue("/root/send/menuauthgruplist", grid.getUpdateData());
  331. if ( submit("TXZSA20400") ) {
  332. grid.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  333. var jRow = grid.row;
  334. grid.deleteItem(jRow);
  335. }
  336. } else if(param == "menuitem"){
  337. grid.addStatus(grid.row,"delete");
  338. model.setValue("/root/send/menuitemlist", grid.getUpdateData());
  339. if ( submit("TXZSA20401") ) {
  340. grid.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  341. var jRow = grid.row;
  342. grid.deleteItem(jRow);
  343. }
  344. }
  345. }
  346. function fResetNode(node, destinationelement){
  347. // model.setValue(node + "/" + destinationelement, "");
  348. // alert(model.elementName("/root/main/item"));
  349. }
  350. /*
  351. model.getValue(); 를 함수로 만들었습니다.
  352. param1 : node는 grid의 xPath입니다.
  353. param2 : row는 grid에서 선택한 row값입니다.
  354. param3 : element는 getvalue할 해당 element 명입니다.
  355. 해당 getvalue값을 return 해줍니다.
  356. return 하지 않으면 해당값을 가져올 수 없습니다.
  357. */
  358. function fGetValue(node, row, element) {
  359. var rtnValue = model.getValue(node + "[" + row + "]/" + element);
  360. return rtnValue;
  361. }
  362. /*
  363. model.setValue();를 함수로 만들었습니다.
  364. param1 : node는 setvalue할 컨트롤의 xPath입니다.
  365. param2 : destinationelement는 setvalue할 element명 입니다.
  366. param3 : sourceelement는 setvalue할 값입니다.
  367. */
  368. function fSetValue(node, destinationelement, sourceelement) {
  369. model.setValue(node + "/" + destinationelement, sourceelement);
  370. }
  371. /**
  372. */
  373. function fSetRowValue(node, destinationelement, sourceelement, row) {
  374. model.makeValue(node + "[" + row + "]/" + destinationelement, sourceelement);
  375. }
  376. function fCheckItem(iRow){
  377. }
  378. function fset_show_auth(isshow)
  379. {
  380. // 메뉴허용자 숨기기
  381. cap_auth.visible = isshow;
  382. line_auth.visible = isshow;
  383. btn_reg_menuauthuser.visible = isshow;
  384. btn_del_menuauthuser.visible = isshow;
  385. grd_menuauthuserlist.visible = isshow;
  386. img_expand_auth.visible = isshow;
  387. }
  388. function fset_expand_auth(isexpand)
  389. {
  390. if(isexpand == true)
  391. {
  392. vector = +1;
  393. fset_show_deny(false);
  394. img_expand_auth.visible = false;
  395. img_shrink_auth.visible = true;
  396. }
  397. else
  398. {
  399. vector = -1;
  400. fset_show_deny(true);
  401. img_expand_auth.visible = true;
  402. img_shrink_auth.visible = false;
  403. }
  404. line_auth.attribute("x2") = parseInt(line_auth.attribute("x2")) + (vector*489);
  405. btn_reg_menuauthuser.attribute("left") = parseInt(btn_reg_menuauthuser.attribute("left")) + (vector*489);
  406. btn_del_menuauthuser.attribute("left") = parseInt(btn_del_menuauthuser.attribute("left")) + (vector*489);
  407. grd_menuauthuserlist.attribute("width") = parseInt(grd_menuauthuserlist.attribute("width")) + (vector*489);
  408. }
  409. function fset_show_deny(isshow)
  410. {
  411. // 메뉴제한자 숨기기
  412. cap_deny.visible = isshow;
  413. line_deny.visible = isshow;
  414. btn_reg_menudenyuser.visible = isshow;
  415. btn_del_menudenyuser.visible = isshow;
  416. grd_menudenyuserlist.visible = isshow;
  417. img_expand_deny.visible = isshow;
  418. }
  419. function fset_expand_deny(isexpand)
  420. {
  421. if(isexpand == true)
  422. {
  423. vector = +1;
  424. fset_show_auth(false);
  425. img_expand_deny.visible = false;
  426. img_shrink_deny.visible = true;
  427. }
  428. else
  429. {
  430. vector = -1;
  431. fset_show_auth(true);
  432. img_expand_deny.visible = true;
  433. img_shrink_deny.visible = false;
  434. }
  435. cap_deny.attribute("left") = parseInt(cap_deny.attribute("left")) - (vector*360);
  436. line_deny.attribute("x1") = parseInt(line_deny.attribute("x1")) - (vector*360);
  437. grd_menudenyuserlist.attribute("left") = parseInt(grd_menudenyuserlist.attribute("left")) - (vector*360);
  438. grd_menudenyuserlist.attribute("width") = parseInt(grd_menudenyuserlist.attribute("width")) + (vector*360);
  439. }
  440. ]]>
  441. </script>
  442. </xhtml:head>
  443. <xhtml:body guideline="1,1194;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  444. <script type="javascript" ev:event="onmenu">
  445. <![CDATA[
  446. if(event.description == "delmagrup")
  447. {
  448. btn_delete_menuauthgrup.dispatch("DOMActivate");
  449. }
  450. if(event.description == "setmagrup")
  451. {
  452. var iRow = grd_menuauthgruplist.row;
  453. setParameter("SPZSA20400_", "");
  454. modal("SPZSA20400_메뉴권한그룹변경", "", "200", "200", "SPZSA20400","/root/main/list_authgrup/menuauthgruplist["+iRow+"]/menuauthcd", "/root/send/menuauthcd");
  455. var iProperties = getParameter("SPZSA20400_");
  456. if(iProperties.length > 0 && iProperties != undefined){
  457. model.setValue("/root/main/list_authgrup/menuauthgruplist[" + iRow + "]/menuauthnm", iProperties);
  458. //grd_menuauthgruplist.addStatus(iRow, "update");
  459. } else {
  460. messageBox("데이터를 저장", "E001");
  461. }
  462. }
  463. if(event.description == "setAcntgroup")
  464. {
  465. var iRow = grd_menuauthuserlist.row;
  466. model.setValue("/root/main/list_authuser/menuauthuserlist[" + iRow + "]/acntgrupcd","");
  467. model.setValue("/root/main/list_authuser/menuauthuserlist[" + iRow + "]/acntgrupnm","");
  468. grd_menuauthuserlist.rowstatus(iRow) = "2";
  469. }
  470. if(event.description == "setDutplce")
  471. {
  472. var iRow = grd_menuauthuserlist.row;
  473. model.setValue("/root/main/list_authuser/menuauthuserlist[" + iRow + "]/dutplcecd","");
  474. model.setValue("/root/main/list_authuser/menuauthuserlist[" + iRow + "]/dutplcenm","");
  475. grd_menuauthuserlist.rowstatus(iRow) = "2";
  476. }
  477. if(event.description == "setDAcntgroup")
  478. {
  479. var iRow = grd_menudenyuserlist.row;
  480. model.setValue("/root/main/list_authuser/menudenyuserlist[" + iRow + "]/acntgrupcd","");
  481. model.setValue("/root/main/list_authuser/menudenyuserlist[" + iRow + "]/acntgrupnm","");
  482. grd_menudenyuserlist.rowstatus(iRow) = "2";
  483. }
  484. if(event.description == "setDDutplce")
  485. {
  486. var iRow = grd_menudenyuserlist.row;
  487. model.setValue("/root/main/list_authuser/menudenyuserlist[" + iRow + "]/dutplcecd","");
  488. model.setValue("/root/main/list_authuser/menudenyuserlist[" + iRow + "]/dutplcenm","");
  489. grd_menudenyuserlist.rowstatus(iRow) = "2";
  490. }
  491. ]]>
  492. </script>
  493. <group id="group1" style="left:0px; top:0px; width:1194px; height:13px; ">
  494. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:98px; height:14px; ">메뉴권한 관리</caption>
  495. </group>
  496. <group id="grp_biz" scroll="auto" style="left:0px; top:36px; width:1195px; height:744px; ">
  497. <datagrid id="grd_menulist" nodeset="/root/main/list_menu/menulist" caption="level^명^코드^상위코드^메뉴그룹" colwidth="0, 150, 122, 100, 100" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="32" style="left:350px; top:124px; width:355px; height:380px; ">
  498. <col ref="levl"/>
  499. <col ref="menuitemnm"/>
  500. <col ref="menuitemcd" visibility="hidden"/>
  501. <col ref="upmenuitemcd" visibility="hidden"/>
  502. <col ref="menugrupcd" visibility="hidden"/>
  503. </datagrid>
  504. <datagrid id="grd_menuauthlist" nodeset="/root/main/list_authmenu/menuauthlist" autoresize="false" caption="level^명^코드^상위코드^사용여부^R^X^P^메뉴그룹^메뉴권한코드^화면권한" colwidth="0, 359, 80, 80, 50, 34, 34, 34, 100, 100, 100" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" style="left:710px; top:124px; width:484px; height:380px; ">
  505. <col ref="levl"/>
  506. <col ref="menuitemnm"/>
  507. <col ref="menuitemcd" type="input" visibility="hidden"/>
  508. <col ref="upmenuitemcd" visibility="hidden"/>
  509. <col checkvalue="Y,N" ref="useyn" type="checkbox" visibility="hidden"/>
  510. <col checkvalue="1,0" ref="r" type="checkbox"/>
  511. <col checkvalue="1,0" ref="x" type="checkbox"/>
  512. <col checkvalue="1,0" ref="p" type="checkbox"/>
  513. <col ref="menugrupcd" visibility="hidden"/>
  514. <col ref="menuauthcd" visibility="hidden"/>
  515. <col ref="scrnauth" visibility="hidden"/>
  516. <script type="javascript" ev:event="onclick">
  517. <![CDATA[
  518. // alert();
  519. // alert(grd_menuauthlist.isCell(event.focus));
  520. // alert(grd_menuauthlist.mouseCol);
  521. if(grd_menuauthlist.isCell(event.focus) > 0){
  522. if(grd_menuauthlist.mouseCol == "6" || grd_menuauthlist.mouseCol == "7" || grd_menuauthlist.mouseCol == "8"){
  523. var iRow = grd_menuauthlist.row;
  524. // 전체선택 체크박스를 선택한 경우 수정상태로 변경하고 리턴
  525. if(iRow == "0") {
  526. for(var i = 1; i < grd_menuauthlist.rows; i++){
  527. grd_menuauthlist.addStatus(i, "update");
  528. }
  529. return;
  530. }
  531. var iCol = grd_menuauthlist.col;
  532. grd_menuauthlist.rowstatus(iRow) = "2";
  533. var iTypeR = fGetValue("/root/main/list_authmenu/menuauthlist", iRow, "r");
  534. var iTypeX = fGetValue("/root/main/list_authmenu/menuauthlist", iRow, "x");
  535. var iTypeP = fGetValue("/root/main/list_authmenu/menuauthlist", iRow, "p");
  536. // alert(iTypeR);
  537. // 조회된 내용이 아니면 무조건 insert
  538. var readyn = fGetValue("/root/main/list_authmenu/menuauthlist", iRow, "readyn");
  539. if(readyn == "") {
  540. grd_menuauthlist.addStatus(iRow, "insert");
  541. }
  542. var iScrnAuth = iTypeR + iTypeX + iTypeP;
  543. // alert(iScrnAuth);
  544. if (iScrnAuth == "") {
  545. } else {
  546. fSetRowValue("/root/main/list_authmenu/menuauthlist", "scrnauth", iScrnAuth+"00000", iRow);
  547. }
  548. var row = grd_menuauthlist.row;
  549. var max_row = grd_menuauthlist.rows;
  550. var col = grd_menuauthlist.col;
  551. var iSetNode = "/root/main/list_authmenu/menuauthlist";
  552. var levl;
  553. var upmenuitemcd;
  554. var menuitemcd;
  555. //alert(col);
  556. if (col==6 && fGetValue(iSetNode, row, "r")=="1")
  557. {
  558. // 상위 메뉴항목 모드를 체크함
  559. levl = fGetValue(iSetNode, row, "levl");
  560. upmenuitemcd = fGetValue(iSetNode, row, "upmenuitemcd");
  561. // alert(row+"-"+levl+"-"+upmenuitemcd);
  562. for (var i=row; i>0; i--)
  563. {
  564. menuitemcd = fGetValue(iSetNode, i, "menuitemcd");
  565. if (menuitemcd == upmenuitemcd) // 상위메뉴코드이면
  566. {
  567. // levl = fGetValue(iSetNode, row, "levl");
  568. // upmenuitemcd = fGetValue(iSetNode, row, "upmenuitemcd");
  569. // alert(row+"-"+levl+"-"+upmenuitemcd);
  570. model.setValue("/root/main/list_authmenu/menuauthlist["+i+"]/r", "1");
  571. grd_menuauthlist.addStatus(i, "update");
  572. upmenuitemcd = fGetValue(iSetNode, i, "upmenuitemcd");
  573. if(levl == 1) break;
  574. }
  575. }
  576. //fSetRowValue(iSetNode, "r", row, itRow);
  577. }
  578. // 상위 메뉴항목 모드를 체크함
  579. var sel_value = fGetValue(iSetNode, row, "r");
  580. //alert(sel_value);
  581. levl = fGetValue(iSetNode, row, "levl");
  582. upmenuitemcd = fGetValue(iSetNode, row, "upmenuitemcd");
  583. //alert(row+"-"+levl+"-"+upmenuitemcd+"-"+max_row);
  584. for (var i=row+1; i<max_row; i++)
  585. {
  586. var child_level = fGetValue(iSetNode, i, "levl");
  587. //alert(i+"-"+child_level+"-"+upmenuitemcd+"("+ max_row);
  588. if(child_level <= levl) break; // 자신과 레벨이 같을 경우 break;
  589. menuitemcd = fGetValue(iSetNode, i, "menuitemcd");
  590. grd_menuauthlist.addStatus(i, "update");
  591. model.setValue("/root/main/list_authmenu/menuauthlist["+i+"]/r", sel_value); // 자신의 하위레벨의 메뉴에 체크를 해제한다.
  592. }
  593. }
  594. }
  595. //model.refresh();
  596. ]]>
  597. </script>
  598. </datagrid>
  599. <group id="group2" style="left:5px; top:10px; width:340px; height:60px; vertical-align:top; ">
  600. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:340px; height:60px; background-color:#fffbf2; border-color:#ffd799; "/>
  601. <caption id="caption1" class="search_name" style="left:15px; top:9px; width:117px; height:17px; ">메뉴권한그룹</caption>
  602. <button id="btn_search_menuauth" class="btn1_letter2" style="left:277px; top:19px; width:56px; height:22px; ">
  603. <caption>조회</caption>
  604. <script type="javascript" ev:event="DOMActivate">
  605. <![CDATA[
  606. // model.reset();
  607. fInitialize();
  608. fClicked("search", grd_menulist, "menu");
  609. fClicked("search", grd_menuauthgruplist, "menuauthgrup");
  610. cmb_menugrup.visible = "true";
  611. caption8.visible = "false";
  612. ]]>
  613. </script>
  614. </button>
  615. <line id="line1" style="x1:266px; y1:8px; x2:266px; y2:51px; border-color:#ffe4bb; border-left-style:solid; "/>
  616. <input id="ipt_search_item" ref="/root/init/searchitem" class="input_s_essential" imemode="hangul" style="left:136px; top:34px; width:114px; height:19px; ">
  617. <script type="javascript" ev:event="onkeypress">
  618. <![CDATA[
  619. inputEnterKey("btn_search_menuauth", "DOMActivate");
  620. ]]>
  621. </script>
  622. </input>
  623. <select1 id="combo1" ref="/root/init/flag" class="combo_search" appearance="minimal" style="left:136px; top:8px; width:114px; height:19px; ">
  624. <choices>
  625. <itemset nodeset="/root/init/flag">
  626. <label ref="lable"/>
  627. <value ref="value"/>
  628. </itemset>
  629. </choices>
  630. </select1>
  631. </group>
  632. <caption id="caption9" class="tit_2" style="left:5px; top:85px; width:111px; height:13px; vertical-align:middle; ">메뉴권한 그룹</caption>
  633. <line id="line12" class="line_1" style="x1:7px; y1:100px; x2:345px; y2:100px; "/>
  634. <datagrid id="grd_menuauthgruplist" nodeset="/root/main/list_authgrup/menuauthgruplist" caption="명^코드" colwidth="100, 100" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="32" style="left:5px; top:105px; width:340px; height:635px; ">
  635. <col ref="menuauthnm" type="input" _key="true"/>
  636. <col ref="menuauthcd" visibility="hidden"/>
  637. <script type="javascript" ev:event="onmousedown">
  638. <![CDATA[
  639. if(event.button == 3){
  640. if(grd_menuauthgruplist.isCell(event.target) && grd_menuauthgruplist.mouseRow >= grd_menuauthgruplist.fixedrows){
  641. window.setPopupMenu(true, "/root/mamenu", "label", "func", true);
  642. }else{
  643. window.setPopupMenu(false);
  644. }
  645. }
  646. ]]>
  647. </script>
  648. <script type="javascript" ev:event="DOMFocusOut">
  649. <![CDATA[
  650. window.setPopupMenu(false);
  651. ]]>
  652. </script>
  653. <script type="javascript" ev:event="ondblclick">
  654. <![CDATA[
  655. grd_menuauthgruplist.gridToInstance();
  656. var iRow = grd_menuauthgruplist.row;
  657. // alert(model.getValue("/root/main/list_authgrup/menuauthgruplist["+iRow+"]/menuauthnm"));
  658. if("" != model.getValue("/root/main/list_authgrup/menuauthgruplist["+iRow+"]/menuauthnm")){
  659. btn_search_menuauthuserlist.dispatch("DOMActivate");
  660. // cmb_menugrupauthlist.select(0);
  661. model.setValue("/root/init/menugrupauthcd", model.getValue("/root/main/list_authuser/menugrupauthlist[1]/menugrupcd"));
  662. cmb_menugrupauthlist.dispatch("xforms-select");
  663. }
  664. ]]>
  665. </script>
  666. </datagrid>
  667. <button id="btn_add_menuauthgrup" class="btn2_letter2" style="left:258px; top:80px; width:42px; height:19px; ">
  668. <caption>추가</caption>
  669. <script type="javascript" ev:event="DOMActivate">
  670. <![CDATA[
  671. grd_menuauthgruplist.addItem();
  672. grd_menuauthgruplist.editCell();
  673. ]]>
  674. </script>
  675. </button>
  676. <button id="btn_delete_menuauthgrup" class="btn2_letter2" visibility="hidden" style="left:213px; top:80px; width:42px; height:19px; ">
  677. <caption>삭제</caption>
  678. <script type="javascript" ev:event="DOMActivate">
  679. <![CDATA[
  680. var rtn = messageBox(" 해당 메뉴권한그룹을 ", "Q001");
  681. if(rtn == 6){
  682. fClicked("delete", grd_menuauthgruplist, "menuauthgrup");
  683. }
  684. ]]>
  685. </script>
  686. </button>
  687. <button id="btn_save_menuauthgrup" class="btn5_letter2" style="left:303px; top:80px; width:42px; height:19px; ">
  688. <caption>저장</caption>
  689. <script type="javascript" ev:event="DOMActivate">
  690. <![CDATA[
  691. fClicked("save", grd_menuauthgruplist, "menuauthgrup");
  692. btn_search_menuauth.dispatch("DOMActivate");
  693. ]]>
  694. </script>
  695. </button>
  696. <button id="btn_search_menuauthuserlist" class="btn2_letter2" visibility="hidden" style="left:168px; top:80px; width:42px; height:19px; ">
  697. <caption>조회</caption>
  698. <script type="javascript" ev:event="DOMActivate">
  699. <![CDATA[
  700. // fClicked("search", grd_menuitemlist, "menuitem");
  701. grd_menuauthuserlist.explorerbar = "sortshow";
  702. grd_menudenyuserlist.explorerbar = "sortshow";
  703. grd_menuauthlist.explorerbar = "sortshow";
  704. model.resetInstanceNode("/root/main/list_authuser/menugrupauthlist");
  705. model.resetInstanceNode("/root/main/list_authmenu/menuauthlist");
  706. model.resetInstanceNode("/root/send");
  707. var iRow = grd_menuauthgruplist.row;
  708. var iNode = "/root/main/list_authgrup/menuauthgruplist"
  709. // opt_menuauthnm.value = fGetValue(iNode, iRow, "menuauthnm");
  710. // opt_menuauthcd.value = fGetValue(iNode, iRow, "menuauthcd");
  711. // var iOptmenuauthcd = opt_menuauthcd.value;
  712. model.setValue("/root/main/item/menuauthnm", fGetValue(iNode, iRow, "menuauthnm"));
  713. model.setValue("/root/main/item/menuauthcd", fGetValue(iNode, iRow, "menuauthcd"));
  714. var iOptmenuauthcd = model.getValue("/root/main/item/menuauthcd");
  715. //alert(iOptacntgrupcd);
  716. model.setValue("/root/send/optmenuauthcd", iOptmenuauthcd );
  717. submit("TRZSA20401");
  718. // setTree(grd_menuauthlist, 1, 2, true);
  719. ]]>
  720. </script>
  721. </button>
  722. <button id="btn_reg_menuauthuser" class="btn2_letter4" visibility="visible" style="left:572px; top:514px; width:64px; height:19px; ">
  723. <caption>조건추가</caption>
  724. <script type="javascript" ev:event="DOMActivate">
  725. <![CDATA[
  726. if(opt_menuauthcd.value == ""){
  727. model.alert("메뉴권한그룹을 선택하십시요!");
  728. } else
  729. {
  730. grd_menuauthuserlist.addRow();
  731. var iRow = grd_menuauthuserlist.row;
  732. fSetRowValue("/root/main/list_authuser/menuauthuserlist", "menuauthcd", opt_menuauthcd.value, iRow);
  733. }
  734. ]]>
  735. </script>
  736. </button>
  737. <img id="img_expand_auth" class="icon_right" style="left:540px; top:514px; width:26px; height:19px; background-stretch:stretch; ">
  738. <script type="javascript" ev:event="onclick">
  739. <![CDATA[
  740. // 제한자 조건 숨기기
  741. //fhidden_deny();
  742. fset_expand_auth(true);
  743. ]]>
  744. </script>
  745. </img>
  746. <img id="img_shrink_auth" class="icon_left" visibility="hidden" style="left:1029px; top:514px; width:26px; height:19px; background-stretch:stretch; ">
  747. <script type="javascript" ev:event="onclick">
  748. <![CDATA[
  749. fset_expand_auth(false);
  750. ]]>
  751. </script>
  752. </img>
  753. <caption id="cap_deny" class="tit_2" visibility="visible" style="left:710px; top:520px; width:169px; height:14px; ">메뉴권한 제한자 조건</caption>
  754. <caption id="cap_auth" class="tit_2" style="left:351px; top:518px; width:164px; height:14px; ">메뉴권한 허용자 조건</caption>
  755. <datagrid id="grd_menudenyuserlist" nodeset="/root/main/list_authuser/menudenyuserlist" visibility="visible" caption="번호^권한그룹코드^계정그룹코드^계정그룹^근무지코드^근무지^직종^직책^근무기관^원소속기관^사용자유형^직군^교직구분^직위" colwidth="41, 87, 100, 110, 100, 160, 71, 65, 109, 100, 100, 100, 100, 87" dataheight="25" extendlastcol="scroll" fixedcols="2" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="32" style="left:710px; top:540px; width:484px; height:200px; ">
  756. <col ref="seq" type="output" visibility="hidden"/>
  757. <col ref="menuauthcd" type="output" visibility="hidden"/>
  758. <col ref="acntgrupcd" type="output" visibility="hidden" _required="true"/>
  759. <col ref="acntgrupnm" type="inputbutton"/>
  760. <col ref="dutplcecd" type="output" visibility="hidden" _required="true"/>
  761. <col ref="dutplcenm" type="inputbutton"/>
  762. <col ref="jobkindcd" type="combo" _required="true">
  763. <choices>
  764. <itemset nodeset="/root/init/comcd/R0061">
  765. <label ref="cdnm"/>
  766. <value ref="cdid"/>
  767. </itemset>
  768. </choices>
  769. </col>
  770. <col ref="jobrespcd" type="combo" _required="true">
  771. <choices>
  772. <itemset nodeset="/root/init/comcd/R0063">
  773. <label ref="cdnm"/>
  774. <value ref="cdid"/>
  775. </itemset>
  776. </choices>
  777. </col>
  778. <col ref="dutinstcd" type="combo" _required="true">
  779. <choices>
  780. <itemset nodeset="/root/init/comcd/Z0007">
  781. <label ref="cdnm"/>
  782. <value ref="cdid"/>
  783. </itemset>
  784. </choices>
  785. </col>
  786. <col ref="orginstcd" type="combo" _required="true">
  787. <choices>
  788. <itemset nodeset="/root/init/comcd/Z0007">
  789. <label ref="cdnm"/>
  790. <value ref="cdid"/>
  791. </itemset>
  792. </choices>
  793. </col>
  794. <col ref="userkindcd" type="combo" _required="true">
  795. <choices>
  796. <itemset nodeset="/root/init/comcd/Z0016">
  797. <label ref="cdnm"/>
  798. <value ref="cdid"/>
  799. </itemset>
  800. </choices>
  801. </col>
  802. <col ref="grupjoblncd" type="combo" _required="true">
  803. <choices>
  804. <itemset nodeset="/root/init/comcd/R0059">
  805. <label ref="cdnm"/>
  806. <value ref="cdid"/>
  807. </itemset>
  808. </choices>
  809. </col>
  810. <col ref="prfshipflagcd" type="combo" _required="true">
  811. <choices>
  812. <itemset nodeset="/root/init/comcd/R0058">
  813. <label ref="cdnm"/>
  814. <value ref="cdid"/>
  815. </itemset>
  816. </choices>
  817. </col>
  818. <col ref="jobposcd" type="combo" _required="true">
  819. <choices>
  820. <itemset nodeset="/root/init/comcd/R0062">
  821. <label ref="cdnm"/>
  822. <value ref="cdid"/>
  823. </itemset>
  824. </choices>
  825. </col>
  826. <script type="javascript" ev:event="onmousedown">
  827. <![CDATA[
  828. //alert(grd_menuauthuserlist.mouseCol);
  829. if(event.button == 3 && grd_menudenyuserlist.mouseCol == 4){
  830. if(grd_menudenyuserlist.isCell(event.target) && grd_menudenyuserlist.mouseRow >= grd_menudenyuserlist.fixedrows){
  831. window.setPopupMenu(true, "/root/authmenu3", "label", "func", true);
  832. }else{
  833. window.setPopupMenu(false);
  834. }
  835. }
  836. if(event.button == 3 && grd_menudenyuserlist.mouseCol == 6){
  837. if(grd_menudenyuserlist.isCell(event.target) && grd_menudenyuserlist.mouseRow >= grd_menudenyuserlist.fixedrows){
  838. window.setPopupMenu(true, "/root/authmenu4", "label", "func", true);
  839. }else{
  840. window.setPopupMenu(false);
  841. }
  842. }
  843. ]]>
  844. </script>
  845. <script type="javascript" ev:event="onbuttonclick">
  846. <![CDATA[
  847. clearParameter("SPZSA20202_");
  848. clearParameter("SPZSA20202_1");
  849. if(opt_menuauthcd.value == ""){
  850. model.alert("계정그룹을 선택하십시요!");
  851. } else {
  852. var col_num = grd_menudenyuserlist.col;
  853. setParameter("SPZSA20202_1", col_num);
  854. modal("SPZSA20202", "", "200", "200", "SPZSA20202");
  855. var iProperties = getParameter("SPZSA20202_");
  856. var iSplit_Value=iProperties.split("|");
  857. // var iRow = grd_menuitemlist.row;
  858. if(iSplit_Value.length > 0 && iSplit_Value[0] != "" && iSplit_Value[0] != undefined){
  859. //grd_menudenyuserlist.addItem();
  860. var iRow = grd_menudenyuserlist.row;
  861. var iNode = "/root/main/list_authuser/menudenyuserlist";
  862. // 계정그룹일 경우
  863. if (iSplit_Value[0]=="G")
  864. {
  865. fSetRowValue(iNode, "acntgrupcd", iSplit_Value[1], iRow); // 등록코드
  866. fSetRowValue(iNode, "acntgrupnm", iSplit_Value[2], iRow); // 등록명
  867. }
  868. // 근무지일 경우
  869. else if(iSplit_Value[0]=="D")
  870. {
  871. fSetRowValue(iNode, "dutplcecd", iSplit_Value[3] +""+ iSplit_Value[1], iRow); // 등록코드
  872. fSetRowValue(iNode, "dutplcenm", iSplit_Value[2], iRow); // 등록명
  873. }
  874. //fSetRowValue(iNode, "acntdepttype", iSplit_Value[0], iRow);
  875. // fSetRowValue(iNode, "rgstcd", iSplit_Value[1], iRow); // 등록코드
  876. //fSetRowValue(iNode, "rgstnm", iSplit_Value[2], iRow); // 등록명
  877. //fSetRowValue(iNode, "dutplceinstcd", iSplit_Value[3], iRow); // 근무지기관코드
  878. // fSetRowValue(iNode, "menuauthcd", opt_menuauthcd.value, iRow);
  879. var iStatus = grd_menudenyuserlist.rowstatus(iRow);
  880. if(iStatus=="0"){
  881. grd_menudenyuserlist.rowstatus(iRow) = "2";
  882. }
  883. } else {
  884. messageBox("데이터를 저장", "E001");
  885. // grd_acntitemlist.deleteItem(iRow);
  886. }
  887. }
  888. ]]>
  889. </script>
  890. </datagrid>
  891. <datagrid id="grd_menuauthuserlist" nodeset="/root/main/list_authuser/menuauthuserlist" caption="번호^권한그룹코드^계정그룹코드^계정그룹^근무지코드^근무지^직종^직책^근무기관^원소속기관^사용자유형^직군^교직구분^직위" colwidth="41, 84, 110, 110, 91, 160, 65, 109, 100, 100, 100, 100, 87, 100" dataheight="25" extendlastcol="scroll" fixedcols="2" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="32" style="left:350px; top:540px; width:355px; height:200px; ">
  892. <col ref="seq" type="output" visibility="hidden"/>
  893. <col ref="menuauthcd" type="output" visibility="hidden"/>
  894. <col ref="acntgrupcd" type="output" visibility="hidden" _required="true"/>
  895. <col ref="acntgrupnm" type="inputbutton"/>
  896. <col ref="dutplcecd" type="output" visibility="hidden" _required="true"/>
  897. <col ref="dutplcenm" type="inputbutton"/>
  898. <col ref="jobkindcd" type="combo" _required="true">
  899. <choices>
  900. <itemset nodeset="/root/init/comcd/R0061">
  901. <label ref="cdnm"/>
  902. <value ref="cdid"/>
  903. </itemset>
  904. </choices>
  905. </col>
  906. <col ref="jobrespcd" type="combo" _required="true">
  907. <choices>
  908. <itemset nodeset="/root/init/comcd/R0063">
  909. <label ref="cdnm"/>
  910. <value ref="cdid"/>
  911. </itemset>
  912. </choices>
  913. </col>
  914. <col ref="dutinstcd" type="combo" _required="true">
  915. <choices>
  916. <itemset nodeset="/root/init/comcd/Z0007">
  917. <label ref="cdnm"/>
  918. <value ref="cdid"/>
  919. </itemset>
  920. </choices>
  921. </col>
  922. <col ref="orginstcd" type="combo" _required="true">
  923. <choices>
  924. <itemset nodeset="/root/init/comcd/Z0007">
  925. <label ref="cdnm"/>
  926. <value ref="cdid"/>
  927. </itemset>
  928. </choices>
  929. </col>
  930. <col ref="userkindcd" type="combo" _required="true">
  931. <choices>
  932. <itemset nodeset="/root/init/comcd/Z0016">
  933. <label ref="cdnm"/>
  934. <value ref="cdid"/>
  935. </itemset>
  936. </choices>
  937. </col>
  938. <col ref="grupjoblncd" type="combo" _required="true">
  939. <choices>
  940. <itemset nodeset="/root/init/comcd/R0059">
  941. <label ref="cdnm"/>
  942. <value ref="cdid"/>
  943. </itemset>
  944. </choices>
  945. </col>
  946. <col ref="prfshipflagcd" type="combo" _required="true">
  947. <choices>
  948. <itemset nodeset="/root/init/comcd/R0058">
  949. <label ref="cdnm"/>
  950. <value ref="cdid"/>
  951. </itemset>
  952. </choices>
  953. </col>
  954. <col ref="jobposcd" type="combo" _required="true">
  955. <choices>
  956. <itemset nodeset="/root/init/comcd/R0062">
  957. <label ref="cdnm"/>
  958. <value ref="cdid"/>
  959. </itemset>
  960. </choices>
  961. </col>
  962. <script type="javascript" ev:event="onmousedown">
  963. <![CDATA[
  964. //alert(grd_menuauthuserlist.mouseCol);
  965. if(event.button == 3 && grd_menuauthuserlist.mouseCol == 4){
  966. if(grd_menuauthuserlist.isCell(event.target) && grd_menuauthuserlist.mouseRow >= grd_menuauthuserlist.fixedrows){
  967. window.setPopupMenu(true, "/root/authmenu1", "label", "func", true);
  968. }else{
  969. window.setPopupMenu(false);
  970. }
  971. }
  972. if(event.button == 3 && grd_menuauthuserlist.mouseCol == 6){
  973. if(grd_menuauthuserlist.isCell(event.target) && grd_menuauthuserlist.mouseRow >= grd_menuauthuserlist.fixedrows){
  974. window.setPopupMenu(true, "/root/authmenu2", "label", "func", true);
  975. }else{
  976. window.setPopupMenu(false);
  977. }
  978. }
  979. ]]>
  980. </script>
  981. <script type="javascript" ev:event="onbuttonclick">
  982. <![CDATA[
  983. clearParameter("SPZSA20202_");
  984. clearParameter("SPZSA20202_1");
  985. if(opt_menuauthcd.value == ""){
  986. model.alert("계정그룹을 선택하십시요!");
  987. } else {
  988. var col_num = grd_menuauthuserlist.col;
  989. setParameter("SPZSA20202_1", col_num);
  990. modal("SPZSA20202", "", "200", "200", "SPZSA20202");
  991. var iProperties = getParameter("SPZSA20202_");
  992. var iSplit_Value=iProperties.split("|");
  993. // var iRow = grd_menuitemlist.row;
  994. if(iSplit_Value.length > 0 && iSplit_Value[0] != "" && iSplit_Value[0] != undefined){
  995. //grd_menuauthuserlist.addItem();
  996. var iRow = grd_menuauthuserlist.row;
  997. var iNode = "/root/main/list_authuser/menuauthuserlist";
  998. // 계정그룹일 경우
  999. if (iSplit_Value[0]=="G")
  1000. {
  1001. fSetRowValue(iNode, "acntgrupcd", iSplit_Value[1], iRow); // 등록코드
  1002. fSetRowValue(iNode, "acntgrupnm", iSplit_Value[2], iRow); // 등록명
  1003. }
  1004. // 근무지일 경우
  1005. else if(iSplit_Value[0]=="D")
  1006. {
  1007. //alert( iSplit_Value[0]+":"+iSplit_Value[1]+":"+iSplit_Value[2]+":"+iSplit_Value[3]);
  1008. fSetRowValue(iNode, "dutplcecd", iSplit_Value[3] +""+ iSplit_Value[1], iRow); // 등록코드
  1009. fSetRowValue(iNode, "dutplcenm", iSplit_Value[2], iRow); // 등록명
  1010. }
  1011. //fSetRowValue(iNode, "acntdepttype", iSplit_Value[0], iRow);
  1012. // fSetRowValue(iNode, "rgstcd", iSplit_Value[1], iRow); // 등록코드
  1013. //fSetRowValue(iNode, "rgstnm", iSplit_Value[2], iRow); // 등록명
  1014. //fSetRowValue(iNode, "dutplceinstcd", iSplit_Value[3], iRow); // 근무지기관코드
  1015. // fSetRowValue(iNode, "menuauthcd", opt_menuauthcd.value, iRow);
  1016. var iStatus = grd_menuauthuserlist.rowstatus(iRow);
  1017. if(iStatus=="0"){
  1018. grd_menuauthuserlist.rowstatus(iRow) = "2";
  1019. }
  1020. } else {
  1021. messageBox("데이터를 저장", "E001");
  1022. // grd_acntitemlist.deleteItem(iRow);
  1023. }
  1024. }
  1025. ]]>
  1026. </script>
  1027. </datagrid>
  1028. <datagrid id="grd_menuuser_temp" nodeset="/root/main/list_temp/menuuserlist" visibility="hidden" caption="구분^명^코드" mergecellsfixedrows="bycolrec" style="left:425px; top:185px; width:230px; height:70px; ">
  1029. <col ref="acntdepttype"/>
  1030. <col ref="rgstnm"/>
  1031. <col ref="rgstcd"/>
  1032. </datagrid>
  1033. <button id="btn_Regall" class="btn2_letter2" visibility="visible" style="left:663px; top:98px; width:42px; height:17px; ">
  1034. <caption>등록</caption>
  1035. <script type="javascript" ev:event="DOMActivate">
  1036. <![CDATA[
  1037. if(opt_menuauthcd.value == "" || opt_menuauthcd.value == null){
  1038. messageBox(" 메뉴권한그룹을 선택하십시요! 등록할 수 ", "E001");
  1039. } else{
  1040. // var iMenu_MenuGrupCD = cmb_menugrup.value;
  1041. var iMenu_MenuGrupCD = model.getValue("/root/main/list_menu/menulist/menugrupcd"); // 해당메뉴그룹코드
  1042. // alert(iMenu_MenuGrupCD);
  1043. var menulength = cmb_menugrupauthlist.length; // 메뉴권한적용그룹의 갯수
  1044. // alert(menulength);
  1045. var check_count = 0;
  1046. for(var checkfild = 0; checkfild <= menulength; checkfild++) {
  1047. // alert(iMenu_MenuGrupCD + "::" +model.getValue("/root/main/list_authuser/menugrupauthlist["+checkfild+"]/menugrupcd"));
  1048. if (iMenu_MenuGrupCD == model.getValue("/root/main/list_authuser/menugrupauthlist["+checkfild+"]/menugrupcd")){
  1049. cmb_menugrupauthlist.select(checkfild-1);
  1050. // alert(cmb_menugrupauthlist.select(checkfild-1));
  1051. check_count++;
  1052. }
  1053. }
  1054. if (check_count == 0){
  1055. var iFixed_Row = cmb_menugrupauthlist.length+1;
  1056. model.makeValue("/root/main/list_authuser/menugrupauthlist["+iFixed_Row+"]/menugrupnm", cmb_menugrup.label);
  1057. model.makeValue("/root/main/list_authuser/menugrupauthlist["+iFixed_Row+"]/menugrupcd", cmb_menugrup.value);
  1058. model.refresh();
  1059. cmb_menugrupauthlist.select(iFixed_Row-1);
  1060. }
  1061. // alert("/root/init/menugrupauthcd");
  1062. // grd_menuauthlist.addItem();
  1063. var checkvalue = 0;
  1064. var iRow = grd_menulist.row;
  1065. var iaddRow = grd_menuauthlist.row;
  1066. var iSetNode ="/root/main/list_authmenu/menuauthlist";
  1067. var iGetNode = "/root/main/list_menu/menulist";
  1068. var iSetNode_final ="/root/main/list_authmenu/menuauthlist";
  1069. /*
  1070. alert(grd_menuauthlist.fixedRows);
  1071. alert(grd_menulist.fixedRows);
  1072. alert(grd_menulist.rows);
  1073. */
  1074. //return ;
  1075. var itRow = grd_menuauthlist.rows;
  1076. if(itRow < 0 )
  1077. {
  1078. itRow =0;
  1079. }
  1080. var insertIndex = new Array();
  1081. var insertCnt = 0;
  1082. for(var i = grd_menulist.fixedRows; i < grd_menulist.rows; i++){
  1083. var tempcheck = 0;
  1084. var iLevel = fGetValue(iGetNode, i, "levl");
  1085. var iMenuitemnm = fGetValue(iGetNode, i, "menuitemnm");
  1086. var iMenuitemcd = fGetValue(iGetNode, i, "menuitemcd");
  1087. var iUpmenuitemcd = fGetValue(iGetNode, i, "upmenuitemcd");
  1088. var iMenuGrupCD = fGetValue(iGetNode, i, "menugrupcd");
  1089. // alert(grd_menulist.rows);
  1090. // alert(i);
  1091. // alert(iMenuGrupCD);
  1092. // alert(grd_menuauthlist.rows);
  1093. // alert("grd_menuauthlist.fixedRows : " + grd_menuauthlist.fixedRows);
  1094. //var nodeList = instance1.selectNodes("/root/main/list_authmenu/menuauthlist[menuitemcd="+iMenuitemcd+"]");
  1095. var check_count = getNodesetCount("/root/main/list_authmenu/menuauthlist[menuitemcd='"+iMenuitemcd+"']");
  1096. if( check_count <= 0 ){
  1097. //grd_menuauthlist.addItem();
  1098. //var iMenuitemnm = cmb_menugrup.label;
  1099. //var iMenuitemcd = cmb_menugrup.value;
  1100. //var itRow = grd_menuauthlist.row;
  1101. // alert("1");
  1102. //alert(iSetNode+"["+itRow+"]/levl");
  1103. //model.makeNode(iSetNode+"["+itRow+"]/levl");
  1104. model.makeValue(iSetNode+"["+itRow+"]/levl", iLevel);
  1105. model.makeValue(iSetNode+"["+itRow+"]/menuitemnm", iMenuitemnm);
  1106. model.makeValue(iSetNode+"["+itRow+"]/menuitemcd", iMenuitemcd);
  1107. model.makeValue(iSetNode+"["+itRow+"]/upmenuitemcd", iUpmenuitemcd);
  1108. model.makeValue(iSetNode+"["+itRow+"]/r", "1");
  1109. model.makeValue(iSetNode+"["+itRow+"]/x", "1");
  1110. model.makeValue(iSetNode+"["+itRow+"]/p", "1");
  1111. model.makeValue(iSetNode+"["+itRow+"]/scrnauth", "11100000");
  1112. model.makeValue(iSetNode+"["+itRow+"]/menugrupcd", iMenuGrupCD);
  1113. model.makeValue(iSetNode+"["+itRow+"]/menuauthcd", opt_menuauthcd.text);
  1114. insertIndex[insertCnt++] = itRow;
  1115. itRow++;
  1116. /*
  1117. fSetRowValue(iSetNode, "levl", iLevel, itRow);
  1118. fSetRowValue(iSetNode, "menuitemnm", iMenuitemnm, itRow);
  1119. fSetRowValue(iSetNode, "menuitemcd", iMenuitemcd, itRow);
  1120. fSetRowValue(iSetNode, "upmenuitemcd", iUpmenuitemcd, itRow);
  1121. fSetRowValue(iSetNode, "r", "1", itRow);
  1122. fSetRowValue(iSetNode, "x", "1", itRow);
  1123. fSetRowValue(iSetNode, "p", "1", itRow);
  1124. // alert("2");
  1125. var iScrnAuth_SUM = fGetValue(iSetNode, itRow, "r") + fGetValue(iSetNode, itRow, "x") + fGetValue(iSetNode, itRow, "p")+"00000";
  1126. fSetRowValue(iSetNode, "scrnauth", iScrnAuth_SUM, itRow);
  1127. fSetRowValue(iSetNode, "menugrupcd", iMenuGrupCD, itRow);
  1128. fSetRowValue(iSetNode, "menuauthcd", opt_menuauthcd.text, itRow);
  1129. // alert("3");
  1130. */
  1131. }
  1132. }
  1133. // alert();
  1134. grd_menuauthlist.rebuild();
  1135. for(var i=0 ; i<insertCnt; i++)
  1136. {
  1137. grd_menuauthlist.addStatus(insertIndex[i], "insert");
  1138. }
  1139. setTree(grd_menuauthlist, 1, 2, true);
  1140. }
  1141. //model.refresh();
  1142. ]]>
  1143. </script>
  1144. </button>
  1145. <button id="btn_reg_menulist" class="btn2_letter2" visibility="hidden" style="left:614px; top:98px; width:42px; height:19px; ">
  1146. <caption>전체</caption>
  1147. <script type="javascript" ev:event="DOMActivate">
  1148. <![CDATA[
  1149. var iRow = grd_menulist.row;
  1150. var iSetNode ="/root/main/list_authuser/menuauthlist";
  1151. var iGetNode = "/root/main/list_menu/menulist";
  1152. var iLevel = fGetValue(iGetNode, iRow, "levl");
  1153. var iMenuitemnm = fGetValue(iGetNode, iRow, "menuitemnm");
  1154. var iMenuitemcd = fGetValue(iGetNode, iRow, "menuitemcd");
  1155. var iUpmenuitemcd = fGetValue(iGetNode, iRow, "upmenuitemcd");
  1156. if(iLevel!="1"){
  1157. var iRows = grd_menuauthlist.rows;
  1158. var icheckflag = "";
  1159. for(var i = grd_menuauthlist.fixedRows; i < grd_menuauthlist.rows; i++){
  1160. /*
  1161. alert(i);
  1162. alert(iUpmenuitemcd);
  1163. alert(fGetValue("/root/main/list_authuser/menuauthlist", i, "menuauthcd"));
  1164. */ icheckflag = "N";
  1165. if(iUpmenuitemcd == fGetValue("/root/main/list_authuser/menuauthlist", i, "menuitemcd")){
  1166. alert("상위 메뉴가 있습니다.");
  1167. icheckflag = "Y";
  1168. break;
  1169. }
  1170. }
  1171. if(icheckflag == "Y"){
  1172. grd_menuauthlist.addItem();
  1173. var iaddRow = grd_menuauthlist.row;
  1174. fSetRowValue(iSetNode, "levl", iLevel, iaddRow);
  1175. fSetRowValue(iSetNode, "menuitemnm", iMenuitemnm, iaddRow);
  1176. fSetRowValue(iSetNode, "menuitemcd", iMenuitemcd, iaddRow);
  1177. fSetRowValue(iSetNode, "authtype", "Y", iaddRow);
  1178. setTree(grd_menuauthlist, 1, 2, true);
  1179. } else {
  1180. alert("상위 메뉴를 등록하십시요");
  1181. }
  1182. } else {
  1183. grd_menuauthlist.addItem();
  1184. var iaddRow = grd_menuauthlist.row;
  1185. fSetRowValue(iSetNode, "levl", iLevel, iaddRow);
  1186. fSetRowValue(iSetNode, "menuitemnm", iMenuitemnm, iaddRow);
  1187. fSetRowValue(iSetNode, "menuitemcd", iMenuitemcd, iaddRow);
  1188. fSetRowValue(iSetNode, "authtype", "Y", iaddRow);
  1189. setTree(grd_menuauthlist, 1, 2, true);
  1190. }
  1191. // grd_menuauthlist.rebuild();
  1192. // setTree(grd_menuauthlist, 1, 2, true);
  1193. model.refresh();
  1194. ]]>
  1195. </script>
  1196. </button>
  1197. <caption id="caption4" class="tit_2" style="left:350px; top:104px; width:184px; height:13px; ">메뉴 리스트</caption>
  1198. <group id="group6" style="left:350px; top:60px; width:355px; height:35px; vertical-align:top; ">
  1199. <shape id="roundrect2" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:355px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  1200. <line id="line6" visibility="hidden" style="x1:276px; y1:7px; x2:276px; y2:29px; border-color:#ffe4bb; border-left-style:solid; "/>
  1201. <button id="btn_search_menu" class="btn1_letter2" visibility="hidden" style="left:283px; top:7px; width:56px; height:22px; ">
  1202. <caption>조회</caption>
  1203. <script type="javascript" ev:event="DOMActivate">
  1204. <![CDATA[
  1205. // window.load("SPZSA20200.xrw", "modal", "SPZSA20200", "width:900px; height:800;");
  1206. fClicked("search", grd_menulist, "menu");
  1207. cmb_menugrup.visible = "true";
  1208. caption8.visible = "false";
  1209. ]]>
  1210. </script>
  1211. </button>
  1212. <caption id="caption7" class="search_name" style="left:15px; top:9px; width:117px; height:17px; ">메뉴항목 조회</caption>
  1213. <select1 id="cmb_menugrup" ref="/root/init/menugrupcd" appearance="minimal" style="left:141px; top:8px; width:130px; height:19px; ">
  1214. <choices>
  1215. <itemset nodeset="/root/init/menulist/menugruplist">
  1216. <label ref="menugrupnm"/>
  1217. <value ref="menugrupcd"/>
  1218. </itemset>
  1219. </choices>
  1220. <script type="javascript" ev:event="xforms-select">
  1221. <![CDATA[
  1222. var iMenugrupcd = cmb_menugrup.value;
  1223. fClicked("search", grd_menulist, "menulist");
  1224. // alert(iMenugrupcd);
  1225. grd_menulist.rebuild();
  1226. setTree(grd_menulist, 1, 2, true);
  1227. ]]>
  1228. </script>
  1229. <script type="javascript" ev:event="xforms-value-changed">
  1230. <![CDATA[
  1231. model.setFocus("btn_search_menu");
  1232. ]]>
  1233. </script>
  1234. </select1>
  1235. <caption id="caption8" style="left:126px; top:8px; width:204px; height:19px; ">메뉴그룹을 조회하십시요.</caption>
  1236. </group>
  1237. <caption id="caption5" class="tit_2" style="left:709px; top:104px; width:124px; height:13px; ">메뉴권한 리스트</caption>
  1238. <line id="line4" class="line_1" style="x1:350px; y1:119px; x2:705px; y2:119px; "/>
  1239. <button id="btn_delete_menuauthlist" class="btn2_letter2" style="left:1152px; top:98px; width:42px; height:19px; ">
  1240. <caption>삭제</caption>
  1241. <script type="javascript" ev:event="DOMActivate">
  1242. <![CDATA[
  1243. var iRow = grd_menuauthlist.row;
  1244. // alert(opt_menuauthcd.value);
  1245. // alert(cmb_menugrupauthlist.value);
  1246. model.setValue("/root/send/optmenuauthcd", opt_menuauthcd.value);
  1247. model.setValue("/root/send/menugrupauthcd", cmb_menugrupauthlist.value);
  1248. model.getValue("/root/main/list_authuser/menugrupauthlist");
  1249. var rtn = messageBox(" 해당 메뉴그룹 전체를 ", "Q001");
  1250. if(rtn == 6){
  1251. if(submit("TXZSA20402")){
  1252. //ipt_search_item.value = opt_menuauthcd.value;
  1253. //dbtn_search_menuauth.dispatch("DOMActivate");
  1254. var iOptmenuauthcd = model.getValue("/root/main/item/menuauthcd");
  1255. model.setValue("/root/send/optmenuauthcd", iOptmenuauthcd );
  1256. submit("TRZSA20401");
  1257. model.removeNodeset("/root/main/list_authmenu/menuauthlist");
  1258. grd_menuauthlist.rebuild();
  1259. }
  1260. }
  1261. // fClicked("delete", grd_menuauthlist, "menuauthlist");
  1262. ]]>
  1263. </script>
  1264. </button>
  1265. <line id="line5" class="line_1" style="x1:710px; y1:119px; x2:1194px; y2:119px; "/>
  1266. <group id="group3" style="left:710px; top:60px; width:484px; height:35px; vertical-align:top; ">
  1267. <shape id="roundrect3" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:484px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  1268. <caption id="caption10" class="search_name" style="left:15px; top:9px; width:164px; height:17px; ">메뉴권한 적용 메뉴그룹</caption>
  1269. <select1 id="cmb_menugrupauthlist" ref="/root/init/menugrupauthcd" appearance="minimal" style="left:195px; top:9px; width:130px; height:19px; ">
  1270. <choices>
  1271. <itemset nodeset="/root/main/list_authuser/menugrupauthlist">
  1272. <label ref="menugrupnm"/>
  1273. <value ref="menugrupcd"/>
  1274. </itemset>
  1275. </choices>
  1276. <script type="javascript" ev:event="xforms-select">
  1277. <![CDATA[
  1278. grd_menuauthlist.rebuild();
  1279. var iMenugrupcd = cmb_menugrup.value;
  1280. /*
  1281. fClicked("search", grd_menugrupauthlist, "menugrupauthlist");
  1282. setTree(grd_menugrupauthlist, 1, 2, true);
  1283. */
  1284. fClicked("search", grd_menugrupauthlist, "menuauthlist");
  1285. setTree(grd_menuauthlist, 1, 2, true);
  1286. // grd_menuauthlist.rebuild();
  1287. // for(var i = grd_menuauthlist.fixedRows; i < grd_menuauthlist.rows; i++){
  1288. // if("" == model.getValue("/root/main/list_authmenu/menuauthlist["+i+"]scrncd") || null == model.getValue("/root/main/list_authmenu/menuauthlist["+i+"]scrncd")) {
  1289. //// alert(model.getValue("/root/main/list_authmenu/menuauthlist["+i+"]scrncd"));
  1290. // grd_menuauthlist.colDisabled(grd_menuauthlist.mouseCol) = true;
  1291. // grd_menuauthlist.rowData(i) = "disabled";
  1292. //
  1293. // }
  1294. // }
  1295. ]]>
  1296. </script>
  1297. </select1>
  1298. </group>
  1299. <group id="group4" style="left:350px; top:10px; width:844px; height:45px; vertical-align:top; ">
  1300. <caption id="caption11" class="cell_1" style="left:0px; top:20px; width:135px; height:23px; ">메뉴권한 그룹(명/코드)</caption>
  1301. <output id="opt_menuauthnm" ref="/root/main/item/menuauthnm" class="output_fix" style="left:138px; top:21px; width:135px; height:19px; "/>
  1302. <output id="opt_menuauthcd" ref="/root/main/item/menuauthcd" class="output_fix" style="left:276px; top:21px; width:135px; height:19px; "/>
  1303. <caption id="caption12" class="tit_2" style="left:0px; top:0px; width:169px; height:14px; ">선택 메뉴권한</caption>
  1304. <line id="line7" class="line_1" style="x1:0px; y1:15px; x2:843px; y2:15px; "/>
  1305. <line id="line8" class="line_3" style="x1:1px; y1:42px; x2:843px; y2:42px; "/>
  1306. </group>
  1307. <button id="button1" class="btn2_letter4" visibility="hidden" style="left:1025px; top:99px; width:64px; height:19px; ">
  1308. <caption>선택삭제</caption>
  1309. <script type="javascript" ev:event="DOMActivate">
  1310. <![CDATA[
  1311. var iRow = grd_menuauthlist.row;
  1312. // alert(opt_menuauthcd.value);
  1313. // alert(cmb_menugrupauthlist.value);
  1314. model.setValue("/root/send/menuauthlist/status", "d");
  1315. model.setValue("/root/send/menuauthlist/menuauthcd", opt_menuauthcd.value);
  1316. model.setValue("/root/send/menuauthlist/menugrupcd", cmb_menugrupauthlist.value);
  1317. model.getValue("/root/main/list_authuser/menugrupauthlist");
  1318. var rtn = messageBox(" 해당 메뉴그룹 전체를 ", "Q001");
  1319. if(rtn == 6){
  1320. grd_menuauthlist.addStatus(iRow, "delete");
  1321. }
  1322. // fClicked("delete", grd_menuauthlist, "menuauthlist");
  1323. ]]>
  1324. </script>
  1325. </button>
  1326. <button id="btn_del_menuauthuser" class="btn2_letter4" style="left:639px; top:514px; width:64px; height:19px; ">
  1327. <caption>조건삭제</caption>
  1328. <script type="javascript" ev:event="DOMActivate">
  1329. <![CDATA[
  1330. var cur_row = grd_menuauthuserlist.row; // 행 번호 가져오기
  1331. var iStatus = grd_menuauthuserlist.rowstatus(cur_row);
  1332. if(cur_row<0) {
  1333. alert("삭제할 조건행을 선택해주세요.");
  1334. return;
  1335. }
  1336. if (iStatus == 1) // 새로 삽입된 행이면
  1337. {
  1338. grd_menuauthuserlist.deleteitem(cur_row);
  1339. }
  1340. else
  1341. {
  1342. var rtn = messageBox(" 해당 메뉴권한 허용자를 ", "Q001");
  1343. if(rtn == 6){
  1344. grd_menuauthuserlist.addStatus(grd_menuauthuserlist.row,"delete");
  1345. model.setValue("/root/send/menuauthuserlist", grd_menuauthuserlist.getUpdateData());
  1346. if ( submit("TXZSA20401") ) {
  1347. grd_menuauthuserlist.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  1348. var jRow = grd_menuauthuserlist.row;
  1349. grd_menuauthuserlist.deleteItem(jRow);
  1350. }
  1351. }
  1352. }
  1353. ]]>
  1354. </script>
  1355. </button>
  1356. <datagrid id="grd_menugrupauthlist" nodeset="/root/main/list_authmenu/menugrupauthlist" visibility="hidden" caption="level^명^코드^상위코드^사용여부^R^X^P^메뉴그룹^메뉴권한코드^화면권한" colwidth="0, 100, 100, 0, 100, 20, 20, 20, 100, 100, 100" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="32" style="left:395px; top:290px; width:270px; height:175px; ">
  1357. <col ref="levl"/>
  1358. <col ref="menuitemnm"/>
  1359. <col ref="menuitemcd"/>
  1360. <col ref="upmenuitemcd"/>
  1361. <col checkvalue="Y,N" ref="useyn" type="checkbox"/>
  1362. <col checkvalue="1,0" ref="r" type="checkbox"/>
  1363. <col checkvalue="1,0" ref="x" type="checkbox"/>
  1364. <col checkvalue="1,0" ref="p" type="checkbox"/>
  1365. <col ref="menugrupcd"/>
  1366. <col ref="menuauthcd"/>
  1367. <col ref="scrnauth"/>
  1368. <script type="javascript" ev:event="onclick">
  1369. <![CDATA[
  1370. // alert(grd_menuauthlist.isCell(event.target));
  1371. // alert(grd_menuauthlist.mouseCol);
  1372. if(grd_menugrupauthlist.mouseCol == "6" || grd_menugrupauthlist.mouseCol == "7" || grd_menugrupauthlist.mouseCol == "8"){
  1373. var iRow = grd_menugrupauthlist.row;
  1374. var iCol = grd_menugrupauthlist.col;
  1375. var iTypeR = fGetValue("/root/main/list_authmenu/menugrupauthlist", iRow, "r");
  1376. var iTypeX = fGetValue("/root/main/list_authmenu/menugrupauthlist", iRow, "x");
  1377. var iTypeP = fGetValue("/root/main/list_authmenu/menugrupauthlist", iRow, "p");
  1378. // alert(iTypeR);
  1379. var iScrnAuth = iTypeR + iTypeX + iTypeP;
  1380. // alert(iScrnAuth);
  1381. fSetRowValue("/root/main/list_authmenu/menugrupauthlist", "scrnauth", iScrnAuth+"00000", iRow);
  1382. /*
  1383. if(iCol == "6"){
  1384. if(iTypeR == "1"){
  1385. fSetRowValue("/root/main/list_authuser/menuauthlist", "authtypeR", "1", iRow);
  1386. for(var i = iRow; i < grd_menuauthlist.rows; i++){
  1387. for(var j = i; j < grd_menuauthlist.rows; j++){
  1388. if(fGetValue("/root/main/list_authuser/menuauthlist", i, "menuitemcd") == fGetValue("/root/main/list_authuser/menuauthlist", j, "upmenuitemcd")){
  1389. fSetRowValue("/root/main/list_authuser/menuauthlist", "r", "1", j);
  1390. fSetRowValue("/root/main/list_authuser/menuauthlist", "authtypeR", "1", j);
  1391. }
  1392. }
  1393. }
  1394. }
  1395. } else if(iCol == "7"){
  1396. if(iTypeX == "1"){
  1397. fSetRowValue("/root/main/list_authuser/menuauthlist", "authtypeX", "1", iRow);
  1398. for(var i = iRow; i < grd_menuauthlist.rows; i++){
  1399. for(var j = i; j < grd_menuauthlist.rows; j++){
  1400. if(fGetValue("/root/main/list_authuser/menuauthlist", i, "menuitemcd") == fGetValue("/root/main/list_authuser/menuauthlist", j, "upmenuitemcd")){
  1401. fSetRowValue("/root/main/list_authuser/menuauthlist", "x", "1", j);
  1402. fSetRowValue("/root/main/list_authuser/menuauthlist", "authtypeX", "1", j);
  1403. }
  1404. }
  1405. }
  1406. }
  1407. } else if(iCol == "8"){
  1408. if(iTypeP == "1"){
  1409. fSetRowValue("/root/main/list_authuser/menuauthlist", "authtypeP", "1", iRow);
  1410. for(var i = iRow; i < grd_menuauthlist.rows; i++){
  1411. for(var j = i; j < grd_menuauthlist.rows; j++){
  1412. if(fGetValue("/root/main/list_authuser/menuauthlist", i, "menuitemcd") == fGetValue("/root/main/list_authuser/menuauthlist", j, "upmenuitemcd")){
  1413. fSetRowValue("/root/main/list_authuser/menuauthlist", "p", "1", j);
  1414. fSetRowValue("/root/main/list_authuser/menuauthlist", "authtypeP", "1", j);
  1415. }
  1416. }
  1417. }
  1418. }
  1419. }
  1420. */
  1421. }
  1422. ]]>
  1423. </script>
  1424. </datagrid>
  1425. <line id="line_auth" class="line_1" style="x1:350px; y1:535px; x2:705px; y2:535px; "/>
  1426. <line id="line_deny" class="line_1" style="x1:710px; y1:537px; x2:1194px; y2:536px; "/>
  1427. <button id="btn_reg_menudenyuser" class="btn2_letter4" visibility="visible" style="left:1061px; top:514px; width:64px; height:19px; ">
  1428. <caption>조건추가</caption>
  1429. <script type="javascript" ev:event="DOMActivate">
  1430. <![CDATA[
  1431. if(opt_menuauthcd.value == ""){
  1432. model.alert("메뉴권한그룹을 선택하십시요!");
  1433. } else
  1434. {
  1435. grd_menudenyuserlist.addRow();
  1436. var iRow = grd_menudenyuserlist.row;
  1437. fSetRowValue("/root/main/list_authuser/menudenyuserlist", "menuauthcd", opt_menuauthcd.value, iRow);
  1438. }
  1439. ]]>
  1440. </script>
  1441. </button>
  1442. <button id="btn_del_menudenyuser" class="btn2_letter4" style="left:1128px; top:514px; width:64px; height:19px; ">
  1443. <caption>조건삭제</caption>
  1444. <script type="javascript" ev:event="DOMActivate">
  1445. <![CDATA[
  1446. var cur_row = grd_menudenyuserlist.row; // 행 번호 가져오기
  1447. var iStatus = grd_menudenyuserlist.rowstatus(cur_row);
  1448. if(cur_row<0) {
  1449. alert("삭제할 조건행을 선택해주세요.");
  1450. return;
  1451. }
  1452. if (iStatus == 1) // 새로 삽입된 행이면
  1453. {
  1454. grd_menudenyuserlist.deleteitem(cur_row);
  1455. }
  1456. else
  1457. {
  1458. var rtn = messageBox(" 해당 메뉴권한 허용자를 ", "Q001");
  1459. if(rtn == 6){
  1460. grd_menudenyuserlist.addStatus(grd_menudenyuserlist.row,"delete");
  1461. model.setValue("/root/send/menudenyuserlist", grd_menudenyuserlist.getUpdateData());
  1462. if ( submit("TXZSA20401") ) {
  1463. grd_menudenyuserlist.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  1464. var jRow = grd_menudenyuserlist.row;
  1465. grd_menudenyuserlist.deleteItem(jRow);
  1466. }
  1467. }
  1468. }
  1469. ]]>
  1470. </script>
  1471. </button>
  1472. <img id="img_expand_deny" class="icon_left" visibility="visible" style="left:863px; top:514px; width:26px; height:19px; background-stretch:stretch; ">
  1473. <script type="javascript" ev:event="onclick">
  1474. <![CDATA[
  1475. fset_expand_deny(true);
  1476. ]]>
  1477. </script>
  1478. </img>
  1479. <img id="img_shrink_deny" class="icon_right" visibility="hidden" style="left:501px; top:514px; width:26px; height:19px; background-stretch:stretch; ">
  1480. <script type="javascript" ev:event="onclick">
  1481. <![CDATA[
  1482. // 제한자 조건 숨기기
  1483. fset_expand_deny(false);
  1484. ]]>
  1485. </script>
  1486. </img>
  1487. </group>
  1488. <group id="grp_btn" style="left:0px; top:13px; width:1195px; height:27px; ">
  1489. <button id="btn_save" class="btn4_letter2" style="left:1136px; top:0px; width:56px; height:22px; ">
  1490. <caption>저장</caption>
  1491. <script type="javascript" ev:event="DOMActivate">
  1492. <![CDATA[
  1493. fSaveTotal()
  1494. ]]>
  1495. </script>
  1496. </button>
  1497. <line id="line9" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  1498. </group>
  1499. </xhtml:body>
  1500. </xhtml:html>