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 |
**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.
**_NOTE:_** If things aren't working correctly, there may be useful entries in `data/warning.txt`.
## 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.
- **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.
- **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_)
### 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).
3. For each field, fill in a new line; for the type of field, select from the list.
4. Save the topic.
> **Example: WebForm from the TWiki.Know web**
>
> | *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... |
>
> 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... | >
Name | >Type | >Size | >Values | >Tooltip message | >
---|---|---|---|---|
[[Know/TopicClassification]] | >select | >1 | >... | >blah blah... | >
[[Know/OperatingSystem]] | >checkbox | >3 | >... | >blah blah... | >
[[Know/OsVersion]] | >text | >16 | >... | >blah blah... | >
Name | >Type | >Tooltip message | >
---|---|---|
[[Know/NoDisclosure]] | >option | >blah blah... | >
[[Know/PublicSupported]] | >option | >blah blah... | >
[[Know/PublicFAQ]] | >option | >blah blah... | >
**WEBFORMS**
variable in [[WebPreferences]] is optional and defines a list of possible Form Templates. Example:
- Set WEBFORMS = BugForm, FeatureForm, 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.
- 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:
- other than checkboxes: `name`, ex: `?BugPriority=1`
- checkbox: `namevalue=1`, ex: `?ColourRed=1`. **WEBFORMS**
variable defines alternative Form Templates that can be selected by pressing **Change** in edit mode.
- 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.
## Form Template Data Storage
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