OWA.report = function(dom_id) {
this.dom_id = dom_id;
this.config = OWA.config;
this.properties = {};
this.tabs = {};
}
OWA.report.prototype = {
options: {},
config: '',
showSiteFilter : function(dom_id) {
// create dom elements
// ...
// bind event handlers
that = this;
jQuery('#owa_reportSiteFilterSelect').change( function() { that.reload(); } );
jQuery("#owa_reportPeriodFilterSubmit").click( function() { that.reload(); } );
},
reload: function() {
// add new site_id to properties
var siteId = jQuery("#owa_reportSiteFilterSelect option:selected").val();
OWA.debug(this.properties['action']);
this.properties['siteId'] = siteId;
// reload report
var url = OWA.util.makeUrl(OWA.config.link_template, OWA.config.main_url, this.properties);
window.location.href = url;
},
setRequestProperty : function(name, value) {
this.properties[name] = value;
},
_parseDate: function (date) {
},
setDateRange: function (date) {
this.properties.startDate = jQuery.datepicker.formatDate('yymmdd', jQuery("#owa_report-datepicker-start").datepicker("getDate"));
this.properties.endDate = jQuery.datepicker.formatDate('yymmdd', jQuery("#owa_report-datepicker-end").datepicker("getDate"));
if (this.properties.startDate != null && this.properties.endDate != null) {
this.setPeriod('date_range');
}
},
setPeriod: function(period) {
this.properties.period = period;
if ( this.properties.hasOwnProperty( 'startDate' ) ) {
delete this.properties[ 'startDate' ];
}
if ( this.properties.hasOwnProperty( 'endDate' ) ) {
delete this.properties[ 'endDate' ];
}
},
addTab : function(obj) {
if (obj.dom_id.length > 0 ) {
this.tabs[obj.dom_id] = obj;
} else {
OWA.debug('tab cannot be added with no dom_id set.');
}
},
createTabs : function() {
var that = this;
jQuery("#report-tabs").prepend('
');
for (tab in this.tabs) {
if ( this.tabs.hasOwnProperty(tab) ) {
jQuery("#report-tabs > .report-tabs-nav-list").append(OWA.util.sprintf( '%s', tab, that.tabs[tab].label ) );
}
}
jQuery("#report-tabs").tabs({
show: function(event, ui) {
OWA.debug('tab selected is: %s', ui.panel.id);
that.tabs[ui.panel.id].load();
}
});
},
getSiteId : function() {
if (this.properties.hasOwnProperty('siteId')) {
return this.properties.siteId;
}
},
getPeriod : function() {
if (this.properties.hasOwnProperty('period')) {
return this.properties.period;
}
},
getStartDate : function() {
if (this.properties.hasOwnProperty('startDate')) {
return this.properties.startDate;
}
},
getEndDate : function() {
if (this.properties.hasOwnProperty('endDate')) {
return this.properties.endDate;
}
}
}
OWA.report.tab = function(dom_id) {
this.dom_id = dom_id;
this.resultSetExplorers = {};
this.label = 'Default label';
this.isLoaded = false;
this.load = function() {
if ( ! this.isLoaded ) {
for (rse in this.resultSetExplorers) {
if (this.resultSetExplorers.hasOwnProperty(rse)) {
this.resultSetExplorers[rse].load();
}
}
this.isLoaded = true;
}
}
}
OWA.report.tab.prototype = {
addRse : function (name, rse) {
this.resultSetExplorers[name] = rse;
},
setLabel : function (label) {
this.label = label;
},
setDomId : function (dom_id) {
this.dom_id = dom_id;
}
}
// Bind event handlers
jQuery(document).ready(function(){
jQuery('#owa_reportPeriodFilter').change(owa_reportSetPeriod);
jQuery("#owa_reportPeriodLabelContainer").click(function() {
jQuery("#owa_reportPeriodFiltersContainer").toggle();
});
jQuery("#owa_report-datepicker-start, #owa_report-datepicker-end").datepicker({
beforeShow: customRange,
showOn: "both",
dateFormat: 'mm-dd-yy',
onSelect: function(date) {owa_reportSetDateRange(date);}
//buttonImage: "templates/images/calendar.gif",
//buttonImageOnly: true
});
// make tables sortable
//jQuery.tablesorter.defaults.widgets = ['zebra'];
//jQuery('.tablesorter').tablesorter();
// report side navigaion panels - toggle
jQuery('.owa_admin_nav_topmenu_toggle').click(function () {
jQuery(this).parent().siblings('.owa_admin_nav_subgroup').toggle();
});
});
function customRange(input) {
return {minDate: (input.id == "owa_report-datepicker-end" ? jQuery("#owa_report-datepicker-start").datepicker("getDate") : null),
maxDate: (input.id == "owa_report-datepicker-start" ? jQuery("#owa_report-datepicker-end").datepicker("getDate") : null)};
}
function owa_reportSetDateRange(date) {
if (date != null) {
var reportname = jQuery('.owa_reportContainer').get(0).id;
OWA.items[reportname].setDateRange();
OWA.items[reportname].setPeriod('date_range');
// toggle the drop down to custom data range label
jQuery("#owa_reportPeriodFilter option:contains('Custom Date Range')").attr("selected", true);
}
}
function owa_reportSetPeriod() {
var period = jQuery("#owa_reportPeriodFilter option:selected").val();
var reportname = jQuery(this).parents(".owa_reportContainer").get(0).id;
OWA.items[reportname].setPeriod(period);
OWA.items[reportname].reload();
}