[open-ils-commits] r14869 - in trunk/Open-ILS: src/perlmods/OpenILS/Reporter web/js/dojo/openils/reports/nls web/reports web/reports/xul (miker)

svn at svn.open-ils.org svn at svn.open-ils.org
Wed Nov 11 13:52:05 EST 2009


Author: miker
Date: 2009-11-11 13:52:01 -0500 (Wed, 11 Nov 2009)
New Revision: 14869

Modified:
   trunk/Open-ILS/src/perlmods/OpenILS/Reporter/SQLBuilder.pm
   trunk/Open-ILS/web/js/dojo/openils/reports/nls/reports.js
   trunk/Open-ILS/web/reports/oils_rpt_filters.js
   trunk/Open-ILS/web/reports/xul/operators.js
   trunk/Open-ILS/web/reports/xul/template-config.js
   trunk/Open-ILS/web/reports/xul/transforms.js
Log:
add initial cut of support for in-db array datatype operators

Modified: trunk/Open-ILS/src/perlmods/OpenILS/Reporter/SQLBuilder.pm
===================================================================
--- trunk/Open-ILS/src/perlmods/OpenILS/Reporter/SQLBuilder.pm	2009-11-11 18:50:41 UTC (rev 14868)
+++ trunk/Open-ILS/src/perlmods/OpenILS/Reporter/SQLBuilder.pm	2009-11-11 18:52:01 UTC (rev 14869)
@@ -943,6 +943,16 @@
 	} elsif (lc($op) eq 'not in') {
 		$sql .= " NOT IN (". join(",", map { $_->toSQL } @$val).")";
 
+	} elsif (lc($op) eq '= any') {
+		$val = $$val[0] if (ref($val) eq 'ARRAY');
+		$val = $val->toSQL;
+		$sql = "$val = ANY (".$self->SUPER::toSQL.")";
+
+	} elsif (lc($op) eq '<> any') {
+		$val = $$val[0] if (ref($val) eq 'ARRAY');
+		$val = $val->toSQL;
+		$sql = "$val <> ANY (".$self->SUPER::toSQL.")";
+
 	} elsif (lc($op) eq 'is blank') {
 		$sql = '('. $self->SUPER::toSQL ." IS NULL OR ". $self->SUPER::toSQL ." = '')";
 

Modified: trunk/Open-ILS/web/js/dojo/openils/reports/nls/reports.js
===================================================================
--- trunk/Open-ILS/web/js/dojo/openils/reports/nls/reports.js	2009-11-11 18:50:41 UTC (rev 14868)
+++ trunk/Open-ILS/web/js/dojo/openils/reports/nls/reports.js	2009-11-11 18:52:01 UTC (rev 14869)
@@ -25,6 +25,8 @@
 	"FILTERS_LABEL_NOT_NULL": "Is not NULL",
 	"FILTERS_LABEL_NULL_BLANK": "Is NULL or Blank",
 	"FILTERS_LABEL_NOT_NULL_BLANK": "Is not NULL or Blank",
+	"FILTERS_LABEL_EQ_ANY": "Equals Any",
+	"FILTERS_LABEL_NE_ANY": "Does Not Equal Any",
 	
 	"FOLDERS_TEMPLATES": "Templates",
 	"FOLDERS_TEMPLATE": "Template",
@@ -104,6 +106,8 @@
 	"OPERATORS_IS_NOT_NULL": "Is not NULL",
 	"OPERATORS_NULL_BLANK": "Is NULL or Blank",
 	"OPERATORS_NOT_NULL_BLANK": "Is not NULL or Blank",
+	"OPERATORS_EQ_ANY": "Equals Any",
+	"OPERATORS_NE_ANY": "Does Not Equal Any",
 	
 	"SOURCE_BROWSE_AGGREGATE": "Aggregate",
 	"SOURCE_BROWSE_NON_AGGREGATE": "Non-Aggregate",

Modified: trunk/Open-ILS/web/reports/oils_rpt_filters.js
===================================================================
--- trunk/Open-ILS/web/reports/oils_rpt_filters.js	2009-11-11 18:50:41 UTC (rev 14868)
+++ trunk/Open-ILS/web/reports/oils_rpt_filters.js	2009-11-11 18:52:01 UTC (rev 14869)
@@ -66,6 +66,14 @@
 
     'is not blank' : {
         label : rpt_strings.FILTERS_LABEL_NOT_NULL_BLANK
+	},
+
+    '= any' : {
+        label : rpt_strings.FILTERS_LABEL_EQ_ANY
+    },
+
+    '<> any' : {
+        label : rpt_strings.FILTERS_LABEL_NE_ANY
 	}
 }
 

Modified: trunk/Open-ILS/web/reports/xul/operators.js
===================================================================
--- trunk/Open-ILS/web/reports/xul/operators.js	2009-11-11 18:50:41 UTC (rev 14868)
+++ trunk/Open-ILS/web/reports/xul/operators.js	2009-11-11 18:52:01 UTC (rev 14869)
@@ -66,6 +66,14 @@
 
 	'is not blank' : {
 		label : rpt_strings.OPERATORS_NOT_NULL_BLANK
+	},
+
+	'= any' : {
+		labels : { 'array' : rpt_strings.OPERATORS_EQ_ANY }
+	},
+
+	'<> any' : {
+		labels : { 'array' : rpt_strings.OPERATORS_NE_ANY }
 	}
 }
 

Modified: trunk/Open-ILS/web/reports/xul/template-config.js
===================================================================
--- trunk/Open-ILS/web/reports/xul/template-config.js	2009-11-11 18:50:41 UTC (rev 14868)
+++ trunk/Open-ILS/web/reports/xul/template-config.js	2009-11-11 18:52:01 UTC (rev 14869)
@@ -105,7 +105,7 @@
 				  alias     : field_label,
 				  join      : jointype,
 				  datatype  : datatype,
-				  op        : '=',
+				  op        : (datatype == 'array') ? '= any' : '=',
 				  op_label  : rpt_strings.TEMPLATE_CONF_EQUALS,
 				  op_value  : {}
 				};
@@ -513,13 +513,16 @@
 
 	for (var i in OILS_RPT_FILTERS) {
 		var o = OILS_RPT_FILTERS[i];
-		menu.appendChild(
-			createMenuItem(
-				{ label : o.label,
-				  onmouseup : "changeOperator({op:'"+i+"',label:'"+o.label+"'})"
-				}
-			)
-		);
+        if (o.label) {
+    		menu.appendChild(
+	    		createMenuItem(
+		    		{ label : o.label,
+			    	  onmouseup : "changeOperator({op:'"+i+"',label:'"+o.label+"'})"
+				    }
+    			)
+	    	);
+        }
+
 		if (o.labels) {
 			var keys = getKeys(o.labels);
 			for ( var k in keys ) {

Modified: trunk/Open-ILS/web/reports/xul/transforms.js
===================================================================
--- trunk/Open-ILS/web/reports/xul/transforms.js	2009-11-11 18:50:41 UTC (rev 14868)
+++ trunk/Open-ILS/web/reports/xul/transforms.js	2009-11-11 18:52:01 UTC (rev 14869)
@@ -1,6 +1,7 @@
 dojo.requireLocalization("openils.reports", "reports");
 
 var rpt_strings = dojo.i18n.getLocalization("openils.reports", "reports");
+var OILS_RPT_DTYPE_ARRAY = 'array';
 var OILS_RPT_DTYPE_STRING = 'text';
 var OILS_RPT_DTYPE_MONEY = 'money';
 var OILS_RPT_DTYPE_BOOL = 'bool';



More information about the open-ils-commits mailing list