NAME

CatalystX::CRUD::YUI::DataTable - YUI DataTable objects

SYNOPSIS

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

METHODS

new( opts )

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

Attributes

A DataTable object has the following attributes:

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.

pk

The primary key of the table that results represents.

columns

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

url

The url for fetching JSON results.

A hashref of foreign key information.

col_filter

An arrayref of column names. # TODO used for??

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 DataTable as array ref of hash refs, suitable for conversion to JSON or other transport type.

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/ sponsored the development of this software.

COPYRIGHT & LICENSE

Copyright 2008 by the Regents of the University of Minnesota. All Rights Reserved.

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