").addClass( "WorkflowFormSubmissions" );
}
WorkflowFormSubmissions.prototype.constructor = WorkflowFormSubmissions;
WorkflowFormSubmissions.prototype.element = function() {
let instance = this;
let submissionDataSource = Fse.Data.newDataSource( { object : "WRK.formSubmissions", keyField : "formId", paginate : false });
submissionDataSource.filter( [ "formId", "=", instance.formId ]);
instance.formSubmissions = $("
").dxDataGrid({
dataSource : submissionDataSource,
showBorders : true,
rowAlternationEnabled : true,
scrolling : { mode : "virtual" },
editing : {
allowUpdating : true,
mode : "batch",
selectTextOnEditStart : true
},
columns: [
{ dataField : "submissionTime", dataType: "date", caption : "Submission Time", format : "shortDateShortTime", width : 150 },
{ name : "lastNameFirstName", dataType: "text",
calculateDisplayValue: function (rowData) {
return rowData.lastName + ", " + rowData.firstName;
}, caption : "Name"
},
/* { dataField : "submissionStatus", dataType: "text", caption : "Status" } , */
{ width : 60, type : "buttons", buttons : [{
type : "normal",
icon :"trash",
hint : "Delete submission...",
onClick : function( e ) {
instance.deleteSubmission( e.row.data ).done( function(){
instance.formSubmissions.refresh();
});
},
},{
type : "normal",
icon :"showpanel",
hint : "View submission...",
onClick : function( e ) {
instance.submissionDetails( e.row.data );
}
},
]}
],
}).dxDataGrid( "instance" )
return instance.formSubmissions.element();
return this.rootElement;
}
WorkflowFormSubmissions.viewDetails = function( data ) {
let formId = data.formId;
let submissionId = data.submissionId;
let submissionDetails = $("
").dxPopup( {
title: "Submission Summary",
hideOnOutsideClick: true,
height: "auto",
width: "600",
contentTemplate : function() {
const submissionDetails = $('
').addClass('form');
// Submission Detail
$("
").css({"background-color":"lightgrey", "padding":"5px", "font-size" : "18px" } ).text("Submission Detail").appendTo(submissionDetails);;
$("").css({"padding":"5px 10px"}).appendTo(submissionDetails);
$("
").css({"padding":"10px"}).text("Date & Time: ").appendTo(submissionDetails);
$("").css({"padding-left":"10px"}).text(data.submissionTime).appendTo(submissionDetails);
$("
").css({"padding":"5px 10px"}).appendTo(submissionDetails);
$("
").css({"padding":"10px"}).text("Submitted By: ").appendTo(submissionDetails);
$("").css({"padding-left":"10px"}).text(data.firstName + " " + data.lastName).appendTo(submissionDetails);
$("
").css({"padding-left":"10px"}).text(data.email).appendTo(submissionDetails);
$("
").css({"padding":"5px 10px"}).appendTo(submissionDetails);
$("
").css({"padding":"10px"}).text("Status: ").appendTo(submissionDetails);
$("").css({"padding-left":"10px"}).text(data.submissionStatus).appendTo(submissionDetails);
// Field Data
$("
").css({"padding":"5px 10px"}).appendTo(submissionDetails);
$("
").css({"background-color":"lightgrey", "padding":"5px", "font-size" : "18px" } ).text("Submission Data").appendTo(submissionDetails);
$("").css( { "margin-top": "5px" } ).dxDataGrid( {
dataSource : Fse.Data.newDataSource( { object : "WRK.formSubmission", paginate : false, keyField : "fieldId", objectParams : { formId : formId, submissionId : submissionId }}),
showBorders : true,
scrolling : { mode : "virtual" },
rowAlternationEnabled : true,
height : 250,
columns : [
{ dataField : "fieldLabel", caption : "Field", xwidth : 250 },
{ dataField : "submissionValue", caption : "Submission" }
]
}).appendTo( submissionDetails )
return submissionDetails;
},
onHidden : function( e ) {
e.component.element().remove();
e.component.dispose();
},
toolbarItems : [
{ location : "after", toolbar : "bottom", widget : "dxButton", options : { text : "Close",
onClick : function( te ) {
submissionDetails.hide();
}
}}
]
}).dxPopup( "instance" );
$("body").append( submissionDetails.element() );
submissionDetails.show();
}
WorkflowFormSubmissions.prototype.submissionDetails = function( data ) {
WorkflowFormSubmissions.viewDetails( data );
return;
let instance = this;
let formId = data.formId;
let submissionId = data.submissionId;
let submissionDetails = $("
").dxPopup( {
title: "Submission Summary",
hideOnOutsideClick: true,
height: "auto",
width: "600",
contentTemplate : function() {
const submissionDetails = $('
').addClass('form');
// Submission Detail
$("
").css({"background-color":"lightgrey", "padding":"5px", "font-size" : "18px" } ).text("Submission Detail").appendTo(submissionDetails);;
$("").css({"padding":"5px 10px"}).appendTo(submissionDetails);
$("
").css({"padding":"10px"}).text("Date & Time: ").appendTo(submissionDetails);
$("").css({"padding-left":"10px"}).text(data.submissionTime).appendTo(submissionDetails);
$("
").css({"padding":"5px 10px"}).appendTo(submissionDetails);
$("
").css({"padding":"10px"}).text("Submitted By: ").appendTo(submissionDetails);
$("").css({"padding-left":"10px"}).text(data.firstName + " " + data.lastName).appendTo(submissionDetails);
$("
").css({"padding-left":"10px"}).text(data.email).appendTo(submissionDetails);
$("
").css({"padding":"5px 10px"}).appendTo(submissionDetails);
$("
").css({"padding":"10px"}).text("Status: ").appendTo(submissionDetails);
$("").css({"padding-left":"10px"}).text(data.submissionStatus).appendTo(submissionDetails);
// Field Data
$("
").css({"padding":"5px 10px"}).appendTo(submissionDetails);
$("
").css({"background-color":"lightgrey", "padding":"5px", "font-size" : "18px" } ).text("Submission Data").appendTo(submissionDetails);
$("
").css( { "margin-top": "5px" } ).dxDataGrid( {
dataSource : Fse.Data.newDataSource( { object : "WRK.formSubmission", paginate : false, keyField : "fieldId", objectParams : { formId : formId, submissionId : submissionId }}),
showBorders : true,
scrolling : { mode : "virtual" },
rowAlternationEnabled : true,
height : 250,
columns : [
{ dataField : "fieldLabel", caption : "Field", xwidth : 250 },
{ dataField : "submissionValue", caption : "Submission" }
]
}).appendTo( submissionDetails )
return submissionDetails;
},
onHidden : function( e ) {
e.component.element().remove();
e.component.dispose();
},
toolbarItems : [
{ location : "after", toolbar : "bottom", widget : "dxButton", options : { text : "Close",
onClick : function( te ) {
submissionDetails.hide();
}
}}
]
}).dxPopup( "instance" );
$("body").append( submissionDetails.element() );
submissionDetails.show();
}
WorkflowFormSubmissions.prototype.deleteSubmission = function( data ) {
let instance = this;
let d = $.Deferred();
if( confirm( `Delete Submission?` ) ) {
let deleteFormSubmissionOptions = {
formId : data.formId,
submissionId : data.submissionId
}
Fse.Ajax.performAction( {
object : "WRK.deleteFormSubmission",
data : deleteFormSubmissionOptions
}).done( function( result ) {
if( result.status ) {
d.resolve();
} else {
d.reject();
}
}).fail( function() {
d.reject();
})
} else {
d.reject();
};
return d;
}