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