").dxSelectBox( {
placeholder : "select a report",
valueExpr : "reportCode",
dataSource : reportSelectDataSource,
displayExpr : "title",
onSelectionChanged : function( e ) {
let selectedReport = e.selectedItem;
instance._loadReport( selectedReport );
},
width : 300
}).dxSelectBox("instance");
return instance.reportSelect.element();
}
},
{
ratio : 1, template : function() {
return instance._createReportUI();
}
}
]
})
return content;
},
onHidden : function( e ) {
e.component.element().remove();
e.component.dispose();
},
onShown : function( e ) {
if( reportCode ) {
instance.reportSelect.option( "value", reportCode );
}
}
}
console.log( instance.reportsArray );
popup = $("
").dxPopup( popupConfig ).appendTo( $("body" )).dxPopup( "instance" );
popup.show();
})
}
ReportCenter.prototype._loadReport = function( reportData ) {
let instance = this;
// let titleElement = $("#reportTitleDisplay" );
// let titleContent = $("#reportTitleDisplay span" );
instance.tabs.option( {
"items[0].disabled" : true,
"items[1].disabled" : true,
"items[2].disabled" : true,
"items[3].disabled" : true
})
if( instance.saveButton ) instance.saveButton.option( { disabled : true });
if( instance.deleteButton ) instance.deleteButton.option( { disabled : true });
if( instance.runButton ) instance.runButton.option( { disabled : true });
if( ! reportData ) {
// titleElement.addClass( "fse-hidden" );
instance.titleBar.option( { "items[1].visible" : false })
let pleaseSelectHTML = "
Please select a Report";
$("#rc_helpTab").html( pleaseSelectHTML );
$("#rc_criteriaTab").html( pleaseSelectHTML );
$("#rc_outputTab").html( pleaseSelectHTML );
instance._showTab( "rc_criteria" );
// instance.tabs.option( {
// "items[0].disabled" : true,
// "items[1].disabled" : true,
// "items[2].disabled" : true,
// "items[3].disabled" : true
// })
// instance.saveButton.option( { disabled : true });
// instance.deleteButton.option( { disabled : true });
// instance.runButton.option( { disabled : true });
return;
}
let sLoadingHTML = "
Loading, Please wait...";
$("#rc_helpTab").html( sLoadingHTML );
$("#rc_criteriaTab").html( sLoadingHTML );
$("#rc_outputTab").html( sLoadingHTML );
instance._showTab( "rc_criteria" );
let title = reportData.title;
if( reportData.shared == "Y" ) {
title = title + ' - Shared'
}
// titleContent.text( title );
if( instance.reportTitleDisplay ) instance.reportTitleDisplay.text( title );
// titleElement.removeClass( "fse-hidden" );
if( instance.titleBar ) instance.titleBar.option( { "items[1].visible" : true })
let sAppHandler = reportData.handler;
document.frm_reportCenter.elements.rc_handler.value = sAppHandler;
let parts = sAppHandler.split( "?" );
let sBaseURL = parts[0];;
document.frm_reportCenter.setAttribute( "action", sBaseURL );
document.frm_reportCenter.elements.rc_report.value = reportData.reportCode;
// remove any previous parameters from the form
$(document.frm_reportCenter).find( "input.rc_param" ).remove();
$(document.frm_reportCenter).find( "input[name=rc_defaults]" ).remove();
// add new parameters
if( parts.length > 1 ) {
let aParams = parts[1].split( "&" );
for( let x = 0; x < aParams.length; x++ ) {
let aParamParts = aParams[x].split( "=" );
// output tab fields
if( aParamParts[0] == "rc_format" ) continue;
if( aParamParts[0] == "rc_method" ) continue;
$("
")
.attr({
type : "hidden",
name : aParamParts[0],
value : aParamParts[1]
})
.addClass( "rc_param" )
.appendTo( $(document.frm_reportCenter) );
}
}
// let ReportSelectURL = Fse.Util.updateURL( sAppHandler, { rc_action : "build", rc_part : "reportSelect" } );
let sCriteriaURL = Fse.Util.updateURL( sAppHandler, { rc_action : "build", rc_part : "criteriaFields", rc_report : reportData.reportCode } );
if( reportData.savedReportId ) {
sCriteriaURL = Fse.Util.updateURL( sCriteriaURL, { rc_savedReportId : reportData.savedReportId } );
}
let sHelpURL = Fse.Util.updateURL( sAppHandler, { rc_action : "build", rc_part : "helpContent", rc_report : reportData.reportCode });
let reportCenterBaseURL = $("link#PortalDocRootURL").attr( "href" ) + "/apps/RPT/index.cfm";
let sScheduleURL = Fse.Util.updateURL( reportCenterBaseURL, { ajax : "savedReportSchedule" } );
let sOutputURL = Fse.Util.updateURL( reportCenterBaseURL, { ajax : "outputTab" } );
if( reportData.savedReportId ) {
if( document.getElementById( "rc_scheduleTab" )) {
Fse.Ajax.updateContent( Fse.Util.updateURL( sScheduleURL, { savedReportId : reportData.savedReportId }), "rc_scheduleTab" );
}
sOutputURL = Fse.Util.updateURL( sOutputURL, { savedReportId : reportData.savedReportId } );
} else {
sOutputURL = Fse.Util.updateURL( sOutputURL, { rc_report : reportData.reportCode } );
}
Fse.Ajax.updateContent( sHelpURL, "rc_helpTab" );
let loadPanel = $("
").dxLoadPanel( {
message : "Loading, please wait...",
ohHidden : function( e ) {
e.component.element().remove();
e.component.dispose();
}
}).appendTo( $("body") ).dxLoadPanel( "instance" );
loadPanel.show();
let reportType = instance.reportTypeSelect ? instance.reportTypeSelect.option( "value" ) : "$AVAILABLE";
let d = Fse.Ajax.updateContent( sCriteriaURL , "rc_criteriaTab", null, null, true );
d.done( function() {
let d = Fse.Ajax.updateContent( sOutputURL, "rc_outputTab" );
d.done( function() {
instance._criteriaChanged();
instance.tabs.option( {
"items[0].disabled" : false,
"items[1].disabled" : false,
"items[2].disabled" : reportType != "$SAVED",
"items[3].disabled" : false
})
})
}).then( function() {
loadPanel.hide();
})
}
ReportCenter.prototype.getCurrentReport = function() {
let instance = this;
return instance.reportList ? instance.reportList.option( "selectedItem" ) : instance.reportSelect.option( "selectedItem" );
}
ReportCenter.prototype._showTab = function( tabId ) {
let instance = this;
// var aTabs = YAHOO.util.Dom.getChildren( "rpt-tab-bodies" )
let aTabs = $("#rpt-tab-bodies").children();
let sBodyId = tabId + "Tab";
for( var x = 0; x < aTabs.length; x++ ) {
var oTab = aTabs[x];
if( oTab.getAttribute( "id" ) == sBodyId ) {
// YAHOO.util.Dom.removeClass( oTab, "fse-hidden" );
$(oTab).removeClass( "fse-hidden" );
} else {
// YAHOO.util.Dom.addClass( oTab, "fse-hidden" );
$(oTab).addClass( "fse-hidden" );
}
}
let tabItems = instance.tabs.option( "items" );
tabItems.forEach( function( i ) {
if( i.id == tabId ) {
instance.tabs.option( "selectedItem", i );
}
})
}
ReportCenter.prototype._criteriaChanged = function() {
let instance = this;
Fse.DialogManager.initializePopupDateBoxes( $( document.frm_reportCenter )); // uses DevX
var oMobile = document.getElementById( "rc_mobile" );
var bMobile = (oMobile.value == "true");
if( bMobile ) {
if( oMobile.form.rc_method_download.checked ) {
oMobile.form.setAttribute( "target", "_blank" );
} else {
oMobile.form.setAttribute( "target", null );
}
}
let bEnableRun = true;
let bEnableSave = false;
let bEnableDelete = false;
let currentReport = instance.getCurrentReport();
if( currentReport ) {
if( currentReport.locked == "Y" ) {
bLocked = true;
} else {
bLocked = false;
}
if( !bLocked && currentReport.saveable == "Y" ) {
bEnableSave = true;
bEnableDelete = true;
} else {
bEnableSave = false;
bEnableDelete = false;
}
// no access, only allow them to delete the saved report
if( currentReport.accessAllowed == "N" ) {
bEnableSave = false;
bEnableDelete = true;
bEnableRun = false;
}
} else {
bEnableSave = false;
bEnableRun = false;
bEnableDelete = false;
}
if( instance.saveButton ) instance.saveButton.option( { disabled : bEnableSave == false });
if( instance.deleteButton ) instance.deleteButton.option( { disabled : bEnableSave == false });
if( instance.runButton ) instance.runButton.option( { disabled : bEnableRun == false });
}
ReportCenter.prototype._refreshReportList = function() {
let instance = this;
let value = instance.reportTypeSelect.option( "value" );
if( value == "$AVAILABLE" ) {
instance.reportList.option( { "searchEnabled" : true, searchValue : null, searchExpr : "title", "dataSource" : { paginate : false, filter : null, store : { type : "array", data : instance.reportsArray, key : "reportId" } }, keyExpr : "reportId" } )
} else if( value == "$SAVED" ) {
let dataStore = new DevExpress.data.ArrayStore( { data : instance.savedReportsArray, key : "savedReportId" } );
instance.reportList.option( { "searchEnabled" : true, searchValue : null, searchExpr : "userReportName", "dataSource" : { paginate : false, store : dataStore}, keyExpr : "savedReportId" } )
if( instance.initialSavedReportId ) {
dataStore.byKey( instance.initialSavedReportId ).done( function( selectedItem ) {
instance.initialSavedReportId = null;
instance.reportList.option( { "selectedItem" : selectedItem } );
let allItems = instance.reportList.option( "items" );
for( let x = 0; x <= allItems.length; x++ ) {
let item = allItems[x];
if( item === selectedItem ) {
instance.reportList.scrollToItem( x );
break;
}
}
})
}
} else if( value == "$SHARED" ) {
instance.reportList.option( { "searchEnabled" : true, searchValue : null, searchExpr : "userReportName", "dataSource" : { paginate : false, store : { type : "array", data : instance.sharedReportsArray, key : "savedReportId" } }, keyExpr : "savedReportId" } )
} else {
instance.reportList.option( { "searchEnabled" : true, searchValue : null, searchExpr : "userReportName", "dataSource" : { paginate : false, filter : [ "categories", "contains", value ], store : { type : "array", data : instance.reportsArray, key : "reportId" } }, keyExpr : "reportId" } )
}
}
ReportCenter.prototype._createUI = function() {
let instance = this;
instance.reportList = $("
").dxList( {
itemTemplate : function( itemData ) {
if( itemData.type == "group") {
return $("
").text( itemData.name )
} else {
if( itemData.savedReportId ) {
let reportNameDisplay = $("
").text( itemData.userReportName );
let content = $("");
if( itemData.displayType == "$SAVED" ) {
content.css( itemData.userReportGroup ? { "padding-left" : "10px" } : {} )
let statusIndicators = [];
if( itemData.scheduledDelivery == 'Y' ) statusIndicators.push( '*' );
if( itemData.shared == 'Y' ) statusIndicators.push( '+' );
if( statusIndicators.length ) {
content.append( $("
").text( statusIndicators.join('')).css( { "padding-right" : "5px" }) );
}
}
content.append( reportNameDisplay );
return content
} else {
return $("").text( itemData.title )
}
}
},
height : "100%",
width : "100%",
onSelectionChanged : function( e ) {
instance._loadReport( e.component.option( "selectedItem" ) );
},
selectionMode : "single",
searchEnabled : false, // this get's turned on during refresh report list
searchMode : "contains"
}).dxList( "instance");
let reportCategories = [
{ reportType : "$AVAILABLE", reportTypeDisplay : "-- Available Reports --" },
{ reportType : "$SAVED", reportTypeDisplay : "-- Saved Reports --" },
{ reportType : "$SHARED", reportTypeDisplay : "-- Shared Reports --" }
]
instance.reportCategoriesArray.forEach( function( ae ) {
reportCategories.push( $.extend( true, { reportType : ae.reportCategory, reportTypeDisplay : ae.reportCategory }, ae ) );
})
let initalReportCategory = instance.initialReportCategory ? instance.initialReportCategory : instance.savedReportsArray.length ? "$SAVED" : "$AVAILABLE"
instance.reportTypeSelect = $("
").dxSelectBox( {
height: 33,
dataSource : {
store : { type : "array", data : reportCategories, key : "reportType" }
},
displayExpr : "reportTypeDisplay",
valueExpr : "reportType",
value : initalReportCategory,
onValueChanged : function( e ) {
let button = e.component.getButton( "manage" );
button.option( "visible", e.value == "$SAVED" );
instance.legendElement.css( { "display" : e.value == "$SAVED" ? "initial" : "none" } );
instance._refreshReportList();
},
buttons : [
{
name: 'manage',
location: 'after',
options: {
visible : initalReportCategory == "$SAVED" ? true : false,
hint : "Manage",
text : "manage",
stylingMode: 'text',
onClick : function( e ) {
instance._manageGroups().done( function( result ) {
window.location.href = window.location.href;
});
},
},
},
"dropDown"
]
}).dxSelectBox( "instance");
instance.initialReportCategory = null;
instance.legendElement = $("
").text( "* = scheduled delivery, + = shared" ).css( { "display" : initalReportCategory == "$SAVED" ? "initial" : "none", "margin-top" : "5px", "font-style" : "italic" });
instance.deleteButton = $("
").dxButton( {
text : "Delete",
disabled : true,
onClick : function( e ) {
instance._deleteReport();
}
}).dxButton( "instance" )
instance.saveButton = $("
").dxButton( {
text : "Save",
disabled : true,
onClick : function(e) {
instance._saveReport();
}
}).dxButton( "instance" )
instance.runButton = $("
").dxButton( {
text : "Run",
type : "default",
disabled : true,
onClick : function( e ) {
instance._runReport();
}
}).dxButton( "instance" )
instance.buttonBar = $("
").dxToolbar( {
items : [
{
location : "after",
template : function() {
return instance.deleteButton.element();
}
},
{
location : "after",
template : function() {
return instance.saveButton.element();
}
},
{
location : "after",
template : function() {
return instance.runButton.element();
}
}
]
}).css( "margin-top", "5px" ).dxToolbar( "instance" );
instance.reportTitleDisplay = $("
")
instance.reportTitleContainer = $("" )
.css( { "font-style" : "italic", "font-size" : "18px" })
.append( " - " )
.append( instance.reportTitleDisplay )
instance.titleBar = $("
").dxToolbar( {
items : [
{ location : "before",
template : function() {
return $("
").text( "Report Center" ).css( { "font-size" : "18px" } )
}
},
{ location : "before", visible : false,
template : function() {
return instance.reportTitleContainer
}
},
{ widget: "dxButton", location: "after", options : {
type : "normal",
icon :"help",
hint : "View Help",
onClick : function( e ) {
Fse.Portal.showQuickHelp( "ReportCenter" );
}
}}
]
}).dxToolbar( "instance" );
$("
").addClass( "sysReportCenterDialog" ).dxBox( {
direction : "col",
height : "100%",
items : [
{ baseSize: 30, name : 'titleBar' },
{ ratio: 1, name : 'mainDisplay' }
],
itemTemplate : function( itemData ) {
if( itemData.name == "titleBar" ) {
return instance.titleBar.element();
} else if ( itemData.name == "mainDisplay" ) {
return instance._createReportCenterUI();
}
}
}).appendTo("#sysReportCenterDialog");
// $("#reportCenterDisplay").dxBox( {
// direction : "row",
// width : "100%",
// height : "100%"
// })
// $("#reportCenterDisplay").dxBox( {
// direction : "row",
// width : "100%",
// height : "100%",
// items : [
// { baseSize: 350, name : 'reportList' },
// { ratio: 1, name : 'report' }
// ],
// itemTemplate : function( itemData ) {
// if( itemData.name == "reportList" ) {
// return $("
").dxBox( {
// height : "100%",
// direction : "col",
// items :[
// { baseSize: 37, name : 'reportTypes' },
// { ratio: 1, name : 'availableReports' },
// { baseSize: 40, name : 'legend' }
// ],
// itemTemplate : function( itemData ) {
// if( itemData.name == "availableReports" ) {
// return $("
").addClass( "dx-theme-border-color" ).css( { "height" : "100%", "border-width":"1px", "border-style":"solid"}).append( instance.reportList.element() )
// } else if ( itemData.name == "reportTypes" ) {
// return instance.reportTypeSelect.element();
// } else if ( itemData.name == "legend" ) {
// return instance.legendElement;
// }
// }
// });
// } else if ( itemData.name == "report" ) {
// let reportUI = instance._createReportUI();
// reportUI.css( "padding-left", "8px")
// return reportUI;
// }
// }
// })
// $("#reportList").dxBox( {
// height : "100%",
// direction : "col",
// items :[
// { baseSize: 37, name : 'reportTypes' },
// { ratio: 1, name : 'availableReports' },
// { baseSize: 40, name : 'legend' }
// ],
// itemTemplate : function( itemData ) {
// if( itemData.name == "availableReports" ) {
// return $("
").addClass( "dx-theme-border-color" ).css( { "height" : "100%", "border-width":"1px", "border-style":"solid"}).append( instance.reportList.element() )
// } else if ( itemData.name == "reportTypes" ) {
// return instance.reportTypeSelect.element();
// } else if ( itemData.name == "legend" ) {
// return instance.legendElement;
// }
// }
// });
// $("#reportFormBox").dxBox( {
// height : "100%",
// direction : "col",
// items : [
// { baseSize : 37, name : 'tabs' },
// { ratio : 1, name : 'form' },
// { baseSize : 40, name : 'buttonBar' }
// ],
// itemTemplate : function( itemData ) {
// if( itemData.name == "buttonBar" ) {
// $("#rc_buttonBar").remove();
// return instance.buttonBar.element();
// } else if ( itemData.name == "tabs" ) {
// return instance.tabs.element();
// } else if ( itemData.name == "form" ) {
// let frm_reportCenter = $("