|
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('<ul class="report-tabs-nav-list"></ul>'); |
|
for (tab in this.tabs) { |
|
|
|
if ( this.tabs.hasOwnProperty(tab) ) { |
|
jQuery("#report-tabs > .report-tabs-nav-list").append(OWA.util.sprintf( '<li><a href="#%s">%s</a></li>', 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(); |
|
} |