Reaction::UI::Widget::Action - Reaction::UI::Widget::Action documentation


Reaction documentation Contained in the Reaction distribution.

Index


Code Index:

NAME

Top

Reaction::UI::Widget::Action

DESCRIPTION

Top

This is a subclass of Reaction::UI::Widget::Object::Mutable.

FRAGMENTS

Top

widget

Additionally provides the method argument containing the value of the viewport's method.

message

Empty if the viewport's has_message returns false. Otherwise sets the message_string argument to the viewport's message and renders the message_layout fragment.

error_message

Same as the message fragment above except that it checks has_error_message, sets message_string to the viewport's error_message and renders error_message_layout.

ok_button_fragment

Renders nothing unless the viewport accepts the ok event.

If it does, it provides the following arguments before rendering ok_button:

event_id

Is set to the event id ok.

label

Is set to the localized ok_label of the viewport.

apply_button_fragment

Renders nothing unless the viewport accepts the apply event.

If it does, it provides the following arguments before rendering apply_button:

event_id

Is set to the event id apply.

label

Is set to the localized apply_label of the viewport.

cancel_button_fragment

Renders nothing unless the viewport accepts the close event.

If it does, it provides the following arguments before rendering cancel_button:

event_id

Is set to the event id close.

label

Is set to the localized close_label of the viewport.

LAYOUT SETS

Top

base

  share/skin/base/layout/action.tt

The following layouts are provided:

widget

Renders a div element containing a form. The form element contains the rendered header, container_list, buttons and footer fragments.

Renders the error message.

container_list

Simply renders the parent container_list.

container

Simply renders the parent container.

buttons

First renders the message fragment, then the ok_button_fragment, the apply_button_fragment and the cancel_button_fragment.

message_layout

Renders the message_string argument in a span element with an action_message class.

error_message_layout

Renders the message_string argument in a span element with an action_error_message class.

standard_button

Renders a submit button in a span with the name set to the event_id argument, and the value set to the label argument.

ok_button

Renders the standard_button fragment.

apply_button

Renders the standard_button fragment.

cancel_button

Renders the standard_button fragment.

Empty by default.

default

  share/skin/base/layout/action.tt

Extends the layout set of the same name in the parent skin.

The following layouts are provided:

container

Adds a br element after the original container fragment.

message_layout

Adds a br element after the original message_layout fragment.

SEE ALSO

Top

Reaction::UI::Widget::Object::Mutable

AUTHORS

Top

See Reaction::Class for authors.

LICENSE

Top

See Reaction::Class for the license.


Reaction documentation Contained in the Reaction distribution.

package Reaction::UI::Widget::Action;

use Reaction::UI::WidgetClass;

use namespace::clean -except => [ qw(meta) ];
extends 'Reaction::UI::Widget::Object::Mutable';

after fragment widget {
  my $vp = $_{viewport};
  arg 'method' => $vp->method;
  arg 'form_id' => $vp->location;
  arg 'action' => $vp->has_action ? $vp->action : '';
};

implements fragment message {
  return unless $_{viewport}->has_message;
  arg message_string => $_{viewport}->message;
  render 'message_layout';
};

implements fragment error_message {
  return unless $_{viewport}->has_error_message;
  arg message_string => $_{viewport}->error_message;
  render 'error_message_layout';
};

implements fragment ok_button_fragment {
  if (grep { $_ eq 'ok' } $_{viewport}->accept_events) {
    arg 'event_id' => event_id 'ok';
    arg 'label' => localized $_{viewport}->ok_label;
    render 'ok_button';
  }
};

implements fragment apply_button_fragment {
  if (grep { $_ eq 'apply' } $_{viewport}->accept_events) {
    arg 'event_id' => event_id 'apply';
    arg 'label' => localized $_{viewport}->apply_label;
    render 'apply_button';
  }
};

implements fragment cancel_button_fragment {
  if (grep { $_ eq 'close' } $_{viewport}->accept_events) {
    arg 'event_id' => event_id 'close';
    arg 'label' => localized $_{viewport}->close_label;
    render 'cancel_button';
  }
};

implements fragment maybe_inner {
  if( my $inner = $_{viewport}->inner ){
    arg '_' => $inner;
    render 'viewport';
  }
};


__PACKAGE__->meta->make_immutable;


1;

__END__;