config_data.js 4.0 KB

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