agreement.js 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. /**
  2. * admin/agreement
  3. */
  4. var mplus_admin_agreement = function(){
  5. //상속
  6. mplus_admin.call(this);
  7. var self = this;
  8. //변수
  9. var $crudServiceBaseUrl = contextPath + "/admin/agreement";
  10. /**
  11. * 초기화
  12. */
  13. this.init = function(){
  14. initAgreementList(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. newAgreement();
  25. });
  26. /*$('#btnRemove').on('click', function(){
  27. removeAgreement();
  28. });*/
  29. $('#btnSave').on('click', function(){
  30. saveAgreement();
  31. });
  32. };
  33. var agreementList = [];
  34. var totalCount = '';
  35. var saveType = '';
  36. var pageSize = 15;
  37. /**
  38. * 그리드 초기화
  39. */
  40. var initAgreementList = 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. agreementList = result.data;
  54. totalCount = result.totalCount;
  55. $('#table_agreement').empty();
  56. for(var i=0; i<agreementList.length; i++){
  57. var tr = $('<tr></tr>').clone().attr('seq', i);
  58. /*var tdAgreementId = $('<td></td>').clone().text(agreementList[i].agreementId);*/
  59. var tdAgreementName = $('<td></td>').clone().text(agreementList[i].agreementName);
  60. var tdAgreementOrder = $('<td></td>').clone().text(agreementList[i].agreementOrder);
  61. var tdVersionNumber = $('<td></td>').clone().text(agreementList[i].versionNumber);
  62. var tdAgreementCl = $('<td></td>').clone().text(agreementList[i].agreementCl.length>10? agreementList[i].agreementCl.substring(0, 10)+'...':agreementList[i].agreementCl);
  63. /*var tdRequiredYn = $('<td></td>').clone().text(agreementList[i].requiredYn);*/
  64. var tdEnabledYn = $('<td></td>').clone().text(agreementList[i].enabledYn);
  65. /*var tdTypeName = $('<td></td>').clone().text(agreementList[i].typeName=='ALL'? '일반': '14세이하');*/
  66. $('#table_agreement').append(tr.append(tdAgreementName).append(tdAgreementOrder)
  67. .append(tdVersionNumber).append(tdAgreementCl).append(tdEnabledYn));
  68. $('#table_agreement tr').on('click', function(e){
  69. getAgreementInfo(e.currentTarget.attributes.seq.value);
  70. $('#table_agreement tr').removeClass('active');
  71. $(this).addClass('active');
  72. });
  73. }
  74. if($('#table_agreement tr')[0]==undefined){
  75. $('#agreementDetail').css('display', 'none');
  76. $('#agreementDetailEmpty').css('display', 'block');
  77. }else{
  78. $('#table_agreement tr')[0].click();
  79. }
  80. };
  81. var error = function(xhr,d,t){
  82. console.log(xhr);
  83. console.log(t);
  84. };
  85. self.ajaxAdmin( opt, success, error );
  86. };
  87. var pageEvent = function(e) {
  88. var type = e.currentTarget.id.split('_')[0];
  89. var page = Number(e.currentTarget.id.split('_')[1]);
  90. if( type == 'page' ) {
  91. initAgreementList(page);
  92. $('#ulPagination li[id*="page_"]').removeClass('active');
  93. } else if ( type == 'next') {
  94. initAgreementList(page);
  95. setPageList(page);
  96. } else if ( type == 'previous' ) {
  97. initAgreementList(page);
  98. setPageList(page - 9);
  99. }
  100. if($('#page_'+page)!=null) $('#page_'+page).addClass('active');
  101. };
  102. var setPageList = function(start) {
  103. $('#ulPagination').empty();
  104. var end = start + 9;
  105. if( Math.ceil(totalCount/pageSize) < end ) {
  106. end = Math.ceil(totalCount/pageSize);
  107. }
  108. if( start > 10 ) {
  109. $('#ulPagination').append('<li id="previous_'+(start - 1)+'"><a href="#"><<</a></li>');
  110. }
  111. for( var i = start; i <= end; i++ ) {
  112. $('#ulPagination').append('<li id="page_'+i+'"><a href="#">'+i+'</a></li>');
  113. }
  114. if( end < Math.ceil(totalCount/pageSize) ) {
  115. $('#ulPagination').append('<li id="next_'+(end + 1)+'"><a href="#">>></a></li>');
  116. }
  117. $('#ulPagination li').unbind();
  118. $('#ulPagination li').click(function(e) {pageEvent(e);});
  119. };
  120. var getAgreementInfo = function(seq){
  121. var agreementInfo = agreementList[seq];
  122. $('#txtSeq').val(seq);
  123. $('#txtAgreementOrder').val(agreementInfo.agreementOrder);
  124. $('#txtAgreementId').val(agreementInfo.agreementId);
  125. $('#txtAgreementName').val(agreementInfo.agreementName);
  126. $('#txtAgreementCl').val(agreementInfo.agreementCl);
  127. $(':radio[name="requiredYn"][value="'+agreementInfo.requiredYn+'"]').prop('checked', true);
  128. $(':radio[name="enabledYn"][value="'+agreementInfo.enabledYn+'"]').prop('checked', true);
  129. $('#sltTypeName').val(agreementInfo.typeName);
  130. changeSaveType('edit');
  131. $('#agreementDetail').css('display', 'block');
  132. $('#agreementDetailEmpty').css('display', 'none');
  133. };
  134. var changeSaveType = function(type){
  135. if(type=='edit'){
  136. saveType = 'edit';
  137. $('#txtAgreementId').prop('readonly', true);
  138. }else{
  139. saveType = 'new';
  140. $('#txtAgreementId').removeAttr('readonly');
  141. }
  142. };
  143. var newAgreement = function(){
  144. changeSaveType('new');
  145. $('#txtSeq').val('');
  146. $('#txtAgreementOrder').val('');
  147. $('#txtAgreementId').val('');
  148. $('#txtAgreementName').val('');
  149. $('#txtAgreementCl').val('');
  150. $(':radio[name="requiredYn"][value="Y"]').prop('checked', true);
  151. $(':radio[name="enabledYn"][value="Y"]').prop('checked', true);
  152. $('#sltTypeName').val('ALL');
  153. $('#agreementDetail').css('display', 'block');
  154. $('#agreementDetailEmpty').css('display', 'none');
  155. $('#txtAgreementId').focus();
  156. };
  157. /* var removeAgreement = function(){
  158. var opt = {
  159. url: $crudServiceBaseUrl + "/remove.json",
  160. method: "post",
  161. dataType: "json",
  162. contentType: "application/json",
  163. data: self.util.stringifyJson(agreementList[$('#txtSeq').val()])
  164. };
  165. var success = function(result){
  166. alert("삭제되었습니다.");
  167. initAgreementList(Number($('#ulPagination li.active')[0].id.split('_')[1]));
  168. newAgreement();
  169. };
  170. var error = function(xhr,d,t){
  171. console.log(xhr);
  172. console.log(t);
  173. };
  174. self.ajaxAdmin( opt, success, error );
  175. };
  176. */
  177. var saveAgreement = function(){
  178. var saveUrl = '';
  179. if($('#txtAgreementId').val()==''){
  180. alert('아이디를 입력해주세요.');
  181. return;
  182. };
  183. if($('#txtAgreementName').val()==''){
  184. alert('이름을 입력해주세요.');
  185. return;
  186. };
  187. if($('#txtAgreementOrder').val()==''){
  188. alert('순서를 입력해주세요.');
  189. return;
  190. };
  191. if($('#txtAgreementCl').val()==''){
  192. alert('내용을 입력해주세요.');
  193. return;
  194. };
  195. if(saveType=='edit'){
  196. saveUrl = $crudServiceBaseUrl + "/addVersion.json"
  197. var param = agreementList[$('#txtSeq').val()];
  198. param.agreementOrder = $('#txtAgreementOrder').val();
  199. param.agreementId = $('#txtAgreementId').val();
  200. param.agreementName = $('#txtAgreementName').val();
  201. param.agreementCl = $('#txtAgreementCl').val();
  202. param.requiredYn = $(':radio[name="requiredYn"]:checked').val();
  203. param.enabledYn = $(':radio[name="enabledYn"]:checked').val();
  204. param.typeName = $('#sltTypeName').val();
  205. }else{
  206. for(var i=0; i<agreementList.length; i++){
  207. if(agreementList[i].agreementId == $('#txtAgreementId').val()){
  208. alert('동일한 아이디가 존재합니다.');
  209. $('#txtAgreementId').focus();
  210. return false;
  211. }
  212. };
  213. saveUrl = $crudServiceBaseUrl + "/save.json"
  214. var param = {
  215. agreementSeq: null,
  216. agreementOrder: $('#txtAgreementOrder').val(),
  217. agreementId: $('#txtAgreementId').val(),
  218. versionNumber: 1,
  219. agreementName: $('#txtAgreementName').val(),
  220. agreementCl: $('#txtAgreementCl').val(),
  221. requiredYn: $(':radio[name="requiredYn"]:checked').val(),
  222. enabledYn: $(':radio[name="enabledYn"]:checked').val(),
  223. typeName: $('#sltTypeName').val()
  224. }
  225. };
  226. var opt = {
  227. url: saveUrl,
  228. method: "post",
  229. dataType: "json",
  230. contentType: "application/json",
  231. data: self.util.stringifyJson(param)
  232. };
  233. var success = function(result){
  234. alert("저장되었습니다.");
  235. initAgreementList(Number($('#ulPagination li.active')[0].id.split('_')[1]));
  236. $('#agreementDetail').css('display', 'none');
  237. $('#agreementDetailEmpty').css('display', 'block');
  238. };
  239. var error = function(xhr,d,t){
  240. console.log(xhr);
  241. console.log(t);
  242. };
  243. self.ajaxAdmin( opt, success, error );
  244. };
  245. };