aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Reaction/UI/Widget/Field/Mutable
diff options
context:
space:
mode:
authorgroditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2007-12-31 22:16:22 +0000
committergroditi <groditi@03d0b0b2-0e1a-0410-a411-fdb2f4bd65d7>2007-12-31 22:16:22 +0000
commit2f670e13aa8f30bbf6ba910f2d8ef97aa8a9e3e5 (patch)
tree512313d4cac594a322e3d1e2d4c81e4736a50567 /lib/Reaction/UI/Widget/Field/Mutable
parent5353e3f64517073ba9f06e732dd610fd2e52a01f (diff)
downloadreaction-2f670e13aa8f30bbf6ba910f2d8ef97aa8a9e3e5.tar.gz
reaction-2f670e13aa8f30bbf6ba910f2d8ef97aa8a9e3e5.zip
renaming widget packages to match new viewports
Diffstat (limited to 'lib/Reaction/UI/Widget/Field/Mutable')
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable/Boolean.pm37
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable/ChooseMany.pm88
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable/ChooseOne.pm67
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable/DateTime.pm35
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable/File.pm33
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable/HiddenArray.pm48
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable/Number.pm29
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable/Password.pm34
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable/String.pm29
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable/Text.pm29
-rw-r--r--lib/Reaction/UI/Widget/Field/Mutable/TimeRange.pm31
11 files changed, 460 insertions, 0 deletions
diff --git a/lib/Reaction/UI/Widget/Field/Mutable/Boolean.pm b/lib/Reaction/UI/Widget/Field/Mutable/Boolean.pm
new file mode 100644
index 0000000..0afb40c
--- /dev/null
+++ b/lib/Reaction/UI/Widget/Field/Mutable/Boolean.pm
@@ -0,0 +1,37 @@
+package Reaction::UI::Widget::Field::Mutable::Boolean;
+
+use Reaction::UI::WidgetClass;
+
+class Boolean is 'Reaction::UI::Widget::Field::Mutable', which {
+
+ implements fragment is_checked {
+ if ($_{viewport}->value) {
+ render 'is_checked_yes';
+ } else {
+ render 'is_checked_no';
+ }
+ };
+
+};
+
+1;
+
+__END__;
+
+=head1 NAME
+
+Reaction::UI::Widget::Field::Boolean
+
+=head1 DESCRIPTION
+
+See L<Reaction::UI::Widget::Field>
+
+=head1 AUTHORS
+
+See L<Reaction::Class> for authors.
+
+=head1 LICENSE
+
+See L<Reaction::Class> for the license.
+
+=cut
diff --git a/lib/Reaction/UI/Widget/Field/Mutable/ChooseMany.pm b/lib/Reaction/UI/Widget/Field/Mutable/ChooseMany.pm
new file mode 100644
index 0000000..697e672
--- /dev/null
+++ b/lib/Reaction/UI/Widget/Field/Mutable/ChooseMany.pm
@@ -0,0 +1,88 @@
+package Reaction::UI::Widget::Field::Mutable::ChooseMany;
+
+use Reaction::UI::WidgetClass;
+
+class ChooseMany is 'Reaction::UI::Widget::Field::Mutable', which {
+
+ implements fragment action_buttons {
+ foreach my $event (
+ qw(add_all_values do_add_values do_remove_values remove_all_values)
+ ) {
+ arg "event_id_${event}" => event_id $event;
+ }
+ };
+
+ implements fragment current_values {
+ render hidden_value => over $_{viewport}->current_value_choices;
+ };
+
+ implements fragment selected_values {
+ arg event_id_remove_values => event_id 'remove_values';
+ render value_option => over $_{viewport}->current_value_choices;
+ };
+
+ implements fragment available_values {
+ arg event_id_add_values => event_id 'add_values';
+ render value_option => over $_{viewport}->available_value_choices;
+ };
+
+ implements fragment value_option {
+ arg option_name => $_->{name};
+ arg option_value => $_->{value};
+ };
+
+ implements fragment hidden_value {
+ arg hidden_value => $_->{value};
+ };
+
+};
+
+1;
+
+__END__;
+
+=head1 NAME
+
+Reaction::UI::Widget::Field::ChooseMany
+
+=head1 DESCRIPTION
+
+See L<Reaction::UI::Widget::Field>
+
+This needs a refactor to not be tied to a dual select box, but ENOTIME
+
+=head1 FRAGMENTS
+
+=head2 field
+
+renders C<available_values>, C<action_buttons>, C<selected_values> and C<current_values>
+
+=head2 current values
+
+renders the viewport's current_value_choices over hidden_value
+
+=head2 hidden_value
+
+C<content> is the value of the current choice
+
+=head2 available_value
+
+rendersthe viewport's current_available_value_choices over the option fragment
+
+=head2 selected_value
+
+rendersthe viewport's current_selected_value_choices over the option fragment
+
+=head2 option
+
+C<content> is a dummy value but C<v_value> and C<v_name> are both set.
+
+=head1 AUTHORS
+
+See L<Reaction::Class> for authors.
+
+=head1 LICENSE
+
+See L<Reaction::Class> for the license.
+
+=cut
diff --git a/lib/Reaction/UI/Widget/Field/Mutable/ChooseOne.pm b/lib/Reaction/UI/Widget/Field/Mutable/ChooseOne.pm
new file mode 100644
index 0000000..79c75fc
--- /dev/null
+++ b/lib/Reaction/UI/Widget/Field/Mutable/ChooseOne.pm
@@ -0,0 +1,67 @@
+package Reaction::UI::Widget::Field::Mutable::ChooseOne;
+
+use Reaction::UI::WidgetClass;
+
+class ChooseOne is 'Reaction::UI::Widget::Field::Mutable', which {
+
+ implements fragment option_is_required {
+ if ($_{viewport}->attribute->is_required) {
+ render 'options_is_required_yes';
+ } else {
+ render 'options_is_required_no';
+ }
+ };
+
+ implements fragment option_list {
+ render option => over $_{viewport}->value_choices;
+ };
+
+ implements fragment option {
+ arg option_name => $_->{name};
+ arg option_value => $_->{value};
+ };
+
+ implements fragment option_is_selected {
+ if ($_{viewport}->is_current_value($_->{value})) {
+ render 'option_is_selected_yes';
+ } else {
+ render 'option_is_selected_no';
+ }
+ };
+
+};
+
+1;
+
+__END__;
+
+=head1 NAME
+
+Reaction::UI::Widget::Field::ChooseOne
+
+=head1 DESCRIPTION
+
+See L<Reaction::UI::Widget::Field>
+
+=head1 FRAGMENTS
+
+=head2 field
+
+Renders a series fragment C<option> for each C<value_choices> in the viewport
+
+Additional varibles set: C<is_required> - Boolean, self-explanatory
+
+=head2 option
+
+C<content> is a dummy variable, but th additional variables C<v_value>, C<v_name>
+and C<is_selected> are set
+
+=head1 AUTHORS
+
+See L<Reaction::Class> for authors.
+
+=head1 LICENSE
+
+See L<Reaction::Class> for the license.
+
+=cut
diff --git a/lib/Reaction/UI/Widget/Field/Mutable/DateTime.pm b/lib/Reaction/UI/Widget/Field/Mutable/DateTime.pm
new file mode 100644
index 0000000..0095594
--- /dev/null
+++ b/lib/Reaction/UI/Widget/Field/Mutable/DateTime.pm
@@ -0,0 +1,35 @@
+package Reaction::UI::Widget::Field::Mutable::DateTime;
+
+use Reaction::UI::WidgetClass;
+
+class DateTime is 'Reaction::UI::Widget::Field::Mutable', which {
+
+};
+
+1;
+
+__END__;
+
+=head1 NAME
+
+Reaction::UI::Widget::Field::DateTime
+
+=head1 DESCRIPTION
+
+See L<Reaction::UI::Widget::Field>
+
+=head1 FRAGMENTS
+
+=head2 field
+
+C<content> contains viewport's C<value_string>
+
+=head1 AUTHORS
+
+See L<Reaction::Class> for authors.
+
+=head1 LICENSE
+
+See L<Reaction::Class> for the license.
+
+=cut
diff --git a/lib/Reaction/UI/Widget/Field/Mutable/File.pm b/lib/Reaction/UI/Widget/Field/Mutable/File.pm
new file mode 100644
index 0000000..42c1137
--- /dev/null
+++ b/lib/Reaction/UI/Widget/Field/Mutable/File.pm
@@ -0,0 +1,33 @@
+package Reaction::UI::Widget::Field::Mutable::File;
+
+use Reaction::UI::WidgetClass;
+
+class File is 'Reaction::UI::Widget::Field::Mutable', which {
+
+ after fragment widget {
+ arg field_type => 'file';
+ };
+
+};
+
+1;
+
+__END__;
+
+=head1 NAME
+
+Reaction::UI::Widget::Field::File
+
+=head1 DESCRIPTION
+
+See L<Reaction::UI::Widget::Field>
+
+=head1 AUTHORS
+
+See L<Reaction::Class> for authors.
+
+=head1 LICENSE
+
+See L<Reaction::Class> for the license.
+
+=cut
diff --git a/lib/Reaction/UI/Widget/Field/Mutable/HiddenArray.pm b/lib/Reaction/UI/Widget/Field/Mutable/HiddenArray.pm
new file mode 100644
index 0000000..675b2d1
--- /dev/null
+++ b/lib/Reaction/UI/Widget/Field/Mutable/HiddenArray.pm
@@ -0,0 +1,48 @@
+package Reaction::UI::Widget::Field::Mutable::HiddenArray;
+
+use Reaction::UI::WidgetClass;
+
+#move this to a normal list and let the hidden part be decided by the template..
+class HiddenArray is 'Reaction::UI::Widget::Field::Mutable', which {
+
+ implements fragment hidden_list {
+ render hidden_field => over $_{viewport}->value;
+ };
+
+ implements fragment hidden_field {
+ arg field_value => $_;
+ };
+
+};
+
+1;
+
+__END__;
+
+=head1 NAME
+
+Reaction::UI::Widget::Field::HiddenArray
+
+=head1 DESCRIPTION
+
+See L<Reaction::UI::Widget::Field>
+
+=head1 FRAGMENTS
+
+=head2 field
+
+renders fragment C<item> over the values of 'value' arrayref
+
+=head2 item
+
+C<content> is $_{_} / $_ (current item in the 'value' array)
+
+=head1 AUTHORS
+
+See L<Reaction::Class> for authors.
+
+=head1 LICENSE
+
+See L<Reaction::Class> for the license.
+
+=cut
diff --git a/lib/Reaction/UI/Widget/Field/Mutable/Number.pm b/lib/Reaction/UI/Widget/Field/Mutable/Number.pm
new file mode 100644
index 0000000..d73079c
--- /dev/null
+++ b/lib/Reaction/UI/Widget/Field/Mutable/Number.pm
@@ -0,0 +1,29 @@
+package Reaction::UI::Widget::Field::Mutable::Number;
+
+use Reaction::UI::WidgetClass;
+
+class Number is 'Reaction::UI::Widget::Field::Mutable', which {
+
+};
+
+1;
+
+__END__;
+
+=head1 NAME
+
+Reaction::UI::Widget::Field::Number
+
+=head1 DESCRIPTION
+
+See L<Reaction::UI::Widget::Field>
+
+=head1 AUTHORS
+
+See L<Reaction::Class> for authors.
+
+=head1 LICENSE
+
+See L<Reaction::Class> for the license.
+
+=cut
diff --git a/lib/Reaction/UI/Widget/Field/Mutable/Password.pm b/lib/Reaction/UI/Widget/Field/Mutable/Password.pm
new file mode 100644
index 0000000..c11a909
--- /dev/null
+++ b/lib/Reaction/UI/Widget/Field/Mutable/Password.pm
@@ -0,0 +1,34 @@
+package Reaction::UI::Widget::Field::Mutable::Password;
+
+use Reaction::UI::WidgetClass;
+
+class Password is 'Reaction::UI::Widget::Field::Mutable', which {
+
+ around fragment widget {
+ call_next;
+ arg field_type => 'password';
+ };
+
+};
+
+1;
+
+__END__;
+
+=head1 NAME
+
+Reaction::UI::Widget::Field::Password
+
+=head1 DESCRIPTION
+
+See L<Reaction::UI::Widget::Field>
+
+=head1 AUTHORS
+
+See L<Reaction::Class> for authors.
+
+=head1 LICENSE
+
+See L<Reaction::Class> for the license.
+
+=cut
diff --git a/lib/Reaction/UI/Widget/Field/Mutable/String.pm b/lib/Reaction/UI/Widget/Field/Mutable/String.pm
new file mode 100644
index 0000000..7405c4a
--- /dev/null
+++ b/lib/Reaction/UI/Widget/Field/Mutable/String.pm
@@ -0,0 +1,29 @@
+package Reaction::UI::Widget::Field::Mutable::String;
+
+use Reaction::UI::WidgetClass;
+
+class String is 'Reaction::UI::Widget::Field::Mutable', which {
+
+};
+
+1;
+
+__END__;
+
+=head1 NAME
+
+Reaction::UI::Widget::Field::String
+
+=head1 DESCRIPTION
+
+See L<Reaction::UI::Widget::Field>
+
+=head1 AUTHORS
+
+See L<Reaction::Class> for authors.
+
+=head1 LICENSE
+
+See L<Reaction::Class> for the license.
+
+=cut
diff --git a/lib/Reaction/UI/Widget/Field/Mutable/Text.pm b/lib/Reaction/UI/Widget/Field/Mutable/Text.pm
new file mode 100644
index 0000000..2cb7134
--- /dev/null
+++ b/lib/Reaction/UI/Widget/Field/Mutable/Text.pm
@@ -0,0 +1,29 @@
+package Reaction::UI::Widget::Field::Mutable::Text;
+
+use Reaction::UI::WidgetClass;
+
+class Text is 'Reaction::UI::Widget::Field::Mutable', which {
+
+};
+
+1;
+
+__END__;
+
+=head1 NAME
+
+Reaction::UI::Widget::Field::Text
+
+=head1 DESCRIPTION
+
+See L<Reaction::UI::Widget::Field>
+
+=head1 AUTHORS
+
+See L<Reaction::Class> for authors.
+
+=head1 LICENSE
+
+See L<Reaction::Class> for the license.
+
+=cut
diff --git a/lib/Reaction/UI/Widget/Field/Mutable/TimeRange.pm b/lib/Reaction/UI/Widget/Field/Mutable/TimeRange.pm
new file mode 100644
index 0000000..0cdb4aa
--- /dev/null
+++ b/lib/Reaction/UI/Widget/Field/Mutable/TimeRange.pm
@@ -0,0 +1,31 @@
+package Reaction::UI::Widget::Field::Mutable::TimeRange;
+
+use Reaction::UI::WidgetClass;
+
+class TimeRange is 'Reaction::UI::Widget::Field::Mutable', which {
+
+};
+
+1;
+
+__END__;
+
+=head1 NAME
+
+Reaction::UI::Widget::Field::TimeRange
+
+=head1 DESCRIPTION
+
+Warning: INCOMPLETE CLASS
+
+See L<Reaction::UI::Widget::Field>
+
+=head1 AUTHORS
+
+See L<Reaction::Class> for authors.
+
+=head1 LICENSE
+
+See L<Reaction::Class> for the license.
+
+=cut