Author image Colin Newell
and 1 contributors

NAME

OpusVL::AppKit::RolesFor::Controller::GUI

VERSION

version 2.29

SYNOPSIS

    package MyApp::Controller::SomeFunkyThing;
    use Moose;
    BEGIN{ extends 'Catalyst::Controller' };
    with 'OpusVL::AppKit::RolesFor::Controller::GUI';

    __PACKAGE__->config( appkit_name        => 'My Funky App' );
    __PACKAGE__->config( appkit_icon        => 'static/funkster/me.gif' );
    __PACKAGE__->config( appkit_myclass     => 'MyApp' );
    
    sub index
        :Path
        :Args(0)
        :NavigationHome
        :NavigationName("Funky Home")
        :PortletName("Funky Portlet")
        :AppKitForm
    {   
        # .. do some funky stuff .. 
    }

DESCRIPTION

    If you use this Moose::Role with a controller it can be intergrated into the OpusVL::AppKit.

    You can just do: 
        use Moose;
        with 'OpusVL::AppKit::RolesFor::Controller::GUI';

    Give your Controller a name within the GUI:
        __PACKAGE__->config( appkit_name => 'Some Name' );

    To make use of the additional features you will have to use one of the following
    action method attributes:

        NavigationHome
            This tells the GUI this action is the 'Home' action for this controller.

        NavigationName
            Tells the GUI this action is a navigation item and what its name should be.

        PortletName
            Tells the GUI this action is a portlet action, so calling is only garented to fill
            out the 'portlet' stash key.

        AppKitForm
            Behaves like FormConfig option in FormFu Controller, except it loads form from the 
            ShareDir of namespace passed in 'appkit_myclass'
            
        SearchName
            Tells the GUI this action is a search action and what its name should be

NAME

    OpusVL::AppKit::RolesFor::Controller::GUI - Role for Controllers wanting to interact with AppKit

METHODS

home_action

    This should be the hash of action details that pertain the the 'home action' of a controller.
    If there is none defined for a controller, it should be undef.
    This should be an Array Ref of HashRef's pertaining the actions that make up the navigation
    This should be an Array Ref of HashRef's pertaining the actions that make up the navigation
    grouped by appkit_method_group.

portlet_actions

    This should be an Array Ref of HashRef's pertaining the actions that are Portlet's

search_actions

    This should be an Array Ref of HashRef's pertaining the actions that are Portlet's

create_action

    Hook into the creation of the actions.
    Here we read the action attributes and act accordingly.

intranet_action_list

Returns a sorted list of actions for the menu filtered by what the user can access.

application_action_list

Returns a sorted list of actions for the menu filtered by what the user can access.

It returns a list of hashes containing two keys, group (the group name) and actions, a list of the actions for that group.

date_long

Provides a standard DateTime formatting function that is also mirrored (and called) from TT using the date_long() function.

Monday, 10 May 2010

date_short

Provides a short date format function for DD-MM-YYYY display.

time_long

Provides a long time format function, HH:MM:SS

time_short

Provides a short time format function, HH:MM

add_breadcrumb

Adds the a breadcrumb on your breadcrumb trial. Pass it the context object and the breadcumb info,

    $self->add_breadcrumb($c, { name => 'Title', url => $search_url });

add_final_crumb

Adds the final breadcrumb on your trial. Simply pass it the title of the breadcrumb.

    $self->add_final_crumb($c, 'Title');

flag_callback_error

Flags an HTML::FormFu callback error.

Setup a callback constraint on your form,

  - type: Text
    name: project
    label: Project
    constraints:
      - type: Callback
        message: Project is invalid

Then within your controller you can do,

    $self->flag_callback_error($c, 'project');

This will terminate the processing of the action too, by doing a $c->detach;

SEE ALSO

    L<CatalystX::AppBuilder>,
    L<OpusVL::AppKit>,
    L<Catalyst>

AUTHOR

OpusVL - www.opusvl.com

COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by OpusVL - www.opusvl.com.

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