Flattened searching: generalized data retrieval via public service
authorLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Tue, 20 Mar 2012 22:44:42 +0000 (18:44 -0400)
committerMike Rylander <mrylander@gmail.com>
Fri, 30 Mar 2012 21:55:54 +0000 (17:55 -0400)
commit71ddf873dcb5127cb68843289b853fed60ed68fa
tree8424d630259eb597bf8446d9dd009ebc40efa6d2
parent599bcc3b039db43edbf49350cbcde8d52f64880c
Flattened searching: generalized data retrieval via public service

For a better overview of what this feature is about than what I could
write here, see docs/TechRef/Flattener/design.txt in this commit.

This is the first new feature (as far as I know) to take advantage of
PCRUD fleshing. Very briefly, imagine issuing a query to PCRUD with lots
of arbitrarily deep fleshing, and getting back a set of flat rows with
the fields you need for display/editing/whatever all neatly picked out
as if ready to be displayed in a table or grid-based UI.

FlattenerGrid, which knows how to use this, can potentially replace and avoid
lots of relatively complex (AutoGrid + custom middle layer
methods)-powered interfaces.  AutoGrid interfaces that just work with
one fieldmapper class at a time, more or less, can just keep doing what
they're doing. Little or no advantage to switcihing to flattened data
in that case.

FlattenerGrid is CRUD-complete and has lots of the same features as
AutoGrid, where they make sense, such as the line numbers, checkboxes,
the columnpicker, multisort, etc.  Sample instance at
Open-ILS/exmpales/flattener_test.tt2 .

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
22 files changed:
Open-ILS/examples/apache/eg_vhost.conf
Open-ILS/examples/apache/startup.pl
Open-ILS/examples/tt2/flattener_test.tt2 [new file with mode: 0644]
Open-ILS/src/extras/ils_events.xml
Open-ILS/src/perlmods/lib/OpenILS/Application/Fielder.pm
Open-ILS/src/perlmods/lib/OpenILS/Application/Flattener.pm [new file with mode: 0644]
Open-ILS/src/perlmods/lib/OpenILS/WWW/FlatFielder.pm [new file with mode: 0644]
Open-ILS/src/templates/acq/picklist/user_request.tt2
Open-ILS/src/templates/conify/global/config/barcode_completion.tt2
Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2
Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2
Open-ILS/src/templates/conify/global/config/hold_matrix_matchpoint.tt2
Open-ILS/src/templates/vandelay/inc/import_errors.tt2
Open-ILS/web/js/dojo/openils/FlattenerStore.js [new file with mode: 0644]
Open-ILS/web/js/dojo/openils/widget/AutoGrid.js
Open-ILS/web/js/dojo/openils/widget/FlattenerFilterDialog.js [new file with mode: 0644]
Open-ILS/web/js/dojo/openils/widget/FlattenerGrid.js [new file with mode: 0644]
Open-ILS/web/js/dojo/openils/widget/GridColumnPicker.js
Open-ILS/web/js/dojo/openils/widget/PCrudFilterDialog.js
Open-ILS/web/js/dojo/openils/widget/_GridHelperColumns.js [new file with mode: 0644]
Open-ILS/xsl/FlatFielder2HTML.xsl [new file with mode: 0644]
docs/TechRef/Flattener/design.txt [new file with mode: 0644]