SMZSA20700_계정그룹별메뉴권한관리.xrw 66 KB

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