From: erickson Date: Sun, 1 Oct 2006 14:19:07 +0000 (+0000) Subject: more filter work, still need to refactor parts of the delete call X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=1c3c3fbbec8e39b1ccbfcbf8422955812df087a4;p=evergreen%2Fpines.git more filter work, still need to refactor parts of the delete call to take operations and transforms into account git-svn-id: svn://svn.open-ils.org/ILS/trunk@6304 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/reports/oils_rpt.css b/Open-ILS/web/reports/oils_rpt.css index f619ac0eda..4c2d358da2 100644 --- a/Open-ILS/web/reports/oils_rpt.css +++ b/Open-ILS/web/reports/oils_rpt.css @@ -50,7 +50,7 @@ table { border-collapse: collapse; } } .oils_rpt_info_item { - width: 290px; + width: 310px; } .oils_rpt_info_title { @@ -80,7 +80,7 @@ table { border-collapse: collapse; } .oils_rpt_info_div { text-align: center; - width: 300px; + width: 320px; padding-left: 10px; padding: 10px; border-left: 2px solid #E0E0E0; diff --git a/Open-ILS/web/reports/oils_rpt_builder.js b/Open-ILS/web/reports/oils_rpt_builder.js index 6426cd4704..ce1edf15db 100644 --- a/Open-ILS/web/reports/oils_rpt_builder.js +++ b/Open-ILS/web/reports/oils_rpt_builder.js @@ -193,10 +193,26 @@ function oilsRptPruneFromClause(relation, node) { return false; } +function oilsRptFilterName(path, tform, filter) { +} + /* adds an item to the display window */ function oilsAddRptFilterItem(path, tform, filter) { _debug("Adding filter item for "+path+" tform="+tform+" filter="+filter); - if( ! oilsAddSelectorItem(oilsRptFilterSelector, path) ) + + var name = oilsRptMakeLabel(path); + if(tform) name += ' ('+tform+')'; + name += ' "' + filter + '"'; + + var epath = path + ':'+filter+':'; + if(tform) epath += tform; + + /* + if( ! oilsAddSelectorItem(oilsRptFilterSelector, path, name) ) + return; + */ + + if( ! oilsAddSelectorItem(oilsRptFilterSelector, epath, name) ) return; var where = { @@ -206,6 +222,10 @@ function oilsAddRptFilterItem(path, tform, filter) { }; where.condition[filter] = oilsRptNextParam(); + switch(tform) { + case 'substring' : where.column.params = oilsRptNextParam(); + } + oilsRpt.def.where.push(where); mergeObjects( oilsRpt.def.from, oilsRptBuildFromClause(path)); oilsRptDebug(); @@ -218,8 +238,26 @@ function oilsAddRptFilterItem(path, tform, filter) { /* removes selected items from the display window */ function oilsDelSelectedFilterItems() { + + /* the values in this list are formed: :: */ var list = oilsDelSelectedItems(oilsRptFilterSelector); + var flist = []; + + for( var i = 0; i < list.length; i++ ) { + var item = list[i]; + flist.push( { + path: item.replace(/:.*/,''), + filter: item.replace(/.*:(.*):.*/,'$1'), + tform: item.replace(/.*?:.*?:(.*)/,'$1') + }); + } + + + /* XXX refactor the below to take operation and transform into account + since the same path can be used multiple times as long as a different + filter and/or transform is used */ + /* remove the de-selected columns from the report output */ oilsRpt.def.where = grep( oilsRpt.def.where, function(i) { @@ -420,9 +458,30 @@ function oilsRptSetDataWindowActions(div) { function oilsRptDrawFilterWindow(path, col, cls, field) { + + var fsel = $n(DOM.oils_rpt_filter_op_table,'selector'); + for( var i = 0; i < fsel.options.length; i++ ){ + var opt = fsel.options[i]; + var dt = opt.getAttribute('datatype'); + _debug(dt); + + /* add a special case for boolean objects, since the only + operation that makes sense is "=" */ + if( field.datatype == 'bool' ) { + hideMe(opt); + if( opt.getAttribute('value') == '=' ) + unHideMe(opt); + + } else { + if( dt && dt != field.datatype ) + hideMe(opt); + else unHideMe(opt); + } + } + + DOM.oils_rpt_filter_submit.onclick = function() { var tsel = $n(DOM.oils_rpt_filter_tform_table,'selector'); - var fsel = $n(DOM.oils_rpt_filter_op_table,'selector'); var tform = getSelectorVal(tsel); var filter = getSelectorVal(fsel); oilsAddRptFilterItem(path, tform, filter); diff --git a/Open-ILS/web/reports/oils_rpt_ops.xhtml b/Open-ILS/web/reports/oils_rpt_ops.xhtml index 1f40ed8fb4..454fb80c5b 100644 --- a/Open-ILS/web/reports/oils_rpt_ops.xhtml +++ b/Open-ILS/web/reports/oils_rpt_ops.xhtml @@ -11,10 +11,10 @@ - - - - + + + +