Bigtop

 view release on metacpan or  search on metacpan

lib/Bigtop/Backend/Control/Gantry.pm  view on Meta::CPAN

    return '[% helper %]';
}

[% END %]

[% BLOCK class_access %]
#-----------------------------------------------------------------
# get_model_name( )
#-----------------------------------------------------------------
sub get_model_name {
    return $[% model_alias %];
}

[% END %]

[% BLOCK text_description %]
#-----------------------------------------------------------------
# text_descr( )
#-----------------------------------------------------------------
sub text_descr     {
    return '[% description %]';

lib/Bigtop/Backend/Control/Gantry.pm  view on Meta::CPAN

[% BLOCK site_links %]
    return [
[% FOREACH page IN pages %]
        { link => [% page.link %], label => '[% page.label %]' },
[% END %]
    ];
[% END %]

[% BLOCK main_heading %]
[% IF limit_by %]
    my $header_option_suffix = ( $[% limit_by %] ) ? "/$[% limit_by %]" : '';

[% END %]
    my @header_options = (
[% FOREACH option IN header_options %]
        {
            text => '[% option.text %]',
            link => [% option.location +%],
            type => '[% option.type %]',
        },
[% END %]

lib/Bigtop/Backend/Control/Gantry.pm  view on Meta::CPAN

    );

    $retval->{ header_options } = $perm_obj->real_header_options;

    my $limit_to_user_id = $perm_obj->limit_to_user_id;
    $search->{ user_id } = $limit_to_user_id if ( $limit_to_user_id );

[% IF dbix AND rows AND limit_by -%]
    my $page    = $params->{ page } || 1;

    if ( $[% limit_by %] ) {
        $search->{ [% limit_by %] } = $[% limit_by %];
    }

    my $schema  = $self->get_schema();
    my $results = $[% model %]->get_listing(
        {
[% IF pseudo_cols.size > 0 %]
            '+select'   => [[% FOREACH pseudo_col IN pseudo_cols %][% pseudo_col.field %][% UNLESS loop.last %] [% END %][% END %]],
            '+as'       => [[% FOREACH pseudo_col IN pseudo_cols %]'[% pseudo_col.alias %]'[% UNLESS loop.last %] [% END %][% END %]],
[% END %]
            schema      => $schema,
            rows        => [% rows %],
            where       => $search,[% IF order_by %][% "\n" %]            order_by    => '[% order_by %]',[% END +%]
        }
    );

    my $rows          = $results->page( $page );
    $retval->{ page } = $rows->pager();

    ROW:
    while ( my $row = $rows->next ) {
[%- ELSIF dbix AND rows -%]
    my $page    = $params->{ page } || 1;

    my $schema  = $self->get_schema();
    my $results = $[% model %]->get_listing(
        {
[% IF pseudo_cols.size > 0 %]
            '+select'   => [[% FOREACH pseudo_col IN pseudo_cols %][% pseudo_col.field %][% UNLESS loop.last %] [% END %][% END %]],
            '+as'       => [[% FOREACH pseudo_col IN pseudo_cols %]'[% pseudo_col.alias %]'[% UNLESS loop.last %] [% END %][% END %]],
[% END %]
            schema      => $schema,
            rows        => [% rows %],
            where       => $search,[% IF order_by %][% "\n" %]            order_by    => '[% order_by %]',[% END +%]
        }
    );

    my $rows          = $results->page( $page );
    $retval->{ page } = $rows->pager();

    ROW:
    while ( my $row = $rows->next ) {
[%- ELSIF dbix AND limit_by -%]
    if ( $[% limit_by %] ) {
        $search->{ [% limit_by %] } = $[% limit_by %];
    }

    my $schema = $self->get_schema();
    my @rows   = $[% model %]->get_listing(
        {
[% IF pseudo_cols.size > 0 %]
            '+select'   => [[% FOREACH pseudo_col IN pseudo_cols %][% pseudo_col.field %][% UNLESS loop.last %] [% END %][% END %]],
            '+as'       => [[% FOREACH pseudo_col IN pseudo_cols %]'[% pseudo_col.alias %]'[% UNLESS loop.last %] [% END %][% END %]],
[% END %]
            schema      => $schema,
            where       => $search,[% IF order_by %][% "\n" %]            order_by    => '[% order_by %]',[% END +%]
        }
    );

    ROW:
    foreach my $row ( @rows ) {
[%- ELSIF dbix -%]
    my $schema = $self->get_schema();
    my @rows   = $[% model %]->get_listing(
        {
[% IF pseudo_cols.size > 0 %]
            '+select'   => [[% FOREACH pseudo_col IN pseudo_cols %][% pseudo_col.field %][% UNLESS loop.last %] [% END %][% END %]],
            '+as'       => [[% FOREACH pseudo_col IN pseudo_cols %]'[% pseudo_col.alias %]'[% UNLESS loop.last %] [% END %][% END %]],
[% END %]
            schema      => $schema,
            where       => $search,[% IF order_by %][% "\n" %]            order_by    => '[% order_by %]',[% END +%]
        }
    );

    ROW:
    foreach my $row ( @rows ) {
[%- ELSE -%]
    my @rows = $[% model %]->get_listing([% IF order_by %] { order_by => '[% order_by %]', } [% END %]);

    ROW:
    foreach my $row ( @rows ) {
[%- END -%]

        last ROW if $perm_obj->hide_all_data;

        my $id = $row->id;
[% FOREACH foreigner IN foreigners %]
        my $[% foreigner %] = ( $row->[% foreigner %] )
                ? $row->[% foreigner %]->foreign_display()
                : '';
[% END %]

        push(
            @{ $retval->{rows} }, {
                orm_row => $row,
                data => [
[% FOREACH data_col IN data_cols %]
                    [% data_col %],

lib/Bigtop/Backend/Control/Gantry.pm  view on Meta::CPAN

        my $json = to_json( $obj, { allow_blessed => 1 } );
        return( $json );
    }

    $self->stash->view->data( $retval );
[% END %]

[% BLOCK form_body %]
[% arg_capture %]
[%- IF dbix -%]
    my $selections = $[% model %]->get_form_selections(
        {
            schema          => $self->get_schema(),
[% IF refers_to.size > 0 %]
            foreign_tables  => {
[% FOREACH rt_table IN refers_to %]
                '[% rt_table %]' => 1,
[% END %]
            }
[% END -%]
        }
    );

[%- ELSE -%]
    my $selections = $[% model %]->get_form_selections();

[%- END -%]

    return {
[% IF form_name %]        name       => '[% form_name %]',
[% END -%]
[% IF raw_row %]        row        => $row,
[% ELSE %]        row        => $data->{row},
[% END -%]
[% FOREACH extra_key_name IN extra_keys.keys() %]

lib/Bigtop/Backend/Control/Gantry.pm  view on Meta::CPAN

[% END %]
[% END %]
            },
[% END %]
        ],
    };
[% END %]

[% BLOCK crud_helpers %]

my $[% crud_name %] = Gantry::Plugins::CRUD->new(
    add_action      => \&[% crud_name %]_add,
    edit_action     => \&[% crud_name %]_edit,
    delete_action   => \&[% crud_name %]_delete,
    form            => __PACKAGE__->can( '[% form_method_name %]' ),
    redirect        => \&[% crud_name %]_redirect,
    text_descr      => '[% text_descr %]',
);

#-----------------------------------------------------------------
# $self->[% crud_name %]_redirect( $data )

lib/Bigtop/Backend/Control/Gantry.pm  view on Meta::CPAN

#-------------------------------------------------
# $self->do_add( )
#-------------------------------------------------
sub do_add {
    my $self = shift;
[% IF with_perms %]

    Gantry::Plugins::CRUD::verify_permission( { site => $self } );
[% END %]

    $[% crud_name %]->add( $self, { data => \@_ } );
}

#-------------------------------------------------
# $self->[% crud_name %]_add( $params, $data )
#-------------------------------------------------
sub [% crud_name %]_add {
    my ( $self, $params, $data ) = @_;

    # make a new row in the $[% model_alias %] table using data from $params
    # remember to add commit if needed

    $[% model_alias %]->gupdate_or_create( $self, $params );
}

#-------------------------------------------------
# $self->do_delete( $doomed_id, $confirm )
#-------------------------------------------------
sub do_delete {
    my ( $self, $doomed_id, $confirm ) = @_;

    my $row = $[% model_alias %]->gfind( $self, $doomed_id );
[% IF with_perms %]

    Gantry::Plugins::CRUD::verify_permission( { site => $self, row => $row } );
[% END %]

    $[% crud_name %]->delete( $self, $confirm, { row => $row } );
}

#-------------------------------------------------
# $self->[% crud_name %]_delete( $data )
#-------------------------------------------------
sub [% crud_name %]_delete {
    my ( $self, $data ) = @_;

    # fish the id (or the actual row) from the data hash
    # delete it

lib/Bigtop/Backend/Control/Gantry.pm  view on Meta::CPAN


    $data->{ row }->delete;
}

#-------------------------------------------------
# $self->do_edit( $id )
#-------------------------------------------------
sub do_edit {
    my ( $self, $id ) = @_;

    my $row = $[% model_alias %]->gfind( $self, $id );
[% IF with_perms %]

    Gantry::Plugins::CRUD::verify_permission( { site => $self, row => $row } );
[% END %]

    $[% crud_name %]->edit( $self, { row => $row } );
}

#-------------------------------------------------
# $self->[% crud_name %]_edit( $param, $data )
#-------------------------------------------------
sub [% crud_name %]_edit {
    my( $self, $params, $data ) = @_;

    # retrieve the row from the data hash
    # update the row

lib/Bigtop/Backend/Control/Gantry.pm  view on Meta::CPAN

[% BLOCK soap_doc_advice %]
#-----------------------------------------------------------------
# $self->[% handler_method %](  )
#-----------------------------------------------------------------
sub [% handler_method %] {
[% arg_capture %]

    my $params = $self->params();  # easy way

[% FOREACH expected_param IN soap_params.expects %]
    my $[% expected_param.name %] = $params->{ [% expected_param.name %] };
[% END %]

# hard way:
#    my $xmlobj   = XML::LibXML->new();
#    my $dom      = $xmlobj->parse_string( $self->get_post_body() )
#            or return return_error( "Mal-formed XML request: $!" );
#
[% FOREACH expected_param IN soap_params.expects %]
#    my ( $[% expected_param.name %]_node ) = $dom->getElementsByLocalName( '[% expected_param.name %]' );
#    my $[% expected_param.name %]          = $[% expected_param.name %]_node->textContent;
[% END %]

[% FOREACH returned_param IN soap_params.returns %]
    my $[% returned_param.name %];
[% END %]

    my $time = $self->soap_current_time();

    my $ret_struct = [
        {
            GantrySoapServiceResponse => [
[% FOREACH returned_param IN soap_params.returns %]
                { [% returned_param.name %] => $[% returned_param.name %] },
[% END %]
            ]
        }
    ];

    $self->soap_namespace_set(
        'http://usegantry.org/soapservice'
    );

    return $self->soap_out( $ret_struct, 'internal', 'pretty' );

lib/Bigtop/Backend/Model/GantryCDBI.pm  view on Meta::CPAN

our $template_is_setup = 0;
our $default_template_text = <<'EO_TT_blocks';
[% BLOCK stub_table_module %]
package [% package_name %];
use strict; use warnings;

use base '[% base_class || base_class_default %]', 'Exporter';

use [% gen_package_name %];

our $[% package_alias %] = '[% package_name %]';

our @EXPORT_OK = ( '$[% package_alias %]' );

1;

=head1 NAME

[% package_name %] - model for [% table_name %] table (stub part)

=head1 DESCRIPTION

This model inherits from [% base_class || base_class_default %] and uses its generated

lib/Bigtop/Backend/Model/GantryDBIxClass.pm  view on Meta::CPAN


=head1 SYNOPSIS

In your base module:

    use [% app_name %]::Model;
    sub schema_base_class { return '[% app_name %]::Model'; }
    use Gantry::Plugins::DBIxClassConn qw( get_schema );

[%- FOREACH table_model IN table_models -%]
    use [% app_name %]::Model::[% table_model %] qw( $[% table_model | upper %] );

[%- END -%]

=head1 DESCRIPTION

This module was generated by Bigtop.  But, feel free to edit it.  You
might even want to update these docs.

=over 4

lib/Bigtop/Backend/Model/GantryDBIxClass.pm  view on Meta::CPAN

[% END %]

[% BLOCK stub_table_module %]
package [% package_name %];
use strict; use warnings;

use base '[% base_class || base_class_default %]', 'Exporter';

use [% gen_package_name %];

our $[% package_alias %] = '[% package_name %]';

our @EXPORT_OK = ( '$[% package_alias %]' );

1;

=head1 NAME

[% package_name %] - model for [% table_name %] table (stub part)

=head1 DESCRIPTION

This model inherits from its generated helper, which inherits from

lib/Bigtop/Backend/Model/GantryDBIxClass.pm  view on Meta::CPAN

[% FOREACH option IN option_field.options %]
        [% option.db_value %] => '[% option.label %]',
[% END %]
    },
[% END %]
);
[% FOREACH option_field IN option_fields %]

sub [% option_field.name %]_display {
    my $self = shift;
    my $[% option_field.name %] = defined $self->[% option_field.name %] ? $self->[% option_field.name %] : '';
    return $select_map_for{ [% option_field.name %] }{ $[% option_field.name %] }
           || $[% option_field.name %];
}
[% END %]
[% END %]


1;

=head1 NAME

[% gen_package_name %] - model for [% table_name %] table (generated part)

lib/Bigtop/Backend/Model/GantryDBIxClass.pm  view on Meta::CPAN

[% END %]

[% BLOCK gen_three_way_module %]
package [% stub_package %];
use strict; use warnings;

use base '[% model_base_class %]', 'Exporter';

use [% gen_package %];

our $[% package_alias %] = '[% stub_package %]';

our @EXPORT_OK = ( '$[% package_alias %]' );

1;

=head1 NAME

[% stub_package %] - model for [% table_name %] table (stub part)

=head1 DESCRIPTION

This model inherits from its generated helper, which inherits from



( run in 0.604 second using v1.01-cache-2.11-cpan-b61123c0432 )