Difference: TWikiForms (1 vs. 31)

Revision 312014-12-11 - TWikiContributor

Line: 1 to 1
 

TWiki Forms - Foundation of TWiki Applications

Line: 143 to 143
 
  • Tooltip message column: The Tooltip message will be displayed when the cursor is hovered over the field in edit view.
Changed:
<
<
  • Attributes column: Attributes specifies special attributes for the field. Multiple attributes can be entered, separated by spaces.
    • An attribute H indicates that this field is hidden, e.g. not shown in view mode. However, the field is available for editing and storing information.
>
>
  • Attributes column: Attributes may contain additional key="value" form field attributes, separated by space.
    • A hidden="1" attribute indicates that this field is hidden, e.g. not shown in view mode. However, the field is available for editing and storing information. The deprecated H attribute has the same function, it is still supported but might be removed in a future TWiki release.
 
TIP Tip: The TWiki form header is suppressed in view mode if all fields of the form are hidden. For better usability it is good to hide the whole form if the display and interaction of all form fields is done externally. For example, the display and modification of form field values can be done in a header topic that is included in each page.
Changed:
<
<
    • An attribute M indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an oops page. Mandatory fields are indicated by an asterisks next to the field name.
>
>
    • An mandatory="1" attribute indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an oops page. Mandatory fields are indicated by an asterisks next to the field name. The deprecated M attribute has the same function, it is still supported but might be removed in a future TWiki release.
    • Additional form field type specific attributes can be used, such as onfocus="..." and spellcheck="..".
  For example, a simple form just supporting entry of a name and a date would look as follows:
Line: 187 to 188
 
Name Type Size Values Tooltip message Attributes
Changed:
<
<
Many types of form fields are available. Some are TWiki internal, some are provided by extensions. Find more TWiki form field extensions on TWiki.org. The Size and Value depend on the Type used. Form field types:
>
>
Many types of form fields are available. Some are TWiki internal, some are provided by extensions. Find more TWiki form field extensions on TWiki.org. The Size, Value and Attributes depend on the Type used. Form field types:
 
Type Description Size Value
text One-line text field Text box width in number of characters Initial (default) content
Line: 203 to 204
 
select+multi+values Combination of select+multi and select+values
color screenshot-small Single-line text box and a color picker to pick a color. The color can also be typed into the text box, such as #123456.
An attribute of type="popup" shows a button that, when clicked, opens a color picker popup. See details.
Text box width in number of characters Initial (default) color
date screenshot-small Text input field and a button next to it to pick a date from a pop-up calendar. The date can also be typed into the text box. See details. Text box width in number of characters Initial (default) date
Added:
>
>
Note on Attributes:

  • Common attributes: hidden, mandatory, class, form, onblur, onfocus, onchange, onselect, onmouseover, onmouseout, spellcheck, style, tabindex, title, translate
  • Type-specific attributes:
    • text type: id, max, maxlength, min, pattern, placeholder
    • textarea type: autocomplete, id, maxlength, minlength, pattern, placeholder, wrap
    • label type: id, max, maxlength, min
    • combobox type: max, maxlength, min, pattern, placeholder
 

Values in Other Topics

As described above, you can also retrieve possible values for select, checkbox or radio types from other topics. For example, if you have a rows defined like this:

Revision 302014-10-04 - TWikiContributor

Line: 1 to 1
 

TWiki Forms - Foundation of TWiki Applications

Line: 199 to 199
 
combobox screenshot-combobox Text field & select combination box, rendered as a text input field and a button to open up a selector box Text box width in number of characters Comma-space-separated list of options of the select box - can be a dynamic SEARCH
select Select box, rendered as a picklist or a multi-row selector box depending on the size value 1: Show a picklist
• Number > 1: Multi-row selector box of specified size
• Range e.g. 3..10: Multi-row selector box with variable size - the box will never be smaller than 3 items, never larger than 10, and will be 5 high if there are only 5 options
Comma-space-separated list of options of the select box - can be a dynamic SEARCH
select+multi Like select, turning multi-select on, to allow Shift+Click and Ctrl+Click to select (or deselect) multiple items
Changed:
<
<
select+values Like select, allowing definition of values that are different to the displayed text. For example:
| Field 9 | select+values | 3 | One, Two=2, Three=III | Various values formats |
shows
but the values of options Two and Three are 2 and III, respectively.
>
>
select+values Like select, allowing definition of values that are different to the displayed text. An option is defined as value: title, where the value is the value passed on form submit, and title is the option text shown to the user. For example:
| Field 9 | select+values | 3 | One, 2: Two, III: Three | Various values formats |
shows
but the values of options Two and Three are 2 and III, respectively. A legacy title=value syntax is supported as well, for example: One, Two=2, Three=III.
 
select+multi+values Combination of select+multi and select+values
color screenshot-small Single-line text box and a color picker to pick a color. The color can also be typed into the text box, such as #123456.
An attribute of type="popup" shows a button that, when clicked, opens a color picker popup. See details.
Text box width in number of characters Initial (default) color
date screenshot-small Text input field and a button next to it to pick a date from a pop-up calendar. The date can also be typed into the text box. See details. Text box width in number of characters Initial (default) date

Revision 292013-03-31 - TWikiContributor

Line: 1 to 1
 

TWiki Forms - Foundation of TWiki Applications

Line: 25 to 25
 A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table specifies one form field.

  1. Create a new topic with your form name: YourForm, ExpenseReportForm, InfoCategoryForm, RecordReviewForm, whatever you need.
Added:
>
>

Tip, idea The name of a Form Template topic must end in Form.
 
  1. Create a TWiki table, with each column representing one element of an entry field: Name, Type, Size, Values, Tooltip message, and Attributes (see sample below).
  2. For each field, fill in a new line; for the type of field, select from the list.
Changed:
<
<
  1. Save the topic (you can later choose to enable/disable individual forms).
>
>
  1. Save the topic
 
Example:
Line: 79 to 80
 When used in the value field of the form definition, this will find all topic names in the Main web which end in "Office" and use them as the legal field values.

Changed:
<
<

Enabling Forms by Web

>
>

Adding a Form to a Topic

 
Changed:
<
<
Forms have to be enabled for each individual web. The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates.
Example:
  • Set WEBFORMS = BugForm, FeatureForm, Books.BookLoanForm
  • With WEBFORMS enabled, an extra button is added to the edit view. If the topic doesn't have a Form, an Add Form button appears at the end of the topic. If a Form is present, a Change button appears in the top row of the Form. The buttons open a screen that enables selection of a form specified in WEBFORMS, or the No form option.
  • You have to list the available form topics explicitly. You cannot use a SEARCH to define WEBFORMS.

Adding a form to a topic

  • Edit the topic and follow the "Add form" button to add a Form. This is typically done to a template topic, either to the WebTopicEditTemplate topic in a web, or a new topic that serves as an application specific template topic. Initial Form values can be set there.
>
>
  • To add a Form, follow the "More topic actions" link at the bottom of a topic, select "Add or Replace Form".
    • Select a Form Template topic. These are topics with names ending in Form that contain a Form Template table.
    • A Form is typically added to a template topic, either to the WebTopicEditTemplate topic in a web, or a new topic that serves as an application specific template topic.
    • Modify the template topic to set the initial Form values.
 
  • Additionally a new topic can be given a Form using the formtemplate parameter in the (edit or save) URL. Initial values can then be provided in the URLs or as form values:
    • other than checkboxes: name, ex: ?BugPriority=1
Line: 105 to 100
 
Changed:
<
<
  • ALERT! Note: You can create a topic in one step, without going through the edit screen. To do that, specify the save script instead of the edit script in the form action. When you specify the save script you have to use the "post" method. Example:
>
>
  • Note: You can create a topic in one step, without going through the edit screen. To do that, specify the save script instead of the edit script in the form action. When you specify the save script you have to use the "post" method. Example:
 
    <form name="newtopic" action="%SCRIPTURLPATH{"save"}%/%WEB%/" method="post">
       .....
    </form>
       
Changed:
<
<
>
>
 
Changed:
<
<
>
>
 
Changed:
<
<
  • ALERT! Note: Initial values will not be set in the form of a new topic if you only use the formtemplate parameter.
>
>
  • Note: Initial values will not be set in the form of a new topic if you only use the formtemplate parameter.
 
Changed:
<
<

Changing a form

>
>

Changing a Form

 
Changed:
<
<
  • You can change a form definition, and TWiki will try to make sure you don't lose any data from the topics that use that form.
>
>
  • To change a Form, follow the "More topic actions" link at the bottom of a topic, select "Add or Replace Form", and select a new Form.
 
Changed:
<
<
  • If you change the form definition, the changes will not take affect in a topic that uses that form until you edit and save it.
>
>
  • You can change a form definition, and TWiki will try to make sure you don't lose any data from the topics that use that form.
 
  • If you add a new field to the form, then it will appear next time you edit a topic that uses the form.
Line: 200 to 196
 
checkbox One or more checkboxes that can be toggled individually Number of checkboxes shown per line Comma-space-separated list of item labels - can be a dynamic SEARCH
checkbox+buttons Like checkbox, adding [Set] and [Clear] buttons
radio Radio buttons, mutually exclusive; only one can be selected Number of radio buttons shown per line Comma-space-separated list of item labels - can be a dynamic SEARCH
Added:
>
>
combobox screenshot-combobox Text field & select combination box, rendered as a text input field and a button to open up a selector box Text box width in number of characters Comma-space-separated list of options of the select box - can be a dynamic SEARCH
 
select Select box, rendered as a picklist or a multi-row selector box depending on the size value 1: Show a picklist
• Number > 1: Multi-row selector box of specified size
• Range e.g. 3..10: Multi-row selector box with variable size - the box will never be smaller than 3 items, never larger than 10, and will be 5 high if there are only 5 options
Comma-space-separated list of options of the select box - can be a dynamic SEARCH
select+multi Like select, turning multi-select on, to allow Shift+Click and Ctrl+Click to select (or deselect) multiple items
select+values Like select, allowing definition of values that are different to the displayed text. For example:
| Field 9 | select+values | 3 | One, Two=2, Three=III | Various values formats |
shows
but the values of options Two and Three are 2 and III, respectively.
Line: 228 to 225
 Notes:
  • The Values column must be empty in the referring form definition.

Added:
>
>

Using a form template on a different web

You can use a form template on a different web by specifying a form template in the WEB.TOPIC format.

In addition, you can put a comma separated list of webs in the TWIKIFORMPATH variable. It's referred to only when a form template is spcified without a web (TOPIC instead of WEB.TOPIC). The webs in TWIKIFORMPATH are examined in the listed order until the specified template is found.

TWIKIFORMPATH may contain TWiki variables. For example:

   * Set TWIKIFORMPATH = %APPLICATION_WEB%, %WEB%

If TWIKIFORMPATH is defined, the current web is examined only if all the webs listed in it don't have the form template.

 

Extending the range of form data types

You can extend the range of data types accepted by forms by using TWikiPlugins. All such extended data types are single-valued (can only have one value) with the following exceptions:

Line: 244 to 256
 
  • To display only the form whenever you edit a topic, set the preference variable EDITACTION to value form (see details).
  • To change the edit action in a URL, add a action=form parameter to the edit URL string, such as
    %SCRIPTURL{edit}%/%BASEWEB%/%BASETOPIC%?t=%SERVERTIME{$epoch}%;action=form (see details).
Added:
>
>
 

Build an HTML Form to Create New Form-based Topics

New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a SubmitExpenseReport topic where you can create new expense reports, a SubmitVacationRequest topic, and so on. These can specify the required template topic with its associated form. Template topics has more.

A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table specifies one form field.

Added:
>
>

Update Specific Form Fields

All the form fields are shown and can be updated when editing a topic that has a form. It is possible to have more control over the layout of a form, or update just a subset of the form fields by using a custom HTML form. For example, in a bug tracker, each topic would include a header topic that shows a form with some fields to update specific form fields of the bug item. Use the EDITFORMFIELD variable to easily create this form in the header topic. Example:

%EDITFORMFIELD{ "form" type="start" action="save" topic="%BASETOPIC%" }%
| Priority: | %EDITFORMFIELD{ "Priority" topic="%BASETOPIC%" }% |
| Status:   | %EDITFORMFIELD{ "Status"   topic="%BASETOPIC%" }% |
|  | %EDITFORMFIELD{ "form" type="submit" value="Update" }% |
%EDITFORMFIELD{ "LastUpdate" type="hidden" value="%SERVERTIME{$year-$mo-$day}%" }%
%EDITFORMFIELD{ "form" type="end" }%

Assuming the base topic has a BugForm with Priority and Status fields of type select, a LastUpdate field of type text, and some other fields. Above form shows a table with selectors for Priority and Status, and an Update button. On form submit, the Priority, Status and LastUpdate fields are updated in the base topic.

 

Searching for Form Data

Changed:
<
<
TWiki Forms accept user-input data, stored as TWikiMetaData. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see TWikiMetaData, FORMFIELD, SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search.
>
>
TWiki Forms accept user-input data, stored as TWikiMetaData. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see TWikiMetaData, EDITFORMFIELD, FORMFIELD, SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search.
 
