From: erickson Date: Thu, 21 Sep 2006 22:08:39 +0000 (+0000) Subject: more work on transforms X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=cdee01532a77c616aa14cef143b0725af0502383;p=Evergreen.git more work on transforms git-svn-id: svn://svn.open-ils.org/ILS/trunk@6184 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/reports/oils_rpt.css b/Open-ILS/web/reports/oils_rpt.css index 49bf2ea616..59d8cfa459 100644 --- a/Open-ILS/web/reports/oils_rpt.css +++ b/Open-ILS/web/reports/oils_rpt.css @@ -131,7 +131,11 @@ button { .oils_rpt_tree_link_ref { color: #A52A2A; /*color: darkblue;*/ - font-family: courier; + /*font-family: courier; */ } +.oils_rpt_invalid_input { + background: red; +} + diff --git a/Open-ILS/web/reports/oils_rpt_builder.js b/Open-ILS/web/reports/oils_rpt_builder.js index 0856a0f415..900e3eda9a 100644 --- a/Open-ILS/web/reports/oils_rpt_builder.js +++ b/Open-ILS/web/reports/oils_rpt_builder.js @@ -65,7 +65,7 @@ function oilsRptMakeLabel(path) { /* adds an item to the display window */ -function oilsAddRptDisplayItem(path, name, tform) { +function oilsAddRptDisplayItem(path, name, tform, params) { if( ! oilsAddSelectorItem(oilsRptDisplaySelector, path, name) ) return; @@ -81,7 +81,12 @@ function oilsAddRptDisplayItem(path, name, tform) { if( tform ) { sel.column = {}; - sel.column[tform] = oilsRptPathCol(path); + if( params ) { + params.unshift(oilsRptPathCol(path)); + sel.column[tform] = params; + } else { + sel.column[tform] = oilsRptPathCol(path); + } } else { sel.column = oilsRptPathCol(path); } oilsRpt.def.select.push(sel); @@ -141,10 +146,15 @@ function oilsDelSelectedDisplayItems() { var d = list[j]; var col = i.column; - /* if this columsn has a transform, it will be an object { tform => column } */ + /* if this columsn has a transform, + it will be an object { tform => column } */ if( typeof col != 'string' ) for( var c in col ) col = col[c]; + /* if this transform requires params, the column + will be the first item in the param set array */ + if( typeof col != 'string' ) col = col[0]; + if( oilsRptPathRel(d) == i.relation && oilsRptPathCol(d) == col ) { var param = (i.alias) ? i.alias.match(/::PARAM\d*/) : null; if( param ) delete oilsRpt.params[param]; @@ -277,40 +287,57 @@ function oilsRptDrawDataWindow(path) { function oilsRptDrawTransformWindow(path, col, cls, field) { appendClear(DOM.oils_rpt_tform_label, text(oilsRptMakeLabel(path))); DOM.oils_rpt_tform_label_input.value = oilsRptMakeLabel(path); + var dtype = field.datatype; DOM.oils_rpt_tform_submit.onclick = function(){ - var tform = oilsRptGetTform(); + var tform = oilsRptGetTform(dtype); + _debug('found tform: ' + js2JSON(tform)); + var params = getRptTformParams(dtype, tform); + _debug('found tform params: ' + js2JSON(params)); tform = (tform == 'raw') ? null : tform; - oilsAddRptDisplayItem(path, DOM.oils_rpt_tform_label_input.value, tform) + oilsAddRptDisplayItem(path, DOM.oils_rpt_tform_label_input.value, tform, params ) }; DOM.oils_rpt_tform_label_input.focus(); DOM.oils_rpt_tform_label_input.select(); oilsRptHideTformFields(); - _debug("Transforming item with datatype "+field.datatype); - unHideMe($('oils_rpt_tform_'+field.datatype+'_div')); - unHideMe($('oils_rpt_tform_'+field.datatype+'_raw')); - $('oils_rpt_tform_'+field.datatype+'_raw').checked = true; + _debug("Transforming item with datatype "+dtype); + unHideMe($('oils_rpt_tform_'+dtype+'_div')); + $('oils_rpt_tform_all_raw').checked = true; } function oilsRptHideTformFields() { - for( var t in oilsRptTransforms ) { + for( var t in oilsRptTransforms ) hideMe($('oils_rpt_tform_'+t+'_div')); - for( var i in oilsRptTransforms[t] ) { - _debug('oils_rpt_tform_'+t+'_'+oilsRptTransforms[t][i]); - $('oils_rpt_tform_'+t+'_'+oilsRptTransforms[t][i]).checked = false; - } - } } -function oilsRptGetTform() { - for( var t in oilsRptTransforms ) - for( var i in oilsRptTransforms[t] ) - if( $('oils_rpt_tform_'+t+'_'+oilsRptTransforms[t][i]).checked ) - return oilsRptTransforms[t][i]; +function oilsRptGetTform(datatype) { + for( var i in oilsRptTransforms[datatype] ) + if( $('oils_rpt_tform_'+datatype+'_'+oilsRptTransforms[datatype][i]).checked ) + return oilsRptTransforms[datatype][i]; + for( var i in oilsRptTransforms.all ) + if( $('oils_rpt_tform_all_'+oilsRptTransforms.all[i]).checked ) + return oilsRptTransforms.all[i]; return null; } -; +function getRptTformParams(type, tform) { + switch(type) { + case 'timestamp': + switch(tform) { + case 'months_ago': + return [DOM.oils_rpt_tform_timestamp_months_ago_input.value]; + case 'quarters_ago': + return [DOM.oils_rpt_tform_timestamp_quarters_ago_input.value]; + } + case 'string' : + switch(tform) { + case 'substring' : + return []; + } + } +} + + diff --git a/Open-ILS/web/reports/oils_rpt_builder.xhtml b/Open-ILS/web/reports/oils_rpt_builder.xhtml index 31f776a41a..8ab1b19e82 100644 --- a/Open-ILS/web/reports/oils_rpt_builder.xhtml +++ b/Open-ILS/web/reports/oils_rpt_builder.xhtml @@ -106,6 +106,11 @@
Select how this field should be displayed:
+ Raw Data
+ Count
+ Count Distinct
+ Min
+ Max
diff --git a/Open-ILS/web/reports/oils_rpt_tform_date.xhtml b/Open-ILS/web/reports/oils_rpt_tform_date.xhtml index dbd75a6eaa..748168bd15 100644 --- a/Open-ILS/web/reports/oils_rpt_tform_date.xhtml +++ b/Open-ILS/web/reports/oils_rpt_tform_date.xhtml @@ -1,11 +1,46 @@
- Raw Timestamp
- Month Trunc
- Months Ago
- Quarters Ago
- Age
- Count
- Count Distinct
- Min
- Max
+ Month Trunc
+ + + + Month(s) Ago +
+ + + + + Quarter(s) Ago +
+ + Age
diff --git a/Open-ILS/web/reports/oils_rpt_tform_numeric.xhtml b/Open-ILS/web/reports/oils_rpt_tform_numeric.xhtml index 0a7c114ed0..ec90b15038 100644 --- a/Open-ILS/web/reports/oils_rpt_tform_numeric.xhtml +++ b/Open-ILS/web/reports/oils_rpt_tform_numeric.xhtml @@ -1,9 +1,4 @@
- Full Data
- Full Data
- Full Data
- Count
- Count Distinct
- Min
- Max
+ Sum
+ Average
diff --git a/Open-ILS/web/reports/oils_rpt_tform_string.xhtml b/Open-ILS/web/reports/oils_rpt_tform_string.xhtml index 516059a854..c3769246c2 100644 --- a/Open-ILS/web/reports/oils_rpt_tform_string.xhtml +++ b/Open-ILS/web/reports/oils_rpt_tform_string.xhtml @@ -1,8 +1,3 @@
- Full Data
- Count
- Count Distinct
- Min
- Max
- Substring
+ Substring
diff --git a/Open-ILS/web/reports/oils_rpt_vars.js b/Open-ILS/web/reports/oils_rpt_vars.js index 5170712137..4e074cf219 100644 --- a/Open-ILS/web/reports/oils_rpt_vars.js +++ b/Open-ILS/web/reports/oils_rpt_vars.js @@ -42,12 +42,22 @@ var oilsRptTransforms = { }; /* for ease of use, shove everything in the 'all' slot into the other tforms */ +/* for( var t in oilsRptTransforms ) { if( t == 'all' ) continue; for( var a in oilsRptTransforms['all'] ) oilsRptTransforms[t].push( oilsRptTransforms['all'][a] ); } delete oilsRptTransforms.all; +*/ +/* --------------------------------------------------- */ + + +/* +var oilsRptRegexClasses = { + 'number' : /\d+/ +} +*/