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.
- fuzzy_search
-
If true, the
cxc-fuzzyparam will be appended to all search queries via the .tt files. See CatalystX::CRUD::Model::Utils for more documentation about thecxc-fuzzyparam. - default_view
-
The name of the View to use if
cxc-fmtis 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-fmttypes 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.
do_related_search( context, relationship_name )
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.