Example
TWiki users often want to have an overview of topics they contributed to. With the $formfield parameter it is easy to display the value of a classification field next to the topic link:
| *Topic* | *Classification* |
Changed:
<
<
%SEARCH{"Main.UserName" scope="text" nosearch="on" nototal="on" order="modified" reverse="on"
>
>
%SEARCH{"Main.UserName" scope="text" nosearch="on" nototal="on" sort="modified" reverse="on"
 format="|$topic |$formfield(TopicClassification) |" web="Sandbox"}%
Line: 274 to 303
 

Related Topics: TWikiTemplates, TWikiScripts, VarSEARCH, FormattedSearch, UserDocumentationCategory

Added:
>
>
META FILEATTACHMENT attachment="screenshot-combobox.png" attr="h" comment="" date="1356580739" name="screenshot-combobox.png" path="screenshot-combobox.png" size="11949" user="TWikiContributor" version="1"

Revision 282012-08-10 - TWikiContributor

Line: 1 to 1
 

TWiki Forms - Foundation of TWiki Applications

Line: 134 to 134
  A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table specifies one form field.
Changed:
<
<
Each column of the table is one element of an entry field: Name, Type, Size, Values, Tooltip message, and Attributes.
>
>
Each row of the table defines one element of an input field:
 
Changed:
<
<
The Name, Type and Size columns are required. Other columns are optional. The form must have a header row (e.g. | *Name* | *Type* | *Size* |).

Name column: Name is the name of the form field.

Type, Size, Value columns: Type, Size and Value describe the type, size and initial value for this field:

>
>
Name Type Size Values Tooltip message Attributes
 
Changed:
<
<
Type Description Size Value
text One-line text field Text box width in number of characters Initial (default) content
textarea Multi-line text box Columns x rows, such as 80x6; default is 40x5 Initial (default) content
label Read-only text label   Text of the label
checkbox One or more checkboxes that can be toggled individually Number of checkboxes shown per line Comma-space-separated list of item labels - can be a dynamic SEARCH
checkbox+buttons Like checkbox, adding [Set] and [Clear] buttons
radio Radio buttons, mutually exclusive; only one can be selected Number of radio buttons shown per line Comma-space-separated list of item labels - can be a dynamic SEARCH
select Select box, rendered as a picklist or a multi-row selector box depending on the size value 1: Show a picklist
• Number > 1: Multi-row selector box of specified size
• Range e.g. 3..10: Multi-row selector box with variable size - the box will never be smaller than 3 items, never larger than 10, and will be 5 high if there are only 5 options
Comma-space-separated list of options of the select box - can be a dynamic SEARCH
select+multi Like select, turning multi-select on, to allow Shift+Click and Ctrl+Click to select (or deselect) multiple items
select+values Like select, allowing definition of values that are different to the displayed text. For example:
| Field 9 | select+values | 3 | One, Two=2, Three=III | Various values formats |
shows
but the values of options Two and Three are 2 and III, respectively.
select+multi+values Combination of select+multi and select+values
color screenshot-small Single-line text box and a color picker to pick a color. The color can also be typed into the text box, such as #123456.
An attribute of type="popup" shows a button that, when clicked, opens a color picker popup. See details.
Text box width in number of characters Initial (default) color
date screenshot-small Text input field and a button next to it to pick a date from a pop-up calendar. The date can also be typed into the text box. See details. Text box width in number of characters Initial (default) date
>
>
The Name, Type and Size columns are required. Other columns are optional. The form template must have a header row, e.g. at least | *Name* | *Type* | *Size* | is required. Columns:
 
Changed:
<
<
Tooltip message column: The Tooltip message will be displayed when the cursor is hovered over the field in edit view.
>
>
  • Name column: Name is the name of the form field.
 
Changed:
<
<
Attributes column: Attributes specifies special attributes for the field. Multiple attributes can be entered, separated by spaces.
>
>
  • Type, Size, Value columns: Type, Size and Value describe the type, size and initial value of this form field. Type text, checkbox, select and more are described in the Form Field Types section below.
 
Changed:
<
<
  • An attribute H indicates that this field is hidden, e.g. not shown in view mode. However, the field is available for editing and storing information.
>
>
  • Tooltip message column: The Tooltip message will be displayed when the cursor is hovered over the field in edit view.
 
Changed:
<
<
  • An attribute M indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an oops page. Mandatory fields are indicated by an asterisks next to the field name.
>
>
  • Attributes column: Attributes specifies special attributes for the field. Multiple attributes can be entered, separated by spaces.
    • An attribute H indicates that this field is hidden, e.g. not shown in view mode. However, the field is available for editing and storing information.
      TIP Tip: The TWiki form header is suppressed in view mode if all fields of the form are hidden. For better usability it is good to hide the whole form if the display and interaction of all form fields is done externally. For example, the display and modification of form field values can be done in a header topic that is included in each page.
    • An attribute M indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an oops page. Mandatory fields are indicated by an asterisks next to the field name.
  For example, a simple form just supporting entry of a name and a date would look as follows:
Line: 194 to 183
 
  • The topic definition is not read when a topic is viewed.
  • Form definition topics can be protected in the usual manner, using TWikiAccessControl, to limit who can change the form template and/or individual value lists. Note that view access is required to be able to edit topics that use the form definition, though view access to the form definition is not required to view a topic where the form has been used.
Added:
>
>

Form Field Types

Each table row of a form template defines one element of an input field:

Name Type Size Values Tooltip message Attributes

Many types of form fields are available. Some are TWiki internal, some are provided by extensions. Find more TWiki form field extensions on TWiki.org. The Size and Value depend on the Type used. Form field types:

Type Description Size Value
text One-line text field Text box width in number of characters Initial (default) content
textarea Multi-line text box Columns x rows, such as 80x6; default is 40x5 Initial (default) content
label Read-only text label   Text of the label
checkbox One or more checkboxes that can be toggled individually Number of checkboxes shown per line Comma-space-separated list of item labels - can be a dynamic SEARCH
checkbox+buttons Like checkbox, adding [Set] and [Clear] buttons
radio Radio buttons, mutually exclusive; only one can be selected Number of radio buttons shown per line Comma-space-separated list of item labels - can be a dynamic SEARCH
select Select box, rendered as a picklist or a multi-row selector box depending on the size value 1: Show a picklist
• Number > 1: Multi-row selector box of specified size
• Range e.g. 3..10: Multi-row selector box with variable size - the box will never be smaller than 3 items, never larger than 10, and will be 5 high if there are only 5 options
Comma-space-separated list of options of the select box - can be a dynamic SEARCH
select+multi Like select, turning multi-select on, to allow Shift+Click and Ctrl+Click to select (or deselect) multiple items
select+values Like select, allowing definition of values that are different to the displayed text. For example:
| Field 9 | select+values | 3 | One, Two=2, Three=III | Various values formats |
shows
but the values of options Two and Three are 2 and III, respectively.
select+multi+values Combination of select+multi and select+values
color screenshot-small Single-line text box and a color picker to pick a color. The color can also be typed into the text box, such as #123456.
An attribute of type="popup" shows a button that, when clicked, opens a color picker popup. See details.
Text box width in number of characters Initial (default) color
date screenshot-small Text input field and a button next to it to pick a date from a pop-up calendar. The date can also be typed into the text box. See details. Text box width in number of characters Initial (default) date
 

Values in Other Topics

As described above, you can also retrieve possible values for select, checkbox or radio types from other topics. For example, if you have a rows defined like this:

Revision 272011-10-01 - TWikiContributor

Line: 1 to 1
 
Changed:
<
<

TWiki Forms

>
>

TWiki Forms - Foundation of TWiki Applications

  Add structure to content with forms attached to twiki topics. TWiki forms (with form fields) and formatted search are the base for building database applications.
Line: 18 to 18
 
  1. Build an HTML form to create new topics based on that template topic
  2. Build a FormattedSearch to list topics that share the same form
Added:
>
>
TIP Tip: The blog How to Create a TWiki Application on TWiki.org is a good tutorial to get started with TWiki forms based applications.
 

Defining a Form

A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table specifies one form field.

Line: 157 to 159
  Attributes column: Attributes specifies special attributes for the field. Multiple attributes can be entered, separated by spaces.
Changed:
<
<
  • An attribute H indicates that this field should not be shown in view mode. However, the field is available for editing and storing information.
>
>
  • An attribute H indicates that this field is hidden, e.g. not shown in view mode. However, the field is available for editing and storing information.
 
  • An attribute M indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an oops page. Mandatory fields are indicated by an asterisks next to the field name.

For example, a simple form just supporting entry of a name and a date would look as follows:

Revision 262010-12-03 - TWikiContributor

Line: 1 to 1
 

TWiki Forms

Line: 132 to 136
  The Name, Type and Size columns are required. Other columns are optional. The form must have a header row (e.g. | *Name* | *Type* | *Size* |).
Changed:
<
<
Name is the name of the form field.
>
>
Name column: Name is the name of the form field.

Type, Size, Value columns: Type, Size and Value describe the type, size and initial value for this field:

Type Description Size Value
text One-line text field Text box width in number of characters Initial (default) content
textarea Multi-line text box Columns x rows, such as 80x6; default is 40x5 Initial (default) content
label Read-only text label   Text of the label
checkbox One or more checkboxes that can be toggled individually Number of checkboxes shown per line Comma-space-separated list of item labels - can be a dynamic SEARCH
checkbox+buttons Like checkbox, adding [Set] and [Clear] buttons
radio Radio buttons, mutually exclusive; only one can be selected Number of radio buttons shown per line Comma-space-separated list of item labels - can be a dynamic SEARCH
select Select box, rendered as a picklist or a multi-row selector box depending on the size value 1: Show a picklist
• Number > 1: Multi-row selector box of specified size
• Range e.g. 3..10: Multi-row selector box with variable size - the box will never be smaller than 3 items, never larger than 10, and will be 5 high if there are only 5 options
Comma-space-separated list of options of the select box - can be a dynamic SEARCH
select+multi Like select, turning multi-select on, to allow Shift+Click and Ctrl+Click to select (or deselect) multiple items
select+values Like select, allowing definition of values that are different to the displayed text. For example:
| Field 9 | select+values | 3 | One, Two=2, Three=III | Various values formats |
shows
but the values of options Two and Three are 2 and III, respectively.
select+multi+values Combination of select+multi and select+values
color screenshot-small Single-line text box and a color picker to pick a color. The color can also be typed into the text box, such as #123456.
An attribute of type="popup" shows a button that, when clicked, opens a color picker popup. See details.
Text box width in number of characters Initial (default) color
date screenshot-small Text input field and a button next to it to pick a date from a pop-up calendar. The date can also be typed into the text box. See details. Text box width in number of characters Initial (default) date
 
Changed:
<
<
The Type, Size and Value fields describe the legal values for this field, and how to display them.
  • Type checkbox specifies one or more checkboxes. The Size field specifies how many checkboxes will be displayed on each line. The Value field should be a comma-separated list of item labels.
    • Type checkbox+buttons will add Set and Clear buttons to the basic checkbox type.
  • Type radio is like checkbox except that radio buttons are mutually exclusive; only one can be selected.
  • Type label specifies read-only label text. The Value field should contain the text of the label.
  • Type select specifies a select box. The Value field should contain a comma-separated list of options for the box. The Size field can specify a fixed size for the box (e.g. 1, or a range e.g. 3..10. If you specify a range, then the box will never be smaller than 3 items, never larger than 10, and will be 5 high if there are only 5 options.
    • There are two modifiers that can be applied to the select type:
      • select+multi turns multiselect on for the select, to allow Shift+Click and Ctrl+Click to select (or deselect) multiple items.
      • select+values allows the definition of values that are different to the displayed text. For example:
        | Field 9 | select+values | 5 | One, Two=2, Three=III, Four | Various values formats |
        shows but the values or options Two and Three are 2 and III respectively.
        You can combine these modifiers e.g. select+multi+values
  • Type text specifies a one-line text field. Size specifies the text box width in number of characters. Value is the initial (default) content when a new topic is created with this form template.
  • Type textarea specifies a multi-line text box. The Size field should specify columns x rows, e.g. 80x6; default size is 40x5. As for text, the Value field specifies the initial text
  • Type date specifies a single-line text box and a button next to it; clicking on the button will bring up a calendar from which the user can select a date. The date can also be typed into the text box. Size specifies the text box width in characters. As for text, the Value field specifies the initial text
>
>
Tooltip message column: The Tooltip message will be displayed when the cursor is hovered over the field in edit view.
 
Changed:
<
<
Tooltip message is a message that will be displayed when the cursor is hovered over the field in edit view.
>
>
Attributes column: Attributes specifies special attributes for the field. Multiple attributes can be entered, separated by spaces.
 
Deleted:
<
<
Attributes specifies special attributes for the field. Multiple attributes can be entered, separated by spaces.
 
  • An attribute H indicates that this field should not be shown in view mode. However, the field is available for editing and storing information.
  • An attribute M indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an oops page. Mandatory fields are indicated by an asterisks next to the field name.
Line: 208 to 221
 Types with names like this can both take multiple values.

Hints and Tips

Changed:
<
<

Build an HTML form to create new Form-based topics

  • New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a SubmitExpenseReport topic where you can create new expense reports, a SubmitVacationRequest topic, and so on. These can specify the required template topic with its associated form. Template topics has more.
>
>

Editing Just Form Data, Without Topic Text

In some cases you want to change only the form data. You have the option of hiding the topic text with two methods:

  • To display only the form whenever you edit a topic, set the preference variable EDITACTION to value form (see details).
  • To change the edit action in a URL, add a action=form parameter to the edit URL string, such as
    %SCRIPTURL{edit}%/%BASEWEB%/%BASETOPIC%?t=%SERVERTIME{$epoch}%;action=form (see details).

Build an HTML Form to Create New Form-based Topics

New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a SubmitExpenseReport topic where you can create new expense reports, a SubmitVacationRequest topic, and so on. These can specify the required template topic with its associated form. Template topics has more.

 A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table specifies one form field.
Added:
>
>
 

Searching for Form Data

Added:
>
>
 TWiki Forms accept user-input data, stored as TWikiMetaData. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see TWikiMetaData, FORMFIELD, SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search.

Line: 231 to 258
 
Changed:
<
<
Related Topics: TWikiTemplates, TWikiScripts, UserDocumentationCategory
>
>
Related Topics: TWikiTemplates, TWikiScripts, VarSEARCH, FormattedSearch, UserDocumentationCategory

Revision 252009-04-17 - TWikiContributor

Line: 1 to 1
 

TWiki Forms

Line: 100 to 100
 
Added:
>
>
  • ALERT! Note: You can create a topic in one step, without going through the edit screen. To do that, specify the save script instead of the edit script in the form action. When you specify the save script you have to use the "post" method. Example:
        <form name="newtopic" action="%SCRIPTURLPATH{"save"}%/%WEB%/" method="post">
           .....
        </form>
           
  • HELP The edit and save scripts understand many more parameters, see TWikiScripts#edit and TWikiScripts#save for details.
 

  • ALERT! Note: Initial values will not be set in the form of a new topic if you only use the formtemplate parameter.
Line: 223 to 231
 
Changed:
<
<
Related Topics: UserDocumentationCategory, TWikiTemplates
>
>
Related Topics: TWikiTemplates, TWikiScripts, UserDocumentationCategory

Revision 242007-04-29 - TWikiContributor

Line: 1 to 1
Deleted:
<
<
 
Changed:
<
<

TWiki Forms

>
>

TWiki Forms

  Add structure to content with forms attached to twiki topics. TWiki forms (with form fields) and formatted search are the base for building database applications.
Added:
>
>
 

Overview

Changed:
<
<
By adding form-based input to freeform content, you can structure topics with unlimited, easily searchable categories. A form is enabled for a web and can be added to a topic. The form data is shown in tabular format when the topic is viewed, and can be changed in edit mode using edit fields, radio buttons, check boxes and list boxes. Many different form types can be defined in a web, though a topic can only have only form attached to it at a time.
>
>
By adding form-based input to freeform content, you can structure topics with unlimited, easily searchable categories. A form is enabled for a web and can be added to a topic. The form data is shown in tabular format when the topic is viewed, and can be changed in edit mode using edit fields, radio buttons, check boxes and list boxes. Many different form types can be defined in a web, though a topic can only have one form attached to it at a time.
  Typical steps to build an application based on TWiki forms:
  1. Define a form template
Line: 64 to 65
 
Public FAQ
Changed:
<
<
Field values can also be obtained as the result of a FormattedSearch. For example,
>
>
Field values can also be set using the result of expanding other TWiki variables. For example,
 
Changed:
<
<
%SEARCH{"Office$" scope="topic" web="%MAINWEB%" nonoise="on" type="regex" format="$web.$topic" separator=", " }%
>
>
%SEARCH{"Office$" scope="topic" web="%USERSWEB%" nonoise="on" type="regex" format="$web.$topic" separator=", " }%
 
Changed:
<
<
when used in the value field of the form definition, this will find all topic names in the Main web which end in "Office" and use them as the legal field values.
>
>
When used in the value field of the form definition, this will find all topic names in the Main web which end in "Office" and use them as the legal field values.
 

Enabling Forms by Web

Line: 101 to 102
 
Changed:
<
<
  • ALERT! Note: Initial values will not be submitted to the form of a new topic if you only use the formtemplate parameter.
>
>
  • ALERT! Note: Initial values will not be set in the form of a new topic if you only use the formtemplate parameter.
 

Changing a form

  • You can change a form definition, and TWiki will try to make sure you don't lose any data from the topics that use that form.
Line: 129 to 130
 
  • Type checkbox specifies one or more checkboxes. The Size field specifies how many checkboxes will be displayed on each line. The Value field should be a comma-separated list of item labels.
    • Type checkbox+buttons will add Set and Clear buttons to the basic checkbox type.
  • Type radio is like checkbox except that radio buttons are mutually exclusive; only one can be selected.
Changed:
<
<
  • Type label specifies read-only label text, The Value field should contian the text of the label.
>
>
  • Type label specifies read-only label text. The Value field should contain the text of the label.
 
  • Type select specifies a select box. The Value field should contain a comma-separated list of options for the box. The Size field can specify a fixed size for the box (e.g. 1, or a range e.g. 3..10. If you specify a range, then the box will never be smaller than 3 items, never larger than 10, and will be 5 high if there are only 5 options.
    • There are two modifiers that can be applied to the select type:
      • select+multi turns multiselect on for the select, to allow Shift+Click and Ctrl+Click to select (or deselect) multiple items.
Line: 162 to 163
 Field Value Notes:
  • The field value will be used to initialize a field when a form is created, unless specific values are given by the topic template or query parameters. The first item in the list for a select or radio type is the default item. For label, text, and textarea fields the value may also contain commas. checkbox fields cannot be initialized through the form template.
  • Leading and trailing spaces are not significant.
Changed:
<
<
  • Field values can also be generated through a FormattedSearch, which must yield a suitable table as the result.
  • Variables in the initial values of a form definition get expanded when form values are initialized from the form definition. The escape words $quot ("), $percnt (%), $dollar ($), $n (newline), and $nop can be used to prevent expansion.
>
>
  • Field values can also be generated through a FormattedSearch, which must yield a suitable table as the result.
  • Variables in the initial values of a form definition get expanded when the form definition is loaded.
    • If you want to use a | character in the initial values field, you have to precede it with a backslash, thus: \|.
    • You can use <nop> to prevent TWiki variables from being expanded.
    • The FormatTokens can be used to prevent expansion of other characters.
 General Notes:
  • The topic definition is not read when a topic is viewed.
  • Form definition topics can be protected in the usual manner, using TWikiAccessControl, to limit who can change the form template and/or individual value lists. Note that view access is required to be able to edit topics that use the form definition, though view access to the form definition is not required to view a topic where the form has been used.
Line: 208 to 212
 TWiki users often want to have an overview of topics they contributed to. With the $formfield parameter it is easy to display the value of a classification field next to the topic link:
| *Topic* | *Classification* |
Changed:
<
<
%SEARCH{"Main.UserName" scope="text" nosearch="on" nototal="on" order="modified" reverse="on"
>
>
%SEARCH{"Main.UserName" scope="text" nosearch="on" nototal="on" order="modified" reverse="on"
 format="|$topic |$formfield(TopicClassification) |" web="Sandbox"}%

Revision 232006-11-15 - TWikiContributor

Line: 1 to 1
 

TWiki Forms

Line: 16 to 16
 
  1. Build an HTML form to create new topics based on that template topic
  2. Build a FormattedSearch to list topics that share the same form
Changed:
<
<

Defining a Form Template

A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table is one form field.

Form Template Elements

  • form template - a set of fields defining a form
    • A web can use one or more form templates
  • form - additional meta data (besides the freeform TEXTAREA) attached to a topic
    • Within a form-enabled web, individual topics can have a form or no form
  • form field - a named item in a form (also known as a key)
  • field type - selects the field type:
    Input type Type field Size field Value field
    One or more checkboxes checkbox number of items per line comma list of item labels
    One or more checkboxes, plus Set and Clear buttons checkbox+buttons (same) (same)
    One or more radio buttons (radio buttons are mutually exclusive; only one can be selected) radio (same) (same)
    Read-only label text label ignored text
    Drop-down menu or scrollable box select 1 for drop down, 2 and up for scrollable box comma-separated list of options
    A one-line text field text text box width in number of characters initial text, if a new topic is created with a form template
    A text box textarea columns x rows, e.g. 80x6; default size is 40x5 initial text, if a new topic is created with a form template
  • field value - one or more values from a fixed set (select, checkbox, radio type) or free-form (label, text, text area).

Defining a Form

>
>

Defining a Form

A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table specifies one form field.
 
  1. Create a new topic with your form name: YourForm, ExpenseReportForm, InfoCategoryForm, RecordReviewForm, whatever you need.
Changed:
<
<
  1. Create a TWiki table, with each column head representing one element of an entry field: Name, Type, Size, Values, Tooltip message, and Attributes (see sample below).
>
>
  1. Create a TWiki table, with each column representing one element of an entry field: Name, Type, Size, Values, Tooltip message, and Attributes (see sample below).
 
  1. For each field, fill in a new line; for the type of field, select from the list.
  2. Save the topic (you can later choose to enable/disable individual forms).
Changed:
<
<
Example: WebForm
>
>
Example:
 | *Name* | *Type* | *Size* | *Values* | *Tooltip message* | *Attributes* |
| TopicClassification | select | 1 | NoDisclosure, PublicSupported, PublicFAQ | blah blah... |   |
| OperatingSystem | checkbox | 3 | OsHPUX, OsLinux, OsSolaris, OsWin | blah blah... |   |
Line: 58 to 36
 
OsVersion text 16   blah blah...  
Changed:
<
<
You can also retrieve possible values for select, checkbox or radio types from other topics:
>
>
See structure of a form for full details of what types are available and what all the columns mean.

You can also retrieve possible values for select, checkbox or radio types from other topics:

 
Changed:
<
<
Example: WebForm
>
>
Example:
 
  • In the WebForm topic, define the form:
Line: 74 to 54
 
  • Then in the TopicClassification topic, define the possible values:
Changed:
<
<
Name Type Tooltip message
NoDisclosure option blah blah...
Public Supported option blah blah...
Public FAQ option blah blah...
>
>
| *Name*            |
| NoDisclosure      |
| Public Supported  |
| Public FAQ        |
Name
NoDisclosure
Public Supported
Public FAQ
 

Field values can also be obtained as the result of a FormattedSearch. For example,

Changed:
<
<
%SEARCH{"Office$" scope="topic" web="%MAINWEB%" nototal="on" nosummary="on" nosearch="on" regex="on" format="$web.$topic" separator=", " }%
>
>
%SEARCH{"Office$" scope="topic" web="%MAINWEB%" nonoise="on" type="regex" format="$web.$topic" separator=", " }%
 
Changed:
<
<
when used in the value field of the form definition, will take the set of field values to be all topic names in the Main web which end in "Office".

Notes:

  • A very few field names are reserved. If you try to use one of these names, TWiki will automatically append an underscore to the name when the form is used.
  • The field value will be used to initialize a field when a form is created, unless specific values are given by the topic template or query parameters. The first item in the list for a select or radio type is the default item. For label, text, and textarea fields the value may also contain commas. checkbox fields cannot be initialized through the form template.
  • If a label field has no name (blank first column in the form definition) it will not be shown when the form is viewed, only when it is edited.
  • The topic definition is not read when a topic is viewed.
  • Field names can include any text, but you should stick to alphanumeric characters. If you want to use a non-wikiname for a select, checkbox or radio field, and want to get the values from another topic, you can use [[...]] links. This notation can also be used when referencing another topic to obtain field values, but a name other than the topic name is required as the name of the field.
  • Field names have to be unique. If the same name is necessary (as when the field values for several fields are obtained from the same topic), an alternative name must be assigned using the [[...]] notation.
  • The topic defining field values can also be generated through a FormattedSearch, which must yield a suitable table as the result.
  • Form definition topics can be protected in the usual manner, using TWikiAccessControl, to limit who can change the form template and/or individual value lists. Note that view access is required to be able to edit topics that use the form definition, though view access to the form definition is not required to view a topic where the form has been used.
  • The Tooltip message column is used as a tooltip for the field name (only if field name is a WikiName) - you only see the tooltip in edit view.
  • The Attributes column is used to define special behavior for that form field (multiple attributes can be entered, with or without separators):
    • An attribute H indicates that this field should not be shown in view mode. However, the field is available for editing and storing information.
    • An attribute M indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an oops page. Mandatory fields are indicated by an asterisks next to the field name.
>
>
when used in the value field of the form definition, this will find all topic names in the Main web which end in "Office" and use them as the legal field values.
 

Enabling Forms by Web

Forms have to be enabled for each individual web. The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates.

Changed:
<
<
>
>
 Example:
  • Set WEBFORMS = BugForm, FeatureForm, Books.BookLoanForm
  • With WEBFORMS enabled, an extra button is added to the edit view. If the topic doesn't have a Form, an Add Form button appears at the end of the topic. If a Form is present, a Change button appears in the top row of the Form. The buttons open a screen that enables selection of a form specified in WEBFORMS, or the No form option.
Added:
>
>
  • You have to list the available form topics explicitly. You cannot use a SEARCH to define WEBFORMS.
 
Changed:
<
<

Add a form to a topic

>
>

Adding a form to a topic

 
Changed:
<
<
  • Edit a topic and follow the "Add form" button to add a Form to the topic. This is typically done to a template topic, either to the WebTopicEditTemplate topic in a web, or a new topic that serves as an application specific template topic. Initial Form values can be set there.
>
>
  • Edit the topic and follow the "Add form" button to add a Form. This is typically done to a template topic, either to the WebTopicEditTemplate topic in a web, or a new topic that serves as an application specific template topic. Initial Form values can be set there.
 
  • Additionally a new topic can be given a Form using the formtemplate parameter in the (edit or save) URL. Initial values can then be provided in the URLs or as form values:
    • other than checkboxes: name, ex: ?BugPriority=1
Line: 127 to 96
 
New topic name
Changed:
<
<
>
>
 

  • ALERT! Note: Initial values will not be submitted to the form of a new topic if you only use the formtemplate parameter.
Deleted:
<
<

Build an HTML form to create new Form-based topics

  • New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a SubmitExpenseReport topic where you can create new expense reports, a SubmitVacationRequest topic, and so on. These can specify the required template topic with its associated form. Template topics has more.
 

Changing a form

  • You can change a form definition, and TWiki will try to make sure you don't lose any data from the topics that use that form.
Line: 147 to 112
 
  • If you delete a field from the form, or change a field name, then the data will not be visible when you edit the topic (the changed form definition will be used). If you save the topic, the old data will be lost (though thanks to revision control, you can always see it in older versions of the topic)
Added:
>
>
  • If two people edit the same topic containing a form at exactly the same time, and both change fields in the form, TWiki will try to merge the changes so that no data is lost.

Structure of a Form Template

A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table specifies one form field.

Each column of the table is one element of an entry field: Name, Type, Size, Values, Tooltip message, and Attributes.

The Name, Type and Size columns are required. Other columns are optional. The form must have a header row (e.g. | *Name* | *Type* | *Size* |).

Name is the name of the form field.

The Type, Size and Value fields describe the legal values for this field, and how to display them.

  • Type checkbox specifies one or more checkboxes. The Size field specifies how many checkboxes will be displayed on each line. The Value field should be a comma-separated list of item labels.
    • Type checkbox+buttons will add Set and Clear buttons to the basic checkbox type.
  • Type radio is like checkbox except that radio buttons are mutually exclusive; only one can be selected.
  • Type label specifies read-only label text, The Value field should contian the text of the label.
  • Type select specifies a select box. The Value field should contain a comma-separated list of options for the box. The Size field can specify a fixed size for the box (e.g. 1, or a range e.g. 3..10. If you specify a range, then the box will never be smaller than 3 items, never larger than 10, and will be 5 high if there are only 5 options.
    • There are two modifiers that can be applied to the select type:
      • select+multi turns multiselect on for the select, to allow Shift+Click and Ctrl+Click to select (or deselect) multiple items.
      • select+values allows the definition of values that are different to the displayed text. For example:
        | Field 9 | select+values | 5 | One, Two=2, Three=III, Four | Various values formats |
        shows but the values or options Two and Three are 2 and III respectively.
        You can combine these modifiers e.g. select+multi+values
  • Type text specifies a one-line text field. Size specifies the text box width in number of characters. Value is the initial (default) content when a new topic is created with this form template.
  • Type textarea specifies a multi-line text box. The Size field should specify columns x rows, e.g. 80x6; default size is 40x5. As for text, the Value field specifies the initial text
  • Type date specifies a single-line text box and a button next to it; clicking on the button will bring up a calendar from which the user can select a date. The date can also be typed into the text box. Size specifies the text box width in characters. As for text, the Value field specifies the initial text

Tooltip message is a message that will be displayed when the cursor is hovered over the field in edit view.

Attributes specifies special attributes for the field. Multiple attributes can be entered, separated by spaces.

  • An attribute H indicates that this field should not be shown in view mode. However, the field is available for editing and storing information.
  • An attribute M indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an oops page. Mandatory fields are indicated by an asterisks next to the field name.

For example, a simple form just supporting entry of a name and a date would look as follows:

| *Name* | *Type* | *Size* |
| Name   | text   | 80     |
| Date   | date   | 30     |
Field Name Notes:
  • Field names have to be unique.
  • A very few field names are reserved. If you try to use one of these names, TWiki will automatically append an underscore to the name when the form is used.
  • You can space out the title of the field, and it will still find the topic e.g. Aeroplane Manufacturers is equivalent to AeroplaneManufacturers.
  • If a label field has no name, it will not be shown when the form is viewed, only when it is edited.
  • Field names can in theory include any text, but you should stick to alphanumeric characters. If you want to use a non-wikiname for a select, checkbox or radio field, and want to get the values from another topic, you can use [[...]] links. This notation can also be used when referencing another topic to obtain field values, but a name other than the topic name is required as the name of the field.
  • Leading and trailing spaces are not significant.
Field Value Notes:
  • The field value will be used to initialize a field when a form is created, unless specific values are given by the topic template or query parameters. The first item in the list for a select or radio type is the default item. For label, text, and textarea fields the value may also contain commas. checkbox fields cannot be initialized through the form template.
  • Leading and trailing spaces are not significant.
  • Field values can also be generated through a FormattedSearch, which must yield a suitable table as the result.
  • Variables in the initial values of a form definition get expanded when form values are initialized from the form definition. The escape words $quot ("), $percnt (%), $dollar ($), $n (newline), and $nop can be used to prevent expansion.
General Notes:
  • The topic definition is not read when a topic is viewed.
  • Form definition topics can be protected in the usual manner, using TWikiAccessControl, to limit who can change the form template and/or individual value lists. Note that view access is required to be able to edit topics that use the form definition, though view access to the form definition is not required to view a topic where the form has been used.

Values in Other Topics

As described above, you can also retrieve possible values for select, checkbox or radio types from other topics. For example, if you have a rows defined like this:
| *Name*                 | *Type* | *Size* |
| AeroplaneManufacturers | select |        |
the TWiki will look for the topic AeroplaneManufacturers to get the possible values for the select.

The AeroplaneManufacturers topic must contain a table, where each row of the table describes a possible value. The table only requires one column, Name. Other columns may be present, but are ignored.

For example:

| *Name* |
| Routan |
| Focke-Wulf |
| De Havilland |

Notes:

  • The Values column must be empty in the referring form definition.

Extending the range of form data types

You can extend the range of data types accepted by forms by using TWikiPlugins. All such extended data types are single-valued (can only have one value) with the following exceptions:
  • any type name starting with checkbox
  • any type name with +multi anywhere in the name
Types with names like this can both take multiple values.

Hints and Tips

Build an HTML form to create new Form-based topics

  • New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a SubmitExpenseReport topic where you can create new expense reports, a SubmitVacationRequest topic, and so on. These can specify the required template topic with its associated form. Template topics has more.
A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table specifies one form field.
 
Changed:
<
<

Searching for Form Data

>
>

Searching for Form Data

 TWiki Forms accept user-input data, stored as TWikiMetaData. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see TWikiMetaData, FORMFIELD, SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search.

Line: 156 to 208
 TWiki users often want to have an overview of topics they contributed to. With the $formfield parameter it is easy to display the value of a classification field next to the topic link:
| *Topic* | *Classification* |
Changed:
<
<
%SEARCH{"Main.UserName" scope="text" regex="off" nosearch="on" nototal="on" order="modified" reverse="on"
>
>
%SEARCH{"Main.UserName" scope="text" nosearch="on" nototal="on" order="modified" reverse="on"
 format="|$topic |$formfield(TopicClassification) |" web="Sandbox"}%
Changed:
<
<

Extending the range of form data types

Several Plugins allow you to extend the range of data types accepted by forms. For example, the TWiki:Plugins.DateFieldPlugin lets you add a 'date' type to the available data types. All data types are single-valued (can only have one value) with the following exceptions:
  • any type name starting with checkbox
  • any type name with +multi anywhere in the name
Types with names like this can both take multiple values.

Gotcha!

>
>
Searching forms this way is obviously pretty inefficient, but it's easy to do. If you want better performance, take a look at some of the structured wiki extensions that support higher performance searching e.g. TWiki:Plugins.DBCachePlugin.

Gotcha!

 
  • Some browsers may strip linefeeds from text fields when a topic is saved. If you need linefeeds in a field, make sure it is a textarea.
Deleted:
<
<

Importing Category Table Data

Very, very old TWiki releases used a system called the "TWikiCategoryTable". Later releases support automatic import of this data.

On upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the old twikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable WEBFORMS. If missing, pages will display, but attempting to edit results in an error message.

The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.

TIP If things aren't working correctly, there may be useful entries in data/warning.txt.

 

Related Topics: UserDocumentationCategory, TWikiTemplates

Revision 212005-06-04 - TWikiContributor

Line: 1 to 1
Deleted:
<
<
META TOPICPARENT name="WebHome"
 

TWiki Forms

Changed:
<
<
Form-based input in topics, with name/value pairs stored as Meta Data variables; choose one of multiple forms per web & topic
>
>
Add structure to content with forms attached to twiki topics. TWiki forms (with form fields) and formatted search are the base for building database applications.
 

Overview

Changed:
<
<
By adding form-based input to freeform content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, a single form appears in edit mode, and the contents are rendered as a table when viewed on the display page. You can define unlimited forms per web. For each topic, you can select a template if more than one is defined, or remove forms entirely. Form input values are stored as TWikiMetaData; all data is saved.
>
>
By adding form-based input to freeform content, you can structure topics with unlimited, easily searchable categories. A form is enabled for a web and can be added to a topic. The form data is shown in tabular format when the topic is viewed, and can be changed in edit mode using edit fields, radio buttons, check boxes and list boxes. Many different form types can be defined in a web, though a topic can only have only form attached to it at a time.
 
Changed:
<
<
Form Templates replace TWikiCategoryTables from the 01-Dec-2000 version of TWiki. - see #FormsVsCategoryTables
>
>
Typical steps to build an application based on TWiki forms:
  1. Define a form template
  2. Enable the form for a web
  3. Add the form to a template topic
  4. Build an HTML form to create new topics based on that template topic
  5. Build a FormattedSearch to list topics that share the same form
 

Defining a Form Template

Changed:
<
<
A Form Template is simply a page containing your form, defined as a table where each row is one form field.
>
>
A Form Template specifies the fields in a form. A Form Template is simply a page containing a TWiki table, where each row of the table is one form field.
 

Form Template Elements

Changed:
<
<
  • form template - a set of fields defining a form (replaces category table definition)
>
>
  • form template - a set of fields defining a form
 
    • A web can use one or more form templates
Changed:
<
<
  • form - a topic containing additional meta data (besides the freeform TEXTAREA) that categorizes the content (replaces category table)
>
>
  • form - additional meta data (besides the freeform TEXTAREA) attached to a topic
 
    • Within a form-enabled web, individual topics can have a form or no form
Changed:
<
<
  • form field - a named item in a form (replaces category item name)
  • field type - selects the INPUT type:
>
>
  • form field - a named item in a form (also known as a key)
  • field type - selects the field type:
 
Input type Type field Size field Value field
Changed:
<
<
One or more checkboxes checkbox number of checkboxes per line comma list of checkbox labels
>
>
One or more checkboxes checkbox number of items per line comma list of item labels
 
One or more checkboxes, plus Set and Clear buttons checkbox+buttons (same) (same)
Changed:
<
<
Read-only label text label 1 (unused)
One or more radio buttons radio number of radio buttons per line comma list of checkbox labels
Drop-down menu or scrollable box select 1 for drop down, 2 and up for scrollable box comma list of options
A one-line text field text text box width in number of characters (unused)
A text box; size is 40x10 (columns x rows) textarea columns x rows, e.g. 40x6 (unused)
  • field value - one or more values from a fixed set (select, checkbox, radio type) or free-form (text). (replaces category item value)
>
>
One or more radio buttons (radio buttons are mutually exclusive; only one can be selected) radio (same) (same)
Read-only label text label ignored text
Drop-down menu or scrollable box select 1 for drop down, 2 and up for scrollable box comma-separated list of options
A one-line text field text text box width in number of characters initial text, if a new topic is created with a form template
A text box textarea columns x rows, e.g. 80x6; default size is 40x5 initial text, if a new topic is created with a form template
  • field value - one or more values from a fixed set (select, checkbox, radio type) or free-form (label, text, text area).
 
Changed:
<
<

Defining a Form in One Topic

>
>

Defining a Form

 
Changed:
<
<
  1. Create a new topic with your form name: YourForm, ExpenseReport, InfoCategory, RecordReview, whatever you need.
  2. Create a TWiki table, with each column head representing one element of an entry field: Name, Type, Size, Values, and Tooltip message (see sample below).
>
>
  1. Create a new topic with your form name: YourForm, ExpenseReportForm, InfoCategoryForm, RecordReviewForm, whatever you need.
  2. Create a TWiki table, with each column head representing one element of an entry field: Name, Type, Size, Values, Tooltip message, and Attributes (see sample below).
 
  1. For each field, fill in a new line; for the type of field, select from the list.
  2. Save the topic (you can later choose to enable/disable individual forms).

Changed:
<
<
Example: WebForm
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* |
| TopicClassification | select | 1 | NoDisclosure, PublicSupported, PublicFAQ | blah blah... |
| OperatingSystem | checkbox | 3 | OsHPUX, OsLinux, OsSolaris, OsWin | blah blah... |
| OsVersion | text | 16 | | blah blah... |

Name Type Size Values Tooltip message
TopicClassification select 1 NoDisclosure, PublicSupported, PublicFAQ blah blah...
OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah...
OsVersion text 16   blah blah...
>
>
Example: WebForm
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* | *Attributes* |
| TopicClassification | select | 1 | NoDisclosure, PublicSupported, PublicFAQ | blah blah... |   |
| OperatingSystem | checkbox | 3 | OsHPUX, OsLinux, OsSolaris, OsWin | blah blah... |   |
| OsVersion | text | 16 | | blah blah... |   |

Name Type Size Values Tooltip message Attributes
TopicClassification select 1 NoDisclosure, PublicSupported, PublicFAQ blah blah...  
OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah...  
OsVersion text 16   blah blah...  
 
Changed:
<
<

Defining a Form with Multiple Topics

Forms can also be defined by using form templates that retrieve field values from one or more separate topics:

  • A FormTemplate topic defines the Form, ex: YourFormTemplate.
  • For each field that has a value list - select, radio, checkbox - can use separate topic to define the available values.
>
>
You can also retrieve possible values for select, checkbox or radio types from other topics:
 
Changed:
<
<
Example: WebFormTemplate
>
>
Example: WebForm
 
Changed:
<
<
  • WebFormTemplate main definition:
     
    Name Type Size Values Tooltip message
    TopicClassification select 1   blah blah...
    OperatingSystem checkbox 3   blah blah...
    OsVersion text 16   blah blah...
>
>
 
ALERT! Leave the Values field blank.
Changed:
<
<
  • TopicClassification field value definition:
     
>
>
  • Then in the TopicClassification topic, define the possible values:
 
Name Type Tooltip message
NoDisclosure option blah blah...
Changed:
<
<
PublicSupported option blah blah...
PublicFAQ option blah blah...
>
>
Public Supported option blah blah...
Public FAQ option blah blah...
 
Changed:
<
<
  • Implementation Notes: This format allows you to define field items with or without WikiNames, depending on your needs.
    • Topics can be protected in the usual manner, using TWikiAccessControl, to limit who can change the form template and/or individual value lists.
    • [[...]] links can be used to force a link (at present, the [[...][...]] format is not supported).
    • The Tooltip message column is used as a tooltip for the field name (only if field name is a WikiName) - you only see the tooltip In edit.
    • The first item in the list is the default item. Alternative initial values can be set in a topic template, like WebTopicEditTemplate, with field=value, or, for checkboxes, field=1.
>
>
Field values can also be obtained as the result of a FormattedSearch. For example,

%SEARCH{"Office$" scope="topic" web="%MAINWEB%" nototal="on" nosummary="on" nosearch="on" regex="on" format="$web.$topic" separator=", " }%

when used in the value field of the form definition, will take the set of field values to be all topic names in the Main web which end in "Office".

Notes:

  • A very few field names are reserved. If you try to use one of these names, TWiki will automatically append an underscore to the name when the form is used.
  • The field value will be used to initialize a field when a form is created, unless specific values are given by the topic template or query parameters. The first item in the list for a select or radio type is the default item. For label, text, and textarea fields the value may also contain commas. checkbox fields cannot be initialized through the form template.
  • If a label field has no name (blank first column in the form definition) it will not be shown when the form is viewed, only when it is edited.
 
    • The topic definition is not read when a topic is viewed.
Added:
>
>
  • Field names can include any text, but you should stick to alphanumeric characters. If you want to use a non-wikiname for a select, checkbox or radio field, and want to get the values from another topic, you can use [[...]] links. This notation can also be used when referencing another topic to obtain field values, but a name other than the topic name is required as the name of the field.
  • Field names have to be unique. If the same name is necessary (as when the field values for several fields are obtained from the same topic), an alternative name must be assigned using the [[...]] notation.
  • The topic defining field values can also be generated through a FormattedSearch, which must yield a suitable table as the result.
  • Form definition topics can be protected in the usual manner, using TWikiAccessControl, to limit who can change the form template and/or individual value lists. Note that view access is required to be able to edit topics that use the form definition, though view access to the form definition is not required to view a topic where the form has been used.
  • The Tooltip message column is used as a tooltip for the field name (only if field name is a WikiName) - you only see the tooltip in edit view.
  • The Attributes column is used to define special behavior for that form field (multiple attributes can be entered, with or without separators):
    • An attribute H indicates that this field should not be shown in view mode. However, the field is available for editing and storing information.
    • An attribute M indicates that this field is mandatory. The topic cannot be saved unless a value is provided for this field. If the field is found empty during topic save, an error is raised and the user is redirected to an oops page. Mandatory fields are indicated by an asterisks next to the field name.
 

Enabling Forms by Web

Changed:
<
<
Forms are enabled on a per web basis. The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates. Example:
  • Set WEBFORMS = BugForm, FeatureForm, BookLoanForm
>
>
Forms have to be enabled for each individual web. The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates.
Example:
  • Set WEBFORMS = BugForm, FeatureForm, Books.BookLoanForm
 
  • With WEBFORMS enabled, an extra button is added to the edit view. If the topic doesn't have a Form, an Add Form button appears at the end of the topic. If a Form is present, a Change button appears in the top row of the Form. The buttons open a screen that enables selection of a form specified in WEBFORMS, or the No form option.
Changed:
<
<

Including Forms in New Topics

>
>

Add a form to a topic

 
Changed:
<
<
  • A default Form Template (new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a web and adding a form to it. Initial Form values can be set there.
>
>
  • Edit a topic and follow the "Add form" button to add a Form to the topic. This is typically done to a template topic, either to the WebTopicEditTemplate topic in a web, or a new topic that serves as an application specific template topic. Initial Form values can be set there.
 
Changed:
<
<
  • Additionally a new topic can be given a Form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values:
>
>
  • Additionally a new topic can be given a Form using the formtemplate parameter in the (edit or save) URL. Initial values can then be provided in the URLs or as form values:
 
    • other than checkboxes: name, ex: ?BugPriority=1
    • checkbox: namevalue=1, ex: ?ColorRed=1.
      Boxes with a tick must be specified.
Added:
>
>
    • Example: This will add a textfield for the new topic name and a "Create"-Button to your topic. When the button is pressed, the topic editor will open with the form "MyForm" already attached to the new topic.
          <form name="newtopic" action="%SCRIPTURLPATH{"edit"}%/%WEB%/">
             <input type="hidden" name="formtemplate" value="MyForm" />
             New topic name <input type="text" name="topic" size="40" />
             <input type="submit" value="Create" />
          </form>
             
  • TIP Tip: For TWiki applications you can automatically generate unique topicnames.

  • ALERT! Note: Initial values will not be submitted to the form of a new topic if you only use the formtemplate parameter.
 
Changed:
<
<

Setting Up Multiple Form Options

>
>

Build an HTML form to create new Form-based topics

 
Changed:
<
<
  • The optional WEBFORMS variable defines alternative forms that can be selected by pressing Change in edit mode.
>
>
  • New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a SubmitExpenseReport topic where you can create new expense reports, a SubmitVacationRequest topic, and so on. These can specify the required template topic with its associated form. Template topics has more.
 
Changed:
<
<
  • A topic template can use any form.
>
>

Changing a form

  • You can change a form definition, and TWiki will try to make sure you don't lose any data from the topics that use that form.
 
Changed:
<
<
  • New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a SubmitExpenseReport topic where you can create new expense reports, a SubmitVacationRequest topic, and so on. These can specify the required template topic with its associated form.
>
>
  • If you change the form definition, the changes will not take affect in a topic that uses that form until you edit and save it.
 
Changed:
<
<

Form Data Storage

>
>
  • If you add a new field to the form, then it will appear next time you edit a topic that uses the form.
 
Changed:
<
<
The form topic name, fields and values are stored as TWikiMetaData - the order of the field/value pairs is the same as in the template.
>
>
  • If you delete a field from the form, or change a field name, then the data will not be visible when you edit the topic (the changed form definition will be used). If you save the topic, the old data will be lost (though thanks to revision control, you can always see it in older versions of the topic)
 
Changed:
<
<

Using Form Data

TWikiForms accept user-input data, stored as TWikiMetaData. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see TWikiMetaData, SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search for various options.
>
>

Searching for Form Data

TWiki Forms accept user-input data, stored as TWikiMetaData. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see TWikiMetaData, FORMFIELD, SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search.
 
Changed:
<
<

Main Changes from Category Tables

>
>
Example
TWiki users often want to have an overview of topics they contributed to. With the $formfield parameter it is easy to display the value of a classification field next to the topic link:
| *Topic* | *Classification* |
%SEARCH{"%MAINWEB%.UserName" scope="text" regex="off" nosearch="on" nototal="on" order="modified" reverse="on"
format="|<b>[[$web.$topic][$topic]]</b> |<nop>$formfield(TopicClassification) |" web="Sandbox"}%
 
Changed:
<
<
The Form Template system is a more powerful, flexible replacement for the original TWikiCategoryTable. Data from existing category tables can be imported directly.
>
>

Extending the range of form data types

Several Plugins allow you to extend the range of data types accepted by forms. For example, the TWiki:Plugins.DateFieldPlugin lets you add a 'date' type to the available data types. All data types are single-valued (can only have one value) with the following exceptions:
  • any type name starting with checkbox
  • any type name with +multi anywhere in the name
Types with names like this can both take multiple values.
 
Changed:
<
<
Form Templates Category Tables
defined in topics defined in templates
many forms per web one table per web
saved as Meta Data saved as HTML
Change & Add Form buttons UseCategory radio button
>
>

Gotcha!

  • Some browsers may strip linefeeds from text fields when a topic is saved. If you need linefeeds in a field, make sure it is a textarea.
 
Changed:
<
<

Importing Category Table Data

>
>

Importing Category Table Data

Very, very old TWiki releases used a system called the "TWikiCategoryTable". Later releases support automatic import of this data.

  On upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the old twikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable WEBFORMS. If missing, pages will display, but attempting to edit results in an error message.

The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.

Changed:
<
<
TIP NOTE: If things aren't working correctly, there may be useful entries in data/warning.txt.

Using Forms For Settings

Example process to change your WebPreferences to use forms instead of {3 spaces}* Set statements:
>
>
TIP If things aren't working correctly, there may be useful entries in data/warning.txt.
 
Deleted:
<
<
  1. create WebPrefencesForm topic
  2. fill it with a table like this:
    | *Name*|*Type*|*Size*|*Value*|*Tooltip message*|*Attributes*|
    | WEBTOPICLIST |textarea| |     | List of topics of the %WEB% web |S|
    | SITEMAPLIST  |select  |3| on, | list this web in the Site Map  |S|
    | SITEMAPWHAT  |textarea| |     | short web summary             |S|
    | WEBBGCOLOR   |text    |8|     | Web specific background color |S|
    etc...
  3. Edit WebPreferences and:
    • Add or Change the form to WebPrefencesForm
    • add WebPrefencesForm to the Set WEBFORMS line
    • Save
  4. Edit WebPreferences, jump straight down to the form ignoring all the textarea stuff, and set as you like
  5. if everything works as you like it, you can delete the Set statements (the form overrides set if they are both used).

Notes:

If it isn't working, double check that the S attribute has been specified (S for Setting). If you change the form, the changes will not take affect until you edit and save the preferences' topics again.

Using the TWiki:Plugins.EditTablePlugin on WebPreferencesForm makes adding new prefedrences a breeze.

A possibly unwanted side effect for using forms for the SKINS setting in their personal user topic: because the User Preferences are final you can't have different skins for different webs as the user's setting always wins. A workaround is to simply omit SKIN in the form.

Another example, this one using EditTablePlugin, source:

%EDITTABLE{ header="|*Name*|*Type*|*Size*|*Values*|*Tooltip message*|*Attributes*|" format="|text,20|text,20|text,20|text,20|text,20|text,1|" }%

Result (after some editing):

Name Type Size Values tooltip message Attributes
ALLOWTOPICCHANGE textarea     Users or groups allowed to change or rename this TWikiForms topic: (I.e. TWikiAdminGroup) S
ALLOWWEBCHANGE textarea     Users or groups who are allowed to change topics in the TWiki web: (See TWikiAccessControl) S
ALLOWWEBRENAME textarea   TWikiAdminGroup Users or groups who are allowed to rename topics in the TWiki web: (See TWikiAccessControl) S
ALLOWWEBVIEW textarea     Users or groups who are allowed to view topics in the TWiki web: (See TWikiAccessControl) S
DENYWEBCHANGE textarea     Users or groups who are not allowed to change topics in the TWiki web: (See TWikiAccessControl) S
DENYWEBRENAME textarea     Users or groups who are not allowed to rename topics in the TWiki web: (See TWikiAccessControl) S
DENYWEBVIEW textarea     Users or groups who are not allowed to view topics in the TWiki web: (See TWikiAccessControl) S
FINALPREFERENCES textarea   "NOSEARCHALL, ATTACHFILESIZELIMIT, WIKIWEBMASTER, WEBCOPYRIGHT, WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME" Web preferences that are not allowed to be overridden by user preferences S
NOSEARCHALL text   ",on" "Exclude web from a web=""all"" search: (Set to on for hidden webs)" S
SITEMAPLIST select   "on, ," List this web in the SiteMap S
SITEMAPUSETO textarea   ...to do something. ...to do something. S
SITEMAPWHAT textarea   Describe what this web does. Describe what this web does.  
SKIN select   "twiki, free, gnu, koala, pattern, plain, tiger" list of installed skins S
WEBBGCOLOR select   lightpink, pink, crimson, lavenderblush, palevioletred, hotpink, deeppink, mediumvioletred, orchid, thistle, plum, violet, fuchsia, fuchsia, darkmagenta, purple, mediumorchid, darkviolet, darkorchid, indigo, blueviolet, mediumpurple, mediumslateblue, slateblue, darkslateblue, ghostwhite, lavender, blue, mediumblue, darkblue, navy, midnightblue, royalblue, cornflowerblue, lightsteelblue, lightslategray, slategray, dodgerblue, aliceblue, steelblue, lightskyblue, skyblue, deepskyblue, lightblue, powderblue, cadetblue, darkturquoise, azure, lightcyan, paleturquoise, aqua, aqua, darkcyan, teal, darkslategray, mediumturquoise, lightseagreen, turquoise, aquamarine, mediumaquamarine, mediumspringgreen, mintcream, springgreen, mediumseagreen, seagreen, honeydew, darkseagreen, palegreen, lightgreen, limegreen, lime, forestgreen, green, darkgreen, lawngreen, chartreuse, greenyellow, darkolivegreen, yellowgreen, olivedrab, ivory, beige, lightyellow, lightgoldenrodyellow, yellow, olive, darkkhaki, palegoldenrod, lemonchiffon, khaki, gold, cornsilk, goldenrod, darkgoldenrod, floralwhite, oldlace, wheat, orange, moccasin, papayawhip, blanchedalmond, navajowhite, antiquewhite, tan, burlywood, darkorange, bisque, linen, peru, peachpuff, sandybrown, chocolate, saddlebrown, seashell, sienna, lightsalmon, coral, orangered, darksalmon, tomato, salmon, mistyrose, lightcoral, snow, rosybrown, indianred, red, brown, firebrick, darkred, maroon, white, whitesmoke, gainsboro, lightgrey, silver, darkgray, gray, dimgray, black Web specific background color: (Pick a lighter one of the StandardColors) S
WEBFORMS textarea     TWikiForms: How to enable form(s) S
WEBTOPICLIST textarea   WebHome, Changes, Topics, Index, Search, Go the main entry point topics for this web S
<-- /editTable -->

-- TWiki:Main.JohnTalintyre - 16 Aug 2001
-- TWiki:Main.MikeMannix - 05 Jan 2002
-- TWiki:Main.PeterThoeny - 25 Apr 2004
-- TWiki:Main.MattWilkie - 27 Jul 2004

 
Changed:
<
<
META TOPICMOVED by="MikeMannix" date="1000277489" from="TWiki.TWikiFormTemplate" to="TWiki.TWikiForms"
>
>
Related Topics: UserDocumentationCategory, TWikiTemplates

Revision 202004-08-20 - PeterThoeny

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 29 to 29
 
One or more checkboxes, plus Set and Clear buttons checkbox+buttons (same) (same)
Read-only label text label 1 (unused)
One or more radio buttons radio number of radio buttons per line comma list of checkbox labels
Changed:
<
<
Drop-down menu or scrollable box label 1 for drop down, 2 and up for scrollable box comma list of options
>
>
Drop-down menu or scrollable box select 1 for drop down, 2 and up for scrollable box comma list of options
 
A one-line text field text text box width in number of characters (unused)
A text box; size is 40x10 (columns x rows) textarea columns x rows, e.g. 40x6 (unused)
  • field value - one or more values from a fixed set (select, checkbox, radio type) or free-form (text). (replaces category item value)

Revision 192004-08-15 - PeterThoeny

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 42 to 42
 
  1. Save the topic (you can later choose to enable/disable individual forms).

Changed:
<
<
Example: WebForm
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* |
| Know.TopicClassification | select | 1 | Know.NoDisclosure, 
  Know.PublicSupported, Know.PublicFAQ | blah blah... |
| Know.OperatingSystem | checkbox | 3 | Know.OsHPUX, Know.OsLinux,
  Know.OsSolaris, Know.OsWin | blah blah... |
| Know.OsVersion | text | 16 | | blah blah... |
>
>
Example: WebForm
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* |
| TopicClassification | select | 1 | NoDisclosure, PublicSupported, PublicFAQ | blah blah... |
| OperatingSystem | checkbox | 3 | OsHPUX, OsLinux, OsSolaris, OsWin | blah blah... |
| OsVersion | text | 16 | | blah blah... |
 
Name Type Size Values Tooltip message
Changed:
<
<
TopicClassification select 1 NoDisclosure, PublicSupported, PublicFAQ blah blah...
OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah...
OsVersion text 16   blah blah...
>
>
TopicClassification select 1 NoDisclosure, PublicSupported, PublicFAQ blah blah...
OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah...
OsVersion text 16   blah blah...
 

Defining a Form with Multiple Topics

Line: 68 to 64
 
Example: WebFormTemplate
Changed:
<
<
  • Know.WebFormTemplate main definition:
>
>
  • WebFormTemplate main definition:
 
 
Name Type Size Values Tooltip message
Changed:
<
<
TopicClassification select 1   blah blah...
OperatingSystem checkbox 3   blah blah...
OsVersion text 16   blah blah...
>
>
TopicClassification select 1   blah blah...
OperatingSystem checkbox 3   blah blah...
OsVersion text 16   blah blah...
 
ALERT! Leave the Values field blank.
Changed:
<
<
  • Know.TopicClassification field value definition:
>
>
  • TopicClassification field value definition:
 
 
Name Type Tooltip message
Changed:
<
<
NoDisclosure option blah blah...
PublicSupported option blah blah...
PublicFAQ option blah blah...
>
>
NoDisclosure option blah blah...
PublicSupported option blah blah...
PublicFAQ option blah blah...
 

  • Implementation Notes: This format allows you to define field items with or without WikiNames, depending on your needs.
Line: 106 to 102
 
  • Additionally a new topic can be given a Form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values:
    • other than checkboxes: name, ex: ?BugPriority=1
Changed:
<
<
    • checkbox: namevalue=1, ex: ?ColourRed=1.
>
>
    • checkbox: namevalue=1, ex: ?ColorRed=1.
  Boxes with a tick must be specified.

Setting Up Multiple Form Options

Line: 144 to 140
  TIP NOTE: If things aren't working correctly, there may be useful entries in data/warning.txt.
Added:
>
>

Using Forms For Settings

Example process to change your WebPreferences to use forms instead of {3 spaces}* Set statements:

  1. create WebPrefencesForm topic
  2. fill it with a table like this:
    | *Name*|*Type*|*Size*|*Value*|*Tooltip message*|*Attributes*|
    | WEBTOPICLIST |textarea| |     | List of topics of the %WEB% web |S|
    | SITEMAPLIST  |select  |3| on, | list this web in the Site Map  |S|
    | SITEMAPWHAT  |textarea| |     | short web summary             |S|
    | WEBBGCOLOR   |text    |8|     | Web specific background color |S|
    etc...
  3. Edit WebPreferences and:
    • Add or Change the form to WebPrefencesForm
    • add WebPrefencesForm to the Set WEBFORMS line
    • Save
  4. Edit WebPreferences, jump straight down to the form ignoring all the textarea stuff, and set as you like
  5. if everything works as you like it, you can delete the Set statements (the form overrides set if they are both used).

Notes:

If it isn't working, double check that the S attribute has been specified (S for Setting). If you change the form, the changes will not take affect until you edit and save the preferences' topics again.

Using the TWiki:Plugins.EditTablePlugin on WebPreferencesForm makes adding new prefedrences a breeze.

A possibly unwanted side effect for using forms for the SKINS setting in their personal user topic: because the User Preferences are final you can't have different skins for different webs as the user's setting always wins. A workaround is to simply omit SKIN in the form.

Another example, this one using EditTablePlugin, source:

%EDITTABLE{ header="|*Name*|*Type*|*Size*|*Values*|*Tooltip message*|*Attributes*|" format="|text,20|text,20|text,20|text,20|text,20|text,1|" }%

Result (after some editing):

Name Type Size Values tooltip message Attributes
ALLOWTOPICCHANGE textarea     Users or groups allowed to change or rename this TWikiForms topic: (I.e. TWikiAdminGroup) S
ALLOWWEBCHANGE textarea     Users or groups who are allowed to change topics in the TWiki web: (See TWikiAccessControl) S
ALLOWWEBRENAME textarea   TWikiAdminGroup Users or groups who are allowed to rename topics in the TWiki web: (See TWikiAccessControl) S
ALLOWWEBVIEW textarea     Users or groups who are allowed to view topics in the TWiki web: (See TWikiAccessControl) S
DENYWEBCHANGE textarea     Users or groups who are not allowed to change topics in the TWiki web: (See TWikiAccessControl) S
DENYWEBRENAME textarea     Users or groups who are not allowed to rename topics in the TWiki web: (See TWikiAccessControl) S
DENYWEBVIEW textarea     Users or groups who are not allowed to view topics in the TWiki web: (See TWikiAccessControl) S
FINALPREFERENCES textarea   "NOSEARCHALL, ATTACHFILESIZELIMIT, WIKIWEBMASTER, WEBCOPYRIGHT, WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME" Web preferences that are not allowed to be overridden by user preferences S
NOSEARCHALL text   ",on" "Exclude web from a web=""all"" search: (Set to on for hidden webs)" S
SITEMAPLIST select   "on, ," List this web in the SiteMap S
SITEMAPUSETO textarea   ...to do something. ...to do something. S
SITEMAPWHAT textarea   Describe what this web does. Describe what this web does.  
SKIN select   "twiki, free, gnu, koala, pattern, plain, tiger" list of installed skins S
WEBBGCOLOR select   lightpink, pink, crimson, lavenderblush, palevioletred, hotpink, deeppink, mediumvioletred, orchid, thistle, plum, violet, fuchsia, fuchsia, darkmagenta, purple, mediumorchid, darkviolet, darkorchid, indigo, blueviolet, mediumpurple, mediumslateblue, slateblue, darkslateblue, ghostwhite, lavender, blue, mediumblue, darkblue, navy, midnightblue, royalblue, cornflowerblue, lightsteelblue, lightslategray, slategray, dodgerblue, aliceblue, steelblue, lightskyblue, skyblue, deepskyblue, lightblue, powderblue, cadetblue, darkturquoise, azure, lightcyan, paleturquoise, aqua, aqua, darkcyan, teal, darkslategray, mediumturquoise, lightseagreen, turquoise, aquamarine, mediumaquamarine, mediumspringgreen, mintcream, springgreen, mediumseagreen, seagreen, honeydew, darkseagreen, palegreen, lightgreen, limegreen, lime, forestgreen, green, darkgreen, lawngreen, chartreuse, greenyellow, darkolivegreen, yellowgreen, olivedrab, ivory, beige, lightyellow, lightgoldenrodyellow, yellow, olive, darkkhaki, palegoldenrod, lemonchiffon, khaki, gold, cornsilk, goldenrod, darkgoldenrod, floralwhite, oldlace, wheat, orange, moccasin, papayawhip, blanchedalmond, navajowhite, antiquewhite, tan, burlywood, darkorange, bisque, linen, peru, peachpuff, sandybrown, chocolate, saddlebrown, seashell, sienna, lightsalmon, coral, orangered, darksalmon, tomato, salmon, mistyrose, lightcoral, snow, rosybrown, indianred, red, brown, firebrick, darkred, maroon, white, whitesmoke, gainsboro, lightgrey, silver, darkgray, gray, dimgray, black Web specific background color: (Pick a lighter one of the StandardColors) S
WEBFORMS textarea     TWikiForms: How to enable form(s) S
WEBTOPICLIST textarea   WebHome, Changes, Topics, Index, Search, Go the main entry point topics for this web S
<-- /editTable -->
 -- TWiki:Main.JohnTalintyre - 16 Aug 2001
-- TWiki:Main.MikeMannix - 05 Jan 2002
Changed:
<
<
-- TWiki:Main.PeterThoeny - 25 Apr 2004
>
>
-- TWiki:Main.PeterThoeny - 25 Apr 2004
-- TWiki:Main.MattWilkie - 27 Jul 2004
 

META TOPICMOVED by="MikeMannix" date="1000277489" from="TWiki.TWikiFormTemplate" to="TWiki.TWikiForms"

Revision 182004-04-25 - PeterThoeny

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 24 to 24
 
    • Within a form-enabled web, individual topics can have a form or no form
  • form field - a named item in a form (replaces category item name)
  • field type - selects the INPUT type:
Changed:
<
<
    • select - drop-down menu or scrollable box
    • checkbox - one or more checkboxes
    • checkbox+buttons - one or more checkboxes, plus Set and Clear buttons
    • radio - one or more radio buttons
    • text - a one-line text field
    • textarea - a text box; size is 40x10 (columns x rows)
>
>
Input type Type field Size field Value field
One or more checkboxes checkbox number of checkboxes per line comma list of checkbox labels
One or more checkboxes, plus Set and Clear buttons checkbox+buttons (same) (same)
Read-only label text label 1 (unused)
One or more radio buttons radio number of radio buttons per line comma list of checkbox labels
Drop-down menu or scrollable box label 1 for drop down, 2 and up for scrollable box comma list of options
A one-line text field text text box width in number of characters (unused)
A text box; size is 40x10 (columns x rows) textarea columns x rows, e.g. 40x6 (unused)
 
  • field value - one or more values from a fixed set (select, checkbox, radio type) or free-form (text). (replaces category item value)

Defining a Form in One Topic

Line: 142 to 144
  TIP NOTE: If things aren't working correctly, there may be useful entries in data/warning.txt.
Changed:
<
<
-- JohnTalintyre - 16 Aug 2001
-- MikeMannix - 05 Jan 2002
>
>
-- TWiki:Main.JohnTalintyre - 16 Aug 2001
-- TWiki:Main.MikeMannix - 05 Jan 2002
-- TWiki:Main.PeterThoeny - 25 Apr 2004
 
Added:
>
>
 
META TOPICMOVED by="MikeMannix" date="1000277489" from="TWiki.TWikiFormTemplate" to="TWiki.TWikiForms"

Revision 172003-08-23 - PeterThoeny

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 10 to 10
  By adding form-based input to freeform content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, a single form appears in edit mode, and the contents are rendered as a table when viewed on the display page. You can define unlimited forms per web. For each topic, you can select a template if more than one is defined, or remove forms entirely. Form input values are stored as TWikiMetaData; all data is saved.
Changed:
<
<
Form Templates replace TWikiCategoryTables from the 01-Dec-2000 version of TWiki.

Main Changes from Category Tables

The Form Template system is a more powerful, flexible replacement for the original TWikiCategoryTable. Data from existing category tables can be imported directly.

Form Templates Category Tables
defined in topics defined in templates
many forms per web one table per web
saved as Meta Data saved as HTML
Change & Add Form buttons UseCategory radio button

Importing Category Table Data

On upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the old twikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable WEBFORMS. If missing, pages will display, but attempting to edit results in an error message.

The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.

TIP NOTE: If things aren't working correctly, there may be useful entries in data/warning.txt.

>
>
Form Templates replace TWikiCategoryTables from the 01-Dec-2000 version of TWiki. - see #FormsVsCategoryTables
 

Defining a Form Template

Line: 142 to 123
 

Using Form Data

TWikiForms accept user-input data, stored as TWikiMetaData. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see TWikiMetaData, SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search for various options.
Added:
>
>

Main Changes from Category Tables

The Form Template system is a more powerful, flexible replacement for the original TWikiCategoryTable. Data from existing category tables can be imported directly.

Form Templates Category Tables
defined in topics defined in templates
many forms per web one table per web
saved as Meta Data saved as HTML
Change & Add Form buttons UseCategory radio button

Importing Category Table Data

On upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the old twikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable WEBFORMS. If missing, pages will display, but attempting to edit results in an error message.

The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.

TIP NOTE: If things aren't working correctly, there may be useful entries in data/warning.txt.

 -- JohnTalintyre - 16 Aug 2001
-- MikeMannix - 05 Jan 2002

Revision 162003-01-25 - PeterThoeny

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 117 to 117
 
  • With WEBFORMS enabled, an extra button is added to the edit view. If the topic doesn't have a Form, an Add Form button appears at the end of the topic. If a Form is present, a Change button appears in the top row of the Form. The buttons open a screen that enables selection of a form specified in WEBFORMS, or the No form option.
Added:
>
>

Including Forms in New Topics

 
  • A default Form Template (new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a web and adding a form to it. Initial Form values can be set there.

  • Additionally a new topic can be given a Form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values:
Line: 124 to 126
 
    • checkbox: namevalue=1, ex: ?ColourRed=1.
      Boxes with a tick must be specified.
Deleted:
<
<

Including Forms in New Topics

When you create a new topic in a web that has the WEBFORMS Preferences variable set, an Add Form button appears at the bottom of the page. You can start all new topics with forms enabled, and pre-select a form if there's more than one available:

  1. Edit the WebTopicEditTemplate topic, adding the name of an available Form.
  2. Create a new topic to check - the Form should appear with values set.
    • Click Change to switch or remove Forms.

A form embedded in a topic also appears in a new topic. This is done by specifying the formtemplate parameter in the URL.

 

Setting Up Multiple Form Options

  • The optional WEBFORMS variable defines alternative forms that can be selected by pressing Change in edit mode.

Revision 152002-08-27 - PeterThoeny

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 15 to 15
 

Main Changes from Category Tables

Changed:
<
<
Form Templates more powerful, flexible replacement for the original TWikiCategoryTable. Data from existing category tables can be imported directly.
>
>
The Form Template system is a more powerful, flexible replacement for the original TWikiCategoryTable. Data from existing category tables can be imported directly.
 
Form Templates Category Tables
defined in topics defined in templates
Line: 54 to 54
 

Defining a Form in One Topic

  1. Create a new topic with your form name: YourForm, ExpenseReport, InfoCategory, RecordReview, whatever you need.
Changed:
<
<
  1. Create a TWiki table, with each column head representing one element of an entry field: Name, Type, Size, Values, and Tooltip msessage (see sample below).
>
>
  1. Create a TWiki table, with each column head representing one element of an entry field: Name, Type, Size, Values, and Tooltip message (see sample below).
 
  1. For each field, fill in a new line; for the type of field, select from the list.
  2. Save the topic (you can later choose to enable/disable individual forms).

Revision 142002-01-05 - MikeMannix

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

TWiki Forms

Changed:
<
<
Form-based input in topics, with name/value pairs stored as Meta Data variables; multiple forms per web & topic
>
>
Form-based input in topics, with name/value pairs stored as Meta Data variables; choose one of multiple forms per web & topic
 

Overview

Changed:
<
<
By adding form-based input to free-form content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, the form appears in edit mode, and the contents are rendered as a table when viewing the actual page. When editing, can switch forms, if more than one is defined, or remove forms entirely. Form input values are stored as TWikiMetaData; all data is saved.
>
>
By adding form-based input to freeform content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, a single form appears in edit mode, and the contents are rendered as a table when viewed on the display page. You can define unlimited forms per web. For each topic, you can select a template if more than one is defined, or remove forms entirely. Form input values are stored as TWikiMetaData; all data is saved.
  Form Templates replace TWikiCategory Tables from the 01-Dec-2000 version of TWiki.
Line: 29 to 29
  The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.
Changed:
<
<
NOTE: If things aren't working correctly, there may be useful entries in data/warning.txt.
>
>
TIP NOTE: If things aren't working correctly, there may be useful entries in data/warning.txt.
 

Defining a Form Template

Changed:
<
<
A Form Template is simply a page containing your form, defined in a table where each row is one form field.
>
>
A Form Template is simply a page containing your form, defined as a table where each row is one form field.
 

Form Template Elements

  • form template - a set of fields defining a form (replaces category table definition)
Changed:
<
<
    • A web can use one or more form templates.
  • form - A topic containing additional meta-data (besides the free form TEXTAREA) which categorizes the content. (replaces category table)
    • A topic has zero or one of the defined forms. So there are topics with a form or without.
>
>
    • A web can use one or more form templates
  • form - a topic containing additional meta data (besides the freeform TEXTAREA) that categorizes the content (replaces category table)
    • Within a form-enabled web, individual topics can have a form or no form
 
  • form field - a named item in a form (replaces category item name)
  • field type - selects the INPUT type:
    • select - drop-down menu or scrollable box
Line: 53 to 53
 

Defining a Form in One Topic

Changed:
<
<
  1. Create a new topic with your Form name: MyForm, ExpenseReport, InfoCategory, RecordReview, whatever you need.
  2. Create a TWiki table, with each column representing one element of an entry field: Name, Type, Size, Values, and Tooltip msessage (see sample below).
>
>
  1. Create a new topic with your form name: YourForm, ExpenseReport, InfoCategory, RecordReview, whatever you need.
  2. Create a TWiki table, with each column head representing one element of an entry field: Name, Type, Size, Values, and Tooltip msessage (see sample below).
 
  1. For each field, fill in a new line; for the type of field, select from the list.
Changed:
<
<
  1. Save the topic.
>
>
  1. Save the topic (you can later choose to enable/disable individual forms).
 
Changed:
<
<
Example: WebForm from the TWiki.Know web
>
>
Example: WebForm
 
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* |
| Know.TopicClassification | select | 1 | Know.NoDisclosure, 
Line: 77 to 77
 

Defining a Form with Multiple Topics

Changed:
<
<
The Form Template can also be defined in an alternative way by using more then one topic:
>
>
Forms can also be defined by using form templates that retrieve field values from one or more separate topics:
 
Changed:
<
<
  • A Form Template topic defines the Form.
  • Fields that have more then one value - radio, select, checkbox - can be defined in individual field value topics.
>
>
  • A FormTemplate topic defines the Form, ex: YourFormTemplate.
  • For each field that has a value list - select, radio, checkbox - can use separate topic to define the available values.
 
Example: WebFormTemplate
Changed:
<
<
  • Know.WebFormTemplate Form main definition:
     
>
>
  • Know.WebFormTemplate main definition:
     
 
Name Type Size Values Tooltip message
Changed:
<
<
TopicClassification select 1 ... blah blah...
OperatingSystem checkbox 3 ... blah blah...
OsVersion text 16 ... blah blah...
>
>
TopicClassification select 1   blah blah...
OperatingSystem checkbox 3   blah blah...
OsVersion text 16   blah blah...

ALERT! Leave the Values field blank.
 
  • Know.TopicClassification field value definition:
Changed:
<
<

 
>
>

 
 
Name Type Tooltip message
NoDisclosure option blah blah...
PublicSupported option blah blah...
Line: 101 to 103
 

  • Implementation Notes: This format allows you to define field items with or without WikiNames, depending on your needs.
Changed:
<
<
    • The topic can be protected in the usual manner so that not everybody can change the form template - see TWikiAccessControl
    • [[...]] links can be used for force a link, at present [[...][...]] format is not supported.
    • The "Tooltip message" column is used as a tool tip for the field name (only if field name is a WikiName) - you only see the tooltip on edit.
    • The first item in the list is the default item. Alternative initial values can be given in a topic template such as WebTopicEditTemplate or using field=value or for checkboxes field=1.
>
>
    • Topics can be protected in the usual manner, using TWikiAccessControl, to limit who can change the form template and/or individual value lists.
    • [[...]] links can be used to force a link (at present, the [[...][...]] format is not supported).
    • The Tooltip message column is used as a tooltip for the field name (only if field name is a WikiName) - you only see the tooltip In edit.
    • The first item in the list is the default item. Alternative initial values can be set in a topic template, like WebTopicEditTemplate, with field=value, or, for checkboxes, field=1.
 
    • The topic definition is not read when a topic is viewed.
Added:
>
>
 

Enabling Forms by Web

Changed:
<
<
Forms are enabled on a per web basis. The WEBFORMS variable in WebPreferences is optional and defines a list of possible Form Templates. Example:
>
>
Forms are enabled on a per web basis. The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates. Example:
 
  • Set WEBFORMS = BugForm, FeatureForm, BookLoanForm
Changed:
<
<
  • With WEBFORMS enabled, an extra button is added to the edit view. If the topic doesn't have a Form, an Add Form button appears at the end of the topic. If a Form is present, a Change button appears in the top row of the Form. The buttons open a screen that enables selection of a form specified in WEBFORMS, or the No form option.
>
>
  • With WEBFORMS enabled, an extra button is added to the edit view. If the topic doesn't have a Form, an Add Form button appears at the end of the topic. If a Form is present, a Change button appears in the top row of the Form. The buttons open a screen that enables selection of a form specified in WEBFORMS, or the No form option.
 
  • A default Form Template (new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a web and adding a form to it. Initial Form values can be set there.

  • Additionally a new topic can be given a Form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values:
Changed:
<
<
    • other than checkboxes: name, ex: ?BugPriority=1
    • checkbox: namevalue=1, ex: ?ColourRed=1.
      Boxes with a tick must be specified.
>
>
    • other than checkboxes: name, ex: ?BugPriority=1
    • checkbox: namevalue=1, ex: ?ColourRed=1.
      Boxes with a tick must be specified.
 

Including Forms in New Topics

Changed:
<
<
When you create a new topic in a web that has the WEBFORMS Preferences variable set, an Add Form button appears at the bottom of the page. You can start all new topics with forms enabled, and pre-select a form if there's more than one available:
>
>
When you create a new topic in a web that has the WEBFORMS Preferences variable set, an Add Form button appears at the bottom of the page. You can start all new topics with forms enabled, and pre-select a form if there's more than one available:
 
  1. Edit the WebTopicEditTemplate topic, adding the name of an available Form.
  2. Create a new topic to check - the Form should appear with values set.
    • Click Change to switch or remove Forms.
Changed:
<
<
A form embedded in a topic also appears in a new topic. This is done by specifying the formtemplate parameter in the URL.
>
>
A form embedded in a topic also appears in a new topic. This is done by specifying the formtemplate parameter in the URL.
 

Setting Up Multiple Form Options

Changed:
<
<
  • The optional WEBFORMS variable defines alternative Form Templates that can be selected by pressing Change in edit mode.
>
>
  • The optional WEBFORMS variable defines alternative forms that can be selected by pressing Change in edit mode.

  • A topic template can use any form.
 
Changed:
<
<
  • A Template topic can use any Form Template.
>
>
  • New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a SubmitExpenseReport topic where you can create new expense reports, a SubmitVacationRequest topic, and so on. These can specify the required template topic with its associated form.
 
Changed:
<
<
  • New topics with a Form are created by simple HTML forms asking for a topic name. For example, you can have a SubmitExpenseReport topic where you can create new expense reports - a SubmitVacationRequest topic and so on. These can specify the required template topic with its associated Form.
>
>

Form Data Storage

 
Changed:
<
<

Form Template Data Storage

>
>
The form topic name, fields and values are stored as TWikiMetaData - the order of the field/value pairs is the same as in the template.
 
Changed:
<
<
The Form Template topic name, fields and values are stored as TWikiMetaData. The order of field/value pairs in the Meta Data is the same as in the Template.
>
>

Using Form Data

TWikiForms accept user-input data, stored as TWikiMetaData. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see TWikiMetaData, SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search for various options.
  -- JohnTalintyre - 16 Aug 2001
Changed:
<
<
-- MikeMannix - 03 Dec 2001
>
>
-- MikeMannix - 05 Jan 2002
 
META TOPICMOVED by="MikeMannix" date="1000277489" from="TWiki.TWikiFormTemplate" to="TWiki.TWikiForms"

Revision 132001-12-03 - MikeMannix

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 148 to 143
 The Form Template topic name, fields and values are stored as TWikiMetaData. The order of field/value pairs in the Meta Data is the same as in the Template.

-- JohnTalintyre - 16 Aug 2001

Changed:
<
<
-- MikeMannix - 15 Sep 2001
>
>
-- MikeMannix - 03 Dec 2001
 
META TOPICMOVED by="MikeMannix" date="1000277489" from="TWiki.TWikiFormTemplate" to="TWiki.TWikiForms"

Revision 122001-09-15 - MikeMannix

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 147 to 147
  The Form Template topic name, fields and values are stored as TWikiMetaData. The order of field/value pairs in the Meta Data is the same as in the Template.
Changed:
<
<
-- JohnTalintyre - 16 Aug 2001
>
>
-- JohnTalintyre - 16 Aug 2001
-- MikeMannix - 15 Sep 2001
 
META TOPICMOVED by="MikeMannix" date="1000277489" from="TWiki.TWikiFormTemplate" to="TWiki.TWikiForms"

Revision 112001-09-14 - PeterThoeny

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Deleted:
<
<
Warning: Can't find topic TWiki.UtilTempDocNote
 

TWiki Forms

Line: 10 to 8
 

Overview

Changed:
<
<
By adding form-based input to free-form content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, the form appears in edit mode, and the contents are rendered as a table when viewing the actual page. When editing, can switch forms, if more than one is defined, or remove forms entirely. Form input values are stored as TWikiMetaData; all data is saved.
>
>
By adding form-based input to free-form content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, the form appears in edit mode, and the contents are rendered as a table when viewing the actual page. When editing, can switch forms, if more than one is defined, or remove forms entirely. Form input values are stored as TWikiMetaData; all data is saved.
  Form Templates replace TWikiCategory Tables from the 01-Dec-2000 version of TWiki.
Line: 27 to 25
 

Importing Category Table Data

Changed:
<
<
On upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the old twikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable =WEBFORM. If missing, pages will display, but attempting to edit results in an error message.
>
>
On upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the old twikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable WEBFORMS. If missing, pages will display, but attempting to edit results in an error message.
  The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.
Line: 61 to 59
 
  1. Save the topic.

Changed:
<
<
Example: WebFormTemplate from the TWiki.Know web
>
>
Example: WebForm from the TWiki.Know web
 
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* |
| Know.TopicClassification | select | 1 | Know.NoDisclosure, 
Line: 106 to 104
 
    • The topic can be protected in the usual manner so that not everybody can change the form template - see TWikiAccessControl

Changed:
<
<
    • ... can be used for force a link, at present ... format is not supported.
>
>
    • [[...]] links can be used for force a link, at present [[...][...]] format is not supported.
 
Changed:
<
<
    • The "Tooltip message:" column is used as a tool tip for the field name (only if field name is a WikiName) - you only see the tooltip on edit.
>
>
    • The "Tooltip message" column is used as a tool tip for the field name (only if field name is a WikiName) - you only see the tooltip on edit.
 
    • The first item in the list is the default item. Alternative initial values can be given in a topic template such as WebTopicEditTemplate or using field=value or for checkboxes field=1.

Line: 147 to 145
 

Form Template Data Storage

Changed:
<
<
The Form Template topic name, fields and values are stored as Meta Data. The order of field/value pairs in the Meta Data is the same as in the Template.
>
>
The Form Template topic name, fields and values are stored as TWikiMetaData. The order of field/value pairs in the Meta Data is the same as in the Template.
  -- JohnTalintyre - 16 Aug 2001
META TOPICMOVED by="MikeMannix" date="1000277489" from="TWiki.TWikiFormTemplate" to="TWiki.TWikiForms"

Revision 102001-09-12 - MikeMannix

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Added:
>
>
Warning: Can't find topic TWiki.UtilTempDocNote
 
Changed:
<
<

TWiki Form Templates

>
>

TWiki Forms

  Form-based input in topics, with name/value pairs stored as Meta Data variables; multiple forms per web & topic
Line: 148 to 150
 The Form Template topic name, fields and values are stored as Meta Data. The order of field/value pairs in the Meta Data is the same as in the Template.

-- JohnTalintyre - 16 Aug 2001

Added:
>
>
META TOPICMOVED by="MikeMannix" date="1000277489" from="TWiki.TWikiFormTemplate" to="TWiki.TWikiForms"

Revision 92001-09-09 - MikeMannix

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 13 to 13
 Form Templates replace TWikiCategory Tables from the 01-Dec-2000 version of TWiki.

Changed:
<
<

Changes from the Category Table System

>
>

Main Changes from Category Tables

  Form Templates more powerful, flexible replacement for the original TWikiCategoryTable. Data from existing category tables can be imported directly.
Deleted:
<
<
Main changes from TWikiCategoryTable:

 
Form Templates Category Tables
defined in topics defined in templates
many forms per web one table per web
saved as Meta Data saved as HTML
Change & Add Form buttons UseCategory radio button
Changed:
<
<

Importing Existing Category Table Data

>
>

Importing Category Table Data

  On upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the old twikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable =WEBFORM. If missing, pages will display, but attempting to edit results in an error message.
Line: 33 to 31
  NOTE: If things aren't working correctly, there may be useful entries in data/warning.txt.
Changed:
<
<

Form Template Elements

>
>

Defining a Form Template

A Form Template is simply a page containing your form, defined in a table where each row is one form field.

Form Template Elements

 
  • form template - a set of fields defining a form (replaces category table definition)
    • A web can use one or more form templates.
Line: 49 to 51
 
    • textarea - a text box; size is 40x10 (columns x rows)
  • field value - one or more values from a fixed set (select, checkbox, radio type) or free-form (text). (replaces category item value)
Changed:
<
<

Defining a Form Template

A Form Template is simply a page containing your form, defined in a table where each row is one form field.

>
>

Defining a Form in One Topic

 
  1. Create a new topic with your Form name: MyForm, ExpenseReport, InfoCategory, RecordReview, whatever you need.
  2. Create a TWiki table, with each column representing one element of an entry field: Name, Type, Size, Values, and Tooltip msessage (see sample below).
Line: 68 to 68
  OsSolaris, OsWin | blah blah... |
OsVersion text 16   blah blah...
Deleted:
<
<

Defining a Form in One Topic

Example: WebFormTemplate from the TWiki.Know web
 
Name Type Size Values Tooltip message
TopicClassification select 1 NoDisclosure, PublicSupported, PublicFAQ blah blah...
Line: 81 to 75
 
OsVersion text 16   blah blah...
Changed:
<
<

Defining a Form in Multiple Topics

>
>

Defining a Form with Multiple Topics

  The Form Template can also be defined in an alternative way by using more then one topic:
Changed:
<
<
  • A Form Template topic defines the form.
  • Values of fields that have more then one value - radio, select, checkbox - can be defined by field value Template topics.
>
>
  • A Form Template topic defines the Form.
  • Fields that have more then one value - radio, select, checkbox - can be defined in individual field value topics.
 
Changed:
<
<
Code from:
>
>
Example: WebFormTemplate
 
Changed:
<
<
  • WebFormTemplate of the TWiki.Know web:
>
>
  • Know.WebFormTemplate Form main definition:
     
 
Name Type Size Values Tooltip message
Changed:
<
<
TopicClassification select 1   blah blah...
OperatingSystem checkbox 3   blah blah...
OsVersion text 16   blah blah...
>
>
TopicClassification select 1 ... blah blah...
OperatingSystem checkbox 3 ... blah blah...
OsVersion text 16 ... blah blah...
 
Changed:
<
<
  • TopicClassification topic:
>
>
  • Know.TopicClassification field value definition:
     
 
Name Type Tooltip message
NoDisclosure option blah blah...
PublicSupported option blah blah...
PublicFAQ option blah blah...
Changed:
<
<

Implementation Notes

    • This format allows you to define field items with / without WikiNames, depending on your needs.
>
>
  • Implementation Notes: This format allows you to define field items with or without WikiNames, depending on your needs.
 
    • The topic can be protected in the usual manner so that not everybody can change the form template - see TWikiAccessControl

Line: 131 to 125
 
    • other than checkboxes: name, ex: ?BugPriority=1
    • checkbox: namevalue=1, ex: ?ColourRed=1.
      Boxes with a tick must be specified.
Changed:
<
<

Creating New Topics with Forms

>
>

Including Forms in New Topics

When you create a new topic in a web that has the WEBFORMS Preferences variable set, an Add Form button appears at the bottom of the page. You can start all new topics with forms enabled, and pre-select a form if there's more than one available:

 
Changed:
<
<
When you create a new topic in a web that has the WEBFORMS Preferences variable set, an Add Form button appears at the bottom of the page. If the WebTopicEditTemplate topic has a form added, the form will appear with values set; press Change to remove the template or to switch to a different one.
>
>
  1. Edit the WebTopicEditTemplate topic, adding the name of an available Form.
  2. Create a new topic to check - the Form should appear with values set.
    • Click Change to switch or remove Forms.
  A form embedded in a topic also appears in a new topic. This is done by specifying the formtemplate parameter in the URL.

Revision 82001-09-07 - MikeMannix

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Changed:
<
<

Form Templates

>
>

TWiki Form Templates

 
Changed:
<
<
Include form-based input in topics, with unlimited, user-selectable forms per web; values stored as Meta Data
>
>
Form-based input in topics, with name/value pairs stored as Meta Data variables; multiple forms per web & topic
 

Overview

By adding form-based input to free-form content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, the form appears in edit mode, and the contents are rendered as a table when viewing the actual page. When editing, can switch forms, if more than one is defined, or remove forms entirely. Form input values are stored as TWikiMetaData; all data is saved.

Changed:
<
<
Form Templates replace TWikiCategory Tables from the previous version of TWiki.
>
>
Form Templates replace TWikiCategory Tables from the 01-Dec-2000 version of TWiki.

Changes from the Category Table System

Form Templates more powerful, flexible replacement for the original TWikiCategoryTable. Data from existing category tables can be imported directly.

Main changes from TWikiCategoryTable:

Form Templates Category Tables
defined in topics defined in templates
many forms per web one table per web
saved as Meta Data saved as HTML
Change & Add Form buttons UseCategory radio button

Importing Existing Category Table Data

On upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the old twikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable =WEBFORM. If missing, pages will display, but attempting to edit results in an error message.

The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.

NOTE: If things aren't working correctly, there may be useful entries in data/warning.txt.

 

Form Template Elements

Line: 38 to 59
 
  1. Save the topic.

Changed:
<
<
Example: Form Template
>
>
Example: WebFormTemplate from the TWiki.Know web
 
Changed:
<
<
Name: Type: Size: Values: Tooltip message:
TopClass select 1 Select one..., Private, Public must fill
Target checkbox+buttons 3 1, No.2, No.3 Select OS
Version text 16   OS version
>
>
Name Type Size Values Tooltip message
| TopicClassification | select | 1 | NoDisclosure, PublicSupported, PublicFAQ | blah blah... | | OperatingSystem | checkbox | 3 | OsHPUX, OsLinux, OsSolaris, OsWin | blah blah... |
OsVersion text 16   blah blah...
 

Defining a Form in One Topic

Changed:
<
<
Example: WebFormTemplate of the TWiki.Know web:
>
>
Example: WebFormTemplate from the TWiki.Know web
 
Changed:
<
<
Name: Type: Size: Values: Tooltip message:
>
>
Name Type Size Values Tooltip message
 
TopicClassification select 1 NoDisclosure, PublicSupported, PublicFAQ blah blah...
OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah...
OsVersion text 16   blah blah...
Added:
>
>
 

Defining a Form in Multiple Topics

Changed:
<
<
The form template can also be defined in an alternative way by using more then one topic:
>
>
The Form Template can also be defined in an alternative way by using more then one topic:
 
Changed:
<
<
  • A form template topic defines the form
  • Values of fields that have more then one value, e.g. of type radio, select and checkbox can be defined by field value template topics
>
>
  • A Form Template topic defines the form.
  • Values of fields that have more then one value - radio, select, checkbox - can be defined by field value Template topics.
 
Changed:
<
<
Code from:
>
>
Code from:
 
  • WebFormTemplate of the TWiki.Know web:
Changed:
<
<
Name: Type: Size: Values: Tooltip message:
>
>
Name Type Size Values Tooltip message
 
TopicClassification select 1   blah blah...
OperatingSystem checkbox 3   blah blah...
OsVersion text 16   blah blah...

  • TopicClassification topic:
Changed:
<
<
Name: Type: Tooltip message:
>
>
Name Type Tooltip message
 
NoDisclosure option blah blah...
PublicSupported option blah blah...
PublicFAQ option blah blah...
Line: 102 to 127
 
  • A default Form Template (new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a web and adding a form to it. Initial Form values can be set there.
Changed:
<
<
  • Addtionaly a new topic can be given a form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values. Names being:
    • Not checkboxes - name e.g. ?BugPriority=1
    • Checkbox - namevalue=1 e.g. ?ColourRed=1. Note that all boxes with a tick must be specified.
>
>
  • Additionally a new topic can be given a Form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values:
    • other than checkboxes: name, ex: ?BugPriority=1
    • checkbox: namevalue=1, ex: ?ColourRed=1.
      Boxes with a tick must be specified.
 

Creating New Topics with Forms

Revision 72001-09-07 - MikeMannix

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Changed:
<
<

Form Templates

>
>

Form Templates

 
Changed:
<
<
Topics allow for flexible free format data, sometimes you want to ensure strucutre to some of the topic information, this can be done with Forms e.g. saying what type of topic it is (e.g. Bug, Feature, FAQ entry etc) and then filling in fields using dropdowns, radio buttons etc.
>
>
Include form-based input in topics, with unlimited, user-selectable forms per web; values stored as Meta Data
 
Changed:
<
<

Overview

>
>

Overview

 
Changed:
<
<
If forms are enabled for a Web and a topic has a form you will see it as a table when viewing the page. When you edit you will see the various edit controls below the normal text area. There will be a button at the top of the form marked Change which allows you to change to a different form, or remove the form. If you edit a topic without a form, there will be a button Add Form, that let's you associate a form with the topic; note that changes you have made to the topic are not lost when you select this option.
>
>
By adding form-based input to free-form content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, the form appears in edit mode, and the contents are rendered as a table when viewing the actual page. When editing, can switch forms, if more than one is defined, or remove forms entirely. Form input values are stored as TWikiMetaData; all data is saved.
 
Changed:
<
<
You can search for topics with specific form data using the %SEARCH% variable - see TWikiVariables.
>
>
Form Templates replace TWikiCategory Tables from the previous version of TWiki.
 
Changed:
<
<

TWikiCategoryTables Are History

>
>

Form Template Elements

 
Changed:
<
<
Form Templates more powerful, flexible replacement for the original TWikiCategoryTable.

Changes from the Category Table System

Main changes from TWikiCategoryTable: The templates for category view/edit have been dropped, and the forma renders to HTML on viewing.

Form Templates Category Tables
defined by topics defined in a template file
multiple forms per web one category per web
data saved in Meta variables data saved as HTML
[Change] form and [Add Form] contol buttons UseCategory radio button

Migrating Existing Category Table Data

The new Form Template system should work with old Category Table data with no special conversion. Old data should be transparently upgraded to the new Meta format when a page imported from the old TWiki is edited and saved in the new system for the first time.

On upgrading, the administrator must produce a form template topic for each web that uses the old Category Tables. twikicatitems.tmpl defines the categories and is used in the conversion. The form template must be set as the first item in the WebPreferences variable =WEBFORM. If it's not present, view works, but edit results in an oops dialog result. If things aren't working correctly, there may be entries in data/warning.txt.

Form Template Elements

  • Form Template: A set of fields defining a form. (Class in OO speak; used to be called category table definition)
    • A web may contain more then zero or more form template.
  • Form: A topic containing additional meta-data (besides the free form TEXTAREA) which categorizes the content. (Object in OO speak; used to be called category table)
>
>
  • form template - a set of fields defining a form (replaces category table definition)
    • A web can use one or more form templates.
  • form - A topic containing additional meta-data (besides the free form TEXTAREA) which categorizes the content. (replaces category table)
 
    • A topic has zero or one of the defined forms. So there are topics with a form or without.
Changed:
<
<
  • Form Field: A named item in a form. (Used to be called category item name)
  • Field Type: The type of a field when editing a form. The type defines the HTML INPUT tag widgets when editing a topic:
    • select: Drop down box or selector
    • checkbox: One or more check boxes
    • checkbox+buttons: One or more check boxes, plus [Set] and [][Clear] buttons to set/clear all checkboxes
    • radio: One or more radio buttons
    • text: A one-line text field
    • textarea: A general text area - size is rowsxcols 40x10
  • Field Value: Value of a form field. Can be one or more values from a fixed set (select, checkbox, radio type) or free form (text type). (Used to be called category item value)
>
>
  • form field - a named item in a form (replaces category item name)
  • field type - selects the INPUT type:
    • select - drop-down menu or scrollable box
    • checkbox - one or more checkboxes
    • checkbox+buttons - one or more checkboxes, plus Set and Clear buttons
    • radio - one or more radio buttons
    • text - a one-line text field
    • textarea - a text box; size is 40x10 (columns x rows)
  • field value - one or more values from a fixed set (select, checkbox, radio type) or free-form (text). (replaces category item value)
 
Changed:
<
<

Defining a Form Template

>
>

Defining a Form Template

  A Form Template is simply a page containing your form, defined in a table where each row is one form field.
Line: 67 to 47
 
Changed:
<
<

Defining a Form in One Topic

>
>

Defining a Form in One Topic

  Example: WebFormTemplate of the TWiki.Know web:
Line: 76 to 56
 
OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah...
OsVersion text 16   blah blah...
Changed:
<
<

Defining a Form in Multiple Topics

>
>

Defining a Form in Multiple Topics

  The form template can also be defined in an alternative way by using more then one topic:
Line: 99 to 79
 
PublicFAQ option blah blah...
Changed:
<
<

Various Implementation Notes

>
>

Implementation Notes

 
  • This format allows you to define field items with / without WikiNames, depending on your needs.
Added:
>
>
 
  • The topic can be protected in the usual manner so that not everybody can change the form template - see TWikiAccessControl
Deleted:
<
<
  • ... can be used for force a link, at present ... format is not supported
  • The "Tooltip message:" column is used as a tool tip for the field name (only if field name is a WikiName) - you only see the tooltip on edit
  • The first item in the list is the default item. Alternative initial values can be given in a topic template such as WebTopicEditTemplate or using field=value or for checkboxes field=1
  • The topic definition is not read when a topic is viewed
 
Changed:
<
<

Enabling Forms by Web

>
>
    • ... can be used for force a link, at present ... format is not supported.

    • The "Tooltip message:" column is used as a tool tip for the field name (only if field name is a WikiName) - you only see the tooltip on edit.

    • The first item in the list is the default item. Alternative initial values can be given in a topic template such as WebTopicEditTemplate or using field=value or for checkboxes field=1.

    • The topic definition is not read when a topic is viewed.
 
Changed:
<
<
Forms are enabled on a per web basis. The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates e.g.
>
>

Enabling Forms by Web

Forms are enabled on a per web basis. The WEBFORMS variable in WebPreferences is optional and defines a list of possible Form Templates. Example:

 
  • Set WEBFORMS = BugForm, FeatureForm, BookLoanForm
Changed:
<
<
With WEBFORMS enabled, an extra button is added to the edit view. If the topic doesn't have a form an [Add Form] button appears at the end of the topic. If a form is present, a [Change] button appears in the top row of the form. The buttons lead to a screen that enables no form to be selected or one of those specified by WEBFORMS.
>
>
  • With WEBFORMS enabled, an extra button is added to the edit view. If the topic doesn't have a Form, an Add Form button appears at the end of the topic. If a Form is present, a Change button appears in the top row of the Form. The buttons open a screen that enables selection of a form specified in WEBFORMS, or the No form option.
 
Changed:
<
<
A default form template (i.e. new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a Web and adding a form to it. Initial form values can be set here.
>
>
  • A default Form Template (new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a web and adding a form to it. Initial Form values can be set there.
 
Changed:
<
<
Addtionaly a new topic can be given a form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values. Names being:
>
>
  • Addtionaly a new topic can be given a form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values. Names being:
 
  • Not checkboxes - name e.g. ?BugPriority=1
  • Checkbox - namevalue=1 e.g. ?ColourRed=1. Note that all boxes with a tick must be specified.
Changed:
<
<

Creating New Topics with Forms

>
>

Creating New Topics with Forms

 
Changed:
<
<
When you create a new topic in a web that has the WEBFORMS Preferences variable set, an [Add Form] button appears at the bottom of the page. If the WebTopicEditTemplate topic has a form added, the form will appear with values set; press [Change] to remove the template or to switch to a different one.
>
>
When you create a new topic in a web that has the WEBFORMS Preferences variable set, an Add Form button appears at the bottom of the page. If the WebTopicEditTemplate topic has a form added, the form will appear with values set; press Change to remove the template or to switch to a different one.
  A form embedded in a topic also appears in a new topic. This is done by specifying the formtemplate parameter in the URL.
Changed:
<
<

Setting Up Multiple Form Options

>
>

Setting Up Multiple Form Options

  • The optional WEBFORMS variable defines alternative Form Templates that can be selected by pressing Change in edit mode.

  • A Template topic can use any Form Template.
 
Changed:
<
<
  • The optional WEBFORMS variable defines alternative Form Templates that can be selected after pressing [Change] on the Edit page
  • A template topic can use any form template
  • New topics with a form get instantiated by simple HTML forms asking for a topic name. If there is a SubmitExpenseReport topic were you can create new expense reports, a SubmitVacationRequest topic and so on. These can specify the required template topic and hence form. HUH?
>
>
  • New topics with a Form are created by simple HTML forms asking for a topic name. For example, you can have a SubmitExpenseReport topic where you can create new expense reports - a SubmitVacationRequest topic and so on. These can specify the required template topic with its associated Form.
 
Added:
>
>

Form Template Data Storage

 
Changed:
<
<

Form Template Data Storage

>
>
The Form Template topic name, fields and values are stored as Meta Data. The order of field/value pairs in the Meta Data is the same as in the Template.
 
Deleted:
<
<
The Form Template topic name, fields and values are stored in the topic Meta Data. The order of field/value pairs in the Meta Data is the same as in the Template. The Form name is required for [Edit] and [Save].
 -- JohnTalintyre - 16 Aug 2001

Revision 62001-09-04 - JohnTalintyre

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 105 to 105
 
  • The topic can be protected in the usual manner so that not everybody can change the form template - see TWikiAccessControl
  • ... can be used for force a link, at present ... format is not supported
  • The "Tooltip message:" column is used as a tool tip for the field name (only if field name is a WikiName) - you only see the tooltip on edit
Changed:
<
<
  • The first item in the list is the default item. Alternative initial values can be given in a topic template such as WebTopicEditTemplate or using fieldFLD=value or for checkboxes fieldFLDcheckbox=1 in URL
>
>
  • The first item in the list is the default item. Alternative initial values can be given in a topic template such as WebTopicEditTemplate or using field=value or for checkboxes field=1
 
  • The topic definition is not read when a topic is viewed

Enabling Forms by Web

Line: 118 to 118
 A default form template (i.e. new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a Web and adding a form to it. Initial form values can be set here.

Addtionaly a new topic can be given a form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values. Names being:

Changed:
<
<
  • Not checkboxs - nameFLD e.g. ?BugPriorityFLD=1
  • Checkbox - nameFLDvalue=1 e.g. ?ColourFLDRed=1. Note that all boxes with a tick must be specified.
>
>
  • Not checkboxes - name e.g. ?BugPriority=1
  • Checkbox - namevalue=1 e.g. ?ColourRed=1. Note that all boxes with a tick must be specified.
 

Creating New Topics with Forms

Revision 52001-09-01 - MikeMannix

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 12 to 12
  You can search for topics with specific form data using the %SEARCH% variable - see TWikiVariables.
Changed:
<
<

Goodby to TWikiCategoryTables

>
>

TWikiCategoryTables Are History

 
Changed:
<
<
This is a more general replacement for the TWikiCategoryTable capability, in particular Forms are defined by special topics, where as categories were defineind using special templates.
>
>
Form Templates more powerful, flexible replacement for the original TWikiCategoryTable.
 

Changes from the Category Table System

Changed:
<
<
Main changes from TWikiCategoryTable: The templates for category view/edit have been dropped.and render to HTML on viewing
>
>
Main changes from TWikiCategoryTable: The templates for category view/edit have been dropped, and the forma renders to HTML on viewing.
 
Form Templates Category Tables
defined by topics defined in a template file
Line: 43 to 42
 
  • Field Type: The type of a field when editing a form. The type defines the HTML INPUT tag widgets when editing a topic:
    • select: Drop down box or selector
    • checkbox: One or more check boxes
Changed:
<
<
    • checkbox+buttons: One or more check boxes, plus set and clear buttons to set/clear all check boxes
>
>
    • checkbox+buttons: One or more check boxes, plus [Set] and [][Clear] buttons to set/clear all checkboxes
 
    • radio: One or more radio buttons
    • text: A one-line text field
Changed:
<
<
    • textarea: A general text area - size is rowsxcols e.g. 40x10
>
>
    • textarea: A general text area - size is rowsxcols 40x10
 
  • Field Value: Value of a form field. Can be one or more values from a fixed set (select, checkbox, radio type) or free form (text type). (Used to be called category item value)

Defining a Form Template

Changed:
<
<
Form templates are defined by topics, one topic per form template. A form template topic has descriptive text mixed with the form template definition in the form of a TWiki table.
>
>
A Form Template is simply a page containing your form, defined in a table where each row is one form field.
 
Changed:
<
<

Examples

>
>
  1. Create a new topic with your Form name: MyForm, ExpenseReport, InfoCategory, RecordReview, whatever you need.
  2. Create a TWiki table, with each column representing one element of an entry field: Name, Type, Size, Values, and Tooltip msessage (see sample below).
  3. For each field, fill in a new line; for the type of field, select from the list.
  4. Save the topic.

Example: Form Template
| *Name:* | *Type:* | *Size:* | *Values:* | *Tooltip message:* |
| TopClass | select | 1 | Select one..., Private, Public | must fill |
| Target   | checkbox+buttons | 3 | 1, No.2, No.3 | Select OS |
| Version | text | 16 | | OS version |
 

Defining a Form in One Topic

Line: 71 to 83
 
  • A form template topic defines the form
  • Values of fields that have more then one value, e.g. of type radio, select and checkbox can be defined by field value template topics
Changed:
<
<
Above Example:
>
>
Code from:
 
Line: 84 to 97
 
NoDisclosure option blah blah...
PublicSupported option blah blah...
PublicFAQ option blah blah...
Added:
>
>
 
Changed:
<
<

Notes

>
>

Various Implementation Notes

 
  • This format allows you to define field items with / without WikiNames, depending on your needs.
  • The topic can be protected in the usual manner so that not everybody can change the form template - see TWikiAccessControl
Line: 94 to 108
 
  • The first item in the list is the default item. Alternative initial values can be given in a topic template such as WebTopicEditTemplate or using fieldFLD=value or for checkboxes fieldFLDcheckbox=1 in URL
  • The topic definition is not read when a topic is viewed
Changed:
<
<

Specification

Enabling Forms for a Web

>
>

Enabling Forms by Web

 
Changed:
<
<
By default topics can be edited in free form. A form can be added to a topic to give it more structure. Forms are enabled on a per web basis.

The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates e.g.

>
>
Forms are enabled on a per web basis. The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates e.g.
 
  • Set WEBFORMS = BugForm, FeatureForm, BookLoanForm
Changed:
<
<
With this present an extra button is added to the edit view. If the topic doesn't have a form an Add Form button appears at the end of the topic. If a form is present a Change button appears in the top row of the form to the right of the form name. The buttons leads to a screen that enables no form to be selected of one of those specified by WEBFORMS.
>
>
With WEBFORMS enabled, an extra button is added to the edit view. If the topic doesn't have a form an [Add Form] button appears at the end of the topic. If a form is present, a [Change] button appears in the top row of the form. The buttons lead to a screen that enables no form to be selected or one of those specified by WEBFORMS.
  A default form template (i.e. new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a Web and adding a form to it. Initial form values can be set here.
Line: 118 to 129
 

Setting Up Multiple Form Options

Changed:
<
<
  • The optional WEBFORMS variable defines alternative Form Templates that can be selected after pressing [Change] button on the Edit page
>
>
  • The optional WEBFORMS variable defines alternative Form Templates that can be selected after pressing [Change] on the Edit page
 
  • A template topic can use any form template
Deleted:
<
<
  • Decided not to ask user to choose a template or form template when creating a topic as goes against the KISS of Wiki systems.
 
  • New topics with a form get instantiated by simple HTML forms asking for a topic name. If there is a SubmitExpenseReport topic were you can create new expense reports, a SubmitVacationRequest topic and so on. These can specify the required template topic and hence form. HUH?

Revision 42001-09-01 - MikeMannix

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Line: 6 to 6
  Topics allow for flexible free format data, sometimes you want to ensure strucutre to some of the topic information, this can be done with Forms e.g. saying what type of topic it is (e.g. Bug, Feature, FAQ entry etc) and then filling in fields using dropdowns, radio buttons etc.
Added:
>
>

Overview

 If forms are enabled for a Web and a topic has a form you will see it as a table when viewing the page. When you edit you will see the various edit controls below the normal text area. There will be a button at the top of the form marked Change which allows you to change to a different form, or remove the form. If you edit a topic without a form, there will be a button Add Form, that let's you associate a form with the topic; note that changes you have made to the topic are not lost when you select this option.
Changed:
<
<
You can search for topics with specific form data using the %SEARCH% variable - see TWikiVariables.
>
>
You can search for topics with specific form data using the %SEARCH% variable - see TWikiVariables.

Goodby to TWikiCategoryTables

This is a more general replacement for the TWikiCategoryTable capability, in particular Forms are defined by special topics, where as categories were defineind using special templates.

Changes from the Category Table System

Main changes from TWikiCategoryTable: The templates for category view/edit have been dropped.and render to HTML on viewing

Form Templates Category Tables
defined by topics defined in a template file
multiple forms per web one category per web
data saved in Meta variables data saved as HTML
[Change] form and [Add Form] contol buttons UseCategory radio button

Migrating Existing Category Table Data

The new Form Template system should work with old Category Table data with no special conversion. Old data should be transparently upgraded to the new Meta format when a page imported from the old TWiki is edited and saved in the new system for the first time.

On upgrading, the administrator must produce a form template topic for each web that uses the old Category Tables. twikicatitems.tmpl defines the categories and is used in the conversion. The form template must be set as the first item in the WebPreferences variable =WEBFORM. If it's not present, view works, but edit results in an oops dialog result. If things aren't working correctly, there may be entries in data/warning.txt.

 
Changed:
<
<

Terminology

>
>

Form Template Elements

 
  • Form Template: A set of fields defining a form. (Class in OO speak; used to be called category table definition)
    • A web may contain more then zero or more form template.
Line: 26 to 49
 
    • textarea: A general text area - size is rowsxcols e.g. 40x10
  • Field Value: Value of a form field. Can be one or more values from a fixed set (select, checkbox, radio type) or free form (text type). (Used to be called category item value)
Changed:
<
<

Specification

Enable forms for a web

By default topics can be edited in free form. A form can be added to a topic to give it more structure. Forms are enabled on a per web basis.

The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates e.g.

  • Set WEBFORMS = BugForm, FeatureForm, BookLoanForm

With this present an extra button is added to the edit view. If the topic doesn't have a form an Add Form button appears at the end of the topic. If a form is present a Change button appears in the top row of the form to the right of the form name. The buttons leads to a screen that enables no form to be selected of one of those specified by WEBFORMS.

A default form template (i.e. new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a Web and adding a form to it. Initial form values can be set here.

Addtionaly a new topic can be given a form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values. Names being:

  • Not checkboxs - nameFLD e.g. ?BugPriorityFLD=1
  • Checkbox - nameFLDvalue=1 e.g. ?ColourFLDRed=1. Note that all boxes with a tick must be specified.

Defining a form template

>
>

Defining a Form Template

  Form templates are defined by topics, one topic per form template. A form template topic has descriptive text mixed with the form template definition in the form of a TWiki table.
Changed:
<
<

Examples

>
>

Examples

 
Changed:
<
<

Defining form in one topic

>
>

Defining a Form in One Topic

  Example: WebFormTemplate of the TWiki.Know web:
Line: 59 to 64
 
OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah...
OsVersion text 16   blah blah...
Changed:
<
<

Defining a form in multiple topics

>
>

Defining a Form in Multiple Topics

  The form template can also be defined in an alternative way by using more then one topic:
Line: 90 to 94
 
  • The first item in the list is the default item. Alternative initial values can be given in a topic template such as WebTopicEditTemplate or using fieldFLD=value or for checkboxes fieldFLDcheckbox=1 in URL
  • The topic definition is not read when a topic is viewed
Changed:
<
<

Changes from category system

>
>

Specification

 
Changed:
<
<
Main changes from TWikiCategoryTable:
  • Name changed in the hope that form is more readily understandable than category
  • The templates for category view/edit have been dropped
  • Forms are defined by topics, categories were defined in a template file
  • A Web can have multiple forms, only one category was possible
  • Form data is saved in meta variables - see MetaDataDefinition, and render to HTML on viewing. Category data was stored as HTML
  • The UseCategory radio button has gone, the replacement being the Change form and Add Form buttons.
>
>

Enabling Forms for a Web

 
Changed:
<
<

Creating new topics with forms

>
>
By default topics can be edited in free form. A form can be added to a topic to give it more structure. Forms are enabled on a per web basis.
 
Changed:
<
<
When you create a new topic in a web that has the WEBFORMS preferences variable set you will get a Add Form button at the bottom of the page. However, if the WebTopicEditTemplate topic has had a form added this will appear with values set; Change in the form can be pressed to remove the template or switch to a different one.
>
>
The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates e.g.
  • Set WEBFORMS = BugForm, FeatureForm, BookLoanForm
 
Changed:
<
<
A form embedded in a topic can also cause a form to be present in a new topic, this is done by specifying the formtemplate parameter in the URL.
>
>
With this present an extra button is added to the edit view. If the topic doesn't have a form an Add Form button appears at the end of the topic. If a form is present a Change button appears in the top row of the form to the right of the form name. The buttons leads to a screen that enables no form to be selected of one of those specified by WEBFORMS.
 
Changed:
<
<

Topic meta data

>
>
A default form template (i.e. new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a Web and adding a form to it. Initial form values can be set here.
 
Changed:
<
<
See MetaDataDefinition.
>
>
Addtionaly a new topic can be given a form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values. Names being:
  • Not checkboxs - nameFLD e.g. ?BugPriorityFLD=1
  • Checkbox - nameFLDvalue=1 e.g. ?ColourFLDRed=1. Note that all boxes with a tick must be specified.

Creating New Topics with Forms

 
Changed:
<
<
The form template topic name and all form fields/values are stored in the topic meta data. The form template topic name is needed for edit and save.
>
>
When you create a new topic in a web that has the WEBFORMS Preferences variable set, an [Add Form] button appears at the bottom of the page. If the WebTopicEditTemplate topic has a form added, the form will appear with values set; press [Change] to remove the template or to switch to a different one.
 
Changed:
<
<
The order of form field/value items in the meta-data is the same as in the form template.
>
>
A form embedded in a topic also appears in a new topic. This is done by specifying the formtemplate parameter in the URL.
 
Changed:
<
<

UI for multiple form templates

>
>

Setting Up Multiple Form Options

 
Changed:
<
<
  • Optional WEBFORMS variable defines possible form templates that can be selected after pressing "Change" (forms) button on edit page
>
>
  • The optional WEBFORMS variable defines alternative Form Templates that can be selected after pressing [Change] button on the Edit page
 
  • A template topic can use any form template
  • Decided not to ask user to choose a template or form template when creating a topic as goes against the KISS of Wiki systems.
Changed:
<
<
  • New topics with a form get instantiated by simple HTML forms asking for a topic name, i.e. there is a SubmitExpenseReport topic were you can create new expense reports, a SubmitVacationRequest topic and so on. These can specify the required template topic and hence form.
>
>
  • New topics with a form get instantiated by simple HTML forms asking for a topic name. If there is a SubmitExpenseReport topic were you can create new expense reports, a SubmitVacationRequest topic and so on. These can specify the required template topic and hence form. HUH?
 
Deleted:
<
<

Migration of Category information

 
Changed:
<
<
Principle: new system should work with old data with no special conversion.

Old data should be transparently upgraded to the new meta format when a topic is edit/previewed/saved.

On upgrading the administrator must produce a form template topic for each Web that using the old category system. twikicatitems.tmpl defines the categories and is used in the conversion. The form template must be put as first item in WebPreferences variable =WEBFORM. If it's not present view works, but edit results in an oops dialog results. If things aren't working correctly there may be entries data/warning.txt.

History

This is a more general replacement for the TWikiCategoryTable capability, in particular Forms are defined by special topics, where as categories were defineind using special templates.

>
>

Form Template Data Storage

 
Added:
>
>
The Form Template topic name, fields and values are stored in the topic Meta Data. The order of field/value pairs in the Meta Data is the same as in the Template. The Form name is required for [Edit] and [Save].
 -- JohnTalintyre - 16 Aug 2001

Revision 32001-08-29 - JohnTalintyre

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Added:
>
>
 

Form Templates

Changed:
<
<
>
>
Topics allow for flexible free format data, sometimes you want to ensure strucutre to some of the topic information, this can be done with Forms e.g. saying what type of topic it is (e.g. Bug, Feature, FAQ entry etc) and then filling in fields using dropdowns, radio buttons etc.

If forms are enabled for a Web and a topic has a form you will see it as a table when viewing the page. When you edit you will see the various edit controls below the normal text area. There will be a button at the top of the form marked Change which allows you to change to a different form, or remove the form. If you edit a topic without a form, there will be a button Add Form, that let's you associate a form with the topic; note that changes you have made to the topic are not lost when you select this option.

 
Changed:
<
<
Topics allow for flexible free format data, sometimes you want to ensure strucutre to some of the topic information, this can be done with Forms e.g. saying what type of topic it is (Bug, Feature, FAQ entry etc).
>
>
You can search for topics with specific form data using the %SEARCH% variable - see TWikiVariables.
 

Terminology

Line: 56 to 60
 
OsVersion text 16   blah blah...
Changed:
<
<

Defining form in multiple topics

>
>

Defining a form in multiple topics

  The form template can also be defined in an alternative way by using more then one topic:
Line: 104 to 108
 

Topic meta data

Changed:
<
<
See TWikiMetaDataDefinition.
>
>
See MetaDataDefinition.
  The form template topic name and all form fields/values are stored in the topic meta data. The form template topic name is needed for edit and save.
Line: 129 to 133
  This is a more general replacement for the TWikiCategoryTable capability, in particular Forms are defined by special topics, where as categories were defineind using special templates.
Changed:
<
<
-- JohnTalintyre - 16 Aug 2001
>
>
-- JohnTalintyre - 16 Aug 2001

Revision 22001-08-16 - JohnTalintyre

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Form Templates

Changed:
<
<

Background

This is a more general replacement for the TWikiCategoryTable capability, in particular Forms are defined by special topics, where as categories were defineind using special templates.

>
>
Topics allow for flexible free format data, sometimes you want to ensure strucutre to some of the topic information, this can be done with Forms e.g. saying what type of topic it is (Bug, Feature, FAQ entry etc).
 

Terminology

  • Form Template: A set of fields defining a form. (Class in OO speak; used to be called category table definition)
Changed:
<
<
    • A web may contain more then one form template.
>
>
    • A web may contain more then zero or more form template.
 
  • Form: A topic containing additional meta-data (besides the free form TEXTAREA) which categorizes the content. (Object in OO speak; used to be called category table)
    • A topic has zero or one of the defined forms. So there are topics with a form or without.
  • Form Field: A named item in a form. (Used to be called category item name)
Line: 29 to 27
 

Enable forms for a web

Changed:
<
<
By default topics can be edited in free form. A form can be added to a topic to give it more structure. Forms are enabled on a per web basis. This can be done in two ways. One is similar to that used for the older category system, with this a Web can have only one form. The other allows a Web to have any number of forms.

A default form template can be provided by creating the WebTopicEditTemplate topic in a Web and adding a form to it. Initial form values can be set here.

Enabling single default form

The DEFAULTFORM variable in WebPreferences is optional. If present it specifies the default form for all topics in the Web. Every time you edit a topic you will be presented with a form. The form must contain the special field UseForm (analogous to the UseCategory line in the old category system). The values for this must be:

  • First field - "Yes" (any capitalisation)
  • Second field - any text, but must mean no form

Enabling multiple forms

>
>
By default topics can be edited in free form. A form can be added to a topic to give it more structure. Forms are enabled on a per web basis.
  The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates e.g.
  • Set WEBFORMS = BugForm, FeatureForm, BookLoanForm
Changed:
<
<
With this present an extra button is added to the edit view. If the topic doesn't have a form the button appears at the end of the page. If a form is present the button appears in the top row of the form. Pressing the button leads to a screen that enables no form to be selected of one of those specified by WEBFORMS.
>
>
With this present an extra button is added to the edit view. If the topic doesn't have a form an Add Form button appears at the end of the topic. If a form is present a Change button appears in the top row of the form to the right of the form name. The buttons leads to a screen that enables no form to be selected of one of those specified by WEBFORMS.
 
Changed:
<
<

Define a form template

>
>
A default form template (i.e. new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a Web and adding a form to it. Initial form values can be set here.

Addtionaly a new topic can be given a form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values. Names being:

  • Not checkboxs - nameFLD e.g. ?BugPriorityFLD=1
  • Checkbox - nameFLDvalue=1 e.g. ?ColourFLDRed=1. Note that all boxes with a tick must be specified.

Defining a form template

  Form templates are defined by topics, one topic per form template. A form template topic has descriptive text mixed with the form template definition in the form of a TWiki table.
Line: 57 to 51
 Example: WebFormTemplate of the TWiki.Know web:

Name: Type: Size: Values: Tooltip message:
Deleted:
<
<
UseForm radio 0 Yes, No Select 'No' to remove the form
 
TopicClassification select 1 NoDisclosure, PublicSupported, PublicFAQ blah blah...
OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah...
OsVersion text 16   blah blah...
Line: 74 to 67
 
Deleted:
<
<
UseForm radio 0 Yes, No blah blah...
 
TopicClassification select 1   blah blah...
OperatingSystem checkbox 3   blah blah...
OsVersion text 16   blah blah...
Line: 88 to 80
 

Notes

  • This format allows you to define field items with / without WikiNames, depending on your needs.
Changed:
<
<
  • The topic can be protected in the usual manner so that not everybody can change the form template.
>
>
  • The topic can be protected in the usual manner so that not everybody can change the form template - see TWikiAccessControl
 
  • ... can be used for force a link, at present ... format is not supported
  • The "Tooltip message:" column is used as a tool tip for the field name (only if field name is a WikiName) - you only see the tooltip on edit
  • The first item in the list is the default item. Alternative initial values can be given in a topic template such as WebTopicEditTemplate or using fieldFLD=value or for checkboxes fieldFLDcheckbox=1 in URL
Changed:
<
<
  • The UseForm field is special.
    • Will always default to second value (don't use form) when topic doesn't have a form
    • Is not show on preview or view
    • When set to no on save, form data is deleted.
  • It is not a good idea to use both DEFAULTFORM and WEBFORMS WebPreferences in the same Web.
>
>
  • The topic definition is not read when a topic is viewed
 

Changes from category system

Main changes from TWikiCategoryTable:

  • Name changed in the hope that form is more readily understandable than category
Deleted:
<
<
  • UseCategory is now UseForm
 
  • The templates for category view/edit have been dropped
  • Forms are defined by topics, categories were defined in a template file
  • A Web can have multiple forms, only one category was possible
  • Form data is saved in meta variables - see MetaDataDefinition, and render to HTML on viewing. Category data was stored as HTML
Added:
>
>
  • The UseCategory radio button has gone, the replacement being the Change form and Add Form buttons.
 

Creating new topics with forms

Changed:
<
<
When you create a new topic in a web that has the WEBFORM preferences variable set you will get a topic with the default form template specified by the variable.
>
>
When you create a new topic in a web that has the WEBFORMS preferences variable set you will get a Add Form button at the bottom of the page. However, if the WebTopicEditTemplate topic has had a form added this will appear with values set; Change in the form can be pressed to remove the template or switch to a different one.
 
Changed:
<
<
For simplicity we should use the default form template when one creates a new topic by question mark link or "Go" field, i.e. better not to show a menu to select a form template.
>
>
A form embedded in a topic can also cause a form to be present in a new topic, this is done by specifying the formtemplate parameter in the URL.
 

Topic meta data

Line: 124 to 112
 

UI for multiple form templates

Changed:
<
<
  • Optional WEBFORMS variable defines possibles form templates that can be selected after pressing "Change" (forms) button on edit page
>
>
  • Optional WEBFORMS variable defines possible form templates that can be selected after pressing "Change" (forms) button on edit page
 
  • A template topic can use any form template
  • Decided not to ask user to choose a template or form template when creating a topic as goes against the KISS of Wiki systems.
  • New topics with a form get instantiated by simple HTML forms asking for a topic name, i.e. there is a SubmitExpenseReport topic were you can create new expense reports, a SubmitVacationRequest topic and so on. These can specify the required template topic and hence form.
Line: 135 to 123
  Old data should be transparently upgraded to the new meta format when a topic is edit/previewed/saved.
Changed:
<
<
On upgrading the administrator must produce a form template topic for each Web that using the old category system. twikicatitems.tmpl defines the categories and is used in the conversion. The form template must be put as first item in WebPreferences variable WEBFORM or DEFAULTFORM (if/when put in). If it's not present, an oops dialog results.
>
>
On upgrading the administrator must produce a form template topic for each Web that using the old category system. twikicatitems.tmpl defines the categories and is used in the conversion. The form template must be put as first item in WebPreferences variable =WEBFORM. If it's not present view works, but edit results in an oops dialog results. If things aren't working correctly there may be entries data/warning.txt.

History

This is a more general replacement for the TWikiCategoryTable capability, in particular Forms are defined by special topics, where as categories were defineind using special templates.

 
Changed:
<
<
-- JohnTalintyre - 07 Aug 2001
>
>
-- JohnTalintyre - 16 Aug 2001

Revision 12001-08-07 - JohnTalintyre

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="WebHome"

Form Templates

Background

This is a more general replacement for the TWikiCategoryTable capability, in particular Forms are defined by special topics, where as categories were defineind using special templates.

Terminology

  • Form Template: A set of fields defining a form. (Class in OO speak; used to be called category table definition)
    • A web may contain more then one form template.
  • Form: A topic containing additional meta-data (besides the free form TEXTAREA) which categorizes the content. (Object in OO speak; used to be called category table)
    • A topic has zero or one of the defined forms. So there are topics with a form or without.
  • Form Field: A named item in a form. (Used to be called category item name)
  • Field Type: The type of a field when editing a form. The type defines the HTML INPUT tag widgets when editing a topic:
    • select: Drop down box or selector
    • checkbox: One or more check boxes
    • checkbox+buttons: One or more check boxes, plus set and clear buttons to set/clear all check boxes
    • radio: One or more radio buttons
    • text: A one-line text field
    • textarea: A general text area - size is rowsxcols e.g. 40x10
  • Field Value: Value of a form field. Can be one or more values from a fixed set (select, checkbox, radio type) or free form (text type). (Used to be called category item value)

Specification

Enable forms for a web

By default topics can be edited in free form. A form can be added to a topic to give it more structure. Forms are enabled on a per web basis. This can be done in two ways. One is similar to that used for the older category system, with this a Web can have only one form. The other allows a Web to have any number of forms.

A default form template can be provided by creating the WebTopicEditTemplate topic in a Web and adding a form to it. Initial form values can be set here.

Enabling single default form

The DEFAULTFORM variable in WebPreferences is optional. If present it specifies the default form for all topics in the Web. Every time you edit a topic you will be presented with a form. The form must contain the special field UseForm (analogous to the UseCategory line in the old category system). The values for this must be:

  • First field - "Yes" (any capitalisation)
  • Second field - any text, but must mean no form

Enabling multiple forms

The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates e.g.

  • Set WEBFORMS = BugForm, FeatureForm, BookLoanForm

With this present an extra button is added to the edit view. If the topic doesn't have a form the button appears at the end of the page. If a form is present the button appears in the top row of the form. Pressing the button leads to a screen that enables no form to be selected of one of those specified by WEBFORMS.

Define a form template

Form templates are defined by topics, one topic per form template. A form template topic has descriptive text mixed with the form template definition in the form of a TWiki table.

Examples

Defining form in one topic

Example: WebFormTemplate of the TWiki.Know web:

Name: Type: Size: Values: Tooltip message:
UseForm radio 0 Yes, No Select 'No' to remove the form
TopicClassification select 1 NoDisclosure, PublicSupported, PublicFAQ blah blah...
OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah...
OsVersion text 16   blah blah...

Defining form in multiple topics

The form template can also be defined in an alternative way by using more then one topic:

  • A form template topic defines the form
  • Values of fields that have more then one value, e.g. of type radio, select and checkbox can be defined by field value template topics

Above Example:

Notes

  • This format allows you to define field items with / without WikiNames, depending on your needs.
  • The topic can be protected in the usual manner so that not everybody can change the form template.
  • ... can be used for force a link, at present ... format is not supported
  • The "Tooltip message:" column is used as a tool tip for the field name (only if field name is a WikiName) - you only see the tooltip on edit
  • The first item in the list is the default item. Alternative initial values can be given in a topic template such as WebTopicEditTemplate or using fieldFLD=value or for checkboxes fieldFLDcheckbox=1 in URL
  • The UseForm field is special.
    • Will always default to second value (don't use form) when topic doesn't have a form
    • Is not show on preview or view
    • When set to no on save, form data is deleted.
  • It is not a good idea to use both DEFAULTFORM and WEBFORMS WebPreferences in the same Web.

Changes from category system

Main changes from TWikiCategoryTable:

  • Name changed in the hope that form is more readily understandable than category
  • UseCategory is now UseForm
  • The templates for category view/edit have been dropped
  • Forms are defined by topics, categories were defined in a template file
  • A Web can have multiple forms, only one category was possible
  • Form data is saved in meta variables - see MetaDataDefinition, and render to HTML on viewing. Category data was stored as HTML

Creating new topics with forms

When you create a new topic in a web that has the WEBFORM preferences variable set you will get a topic with the default form template specified by the variable.

For simplicity we should use the default form template when one creates a new topic by question mark link or "Go" field, i.e. better not to show a menu to select a form template.

Topic meta data

See TWikiMetaDataDefinition.

The form template topic name and all form fields/values are stored in the topic meta data. The form template topic name is needed for edit and save.

The order of form field/value items in the meta-data is the same as in the form template.

UI for multiple form templates

  • Optional WEBFORMS variable defines possibles form templates that can be selected after pressing "Change" (forms) button on edit page
  • A template topic can use any form template
  • Decided not to ask user to choose a template or form template when creating a topic as goes against the KISS of Wiki systems.
  • New topics with a form get instantiated by simple HTML forms asking for a topic name, i.e. there is a SubmitExpenseReport topic were you can create new expense reports, a SubmitVacationRequest topic and so on. These can specify the required template topic and hence form.

Migration of Category information

Principle: new system should work with old data with no special conversion.

Old data should be transparently upgraded to the new meta format when a topic is edit/previewed/saved.

On upgrading the administrator must produce a form template topic for each Web that using the old category system. twikicatitems.tmpl defines the categories and is used in the conversion. The form template must be put as first item in WebPreferences variable WEBFORM or DEFAULTFORM (if/when put in). If it's not present, an oops dialog results.

-- JohnTalintyre - 07 Aug 2001

 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.TWikiForms.