manager.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. /**
  2. * admin/vers
  3. */
  4. var mplus_admin_manager = function(){
  5. //상속
  6. mplus_admin.call(this);
  7. var self = this;
  8. //변수
  9. var $crudServiceBaseUrl = contextPath + "/admin/manager";
  10. /**
  11. * 초기화
  12. */
  13. this.init = function(){
  14. initManagerList(1);
  15. setPageList(1);
  16. if($('#page_1')!=null) $('#page_1').addClass('active');
  17. addEvent();
  18. };
  19. /**
  20. * 이벤트 등록
  21. */
  22. var addEvent = function(){
  23. $('#btnCreate, #btnCreateEmpty').on('click', function(){
  24. newManager();
  25. });
  26. $('#btnRemove').on('click', function(){
  27. removeManager();
  28. });
  29. $('#btnSave').on('click', function(){
  30. saveManager();
  31. });
  32. };
  33. var managerList = [];
  34. var totalCount = '';
  35. var saveType = '';
  36. var pageSize = 15;
  37. /**
  38. * 그리드 초기화
  39. */
  40. var initManagerList = function(page){
  41. var opt = {
  42. url: $crudServiceBaseUrl + "/getList.json",
  43. async: false,
  44. type: "post",
  45. dataType: "json",
  46. contentType: "application/json",
  47. data: self.util.stringifyJson({
  48. pageSize: pageSize,
  49. page: page
  50. })
  51. };
  52. var success = function(result){
  53. managerList = result.data;
  54. totalCount = result.totalCount;
  55. $('#table_manager').empty();
  56. for(var i=0; i<managerList.length; i++){
  57. var tr = $('<tr></tr>').clone().attr('seq', i).attr('userId', managerList[i].userId);
  58. var tdUserId = $('<td></td>').clone().text(managerList[i].userId);
  59. var tdUserName = $('<td></td>').clone().text(managerList[i].userName);
  60. var tdDeptName = $('<td></td>').clone().text(managerList[i].deptName ==null? '': managerList[i].deptName);
  61. var tdEnabledYn = $('<td></td>').clone().addClass('max-width-xs text-center').text(managerList[i].enabledYn);
  62. $('#table_manager').append(tr.append(tdUserId).append(tdUserName).append(tdDeptName).append(tdEnabledYn));
  63. $('#table_manager tr').on('click', function(e){
  64. getManagerInfo(e.currentTarget.attributes.seq.value);
  65. $('#table_manager tr').removeClass('active');
  66. $(this).addClass('active');
  67. });
  68. }
  69. if($('#table_manager tr')[0]==undefined){
  70. $('#managerDetail').css('display', 'none');
  71. $('#managerDetailEmpty').css('display', 'block');
  72. }else{
  73. $('#table_manager tr')[0].click();
  74. }
  75. };
  76. var error = function(xhr,d,t){
  77. console.log(xhr);
  78. console.log(t);
  79. };
  80. self.ajaxAdmin( opt, success, error );
  81. };
  82. var pageEvent = function(e) {
  83. var type = e.currentTarget.id.split('_')[0];
  84. var page = Number(e.currentTarget.id.split('_')[1]);
  85. if( type == 'page' ) {
  86. initManagerList(page);
  87. $('#ulPagination li[id*="page_"]').removeClass('active');
  88. } else if ( type == 'next') {
  89. initManagerList(page);
  90. setPageList(page);
  91. } else if ( type == 'previous' ) {
  92. initManagerList(page);
  93. setPageList(page - 9);
  94. }
  95. if($('#page_'+page)!=null) $('#page_'+page).addClass('active');
  96. };
  97. var setPageList = function(start) {
  98. $('#ulPagination').empty();
  99. var end = start + 9;
  100. if( Math.ceil(totalCount/pageSize) < end ) {
  101. end = Math.ceil(totalCount/pageSize);
  102. }
  103. if( start > 10 ) {
  104. $('#ulPagination').append('<li id="previous_'+(start - 1)+'"><a href="#"><<</a></li>');
  105. }
  106. for( var i = start; i <= end; i++ ) {
  107. $('#ulPagination').append('<li id="page_'+i+'"><a href="#">'+i+'</a></li>');
  108. }
  109. if( end < Math.ceil(totalCount/pageSize) ) {
  110. $('#ulPagination').append('<li id="next_'+(end + 1)+'"><a href="#">>></a></li>');
  111. }
  112. $('#ulPagination li').unbind();
  113. $('#ulPagination li').click(function(e) {pageEvent(e);});
  114. };
  115. var getManagerInfo = function(seq){
  116. var managerInfo = managerList[seq];
  117. $('#txtSeq').val(seq);
  118. $('#txtUserId').val(managerInfo.userId);
  119. $('#txtUserName').val(managerInfo.userName);
  120. $('#txtPwdValue').val('');
  121. $('#txtDeptName').val(managerInfo.deptName);
  122. $(':radio[name="enabledYn"][value="'+managerInfo.enabledYn+'"]').prop('checked', true);
  123. changeSaveType('edit');
  124. $('#managerDetail').css('display', 'block');
  125. $('#managerDetailEmpty').css('display', 'none');
  126. };
  127. var changeSaveType = function(type){
  128. if(type=='edit'){
  129. saveType = 'edit';
  130. $('#txtUserId').prop('readonly', true);
  131. }else{
  132. saveType = 'new';
  133. $('#txtUserId').removeAttr('readonly');
  134. }
  135. };
  136. var newManager = function(){
  137. changeSaveType('new');
  138. $('#txtSeq').val('');
  139. $('#txtUserId').val('');
  140. $('#txtUserName').val('');
  141. $('#txtPwdValue').val('');
  142. $('#txtDeptName').val('');
  143. $(':radio[name="enabledYn"][value="Y"]').prop('checked', true);
  144. $('#table_manager tr').removeClass('active');
  145. $('#managerDetail').css('display', 'block');
  146. $('#managerDetailEmpty').css('display', 'none');
  147. $('#txtUserId').focus();
  148. };
  149. var removeManager = function(){
  150. if($('#table_manager tr.active').length==0){
  151. alert('삭제할 계정을 선택해주세요.');
  152. return;
  153. }
  154. /*if($('#txtSeq').val()==null||$('#txtSeq').val()==""){
  155. alert('삭제할 계정을 선택해주세요.')
  156. return;
  157. };*/
  158. if(confirm('해당 계정을 삭제하시겠습니까?')){
  159. var opt = {
  160. url: $crudServiceBaseUrl + "/remove.json",
  161. method: "post",
  162. dataType: "json",
  163. contentType: "application/json",
  164. data: self.util.stringifyJson(managerList[$('#txtSeq').val()])
  165. };
  166. var success = function(result){
  167. alert("삭제되었습니다.");
  168. if(managerList.length==1){
  169. initManagerList(Number($('#ulPagination li.active')[0].id.split('_')[1])-1);
  170. }else{
  171. initManagerList(Number($('#ulPagination li.active')[0].id.split('_')[1]));
  172. }
  173. };
  174. var error = function(xhr,d,t){
  175. console.log(xhr);
  176. console.log(t);
  177. };
  178. self.ajaxAdmin( opt, success, error );
  179. };
  180. };
  181. var saveManager = function(){
  182. if($('#txtUserId').val()==''){
  183. alert('아이디를 입력해주세요.');
  184. return;
  185. }
  186. if($('#txtUserName').val()==''){
  187. alert('이름을 입력해주세요.');
  188. return;
  189. }
  190. if($('#txtPwdValue').val()==''){
  191. alert('패스워드를 입력해주세요.');
  192. return;
  193. }
  194. if(saveType=='edit'){
  195. var param = managerList[$('#txtSeq').val()];
  196. param.userId = $('#txtUserId').val();
  197. param.userName = $('#txtUserName').val();
  198. param.pwdValue = $('#txtPwdValue').val();
  199. param.deptName = $('#txtDeptName').val();
  200. param.enabledYn = $(':radio[name="enabledYn"]:checked').val();
  201. }else{
  202. for(var i=0; i<managerList.length; i++){
  203. if(managerList[i].userId == $('#txtUserId').val()){
  204. alert('동일한 아이디가 존재합니다.');
  205. $('#txtUserId').focus();
  206. return false;
  207. }
  208. }
  209. var param = {
  210. userId: $('#txtUserId').val(),
  211. userName: $('#txtUserName').val(),
  212. pwdValue: $('#txtPwdValue').val(),
  213. deptName: $('#txtDeptName').val(),
  214. enabledYn: $(':radio[name="enabledYn"]:checked').val()
  215. }
  216. }
  217. var opt = {
  218. url: $crudServiceBaseUrl + "/save.json",
  219. method: "post",
  220. dataType: "json",
  221. contentType: "application/json",
  222. data: self.util.stringifyJson(param)
  223. };
  224. var success = function(result){
  225. alert("저장되었습니다.");
  226. initManagerList(Number($('#ulPagination li.active')[0].id.split('_')[1]));
  227. };
  228. var error = function(xhr,d,t){
  229. console.log(xhr);
  230. console.log(t);
  231. };
  232. self.ajaxAdmin( opt, success, error );
  233. };
  234. };