ba3b6e22e951e47a71a43699409b4a1b950d5e17.svn-base 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. 
  2. $SeniorSearchPopup = function( viewModel, selectSeniorData ) {
  3. var dataViewModel = new BemsWebApplication.FmsBusinessSeniorViewModel(),
  4. gridView,
  5. popupVisible = ko.observable(false),
  6. dataSource;
  7. var seniorFactory = BemsWebApplication.Factory.Senior;
  8. dataSource = new DevExpress.data.DataSource( {
  9. select: seniorFactory.dataSourceOptions.select,
  10. expand: seniorFactory.dataSourceOptions.expand,
  11. store: BemsWebApplication.db.FmsBusinessSenior,
  12. map: function( item ) {
  13. return BemsWebApplication.db.createViewModel( item );
  14. }
  15. } );
  16. var dataGridOptions = utils.datagrid.defaultOptions( $.extend( {
  17. dxDataSource: dataSource,
  18. selectedSourceItem: dataViewModel,
  19. datagridId: 'gridSeniorContainer',
  20. dbId: 'FmsBusinessSenior',
  21. handleDataGridRowClick: function( id, dataGrid, clickRow ) {
  22. var data = clickRow.data;
  23. selectSeniorData( {
  24. SiteId: data.SiteId(),
  25. SeniorId: data.SeniorId(),
  26. SeniorItemUserName: data.CmUser_Name(),
  27. SeniorItemName: data.FmsBusinessSeniorItem_Name(),
  28. SeniorItemPeopleCount: data.FmsBusinessSeniorItem_PeopleCount()
  29. } );
  30. popupVisible( false );
  31. },
  32. searchPanelPlaceHolder: '선임이름 검색',
  33. }, seniorFactory ) );
  34. function handlePopupShowing( e ) {
  35. }
  36. function handlePopupShown()
  37. {
  38. gridView = $('#gridSeniorForSearchContainer').dxDataGrid('instance');
  39. gridView.columnOption( 0, 'visible', false );
  40. gridView.columnOption( 1, 'width', '30%' );
  41. gridView.columnOption( 2, 'width', '30%' );
  42. gridView.columnOption( 3, 'width', '20%' );
  43. gridView.columnOption( 4, 'width', '20%' );
  44. gridView.columnOption( 5, 'visible', false );
  45. }
  46. function handlePopupButtonClose() {
  47. popupVisible( false );
  48. }
  49. var toolbarItems = [
  50. { location: 'before', text: '찾기' },
  51. { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handlePopupButtonClose } }
  52. ];
  53. var popupOptions = {
  54. width: '600px',
  55. height: 'auto',
  56. visible: popupVisible,
  57. shading: false,
  58. closeOnOutsideClick: true,
  59. showingAction: handlePopupShowing,
  60. shownAction: handlePopupShown,
  61. animation: {
  62. show: { type: "pop", duration: 150 , from: { opacity: 1, scale: 0.4 }, to: { scale: 1 } },
  63. hide: { type: "fade", duration: 150, from: 1, to: 0 }
  64. }
  65. };
  66. return {
  67. dataModel: dataViewModel,
  68. dataSource: dataSource,
  69. popupOptions: popupOptions,
  70. toolbarItems: toolbarItems,
  71. dataGridOptions: dataGridOptions,
  72. show: function() {
  73. popupVisible( true );
  74. }
  75. };
  76. }