d12b8a886ce4f8a8cff87521af21bc9b6698a7a0.svn-base 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. BemsWebApplication.AlarmAdmin = function (params, viewInfo) {
  2. "use strict";
  3. var CmAlarmAdminDataSource = BemsWebApplication.db.createDataSource('CmAlarmAdmin'),
  4. isEmptyData = true;
  5. var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmAlarmAdmin', {
  6. dataSourceOptions: {
  7. select: [
  8. 'SiteId',
  9. 'UserCode',
  10. 'DeptCode',
  11. 'PhoneNo',
  12. 'EmailAddress',
  13. //'EmailPassword',
  14. ],
  15. filter: [
  16. ['SiteId', '=', BWA.UserInfo.SiteId()]
  17. ],
  18. extendOptions: {
  19. forceOriginalField: true
  20. },
  21. },
  22. columns: [
  23. { dataField: 'SiteId', caption: '번호', width: '5%', alignment: 'center', sortOder: 'desc' },
  24. { dataField: 'UserCode', caption: '사용자 ID', width: '25%', alignment: 'center' },
  25. { dataField: 'DeptCode', caption: 'API키', width: '25%', alignment: 'center' },
  26. { dataField: 'PhoneNo', caption: '전화번호', width: '20%', alignment: 'center' },
  27. { dataField: 'EmailAddress', caption: '이메일 주소', width: '25%', alignment: 'center' },
  28. // { dataField: 'EmailPassword', caption: '이메일 암호', width: '20%', alignment: 'center' },
  29. ],
  30. popupWidth: 500,
  31. NoSearchView: true, // 2019.07.25 kgpark 검색버튼 삭제
  32. handleViewShowing: function () {
  33. CmAlarmAdminDataSource.filter([
  34. ["SiteId", "=", BWA.UserInfo.SiteId()]
  35. ]);
  36. CmAlarmAdminDataSource.load().done(function (CmAlarmAdmin) {
  37. if (CmAlarmAdmin.length == 0) {
  38. isEmptyData = true;
  39. $("#popupInsertButton").dxCommand("instance").option('disabled', false);
  40. }
  41. else {
  42. isEmptyData = false;
  43. $("#popupInsertButton").dxCommand("instance").option('disabled', true);
  44. }
  45. });
  46. },
  47. handleBeforeDelete: function () {
  48. isEmptyData = true;
  49. $("#popupInsertButton").dxCommand("instance").option('disabled', false);
  50. },
  51. // 열을 클릭했을 때 실행되는 함수
  52. handleDataGridRowClick: function () {
  53. viewModel.popupVisible(true);
  54. },
  55. // 팝업 항목에 데이터가 정상적으로 입력되지 않을 경우 예외처리
  56. beforeInsertingDataViewModel: function (dataModel, dbModelId) {
  57. var dfd = $.Deferred();
  58. if (dataModel.UserCode() == null || dataModel.DeptCode() == null || dataModel.PhoneNo() == null ||
  59. dataModel.EmailAddress() == null || dataModel.EmailPassword() == null) {
  60. return dfd.resolve(false, '필수 항목이 입력되지 않았습니다!');
  61. }
  62. else {
  63. var email_length = dataModel.EmailAddress().length;
  64. var email_check = dataModel.EmailAddress().lastIndexOf("@gmail.com");
  65. var dash_count = (dataModel.PhoneNo().match(/-/g) || []).length;
  66. if (dash_count != 2) {
  67. return dfd.resolve(false, '전화번호에 - 가 제대로 포함되지 않았습니다!');
  68. }
  69. if (email_check == -1 || email_length - email_check != 10) {
  70. return dfd.resolve(false, '메일 계정이 올바르게 입력되지 않았습니다! (구글 계정만 입력 가능)');
  71. }
  72. isEmptyData = ko.observable(false);
  73. $("#popupInsertButton").dxCommand("instance").option('disabled', true);
  74. return dfd.resolve(true);
  75. }
  76. },
  77. beforeUpdateDataViewModel: function (dataModel) {
  78. if (_.isEmpty(viewModel.dataModel.UserCode()) || _.isEmpty(viewModel.dataModel.DeptCode()) || _.isEmpty(viewModel.dataModel.PhoneNo()) ||
  79. _.isEmpty(viewModel.dataModel.EmailAddress()) || _.isEmpty(viewModel.dataModel.EmailPassword())) {
  80. utils.toast.show('필수 항목이 입력되지 않았습니다.', 'error');
  81. return 0;
  82. }
  83. else {
  84. var email_length = dataModel.EmailAddress().length;
  85. var email_check = dataModel.EmailAddress().lastIndexOf("@gmail.com");
  86. var dash_count = (dataModel.PhoneNo().match(/-/g) || []).length;
  87. if (dash_count != 2) {
  88. utils.toast.show('전화번호에 - 가 제대로 포함되지 않았습니다', 'error');
  89. return 0;
  90. }
  91. if (email_check == -1 || email_length - email_check != 10) {
  92. utils.toast.show('메일 계정이 올바르게 입력되지 않았습니다. (구글 계정만 입력 가능)', 'error');
  93. return 0;
  94. }
  95. return 2; // 2016 01 19 BaseClass 에서 update한다.
  96. }
  97. },
  98. // 팝업 항목에 데이터가 정상적으로 들어가지 않을 경우 예외처리
  99. });
  100. function InsertButtonClickAction() {
  101. if (!isEmptyData) {
  102. utils.toast.show('관리자 계정은 하나만 생성할 수 있습니다.', 'error');
  103. }
  104. else {
  105. viewModel.popupInsertView();
  106. }
  107. }
  108. viewModel.popupInsertButtonOptions = {
  109. icon: 'add',
  110. id: 'create',
  111. title: '등록',
  112. action: InsertButtonClickAction,
  113. disabled: !isEmptyData
  114. };
  115. return viewModel;
  116. };