From: erickson Date: Tue, 22 Apr 2008 18:00:31 +0000 (+0000) Subject: added support for defining pivot data and label columns X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=2ac986a58c76ce2362c29b956c373007f61e1bd2;p=Evergreen.git added support for defining pivot data and label columns git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_2@9427 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/reports/oils_rpt_editor.xhtml b/Open-ILS/web/reports/oils_rpt_editor.xhtml index 7d06d777ed..007ced5782 100644 --- a/Open-ILS/web/reports/oils_rpt_editor.xhtml +++ b/Open-ILS/web/reports/oils_rpt_editor.xhtml @@ -34,8 +34,24 @@ Report Columns: - + + + Pivot Label Column: + + + + + + Pivot Data Column: + + + + + diff --git a/Open-ILS/web/reports/oils_rpt_report_editor.js b/Open-ILS/web/reports/oils_rpt_report_editor.js index 778078a9d0..8f3001862f 100644 --- a/Open-ILS/web/reports/oils_rpt_report_editor.js +++ b/Open-ILS/web/reports/oils_rpt_report_editor.js @@ -21,6 +21,43 @@ function oilsRptReportEditor(rptObject, folderWindow) { } ); +/* +oils_rpt_editor_pivot_label +oils_rpt_editor_pivot_data +*/ + + var hasAgg = false; + iterate(rptObject.def.select, + function(i) { + if(OILS_RPT_TRANSFORMS[i.column.transform].aggregate) + hasAgg = true; + } + ); + + while(DOM.oils_rpt_editor_pivot_label.getElementsByTagName('option').length > 1) + DOM.oils_rpt_editor_pivot_label.removeChild(DOM.oils_rpt_editor_pivot_label.lastChild); + + while(DOM.oils_rpt_editor_pivot_data.lastChild) + DOM.oils_rpt_editor_pivot_data.removeChild(DOM.oils_rpt_editor_pivot_data.lastChild); + + if(hasAgg) { + unHideMe(DOM.oils_rpt_editor_pivot_label_row); + unHideMe(DOM.oils_rpt_editor_pivot_data_row); + + for(var i in rptObject.def.select) { + var col = rptObject.def.select[i]; + if(OILS_RPT_TRANSFORMS[col.column.transform].aggregate) + insertSelectorVal(DOM.oils_rpt_editor_pivot_data, -1, col.alias, parseInt(i)+1); + else + insertSelectorVal(DOM.oils_rpt_editor_pivot_label, -1, col.alias, parseInt(i)+1); + } + + } else { + hideMe(DOM.oils_rpt_editor_pivot_label_row); + hideMe(DOM.oils_rpt_editor_pivot_data_row); + } + + if( rpt ) { DOM.oils_rpt_report_editor_name.value = rpt.name(); DOM.oils_rpt_report_editor_description.value = rpt.description(); @@ -102,6 +139,12 @@ oilsRptReportEditor.prototype.save = function() { data[par.key] = val; } + if(getSelectorVal(DOM.oils_rpt_editor_pivot_data)) { + data.__pivot_label = getSelectorVal(DOM.oils_rpt_editor_pivot_label); + data.__pivot_data = getSelectorVal(DOM.oils_rpt_editor_pivot_data); + } + + data = js2JSON(data); _debug("complete report data = "+data); report.data(data);