| 1 | == !TracForm Syntax == |
| 2 | |
| 3 | All !TracForm blocks are wrapped and formatted as follows: |
| 4 | |
| 5 | {{{ |
| 6 | |
| 7 | {{{ |
| 8 | #!TracForm |
| 9 | # |
| 10 | # comments |
| 11 | # |
| 12 | #! command |
| 13 | #! command arg1 arg2 |
| 14 | # |
| 15 | # more comments... |
| 16 | # |
| 17 | #! more_commands "quoted argument" |
| 18 | # |
| 19 | |
| 20 | [tf.checklist:field] |
| 21 | [tf.who:field] |
| 22 | |
| 23 | }}} |
| 24 | |
| 25 | }}} |
| 26 | |
| 27 | (... and so on) |
| 28 | |
| 29 | Comments are ignored and can be intermixed with commands until the first non-comment line. [tf] operations are intermixed with other Trac wiki entities and the results ''can'' in some cases cause other wiki entities to take place (but only where it makes sense). |
| 30 | |
| 31 | === !TracForm Configuration === |
| 32 | |
| 33 | In the header section of the form, several commands can be used to control the rendering and configuration of the form in the form of "#!command [arg...]" lines before the first non-comment line: |
| 34 | |
| 35 | || '''Command''' || '''Version''' || '''Arguments''' || '''Meaning''' || |
| 36 | || '''page''' || 0.1+ || page-context || Sets the page portion of the context used to store the form. This defaults to the page the user is currently on. || |
| 37 | || '''subcontext''' || 0.1+ || subcontext || Sets a subcontext within the page. For example, a SVN checklist could have a "#!subcontext SVN" to differentiate it from other forms on the page. || |
| 38 | || '''default''' || 0.1+ || operation || Specifies the default operation in [tf:args] blocks. Defaults to "checkbox" || |
| 39 | || '''track_fields''' || 0.1+ || [yes|no] || If no argument given or yes, keep track of field changes in this form. Defaults to false (no field changes tracked). This affects [tf.who] and [tf.when] || |
| 40 | || '''submit_label''' || 0.1+ || label || Set the label to use for the submit button at the end of the form. The default is "Submit Form" || |
| 41 | || '''setenv''' || 0.1+ || name value || Set the name to value in the form's environment (or any subforms therein). || |
| 42 | |
| 43 | === !TracForm Operations === |
| 44 | |
| 45 | Within the TracForm, you can use the following commands with [tf.OP:arg...] blocks: |
| 46 | |
| 47 | || '''Operation''' || '''Version''' || '''Argument(s)''' || '''Meaning''' || |
| 48 | || '''tf.checkbox''' || 0.1+ || name [value] || Put an HTML checkbox here. Use value only if specified (on is default). || |
| 49 | || '''tf.radio''' || 0.1+ || name value || Put an HTML checkbox here. Use the name and value pair together. || |
| 50 | || '''tf.input''' || 0.1+ || name default || Put an HTML form input field here. || |
| 51 | || '''tf.who''' || 0.1+ || name || Show which user most recently affected the specified field. This requires track_fields to be set in the commands section. || |
| 52 | || '''tf.when''' || 0.1+ || name [strftime format string] || Show when the most change was made on the specified field. This requires track_fields to be set in the commands section. || |
| 53 | || '''tf.form_updater''' || 0.1+ || || Show the most recent updater of the form itself. || |
| 54 | || '''tf.form_updated_on''' || 0.1+ || [strftime format string] || Show when the form was most recently updated. || |
| 55 | |
| 56 | === !TracForm Arguments === |
| 57 | |
| 58 | Each arguments listed above are either: |
| 59 | |
| 60 | * Separated by whitespace. Example: #!setenv VAR VALUE |
| 61 | * Quoted with double-quotes. Example: #!submit_label "Hello World" |
| 62 | * Quoted with single-quotes. Example: [tf.input:'Big Text'] |
| 63 | |
| 64 | === !TracForm Environment === |
| 65 | |
| 66 | Using the #!setenv command above, you can retrieve previously defined elements with %NAME% (case insensitive). Other environment variables are also defined by the system: |
| 67 | |
| 68 | || '''Variable''' || '''Version''' || '''Meaning''' || |
| 69 | || '''%USER%''' || 0.1+ || The currently active user. || |
| 70 | || '''%NOW%''' || 0.1+ || The current date and time. || |
| 71 | |
| 72 | All substitutions may be applied to any argument within #! command or [tf:] operation sections. |
| 73 | |