TradeTasks = function( options ) {
let instance = this;
//instance.payableData = $.extend( true, {}, options );
instance.partnerType = options.partnerType;
instance.partnerId = options.partnerId;
this.rootElement = null;
}
TradeTasks.prototype.constructor = TradeTasks;
TradeTasks.prototype.element = function() {
let instance = this;
if( instance.rootElement ) {
return instance.rootElement
}
instance.rootElement = $( '
' );
instance.createToolbar();
instance.createDataGrid();
instance.rootElement.append( instance.toolbar.element().css( { 'margin' : '5px', 'padding-right' : '10px' } ) );
instance.rootElement.append( instance.dataGrid.element() );
return instance.rootElement;
}
TradeTasks.prototype.createToolbar = function() {
let instance = this;
var sPortalDocRootURL = $("link#PortalDocRootURL").attr("href");
let taskDispositions = [
{ id: '?,A', text: 'Current' },
{ id: '?', text: 'To Do' },
{ id: 'A', text: 'In Progress' },
{ id: 'X', text: 'Complete' },
{ id: '?,A,X', text: 'All' },
]
instance.toolbar = $( '
' ).dxToolbar({
items:[
{
widget: 'dxSelectBox',
location: 'before',
options: {
width: 200,
items: taskDispositions,
displayExpr: 'text',
valueExpr: 'id',
value: taskDispositions[4].id,
onValueChanged: function( args ) {
let taskDataSource = Fse.Data.newDataSource(
{ object: 'TPM.TradeTasks', keyField: 'taskId', paginate: false, objectParams: { partnerId: instance.partnerId, partnerType: instance.partnerType, disposition: args.value } }
)
instance.dataGrid.option( 'dataSource', taskDataSource );
},
},
},
{
location : "after", widget : "dxButton", options : {
type : "normal",
icon :"help",
hint : "View Help",
onClick : function( e ) {
Fse.Portal.showQuickHelp( "PartnerTradeTasks" );
}
}
}
]
}).dxToolbar( 'instance' );
return instance.toolbar.element();
}
TradeTasks.prototype.createDataGrid = function() {
let instance = this;
if( instance.dataGrid ) {
instance.dataGrid.element().remove();
instance.dataGrid = null;
}
/*const taskDataSource = Fse.Data.createDataSource({
customStore: {
dataURL: $( '#appDataURL' ).attr( 'href' ),
object: 'TPM.TradeTasks',
objectParams: { partnerId: this.partnerId, partnerType: this.partnerType }
}
});*/
const taskDataSource = Fse.Data.newDataSource(
{ object: 'TPM.TradeTasks', keyField: 'taskId', paginate: false, objectParams: { partnerId: this.partnerId, partnerType: this.partnerType } }
)
instance.dataGrid = $( '
' ).dxDataGrid({
dataSource: taskDataSource,
showBorders: false,
allowColumnResizing: true,
filterRow : { visible : true },
headerFilter : { visible : true },
columns: [
{ dataField: 'taskDescription', caption: 'Task', width: '300',
cellTemplate: function( container, options ) {
var link = $( '
' ).text( options.data.taskDescription ).css( { 'display' : 'inline-block', 'cursor' : 'pointer' } ).on( 'click', function() {
Fse.WRK.editTask( options.data.taskId, options.data.taskTk );
} );
$( container ).append( link );
},
},
{ dataField: 'assignedToFullName', caption: 'Assigned To',
calculateFilterExpression: function( filterValue, selectedFilterOperation ) {
return [
["assignedToFullName", "contains", filterValue],
];
}
},
{ dataField: 'sendFrom', caption: 'Send From',
calculateFilterExpression: function( filterValue, selectedFilterOperation ) {
return [
["sendFrom", "contains", filterValue],
];
}
},
{ dataField: 'status', caption: 'Status',
cellTemplate: function( container, options ) {
let status = '';
if( options.data.disposition == '?' ) {
status = 'To Do';
} else if( options.data.disposition == 'A' ) {
status = 'In Progress';
} else if ( options.data.disposition == 'X' ) {
status = 'Complete';
} else {
status = options.data.disposition;
}
container.append( status );
},
calculateFilterExpression: function( filterValue, selectedFilterOperation ) {
return [
["status", "contains", filterValue],
];
}
},
{ dataField: 'requestTime', caption: 'First Sent', dataType: 'date' },
{ dataField: 'requestSent', caption: 'Last Sent', dataType: 'date' },
],
}).dxDataGrid( 'instance' );
return instance.dataGrid.element();
}