Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Perl by InveR ( 17 years ago )
package homm::Controller::Message;

use strict;
use warnings;
#use parent 'Catalyst::Controller';
use base 'Catalyst::Controller::FormBuilder';
use base 'Catalyst::Controller::BindLex';
use Data::Dumper;

sub index :Path :Args(0) {
    my ( $self, $c ) = @_;
    $c->stash->{template} = 'index.tt2';
    $c->forward('list');
}

sub list :Local Form('message/edit') {
    my ( $self, $c, $status ) = @_;
    my $messages     = $c->model('HommDB::messages');
    my $s            = $c->stash;
    my $form         = $self->formbuilder;
    
    $form->action('/message/add');
    #if( $status == 1 ){ $s->{messl} = '????????? ??? ????, ??????????!';}
    #elsif( $status == 2 ){ $s->{messl} = '??????? ?? ?????????!';}
    
    $s->{user}     = $c->get_user();
    $s->{messages} = $messages;
    $s->{form}     = $form;
    if( $c->check_user_roles('admin') ) { $s->{template} = 'list_admin.tt2'; }
    else { $s->{template} = 'list.tt2'; }

}

sub delete :Local {
    my ( $self, $c, $id ) = @_;
    my $mess = $c->model('HommDB::messages')->find({id => $id});
    $c->stash->{mess} = $mess;
    
    if ($mess) {
        $c->stash->{messl} = '????????? ?? '.$mess->name.' ???????!';
        $mess->delete;
    }
    else {
        $c->stash->{messl} = "???? ????????? ? id = $id";
    }
    $c->response->redirect($c->uri_for('list'));
}

sub edit : Local Form {
    my ( $self, $c, $id ) = @_;
    my $form = $self->formbuilder;
    my $s = $c->stash;
 
    my $message = $c->model('HommDB::messages')->find_or_new({id => $id});

    $s->{form} = $form;
    $s->{template} = 'edit.tt2';

    if ( $form->submitted && $form->validate ) {
        $message->name($form->field('name'));
        $message->message($form->field('message'));
        $message->update_or_insert;
        #$s->{messl} = ( $id > 0 ? '?????????' : '??????? ?? ?????????!' ).$message->name;
        $c->response->redirect( $c->uri_for('list'));
        $c->detach();
    } else {
        $form->field( name  => 'name',
                      value => $message->name);
        $form->field( name  => 'message',
                      value => $message->message);
        #$c->response->redirect( $c->uri_for('list') );
        #$c->detach();
    }
}

sub add : Local Form('/message/edit') {
    my ( $self, $c ) = @_;
    $c->stash->{template} = 'edit.tt2';
    $c->forward('edit', []);
}

1;

 

Revise this Paste

Your Name: Code Language: