207458c9962c91eff8af6e6ce96be0cb3e8201cc.svn-base 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. BemsWebApplication.SeniorItem = function( params, viewInfo ) {
  2. "use strict";
  3. var businessFieldDataSource = BemsWebApplication.db.createDataSource( 'CmBusinessField', true, true ),
  4. businessFields = ko.observableArray(),
  5. businessFieldsForSearch = ko.observableArray();
  6. var deferredForSearch = new $.Deferred();
  7. var selectedSeniorItemId;
  8. var viewModel = BWA.DataGrid.createViewWithDataGrid( params, viewInfo, 'FmsBusinessSeniorItem', {
  9. columns: [
  10. { dataField: 'Number', caption: $G( 'number' ), width: '15%', alignment: 'center' },
  11. { dataField: 'Name', caption: $G( 'seniorItemName' ), width: '55%', alignment: 'center', dataType: 'string' },
  12. { dataField: 'PeopleCount', caption: $G( 'seniorPeopleCount' ), width: '20%', alignment: 'center' },
  13. utils.datagrid.columnIsUse( '10%' )
  14. ],
  15. promiseDataInSearchView: deferredForSearch.promise(),
  16. searchViewItems: [
  17. { id: 'Name' } ,
  18. { id: 'Qualification' } ],
  19. handleViewShowing: function() {
  20. },
  21. handleViewShown: function() {
  22. },
  23. handleDataGridRowClick: function( id, dataGrid, clickRow, popupVisible ) {
  24. dataGrid.clearSelection();
  25. selectedSeniorItemId = clickRow.data.SeniorItemId();
  26. popupVisible( true );
  27. },
  28. handlePopupShown: function() {
  29. var targetLicenseDataGrid = $( '#gridTargetLicenseContainer' ).dxDataGrid( 'instance' );
  30. targetLicenseDataGrid.filter( [
  31. [ 'SiteId', '=', BWA.UserInfo.SiteId() ],
  32. 'and',
  33. [ 'SeniorItemId', '=', selectedSeniorItemId ]
  34. ] );
  35. },
  36. handleSaveButtonInPopup: function( isInsert ) {
  37. return BemsWebApplication.api.postWithDataGrid( 'FmsBusinessSeniorItemToLicense', 'gridLicenseContainer', {
  38. SiteId: BWA.UserInfo.SiteId(),
  39. SeniorItemId: selectedSeniorItemId,
  40. LicenseId: null
  41. } );
  42. },
  43. } );
  44. var targetLicenseDataSource = $DataSource( {
  45. dataSourceOptions: {
  46. store: BemsWebApplication.db.FmsBusinessSeniorItemToLicense,
  47. select: [ 'SiteId' , 'LicenseId' , 'FmsBusinessLicense/Name' , 'FmsBusinessLicense/IssuingOffice', 'FmsBusinessLicense/EducationalInstitute' ],
  48. expand: [ "FmsBusinessLicense" ]
  49. }
  50. } );
  51. var licenseDataSource = $DataSource( {
  52. dataSourceOptions: {
  53. store: BemsWebApplication.db.FmsBusinessLicense,
  54. select: [ 'SiteId' , 'LicenseId' , 'CmBusinessField/Name' , 'Name' , 'IssuingOffice', 'EducationalInstitute' ],
  55. expand: [ "CmBusinessField" ]
  56. }
  57. } );
  58. var licenseFactory = {
  59. dataSourceOptions: targetLicenseDataSource,
  60. columns: [
  61. { dataField: 'CmBusinessField_Name', caption: $G( 'businessFieldName' ), width: '15%', alignment: 'center' },
  62. { dataField: 'Name', caption: $G( 'licenseName' ), width: '25%', alignment: 'center' },
  63. { dataField: 'IssuingOffice', caption: $G( 'issuingOffice' ), width: '25%', alignment: 'center' },
  64. { dataField: 'EducationalInstitute', caption: $G( 'educationalInstitute' ), width: '15%', alignment: 'center' }
  65. ],
  66. height:320
  67. };
  68. var targetLicenseFactory = {
  69. dataSourceOptions: targetLicenseDataSource,
  70. columns: [
  71. { dataField: 'FmsBusinessLicense_Name', caption: $G( 'licenseName' ), width: '40%', alignment: 'center' },
  72. { dataField: 'FmsBusinessLicense_IssuingOffice', caption: $G( 'issuingOffice' ), width: '30%', alignment: 'center' },
  73. { dataField: 'FmsBusinessLicense_EducationalInstitute', caption: $G( 'educationalInstitute' ), width: '30%', alignment: 'center' }
  74. ],
  75. height:320
  76. };
  77. viewModel.tabsItems = [
  78. { text: '기본 정보' },
  79. { text: '필요 자격' }
  80. ];
  81. viewModel.isNewInPopup.subscribe( function( value ) {
  82. if( value ) {
  83. var licenseDataGrid = $( '#gridLicenseContainer' ).dxDataGrid( 'instance' );
  84. if( licenseDataGrid !== undefined ) licenseDataGrid.clearSelection();
  85. }
  86. } );
  87. viewModel.isEditModeInPopup.subscribe( function( value ) {
  88. var licenseDataGrid = $( '#gridLicenseContainer' ).dxDataGrid( 'instance' );
  89. var targetLicenseDataGrid = $( '#gridTargetLicenseContainer' ).dxDataGrid( 'instance' );
  90. if( licenseDataGrid !== undefined && value ) {
  91. licenseDataGrid.clearSelection();
  92. var items = targetLicenseDataGrid._controllers.data._dataSource._items;
  93. var keys = [];
  94. $.each( items, function( i, item ) {
  95. keys.push( {
  96. LicenseId: item.LicenseId(),
  97. SiteId: item.SiteId()
  98. });
  99. } );
  100. licenseDataGrid.selectRows( keys );
  101. }
  102. else {
  103. }
  104. } );
  105. viewModel.currentTabIndex = ko.observable( 0 );
  106. var dataModel = viewModel.dataModel;
  107. viewModel.multiViewItems = [
  108. {
  109. dataModel: dataModel,
  110. viewModel: viewModel,
  111. template: 'generalInfo'
  112. },
  113. {
  114. dataModel: dataModel,
  115. viewModel: viewModel,
  116. licenseFactory: utils.datagrid.defaultOptions( $.extend( licenseFactory, {
  117. visible: viewModel.isEditModeInPopup,
  118. dxDataSource: licenseDataSource,
  119. selection: { mode: 'multiple', allowSelectAll: true }
  120. } ) ),
  121. targetLicenseFactory: utils.datagrid.defaultOptions( $.extend( targetLicenseFactory, {
  122. visible: viewModel.isViewModeInPopup,
  123. dxDataSource: targetLicenseDataSource,
  124. contentReadyAction: function( e ) {
  125. console.log( e.model );
  126. }
  127. } ) ),
  128. template: 'targetLicense'
  129. }
  130. ];
  131. return viewModel;
  132. };