version.js 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. /**
  2. * admin/vers
  3. */
  4. var mplus_admin_version = function(){
  5. //상속
  6. mplus_admin.call(this);
  7. var self = this;
  8. //변수
  9. var $crudServiceBaseUrl = contextPath + "/admin/version";
  10. /**
  11. * 초기화
  12. */
  13. this.init = function(){
  14. initAppVersionList(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. newAppVersion();
  25. });
  26. $('#btnRemove').on('click', function(){
  27. removeAppVersion();
  28. });
  29. $('#btnSave').on('click', function(){
  30. saveAppVersion();
  31. });
  32. };
  33. var appVersionList = [];
  34. var saveType = '';
  35. var totalCount = '';
  36. var pageSize = 15;
  37. /**
  38. * 그리드 초기화
  39. */
  40. var initAppVersionList = function(page){
  41. var opt = {
  42. url: $crudServiceBaseUrl + "/getAllVersionList.json",
  43. type: "post",
  44. async: false,
  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. appVersionList = result.data;
  54. totalCount = result.totalCount;
  55. $('#table_appVersion').empty();
  56. for(var i=0; i<appVersionList.length; i++){
  57. var tr = $('<tr></tr>').clone().attr('seq', i).attr('appName', appVersionList[i].appName).attr('platformType', appVersionList[i].platformType).attr('certType', appVersionList[i].certType);
  58. var tdAppName = $('<td></td>').clone().text(appVersionList[i].appName);
  59. var tdPlatformType = $('<td></td>').clone().text(appVersionList[i].platformType=='I'? 'iOS': appVersionList[i].platformType=='A'?'Android': appVersionList[i].platformType);
  60. var tdCertType = $('<td></td>').clone().text(appVersionList[i].certType);
  61. var tdVersionOrder = $('<td></td>').clone().text(appVersionList[i].versionOrder);
  62. /*var tdMarketUrl = $('<td></td>').clone().text(appVersionList[i].marketUrl);*/
  63. $('#table_appVersion').append(tr.append(tdAppName).append(tdPlatformType).append(tdCertType).append(tdVersionOrder));
  64. $('#table_appVersion tr').on('click', function(e){
  65. getAppVersionInfo(e.currentTarget.attributes.seq.value);
  66. $('#table_appVersion tr').removeClass('active');
  67. $(this).addClass('active');
  68. });
  69. }
  70. if($('#table_appVersion tr')[0]==undefined){
  71. $('#versionDetail').css('display', 'none');
  72. $('#versionDetailEmpty').css('display', 'block');
  73. }else{
  74. $('#table_appVersion tr')[0].click();
  75. }
  76. };
  77. var error = function(xhr,d,t){
  78. console.log(xhr);
  79. console.log(t);
  80. };
  81. self.ajaxAdmin( opt, success, error );
  82. };
  83. var pageEvent = function(e) {
  84. var type = e.currentTarget.id.split('_')[0];
  85. var page = Number(e.currentTarget.id.split('_')[1]);
  86. if( type == 'page' ) {
  87. initAppVersionList(page);
  88. $('#ulPagination li[id*="page_"]').removeClass('active');
  89. } else if ( type == 'next') {
  90. initAppVersionList(page);
  91. setPageList(page);
  92. } else if ( type == 'previous' ) {
  93. initAppVersionList(page);
  94. setPageList(page - 9);
  95. }
  96. if($('#page_'+page)!=null) $('#page_'+page).addClass('active');
  97. };
  98. var setPageList = function(start) {
  99. $('#ulPagination').empty();
  100. var end = start + 9;
  101. if( Math.ceil(totalCount/pageSize) < end ) {
  102. end = Math.ceil(totalCount/pageSize);
  103. }
  104. if( start > 10 ) {
  105. $('#ulPagination').append('<li id="previous_'+(start - 1)+'"><a href="#"><<</a></li>');
  106. }
  107. for( var i = start; i <= end; i++ ) {
  108. $('#ulPagination').append('<li id="page_'+i+'"><a href="#">'+i+'</a></li>');
  109. }
  110. if( end < Math.ceil(totalCount/pageSize) ) {
  111. $('#ulPagination').append('<li id="next_'+(end + 1)+'"><a href="#">>></a></li>');
  112. }
  113. $('#ulPagination li').unbind();
  114. $('#ulPagination li').click(function(e) {pageEvent(e);});
  115. };
  116. var getAppVersionInfo = function(seq){
  117. var versionInfo = appVersionList[seq];
  118. $('#versionDetail').css('display', 'block');
  119. $('#versionDetailEmpty').css('display', 'none');
  120. $('#sltPlatform').val(versionInfo.platformType);
  121. $('#sltCertType').val(versionInfo.certType);
  122. $('#txtAppName').val(versionInfo.appName);
  123. $('#txtVersionOrder').val(versionInfo.versionOrder);
  124. $('#txtMarketUrl').val(versionInfo.marketUrl);
  125. changeSaveType('edit');
  126. };
  127. var changeSaveType = function(type){
  128. if(type=='edit'){
  129. saveType = 'edit';
  130. $('#sltPlatform').prop('disabled', true);
  131. $('#sltCertType').prop('disabled', true);
  132. $('#txtAppName').prop('readonly', true);
  133. }else{
  134. saveType = 'new';
  135. $('#sltPlatform').removeAttr('disabled');
  136. $('#sltCertType').removeAttr('disabled');
  137. $('#txtAppName').removeAttr('readonly');
  138. }
  139. };
  140. var newAppVersion = function(){
  141. changeSaveType('new');
  142. $('#sltPlatform').val('');
  143. $('#sltCertType').val('');
  144. $('#txtAppName').val('');
  145. $('#txtVersionOrder').val('');
  146. $('#txtMarketUrl').val('');
  147. $('#table_appVersion tr').removeClass('active');
  148. $('#versionDetail').css('display', 'block');
  149. $('#versionDetailEmpty').css('display', 'none');
  150. $('#txtAppName').focus();
  151. };
  152. var removeAppVersion = function(){
  153. if($('#table_appVersion tr.active').length==0){
  154. alert('삭제할 버전을 선택해주세요.');
  155. return;
  156. };
  157. if(confirm('해당 앱버전을 삭제하시곘습니까?')){
  158. var opt = {
  159. url: $crudServiceBaseUrl + "/removeVersion.json",
  160. method: "post",
  161. dataType: "json",
  162. contentType: "application/json",
  163. data: self.util.stringifyJson({
  164. platformType: $('#sltPlatform').val(),
  165. certType: $('#sltCertType').val(),
  166. appName: $('#txtAppName').val(),
  167. versionOrder: $('#txtVersionOrder').val(),
  168. marketUrl: $('#txtMarketUrl').val()
  169. })
  170. };
  171. var success = function(result){
  172. alert("삭제되었습니다.");
  173. if(appVersionList.length==1){
  174. initAppVersionList(Number($('#ulPagination li.active')[0].id.split('_')[1])-1);
  175. }else{
  176. initAppVersionList(Number($('#ulPagination li.active')[0].id.split('_')[1]));
  177. };
  178. };
  179. var error = function(xhr,d,t){
  180. console.log(xhr);
  181. console.log(t);
  182. };
  183. self.ajaxAdmin( opt, success, error );
  184. };
  185. };
  186. var saveAppVersion = function(){
  187. var ajaxUrl = '';
  188. if($('#txtAppName').val()==''){
  189. alert('이름을 입력해주세요.');
  190. return;
  191. };
  192. if($('#sltPlatform').val()==''){
  193. alert('타입을 선택해주세요.');
  194. return;
  195. };
  196. if($('#sltCertType').val()==''){
  197. alert('인증서를 선택해주세요.');
  198. return;
  199. };
  200. if($('#txtVersionOrder').val()==''){
  201. alert('버전을 입력해주세요.');
  202. return;
  203. };
  204. if($('#txtMarketUrl').val()==''){
  205. alert('마켓주소를 입력해주세요.');
  206. return;
  207. };
  208. if(saveType=='edit'){
  209. ajaxUrl = $crudServiceBaseUrl + "/updateVersion.json";
  210. }else{
  211. ajaxUrl = $crudServiceBaseUrl + "/insertVersion.json";
  212. for(var i=0; i<appVersionList.length; i++){
  213. if(appVersionList[i].platformType == $('#sltPlatform').val()
  214. && appVersionList[i].certType == $('#sltCertType').val()
  215. && appVersionList[i].appName == $('#txtAppName').val()){
  216. alert('타입, 인증서, 이름은 동일하게 지정할 수 없습니다.');
  217. return false;
  218. }
  219. };
  220. };
  221. var opt = {
  222. url: ajaxUrl,
  223. method: "post",
  224. dataType: "json",
  225. contentType: "application/json",
  226. data: self.util.stringifyJson({
  227. platformType: $('#sltPlatform').val(),
  228. certType: $('#sltCertType').val(),
  229. appName: $('#txtAppName').val(),
  230. versionOrder: $('#txtVersionOrder').val(),
  231. marketUrl: $('#txtMarketUrl').val()
  232. })
  233. };
  234. var success = function(result){
  235. alert("저장되었습니다.");
  236. initAppVersionList(Number($('#ulPagination li.active')[0].id.split('_')[1]));
  237. };
  238. var error = function(xhr,d,t){
  239. console.log(xhr);
  240. console.log(t);
  241. };
  242. self.ajaxAdmin( opt, success, error );
  243. }
  244. };