2130f50a4d06e313cf5f41d885162fa1d2f481c0.svn-base 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. $(function() {
  2. BemsWebApplication.Factory.Senior = {
  3. dataSourceOptions: {
  4. select: [ 'SiteId', 'SeniorId', 'SeniorItemId', 'FmsBusinessSeniorItem/Name', 'FmsBusinessSeniorItem/PeopleCount','CmUser/Name', 'StartDate', 'EndDate', 'IsUse' ],
  5. expand: [ 'FmsBusinessSeniorItem', 'CmUser' ]
  6. },
  7. columns: [
  8. { dataField: 'Number', caption: $G( 'number' ), width: '10%', alignment: 'center' },
  9. { dataField: 'FmsBusinessSeniorItem_Name', caption: $G( 'seniorItem' ), width: '30%', alignment: 'center', dataType: 'string' },
  10. { dataField: 'CmUser_Name', caption: $G( 'seniorTargetUser' ), width: '20%', alignment: 'center', dataType: 'string' },
  11. { dataField: 'StartDate', caption: $G( 'seniorStartDate' ), width: '15%', alignment: 'center' },
  12. { dataField: 'EndDate', caption: $G( 'seniorEndDate' ), width: '15%', alignment: 'center' },
  13. utils.datagrid.columnIsUse( '10%' )
  14. ],
  15. cellPrepared: function( cellElement, cellInfo ) {
  16. switch( cellInfo.column.dataField ) {
  17. case 'CmUser_Name':
  18. {
  19. var data = cellInfo.data;
  20. $(cellElement).text( '{0}({1})'.formati( data.CmUser_Name(), data.FmsBusinessSeniorItem_PeopleCount() ) );
  21. break;
  22. }
  23. }
  24. },
  25. };
  26. });
  27. BemsWebApplication.Senior = function( params, viewInfo ) {
  28. "use strict";
  29. var seniorItemDataSource = BemsWebApplication.db.createDataSource( 'FmsBusinessSeniorItem', true, true ),
  30. seniorItemsForSearch = ko.observableArray(),
  31. seniorItems = ko.observableArray();
  32. var selectedUserData = ko.observable();
  33. var deferredForSearch = new $.Deferred();
  34. var viewModel = BWA.DataGrid.createViewWithDataGrid( params, viewInfo, 'FmsBusinessSenior', $.extend( {
  35. promiseDataInSearchView: deferredForSearch.promise(),
  36. searchViewItems: [
  37. { id: 'SeniorItemId', ignoreValue: 0, defaultValue: 0, dataSource: seniorItemsForSearch },
  38. { id: 'StartDate', operator: '<=' },
  39. { id: 'EndDate', operator: '>=', withCheckId: 'StartDate' }
  40. ],
  41. popupWidth: 480,
  42. handleViewShowing: function() {
  43. seniorItemDataSource.load().done( function( result ) {
  44. seniorItems( result );
  45. seniorItemsForSearch( $SearchView.createArrayOfSelectBox( 'SeniorItemId' , seniorItems() ) );
  46. deferredForSearch.resolve();
  47. } );
  48. },
  49. handleViewShown: function( dataModel ) {
  50. dataModel.SeniorUserName = ko.observable();
  51. dataModel.SeniorItemName = ko.observable();
  52. },
  53. handleDataGridRowClick: function( id, dataGrid, clickRow, popupVisible ) {
  54. dataGrid.clearSelection();
  55. var data = clickRow.data;
  56. var dataModel = viewModel.dataModel;
  57. dataModel.SeniorItemName( data.FmsBusinessSeniorItem_Name() );
  58. dataModel.SeniorUserName( data.CmUser_Name() );
  59. popupVisible( true );
  60. }
  61. }, BemsWebApplication.Factory.Senior ) );
  62. selectedUserData.subscribe( function( value ) {
  63. viewModel.dataModel.SeniorUserId( value.UserId );
  64. viewModel.dataModel.SeniorUserName( value.Name );
  65. } );
  66. viewModel.buttonSearchSeniorUser = function( e ) {
  67. viewModel.userSearchPopup.show();
  68. }
  69. viewModel.userSearchPopup = $UserSearchPopup( viewModel, selectedUserData );
  70. viewModel.seniorItems = seniorItems;
  71. return viewModel;
  72. };