[Catalyst-commits] r7882 - /
trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/AdvancedCRUD
zarquon at dev.catalyst.perl.org
zarquon at dev.catalyst.perl.org
Mon Jun 2 14:34:09 BST 2008
Author: zarquon
Date: 2008-06-02 14:34:09 +0100 (Mon, 02 Jun 2008)
New Revision: 7882
Modified:
/
trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/AdvancedCRUD/FormFu.pod
Log:
r13370 at zaphod: kd | 2008-06-02 23:28:53 +1000
added foolproof yaml
Property changes on:
___________________________________________________________________
Name: svk:merge
- 1b129c88-ebf4-0310-add9-f09427935aba:/local/catalyst:4278
1c72fc7c-9ce4-42af-bf25-3bfe470ff1e8:/local/Catalyst:13369
3b9770f9-e80c-0410-a7de-cd203d167417:/local/catalyst:3514
dd8ad9ea-0304-0410-a433-df5f223e7bc0:/local/Catalyst:6909
+ 1b129c88-ebf4-0310-add9-f09427935aba:/local/catalyst:4278
1c72fc7c-9ce4-42af-bf25-3bfe470ff1e8:/local/Catalyst:13370
3b9770f9-e80c-0410-a7de-cd203d167417:/local/catalyst:3514
dd8ad9ea-0304-0410-a433-df5f223e7bc0:/local/Catalyst:6909
Modified: trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/AdvancedCRUD/FormFu.pod
===================================================================
--- trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/AdvancedCRUD/FormFu.pod 2008-06-02 13:33:46 UTC (rev 7881)
+++ trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/AdvancedCRUD/FormFu.pod 2008-06-02 13:34:09 UTC (rev 7882)
@@ -202,7 +202,11 @@
name: submit
value: Submit
+B<NOTE:> Copying and pasting YAML from perl documentation is sometimes
+tricky. See the L<Copy-Paste versions of the YAML Config> section of
+this document for a foolproof procedure.
+
=head2 Update the CSS
Edit C<root/src/ttsite.css> and add the following lines to the bottom of
@@ -383,6 +387,10 @@
# The user cannot leave any fields blank
- Required
+B<NOTE:> Copying and pasting YAML from perl documentation is sometimes
+tricky. See the L<Copy-Paste versions of the YAML Config> section of
+this document for a foolproof procedure.
+
The main changes are:
=over 4
@@ -546,6 +554,140 @@
green. Experiment with other edits to various books.
+=head2 Copy-Paste versions of the YAML Config.
+
+YAML, the config format used in formfu depends on whitespace and can
+behave strangely in perl documentation because POD is also whitespace
+dependent. If you copy and paste the YAML below into the file
+C<root/forms/books/formfu_create.yml> and then run the following perl
+oneliner, you're pretty much guaranteed to get valid YAML:
+
+ $ perl -p -i -e 's/\s+\|//g' root/forms/books/formfu_create.yml
+
+=head2 YAML for the first half of the tutorial:
+
+ |---
+ |# indicator is the field that is used to test for form submission
+ |indicator: submit
+ |# Start listing the form elements
+ |elements:
+ | # The first element will be a text field for the title
+ | - type: Text
+ | name: title
+ | label: Title
+ | # This is an optional 'mouse over' title pop-up
+ | attributes:
+ | title: Enter a book title here
+ |
+ | # Another text field for the numeric rating
+ | - type: Text
+ | name: rating
+ | label: Rating
+ | attributes:
+ | title: Enter a rating between 1 and 5 here
+ |
+ | # Add a drop-down list for the author selection. Note that we will
+ | # dynamically fill in all the authors from the controller but we
+ | # could manually set items in the drop-list by adding this YAML code:
+ | # options:
+ | # - [ '1', 'Bastien' ]
+ | # - [ '2', 'Nasseh' ]
+ | - type: Select
+ | name: authors
+ | label: Author
+ |
+ | # The submit button
+ | - type: Submit
+ | name: submit
+ | value: Submit
+
+
+=head2 YAML for the second part of the tutorial
+
+ |---
+ |# indicator is the field that is used to test for form submission
+ |indicator: submit
+ |# Start listing the form elements
+ |elements:
+ | # The first element will be a text field for the title
+ | - type: Text
+ | name: title
+ | label: Title
+ | # This is an optional 'mouse over' title pop-up
+ | attributes:
+ | title: Enter a book title here
+ | # Use Filter to clean up the input data
+ | filter:
+ | # Remove whitespace at both ends
+ | - TrimEdges
+ | # Escape HTML characters for safety
+ | - HTMLEscape
+ | # Add constraints for the field
+ | constraints:
+ | # The user cannot leave this field blank
+ | - SingleValue
+ | # Force the length to be between 5 and 40 chars
+ | - type: Length
+ | min: 5
+ | max: 40
+ | # Override the default of 'Invalid input'
+ | message: Length must be between 5 and 40 characters
+ |
+ | # Another text field for the numeric rating
+ | - type: Text
+ | name: rating
+ | label: Rating
+ | attributes:
+ | title: Enter a rating between 1 and 5 here
+ | # Use Filter to clean up the input data
+ | filter:
+ | # Remove whitespace at both ends
+ | - TrimEdges
+ | # Remove everything except digits
+ | - NonNumeric
+ | # Add constraints to the field
+ | constraints:
+ | - SingleValue
+ | # Make sure it's a number
+ | - Integer
+ |
+ | # Add a select list for the author selection. Note that we will
+ | # dynamically fill in all the authors from the controller but we
+ | # could manually set items in the select by adding this YAML code:
+ | # options:
+ | # - [ '1', 'Bastien' ]
+ | # - [ '2', 'Nasseh' ]
+ | - type: Select
+ | name: authors
+ | label: Author
+ | # Convert the drop-down to a multi-select list
+ | multiple: 1
+ | # Display 3 entries (user can scroll to see others)
+ | size: 3
+ | # One could argue we don't need to do filters or constraints for
+ | # a select list, but it's smart to do validation and sanity
+ | # checks on this data in case a user "hacks" the input
+ | # Use Filter to clean up the input data
+ | filter:
+ | # Remove whitespace at both ends
+ | - TrimEdges
+ | # Escape HTML characters for safety
+ | - HTMLEscape
+ | # Add constraints to the field
+ | constraints:
+ | # Make sure it's a number
+ | - Integer
+ |
+ | # The submit button
+ | - type: Submit
+ | name: submit
+ | value: Submit
+ |
+ |# Globally ensure that each field only specified one value
+ |constraints:
+ | # The user cannot leave any fields blank
+ | - Required
+
=head1 AUTHOR
Kennedy Clark, C<hkclark at gmail.com>
More information about the Catalyst-commits
mailing list