menu.jsp 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599
  1. <%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3. <script type="text/javascript" src="<c:url value='/resources/js/admin/menu.js' />"></script>
  4. <!-- 메뉴 관리 -->
  5. <div class="main-wrapper">
  6. <div class="title-bar">
  7. <span class="title">메뉴관리</span>
  8. </div>
  9. <div id="wrapper">
  10. <div class="col-md-3">
  11. <div class="left-content">
  12. <div class="form-group text-center">
  13. <div class="btn-group" role="group" aria-label="...">
  14. <button type="button" class="btn btn-default btn-sm" id="btnCreateNode" title="메뉴추가">
  15. <span class="glyphicon glyphicon-plus">&nbsp;추가</span>
  16. </button>
  17. <button type="button" class="btn btn-default btn-sm" id="btnRemoveNode" title="메뉴삭제">
  18. <span class="glyphicon glyphicon-minus">&nbsp;삭제</span>
  19. </button>
  20. <button type="button" class="btn btn-default btn-sm" id="btnDeselectNode" title="선택해제">
  21. <span class="glyphicon glyphicon-remove">&nbsp;해제</span>
  22. </button>
  23. </div>
  24. </div>
  25. <div id="menuTreeView">
  26. </div>
  27. </div>
  28. </div>
  29. <div class="col-md-9">
  30. <div class="right-content row">
  31. <div id="menuDetailEmpty" style="display: none">
  32. <div class="form-group col-md-12">
  33. * 메뉴를 선택해주세요.
  34. </div>
  35. </div>
  36. <div id="menuDetail">
  37. <div class="form-group col-md-12 text-right">
  38. <div class="btn-group" role="group" aria-label="...">
  39. <button type="button" class="btn btn-default btn-sm" id="btnSaveNode" title="저장">
  40. <span class="glyphicon glyphicon-ok">&nbsp;저장</span>
  41. </button>
  42. <button type="button" class="btn btn-default btn-sm" id="btnCacheInit" title="캐시초기화">
  43. <span class="glyphicon glyphicon-refresh">&nbsp;초기화</span>
  44. </button>
  45. </div>
  46. </div>
  47. <div class="col-md-12">
  48. <div class="panel panel-default">
  49. <div class="panel-body">
  50. <div class="col-md-12">
  51. <div class="form-group content-box-title">
  52. <label>정보</label>
  53. </div>
  54. </div>
  55. <div class="form-group col-md-12">
  56. <div class="col-md-2 content-title text-right">
  57. <label class="">아이디</label>
  58. </div>
  59. <div class="col-md-4">
  60. <input type="text" class="form-control input-sm" id="txtId" placeholder="">
  61. </div>
  62. <div class="col-md-2 content-title text-right">
  63. <label>메뉴명</label>
  64. </div>
  65. <div class="col-md-4">
  66. <input type="text" class="form-control input-sm" id="txtMenu" placeholder="">
  67. </div>
  68. </div>
  69. <div class="form-group col-md-12">
  70. <div class="col-md-2 content-title text-right">
  71. <label>순서</label>
  72. </div>
  73. <div class="col-md-2 pdr0">
  74. <input type="number" class="form-control input-sm" id="txtOrder" placeholder="">
  75. </div>
  76. <div class="col-md-2 content-title text-right">
  77. <label>메뉴타입</label>
  78. </div>
  79. <div class="col-md-2 pdr0">
  80. <select class="form-control input-sm" id="sltMenuType">
  81. <option value="">선택</option>
  82. <option value="SIDE">사이드</option>
  83. <option value="NAVI">네비게이션</option>
  84. <option value="CONT">콘텐츠</option>
  85. </select>
  86. </div>
  87. <div class="col-md-2 content-title text-right">
  88. <label>화면표시여부</label>
  89. </div>
  90. <div class="col-md-2">
  91. <select class="form-control input-sm" id="sltDisplay">
  92. <option value="Y">예</option>
  93. <option value="N">아니오</option>
  94. </select>
  95. </div>
  96. <!-- <div class="col-md-2 radio-padding-box">
  97. <label class="radio-inline">
  98. <input type="radio" name="displayYN" id="radioDisplayY" value="Y"> 예
  99. </label>
  100. <label class="radio-inline">
  101. <input type="radio" name="displayYN" id="radioDisplayN" value="N"> 아니오
  102. </label>
  103. </div> -->
  104. </div>
  105. <!-- <div class="form-group col-md-12">
  106. <div class="col-md-2 content-title text-right">
  107. <label>화면표시여부</label>
  108. </div>
  109. <div class="col-md-2 radio-padding-box">
  110. <label class="radio-inline">
  111. <input type="radio" name="displayYN" id="radioDisplayY" value="Y"> 예
  112. </label>
  113. <label class="radio-inline">
  114. <input type="radio" name="displayYN" id="radioDisplayN" value="N"> 아니오
  115. </label>
  116. </div>
  117. <div class="col-md-8 pd0">
  118. <div class="col-md-3 content-title text-right">
  119. <label>인증여부</label>
  120. </div>
  121. <div class="col-md-3 radio-padding-box">
  122. <label class="radio-inline">
  123. <input type="radio" name="certifyYN" id="certifyY" value="Y"> 예
  124. </label>
  125. <label class="radio-inline">
  126. <input type="radio" name="certifyYN" id="certifyN" value="N"> 아니오
  127. </label>
  128. </div>
  129. <div class="col-md-3 content-title text-right">
  130. <label>인증 후 표시여부</label>
  131. </div>
  132. <div class="col-md-3 radio-padding-box">
  133. <label class="radio-inline">
  134. <input type="radio" name="certifyDisplayYN" id="certifyDisplayY" value="Y"> 예
  135. </label>
  136. <label class="radio-inline">
  137. <input type="radio" name="certifyDisplayYN" id="certifyDisplayN" value="N"> 아니오
  138. </label>
  139. </div>
  140. </div>
  141. <div class="col-md-2 content-title text-right">
  142. <label>통계여부</label>
  143. </div>
  144. <div class="col-md-4">
  145. <label class="radio-inline">
  146. <input type="radio" name="statsYN" id="radioStatsY" value="Y"> 예
  147. </label>
  148. <label class="radio-inline">
  149. <input type="radio" name="statsYN" id="radioStatsN" value="N"> 아니오
  150. </label>
  151. </div>
  152. </div> -->
  153. <!-- <div class="form-group col-md-12">
  154. <div class="col-md-2 content-title text-right">
  155. <label>인증여부</label>
  156. </div>
  157. <div class="col-md-4">
  158. <label class="radio-inline">
  159. <input type="radio" name="certifyYN" id="certifyY" value="Y"> 예
  160. </label>
  161. <label class="radio-inline">
  162. <input type="radio" name="certifyYN" id="certifyN" value="N"> 아니오
  163. </label>
  164. </div>
  165. <div class="col-md-2 content-title text-right">
  166. <label>인증 후 표시여부</label>
  167. </div>
  168. <div class="col-md-4">
  169. <label class="radio-inline">
  170. <input type="radio" name="certifyDisplayYN" id="certifyDisplayY" value="Y"> 예
  171. </label>
  172. <label class="radio-inline">
  173. <input type="radio" name="certifyDisplayYN" id="certifyDisplayN" value="N"> 아니오
  174. </label>
  175. </div>
  176. </div> -->
  177. <div class="form-group col-md-12">
  178. <div class="col-md-2 content-title text-right">
  179. <label>페이지 URL</label>
  180. </div>
  181. <div class="col-md-10">
  182. <input type="text" class="form-control input-sm" id="txtPageUrl" placeholder="">
  183. </div>
  184. </div>
  185. <div class="form-group col-md-12">
  186. <div class="col-md-2 content-title text-right">
  187. <label>이미지 URL</label>
  188. </div>
  189. <div class="col-md-10">
  190. <input type="text" class="form-control input-sm" id="txtImageUrl" placeholder="">
  191. </div>
  192. </div>
  193. <div class="form-group col-md-12">
  194. <div class="col-md-2 content-title text-right">
  195. <label>설명<br/>(<span id="descLength">0</span>/500bytes)</label>
  196. </div>
  197. <div class="col-md-10">
  198. <textarea class="form-control input-sm" id="txtMenuDesc" rows="3"></textarea>
  199. </div>
  200. </div>
  201. </div>
  202. </div>
  203. </div>
  204. <div class="col-md-12">
  205. <div class="panel panel-default">
  206. <div class="panel-body">
  207. <div class="col-md-12">
  208. <div class="form-group content-box-title">
  209. <label>다국어 (메뉴명보다 우선적용됩니다.)</label>
  210. </div>
  211. <div class="form-group col-md-12 pd0">
  212. <div class="col-md-2 content-title text-right">
  213. <label></label>
  214. </div>
  215. <div class="col-md-10">
  216. <div class="text-right">
  217. <button type="button" class="btn btn-default btn-sm" id="btnCreateI18n" title="편집">
  218. <span class="glyphicon glyphicon-edit">&nbsp;편집</span>
  219. </button>
  220. </div>
  221. <div id="container_i18n">
  222. <table class="table table-bordered table-hover">
  223. <thead>
  224. <tr>
  225. <td class="table-header">다국어 코드</td>
  226. <td class="table-header">다국어 텍스트</td>
  227. </tr>
  228. </thead>
  229. <tbody id="table_i18n_view">
  230. </tbody>
  231. </table>
  232. </div>
  233. </div>
  234. </div>
  235. </div>
  236. </div>
  237. </div>
  238. </div>
  239. <div class="col-md-12">
  240. <div class="panel panel-default">
  241. <div class="panel-body">
  242. <div class="col-md-12">
  243. <div class="form-group content-box-title">
  244. <label>파라미터</label>
  245. </div>
  246. <div class="form-group col-md-12 pd0">
  247. <div class="col-md-2 content-title text-right">
  248. <label></label>
  249. </div>
  250. <div class="col-md-10">
  251. <div class="text-right">
  252. <button type="button" class="btn btn-default btn-sm" id="btnCreateParam" title="편집">
  253. <span class="glyphicon glyphicon-edit">&nbsp;편집</span>
  254. </button>
  255. </div>
  256. <table class="table table-bordered table-hover">
  257. <thead>
  258. <tr>
  259. <td class="table-header">no</td>
  260. <td class="table-header">이름</td>
  261. <td class="table-header">타입</td>
  262. <td class="table-header">파라미터값</td>
  263. <td class="table-header">설명</td>
  264. </tr>
  265. </thead>
  266. <tbody id="table_param_view">
  267. </tbody>
  268. </table>
  269. </div>
  270. </div>
  271. </div>
  272. </div>
  273. </div>
  274. </div>
  275. <div class="col-md-12">
  276. <div class="panel panel-default">
  277. <div class="panel-body">
  278. <div class="col-md-12">
  279. <div class="form-group content-box-title">
  280. <label>권한</label>
  281. </div>
  282. <div class="form-group col-md-12 pd0">
  283. <div class="col-md-2 content-title text-right">
  284. <label></label>
  285. </div>
  286. <div class="col-md-10">
  287. <div class="text-right">
  288. <button type="button" class="btn btn-default btn-sm" id="btnCreateAuth" title="편집">
  289. <span class="glyphicon glyphicon-edit">&nbsp;편집</span>
  290. </button>
  291. </div>
  292. <table class="table table-bordered table-hover">
  293. <thead>
  294. <tr>
  295. <td class="table-header">권한이름</td>
  296. </tr>
  297. </thead>
  298. <tbody id="table_auth_view">
  299. </tbody>
  300. </table>
  301. </div>
  302. </div>
  303. </div>
  304. </div>
  305. </div>
  306. </div>
  307. </div>
  308. </div>
  309. </div>
  310. </div>
  311. </div>
  312. <!-- Modal -->
  313. <div class="modal fade" id="addItemModal_i18n" tabindex="-1" role="dialog">
  314. <div class="modal-dialog" role="document" style="width: 800px">
  315. <div class="modal-content">
  316. <div class="modal-header">
  317. ⊙ 다국어 정보
  318. </div>
  319. <div class="modal-body">
  320. <div class="row">
  321. <div class="col-md-5 content-table">
  322. <table class="table table-bordered table-hover table-row-click">
  323. <thead>
  324. <tr>
  325. <td class="table-header">다국어 코드</td>
  326. <td class="table-header">다국어 텍스트</td>
  327. <td class="table-header">
  328. <button type="button" class="btn btn-primary btn-xs" id="btnNewItem_i18n">
  329. <span class="glyphicon glyphicon-plus">&nbsp;추가</span>
  330. </button>
  331. </td>
  332. </tr>
  333. </thead>
  334. <tbody id="table_i18n">
  335. </tbody>
  336. </table>
  337. </div>
  338. <div class="col-md-7">
  339. <div class="col-md-12 pd0">
  340. <div class="panel panel-default">
  341. <div class="panel-body">
  342. <div class="col-md-12" id="modalI18nDetailEmpty">
  343. <div class="form-group col-md-12 pd0">
  344. <div class="col-md-12 pd0">
  345. * 다국어 정보를 선택해주세요.
  346. </div>
  347. </div>
  348. </div>
  349. <div id="modalI18nDetail">
  350. <div class="col-md-12">
  351. <div class="row content-box-title">
  352. <div class="col-md-12 detail-content-title">
  353. <label>정보</label>
  354. </div>
  355. </div>
  356. <div class="form-group col-md-12 pd0">
  357. <div class="col-md-3 content-title pd0">
  358. <label>다국어코드</label>
  359. </div>
  360. <div class="col-md-9 pd0">
  361. <select class="form-control input-sm" id="sltI18n">
  362. <c:forEach var="item" items="${supportedLanguages}">
  363. <option value="${item}">${item}</option>
  364. </c:forEach>
  365. </select>
  366. </div>
  367. </div>
  368. <div class="form-group col-md-12 pd0">
  369. <div class="col-md-3 content-title pd0">
  370. <label>다국어 텍스트</label>
  371. </div>
  372. <div class="col-md-9 pd0">
  373. <input type="text" class="form-control input-sm" id="txtI18n" placeholder="">
  374. </div>
  375. </div>
  376. <div class="form-group col-md-12 pd0">
  377. <div class="col-md-12 pd0 text-center">
  378. <button type="button" class="btn btn-default btn-sm" id="saveItem_i18n">
  379. <span class="glyphicon glyphicon-ok">&nbsp;저장</span>
  380. </button>
  381. </div>
  382. </div>
  383. </div>
  384. </div>
  385. </div>
  386. </div>
  387. </div>
  388. </div>
  389. </div>
  390. </div>
  391. <div class="modal-footer text-center">
  392. <button type="button" class="btn btn-default btn-sm" id="btnConfirmItem_i18n">
  393. <span class="glyphicon glyphicon-ok-circle">&nbsp;적용</span>
  394. </button>
  395. <button type="button" class="btn btn-default btn-sm" data-dismiss="modal">
  396. <span class="glyphicon glyphicon-remove-circle">&nbsp;취소</span>
  397. </button>
  398. </div>
  399. </div>
  400. </div>
  401. </div>
  402. <!-- Modal -->
  403. <div class="modal fade" id="addItemModal_param" tabindex="-1" role="dialog">
  404. <div class="modal-dialog" role="document" style="width: 800px;">
  405. <div class="modal-content">
  406. <div class="modal-header">
  407. ⊙ 파라미터 정보
  408. </div>
  409. <div class="modal-body" id="modalBody_param">
  410. <div class="row">
  411. <div class="col-md-5 content-table">
  412. <table class="table table-bordered table-hover table-row-click">
  413. <thead>
  414. <tr>
  415. <td class="table-header">이름</td>
  416. <!-- <td class="table-header">타입</td> -->
  417. <td class="table-header">파라미터값</td>
  418. <!-- <td class="table-header">설명</td> -->
  419. <td class="table-header">
  420. <button type="button" class="btn btn-primary btn-xs" id="btnNewItem_param">
  421. <span class="glyphicon glyphicon-plus">&nbsp;추가</span>
  422. </button>
  423. </td>
  424. </tr>
  425. </thead>
  426. <tbody id="table_param">
  427. </tbody>
  428. </table>
  429. </div>
  430. <div class="col-md-7">
  431. <div class="col-md-12 pd0">
  432. <div class="panel panel-default">
  433. <div class="panel-body">
  434. <div class="col-md-12" id="modalParamDetailEmpty">
  435. <div class="form-group col-md-12 pd0">
  436. <div class="col-md-12 pd0">
  437. * 파라미터 정보를 선택해주세요.
  438. </div>
  439. </div>
  440. </div>
  441. <div id="modalParamDetail">
  442. <div class="col-md-12">
  443. <div class="row content-box-title">
  444. <div class="col-md-12 detail-content-title">
  445. <label>정보</label>
  446. </div>
  447. </div>
  448. <div class="form-group col-md-12 pd0">
  449. <div class="col-md-3 content-title">
  450. <label>이름</label>
  451. </div>
  452. <div class="col-md-9 pd0">
  453. <input type="text" class="form-control input-sm" id="txtParamName" placeholder="">
  454. </div>
  455. </div>
  456. <div class="form-group col-md-12 pd0">
  457. <div class="col-md-3 content-title">
  458. <label>타입</label>
  459. </div>
  460. <div class="col-md-9 pd0">
  461. <select class="form-control input-sm" id="sltParamType">
  462. <c:forEach var="item" items="${reqParamTypes}">
  463. <option value="${item}">${item}</option>
  464. </c:forEach>
  465. </select>
  466. </div>
  467. </div>
  468. <div class="form-group col-md-12 pd0">
  469. <div class="col-md-3 content-title">
  470. <label>파라미터값</label>
  471. </div>
  472. <div class="col-md-9 pd0">
  473. <input type="text" class="form-control input-sm" id="txtParamValue" placeholder="">
  474. </div>
  475. </div>
  476. <div class="form-group col-md-12 pd0">
  477. <div class="col-md-3 content-title">
  478. <label>설명</label>
  479. </div>
  480. <div class="col-md-9 pd0">
  481. <textarea class="form-control input-sm" rows="5" id="txtParamDesc"></textarea>
  482. </div>
  483. </div>
  484. <div class="form-group col-md-12 pd0">
  485. <div class="col-md-12 pd0 text-center">
  486. <button type="button" class="btn btn-default btn-sm" id="saveItem_param">
  487. <span class="glyphicon glyphicon-ok">&nbsp;저장</span>
  488. </button>
  489. </div>
  490. </div>
  491. </div>
  492. </div>
  493. </div>
  494. </div>
  495. </div>
  496. </div>
  497. </div>
  498. </div>
  499. <div class="modal-footer text-center">
  500. <button type="button" class="btn btn-default btn-sm" id="btnConfirmItem_param">
  501. <span class="glyphicon glyphicon-ok-circle">&nbsp;적용</span>
  502. </button>
  503. <button type="button" class="btn btn-default btn-sm" data-dismiss="modal">
  504. <span class="glyphicon glyphicon-remove-circle">&nbsp;취소</span>
  505. </button>
  506. </div>
  507. </div>
  508. </div>
  509. </div>
  510. <!-- Modal -->
  511. <div class="modal fade" id="addItemModal_auth" tabindex="-1" role="dialog">
  512. <div class="modal-dialog" role="document" style="width: 800px">
  513. <div class="modal-content">
  514. <div class="modal-header">
  515. ⊙ 권한 정보
  516. </div>
  517. <div class="modal-body" id="modalBody_auth">
  518. <div class="row">
  519. <div class="col-md-5 content-table">
  520. <table class="table table-bordered table-hover table-row-click">
  521. <thead>
  522. <tr>
  523. <td class="table-header">권한이름</td>
  524. <td class="table-header">
  525. <button type="button" class="btn btn-primary btn-xs" id="btnNewItem_auth">
  526. <span class="glyphicon glyphicon-plus">&nbsp;추가</span>
  527. </button>
  528. </td>
  529. </tr>
  530. </thead>
  531. <tbody id="table_auth">
  532. </tbody>
  533. </table>
  534. </div>
  535. <div class="col-md-7">
  536. <div class="col-md-12 pd0">
  537. <div class="panel panel-default">
  538. <div class="panel-body">
  539. <div class="col-md-12" id="modalAuthDetailEmpty">
  540. <div class="form-group col-md-12 pd0">
  541. <div class="col-md-12 pd0">
  542. * 권한 정보를 선택해주세요.
  543. </div>
  544. </div>
  545. </div>
  546. <div class="col-md-12" id="modalAuthDetail">
  547. <div class="row content-box-title">
  548. <div class="col-md-12 detail-content-title">
  549. <label>정보</label>
  550. </div>
  551. </div>
  552. <div class="form-group col-md-12 pd0">
  553. <div class="col-md-3 content-title">
  554. <label>이름</label>
  555. </div>
  556. <div class="col-md-9 pd0">
  557. <select class="form-control input-sm" id="sltAuth">
  558. <option value="">선택</option>
  559. </select>
  560. </div>
  561. </div>
  562. <div class="form-group col-md-12 pd0">
  563. <div class="col-md-12 pd0 text-center">
  564. <button type="button" class="btn btn-default btn-sm" id="saveItem_auth">
  565. <span class="glyphicon glyphicon-ok">&nbsp;저장</span>
  566. </button>
  567. </div>
  568. </div>
  569. </div>
  570. </div>
  571. </div>
  572. </div>
  573. </div>
  574. </div>
  575. </div>
  576. <div class="modal-footer text-center">
  577. <button type="button" class="btn btn-primary" id="btnConfirmItem_auth">
  578. <span class="glyphicon glyphicon-ok-circle">&nbsp;적용</span>
  579. </button>
  580. <button type="button" class="btn btn-default" data-dismiss="modal">
  581. <span class="glyphicon glyphicon-remove-circle">&nbsp;취소</span>
  582. </button>
  583. </div>
  584. </div>
  585. </div>
  586. </div>
  587. <script type="text/javascript">
  588. $(document).ready(function() {
  589. var menu = new mplus_admin_menu( "${defaultLanguage}" );
  590. menu.init();
  591. });
  592. </script>