NAME

CatalystX::CRUD::YUI::LiveGrid - ExtJS LiveGrid objects

SYNOPSIS

my $livegrid = $yui->livegrid( 
           results     => $results,    # CX::CRUD::Results or CX::CRUD::Object
           controller  => $controller, 
           form        => $form,
           method_name => $rel_info->{method},
           col_names   => $form->metadata->field_methods,
           c           => $c,          # Catalyst context object
);
 
$livegrid->serialize;  # returns serialized results
$livegrid->count;      # returns number of rows

DESCRIPTION

This class represents the data necessary to support the ExtJS-base LiveGrid component http://www.siteartwork.de/livegrid/.

METHODS

new( opts )

Create a YUI LiveGrid object. You usually call this via CatalystX::CRUD::YUI->livegrid( opts ).

opts should include:

results

The results object passed in. May be either a CatalystX::CRUD::Results instance or CatalystX::CRUD::Object instance.

If a Results instance, each object in the Results set will be serialized.

If a Object instance, each object returned by method_name will be serialized.

form

The form object should be an instance of the Form class that corresponds to the data being serialized. In the case where results isa CatalystX::CRUD::Results object, form should be a Form corresponding to the object class in CatalystX::CRUD::Results->results(). In the case where results isa CatalystX::CRUD::Object, form should be a Form corresponding to the foreign object class represented by method_name.

controller

The controller object should be the governing controller for the objects being serialized, i.e., the controller governing form.

The new LiveGrid has the following accessors available:

pk

The primary key of the table that results represents.

columns

An arrayref of column hashrefs. YUI LiveGrid API requires these.

url

The url for fetching JSON results.

A hashref of foreign key information.

col_filter

An arrayref of column names. Used for filtering table by specific column values.

col_names

An arrayref of column names. Defaults to form->metadata->field_methods.

data

An arrayref of hashrefs. These are serialized from results.

count

The number of items in data.

counter

User-level accessor. You can get/set this to whatever you want.

NOTE: If you pass a CatalystX::CRUD::Object instance as results to new(), the object must implement a primary_key_uri_escaped() method that conforms to the syntax defined by CatalystX::CRUD::Controller make_primary_key_string(). See Rose::DBx::Object::MoreHelpers for one example.

column( field_name )

Return the column hashref meta for field_name. The hashref has 3 keys: key, label, and sortable.

serialize

Returns LiveGrid as array ref of hash refs, suitable for conversion to JSON or other transport type.

json_reader_opts

Returns hash ref suitable for JSON-ifying and passing to the LiveGrid JsonReader constructor.

json_reader_columns

Returns array ref suitable for JSON-ifying and passing to the LiveGrid JsonReader constructor.

column_defs

Returns array ref suitable for JSON-ifying for LiveGrid JS.

AUTHOR

Peter Karman, <karman@cpan.org>

BUGS

Please report any bugs or feature requests to bug-catalystx-crud-yui@rt.cpan.org, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

ACKNOWLEDGEMENTS

The Minnesota Supercomputing Institute http://www.msi.umn.edu/ and NALD http://www.nald.ca/ sponsored the development of this software.

COPYRIGHT & LICENSE

Copyright 2008 by the Regents of the University of Minnesota.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.