StaffPicker = function( options ) { } StaffPicker.prototype.constructor = StaffPicker; StaffPicker.prototype.show = function( options ) { let popup = null; let addButton = null; let availableStaffDataGrid = $("
").dxDataGrid( { dataSource : Fse.Data.newDataSource( { object : "FSPRO.members", objectParams : { staffMembersOnly : true, loginEnabledOnly : true }, paginate : false }), selection : { allowSelectAll : false, mode : "multiple", showCheckBoxesMode : "always" }, scrolling : { mode : "virtual" }, height : 225, showBorders : true, columns : [ { dataField : "firstName", caption : "First Name" }, { dataField : "lastName", caption : "Last Name" }, { dataField : "email", caption : "Email Address" }, { dataField : "title", caption : "Title" } ], onSelectionChanged : function( e ) { if( e.selectedRowsData.length ) { addButton.option( "disabled", false ); } else { addButton.option( "disabled", true ); } } }).dxDataGrid( "instance" ); addButton = $("
").dxButton( { text : "Add Selected", type : "default", disabled : true, onClick : function( be ) { let selectedItems = null; if( options.onStaffPicked ) { options.onStaffPicked( availableStaffDataGrid.getSelectedRowsData() ); } popup.hide(); } }).dxButton( "instance" ); popup = $("
").dxPopup( { title : "Select Staff", height : 450, width : 1000, contentTemplate : function( ) { let content = $("
"); content.append( availableStaffDataGrid.element() ) return content; }, onHidden : function( he ) { he.component.element().remove(); he.component.dispose(); addButton.dispose(); availableStaffDataGrid.dispose(); }, toolbarItems : [ { toolbar : "bottom", location : "after", template : function() { return addButton.element() }} ] }).appendTo( $("body" )).dxPopup( "instance" ); popup.show(); }