$(function() { BemsWebApplication.Factory.Senior = { dataSourceOptions: { select: [ 'SiteId', 'SeniorId', 'SeniorItemId', 'FmsBusinessSeniorItem/Name', 'FmsBusinessSeniorItem/PeopleCount','CmUser/Name', 'StartDate', 'EndDate', 'IsUse' ], expand: [ 'FmsBusinessSeniorItem', 'CmUser' ] }, columns: [ { dataField: 'Number', caption: $G( 'number' ), width: '10%', alignment: 'center' }, { dataField: 'FmsBusinessSeniorItem_Name', caption: $G( 'seniorItem' ), width: '30%', alignment: 'center', dataType: 'string' }, { dataField: 'CmUser_Name', caption: $G( 'seniorTargetUser' ), width: '20%', alignment: 'center', dataType: 'string' }, { dataField: 'StartDate', caption: $G( 'seniorStartDate' ), width: '15%', alignment: 'center' }, { dataField: 'EndDate', caption: $G( 'seniorEndDate' ), width: '15%', alignment: 'center' }, utils.datagrid.columnIsUse( '10%' ) ], cellPrepared: function( cellElement, cellInfo ) { switch( cellInfo.column.dataField ) { case 'CmUser_Name': { var data = cellInfo.data; $(cellElement).text( '{0}({1})'.formati( data.CmUser_Name(), data.FmsBusinessSeniorItem_PeopleCount() ) ); break; } } }, }; }); BemsWebApplication.Senior = function( params, viewInfo ) { "use strict"; var seniorItemDataSource = BemsWebApplication.db.createDataSource( 'FmsBusinessSeniorItem', true, true ), seniorItemsForSearch = ko.observableArray(), seniorItems = ko.observableArray(); var selectedUserData = ko.observable(); var deferredForSearch = new $.Deferred(); var viewModel = BWA.DataGrid.createViewWithDataGrid( params, viewInfo, 'FmsBusinessSenior', $.extend( { promiseDataInSearchView: deferredForSearch.promise(), searchViewItems: [ { id: 'SeniorItemId', ignoreValue: 0, defaultValue: 0, dataSource: seniorItemsForSearch }, { id: 'StartDate', operator: '<=' }, { id: 'EndDate', operator: '>=', withCheckId: 'StartDate' } ], popupWidth: 480, handleViewShowing: function() { seniorItemDataSource.load().done( function( result ) { seniorItems( result ); seniorItemsForSearch( $SearchView.createArrayOfSelectBox( 'SeniorItemId' , seniorItems() ) ); deferredForSearch.resolve(); } ); }, handleViewShown: function( dataModel ) { dataModel.SeniorUserName = ko.observable(); dataModel.SeniorItemName = ko.observable(); }, handleDataGridRowClick: function( id, dataGrid, clickRow, popupVisible ) { dataGrid.clearSelection(); var data = clickRow.data; var dataModel = viewModel.dataModel; dataModel.SeniorItemName( data.FmsBusinessSeniorItem_Name() ); dataModel.SeniorUserName( data.CmUser_Name() ); popupVisible( true ); } }, BemsWebApplication.Factory.Senior ) ); selectedUserData.subscribe( function( value ) { viewModel.dataModel.SeniorUserId( value.UserId ); viewModel.dataModel.SeniorUserName( value.Name ); } ); viewModel.buttonSearchSeniorUser = function( e ) { viewModel.userSearchPopup.show(); } viewModel.userSearchPopup = $UserSearchPopup( viewModel, selectedUserData ); viewModel.seniorItems = seniorItems; return viewModel; };