b4df6af9dcf2fe6bc0c191fe2cb98a4cd9180b7a.svn-base 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. BemsWebApplication.ConfigData = function (params, viewInfo) {
  2. "use strict";
  3. var BemsConfigDataDataSource = BemsWebApplication.db.createDataSource('BemsConfigData'),
  4. isEmptyData = true;
  5. var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'BemsConfigData', {
  6. dataSourceOptions: {
  7. select: [
  8. 'SiteId',
  9. 'LoadDBIP',
  10. 'TargetDBIP',
  11. 'InitialDate',
  12. //'EmailPassword',
  13. ],
  14. filter: [
  15. ['SiteId', '=', BWA.UserInfo.SiteId()]
  16. ],
  17. extendOptions: {
  18. forceOriginalField: true
  19. },
  20. },
  21. columns: [
  22. { dataField: 'SiteId', caption: '번호', width: '5%', alignment: 'center', sortOder: 'desc' },
  23. { dataField: 'LoadDBIP', caption: '데이터 DB IP', width: '30%', alignment: 'center' },
  24. { dataField: 'TargetDBIP', caption: '결과 저장 DB IP', width: '30%', alignment: 'center' },
  25. { dataField: 'InitialDate', caption: '데이터 시작일', width: '30%', alignment: 'center' }
  26. ],
  27. popupWidth: 500,
  28. NoSearchView: true, // 2019.07.25 kgpark 검색버튼 삭제
  29. handleViewShowing: function () {
  30. BemsConfigDataDataSource.filter([
  31. ["SiteId", "=", BWA.UserInfo.SiteId()]
  32. ]);
  33. BemsConfigDataDataSource.load().done(function (BemsConfigData) {
  34. if (BemsConfigData.length == 0) {
  35. isEmptyData = true;
  36. $("#popupInsertButton").dxCommand("instance").option('disabled', false);
  37. }
  38. else {
  39. isEmptyData = false;
  40. $("#popupInsertButton").dxCommand("instance").option('disabled', true);
  41. }
  42. });
  43. },
  44. handleBeforeDelete: function () {
  45. isEmptyData = true;
  46. $("#popupInsertButton").dxCommand("instance").option('disabled', false);
  47. },
  48. // 열을 클릭했을 때 실행되는 함수
  49. handleDataGridRowClick: function () {
  50. viewModel.popupVisible(true);
  51. },
  52. // 팝업 항목에 데이터가 정상적으로 입력되지 않을 경우 예외처리
  53. beforeInsertingDataViewModel: function (dataModel, dbModelId) {
  54. var dfd = $.Deferred();
  55. if (dataModel.LoadDBIP() == null || dataModel.TargetDBIP() == null || dataModel.InitialDate() == null) {
  56. return dfd.resolve(false, '필수 항목이 입력되지 않았습니다!');
  57. }
  58. else {
  59. isEmptyData = ko.observable(false);
  60. $("#popupInsertButton").dxCommand("instance").option('disabled', true);
  61. return dfd.resolve(true);
  62. }
  63. },
  64. beforeUpdateDataViewModel: function (dataModel) {
  65. // if (_.isEmpty(dataModel.LoadDBIP()) || _.isEmpty(dataModel.TargetDBIP()) || _.isEmpty(dataModel.InitialDate())) {
  66. if (dataModel.LoadDBIP() == null || dataModel.TargetDBIP() == null || dataModel.InitialDate() == null) {
  67. utils.toast.show('필수 항목이 입력되지 않았습니다.', 'error');
  68. return 0;
  69. }
  70. else {
  71. return 2; // 2016 01 19 BaseClass 에서 update한다.
  72. }
  73. },
  74. // 팝업 항목에 데이터가 정상적으로 들어가지 않을 경우 예외처리
  75. });
  76. function InsertButtonClickAction() {
  77. if (!isEmptyData) {
  78. utils.toast.show('관리자 계정은 하나만 생성할 수 있습니다.', 'error');
  79. }
  80. else {
  81. viewModel.popupInsertView();
  82. }
  83. }
  84. viewModel.popupInsertButtonOptions = {
  85. icon: 'add',
  86. id: 'create',
  87. title: '등록',
  88. action: InsertButtonClickAction,
  89. disabled: !isEmptyData
  90. };
  91. return viewModel;
  92. };