The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

CatalystX::CRUD::YUI::Controller - base controller

SYNOPSIS

 package MyApp::Controller::Foo;
 use strict;
 
 # ISA order is important
 use base qw(
    CatalystX::CRUD::YUI::Controller
    CatalystX::CRUD::Controller::RHTMLO
 );
 
 __PACKAGE__->config(
    autocomplete_columns => [qw( foo bar )],
    autocomplete_method  => 'foo',
    hide_pk_columns      => 1,
    fuzzy_search         => 0,
    default_view         => 'YUI',
    fmt_to_view_map      => {
        'html' => 'YUI',
        'json' => 'YUI',
        'xls'  => 'Excel',
    },
 );
 
 1;
 

DESCRIPTION

This is a base controller class for use with CatalystX::CRUD::YUI applications. It implements URI and internal methods that the accompanying .tt and .js files rely upon.

NOTE: As of version 0.008 this class drops support for the YUI datatable feature and instead supports the ExtJS LiveGrid feature.

CONFIGURATION

See SYNOPSIS for config options specific to this class.

autocomplete_columns

See the autocomplete_columns() method. Value should be an array ref.

autocomplete_method

See the autocomplete_method() method. Value should be a method name.

hide_pk_columns

Used in the LiveGrid class. Boolean setting indicating whether the primary key column(s) should appear in the YUI LiveGrid listings or not. Default is true.

If true, the cxc-fuzzy param will be appended to all search queries via the .tt files. See CatalystX::CRUD::Model::Utils for more documentation about the cxc-fuzzy param.

default_view

The name of the View to use if cxc-fmt is not specified. This should be the name of a View that inherits from CatalystX::CRUD::YUI::View. The default is 'YUI'.

fmt_to_view_map

Hash ref of cxc-fmt types to View names. Used in end() to determine which View to set.

METHODS

Only new or overridden method are documented here.

new

Overrides base method just to call next::method and ensures config() gets merged correctly.

json_mime

Returns JSON MIME type. Default is 'application/json; charset=utf-8'.

default

Redirects to URI for 'count' in same namespace.

livegrid( context, arg )

Public URI method. Returns JSON for ExtJS LiveGrid feature.

livegrid_create_form( context )

Returns plain HTML form without wrapper for use with LiveGrid relationship manager.

livegrid_edit_form( context, oid )

Lke livegrid_create_form but returns form initialized for record represented by oid. Chained to fetch().

livegrid_related( oid, relationship_name )

Public URI method. Returns JSON for ExtJS LiveGrid feature.

Sets up stash() to mimic the foreign controller represented by relationship_name.

remove

Overrides superclass method to set the content response to 'Ok' on success, or a generic error string on failure.

CAUTION: This URI is for ManyToMany only. Using it on OneToMany or ManyToOne rel_name values will delete the related row altogether.

add

Overrides superclass method to return the new record as JSON on success, or a generic error string on failure.

form_to_object

Overrides the base CRUD method to catch errors if the expected return format is JSON.

postcommit

Overrides base method to re-read object from db.

autocomplete_columns

Should return arrayref of fields to search when the autocomplete() URI method is requested.

Set this value in config(). Default is a no-op.

autocomplete_method

Which method should be called on each search result to create the response list.

Default is the first item in autocomplete_columns().

Set this value in config(). Default is a no-op.

autocomplete( context )

Public URI method. Supports the Rose::HTMLx::Form::Field::Autocomplete API.

end

Uses the RenderView ActionClass.

Prior to passing to view, sets current_view if it is not set, based on the cxc-fmt request parameter, defaulting to 'YUI'.

NOTE:This assumes you have a View class called YUI that inherits from CatalystX::CRUD::YUI::View.

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.

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