Author: ekoneil
Date: Thu Feb 17 12:46:44 2005
New Revision: 154189
URL: http://svn.apache.org/viewcvs?view=rev&rev=154189
Log:
Slight filter tweaks.
- add utility methods for building a filter URL from an arbitrary form
- switch the quote character used to surround a WHERE clause in SQLSupport. In
the long run, this needs to be user-alterable and based on
DatabaseMetaData.getIdentifierQuoteString()
BB: self
DRT: NetUI pass
Modified:
incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLSupport.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
Modified:
incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js?view=diff&r1=154188&r2=154189
==============================================================================
---
incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js
(original)
+++
incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js
Thu Feb 17 12:46:44 2005
@@ -292,4 +292,88 @@
}
return qs;
+}
+
+/* ==========================================================
+ *
+ * Utility method that will load a list of HTML form <inputs>
+ * with filter information out of the URL. The HTML ids of
+ * the <input> elements must match filter expressions in the
+ * URL's filter parameters.
+ *
+ * ==========================================================
+ */
+function doLoadNetUIFilters(formTagId, gridName) {
+ var form = document.getElementById(formTagId);
+ if(form == null)
+ alert('could not find form with id: ' + formTagId);
+
+ var netuiUrl = new NetUIFilterURL();
+ netuiUrl.init(window.location.search);
+ var gridFilters = netuiUrl.lookupFiltersForDataGrid(gridName);
+ if(gridFilters == null)
+ return;
+
+ var elems = form.elements.length;
+ for(var i = 0; i < elems; i++) {
+ var widget = form.elements[i];
+
+ if(widget.type == "submit" || widget.type == "hidden")
+ continue;
+
+ var id = widget.id;
+ var savedFilters = gridFilters.lookupFiltersForFilterExpression(id);
+ if(savedFilters != null)
+ widget.value = savedFilters[0].getFilterValue();
+ }
+ return;
+}
+
+/* ==========================================================
+ *
+ * Utility method that will create a filter URL from given
+ * an HTML form. This method walks the <input> elements
+ * in the form and builds a filter operation from the
+ * values therein. The default filter operation used here
+ * is 'contains'.
+ *
+ * Once the filters have been constructed, the filter URL
+ * is used to directly replace the URL in browser's current
+ * window.
+ *
+ * ==========================================================
+ */
+function doNetUIFilters(formTagId, gridName) {
+ var form = document.getElementById(formTagId);
+ if(form == null)
+ alert('could not find form with id: ' + formTagId);
+
+ var netuiUrl = new NetUIFilterURL();
+ netuiUrl.init(window.location.search);
+ var gridFilters = netuiUrl.lookupFiltersForDataGrid(gridName);
+ if(gridFilters == null) {
+ gridFilters = new NetUIFilterList(gridName);
+ netuiUrl.addFilterList(gridFilters);
+ }
+
+ var filters = new Array();
+ var elems = form.elements.length;
+ for(var i = 0; i < elems; i++) {
+ var widget = form.elements[i];
+
+ if(widget.type == "submit" || widget.type == "hidden")
+ continue;
+
+ var filter = new NetUIFilter(widget.id, 'contains', widget.value);
+ filters[filters.length] = filter;
+ }
+
+ gridFilters.replaceFilters(filters);
+ var search = netuiUrl.toQueryString();
+ /* set the window's location */
+ if(search != null && search.indexOf('?') < 0)
+ search += '?' + search;
+ window.location = window.location.protocol + "//" + location.host +
window.location.pathname + (search != null ? search : '');
+
+ return false;
}
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLSupport.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLSupport.java?view=diff&r1=154188&r2=154189
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLSupport.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLSupport.java
Thu Feb 17 12:46:44 2005
@@ -167,9 +167,9 @@
sb.append(" ");
if(filter.getTypeHint() == FilterTypeHint.STRING) {
- sb.append("\"");
+ sb.append("'");
sb.append(filter.getValue());
- sb.append("\"");
+ sb.append("'");
}
else {
sb.append(filter.getValue());
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java?view=diff&r1=154188&r2=154189
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
Thu Feb 17 12:46:44 2005
@@ -24,7 +24,6 @@
import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.tags.html.HtmlConstants;
-import org.apache.beehive.netui.tags.rendering.CaptionTag;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import org.apache.beehive.netui.tags.rendering.WriteRenderAppender;