<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://open-csp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=944f869b-8467-464e-95c7-903362952755</id>
	<title>CSP Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://open-csp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=944f869b-8467-464e-95c7-903362952755"/>
	<link rel="alternate" type="text/html" href="https://open-csp.org/Special:Contributions/944f869b-8467-464e-95c7-903362952755"/>
	<updated>2026-04-29T19:36:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://open-csp.org/index.php?title=Property:Doc_synopsis&amp;diff=3771</id>
		<title>Property:Doc synopsis</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=Property:Doc_synopsis&amp;diff=3771"/>
		<updated>2025-08-27T10:13:47Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: Created page with &amp;quot;{{#set: Has type=Text }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#set: Has type=Text }}&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/create&amp;diff=3739</id>
		<title>DevOps:Doc/FlexForm/2.0/create</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/create&amp;diff=3739"/>
		<updated>2025-08-25T12:02:59Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: mwwrite: add two further options&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_create&lt;br /&gt;
===Type===&lt;br /&gt;
_create&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Using a form to create new pages or overwrite existing pages&lt;br /&gt;
===Description===&lt;br /&gt;
_create can be defined as part of a form to have new page(s) created on form submit or overwrite (an) existing page(s).&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;_create&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwtemplate&#039;&#039;&#039; = Name of a template to use as content for the new page. If you have a form with only one input element you can also use mwtemplate=&amp;quot;wsnone&amp;quot;. This will take the content of the form input element and make it the source content of the new page (without putting it inside a template).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwwrite&#039;&#039;&#039; = Full name of the target page; or when used with &#039;mwoption&#039;, part of the page name; or a formula in the format &amp;quot;::id::&amp;lt; ... &amp;gt;&amp;quot; referencing the value of &#039;mwwrite&#039; from another &amp;lt;code&amp;gt;_create&amp;lt;/code&amp;gt; (see example 4 below).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwfollow&#039;&#039;&#039; = Will send the user to the newly create page after form submission&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwoption&#039;&#039;&#039; can hold three different values:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;&#039;&#039;&#039;add_random&#039;&#039;&#039;&amp;quot; = Create random numbers&lt;br /&gt;
* &amp;quot;&#039;&#039;&#039;next_available&#039;&#039;&#039;&amp;quot; = Get the next available number. If mwwrite is : &amp;quot;orders/&amp;quot;, this option will find the highest orders number (e.g. orders/192) and will create a page with one number higher (e.g. orders/193)&lt;br /&gt;
* &amp;quot;&#039;&#039;&#039;range:&#039;&#039;&#039;&amp;quot; = Get the next available free slot in a range of numbers. If mwwrite is : &amp;quot;orders/&amp;quot;, this option will find the first free spot in a range of numbers. If mwoption=&amp;quot;range:2019000-2019999&amp;quot; and mwwrite=&amp;quot;orders/&amp;quot; then FlexForm will start looking for a page called orders/2019000. If exists it will look for orders/2019001  etc.. till the first free page is found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwleadingzero&#039;&#039;&#039; can be used in combination with range. When a range is set like 1-99999 using mwleadingzero will use the length of the  end range and use it to fill the start range with leading zeros, making the range from 00001-99999.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwfields&#039;&#039;&#039; = comma separated names of form elements that need to be included. Only works when using multiple _create.&lt;br /&gt;
&lt;br /&gt;
If you are creating multiple pages and want to re-assign form fields to template variables, you still add the form field name to mwfields, but add &amp;quot;&#039;&#039;&#039;::&#039;&#039;&#039;&amp;quot; and then the name of the template variable. So if you want to tell mwfields to use formfield &amp;quot;&#039;&#039;&#039;name2&#039;&#039;&#039;&amp;quot;, but add it to the template as &amp;quot;&#039;&#039;&#039;Name&#039;&#039;&#039;&amp;quot;, add : &amp;quot;&#039;&#039;&#039;name2::Name&#039;&#039;&#039;&amp;quot; to mwfields.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwslot&#039;&#039;&#039; = name of a specific content slot to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nooverwrite&#039;&#039;&#039; =  when this is set, no create will be done for a page that already exists. Even if you are creating a new slot for a page that already exist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;noseo&#039;&#039;&#039; =  when this is set, even if the setting &#039;&#039;&#039;create-seo-titles&#039;&#039;&#039; in your local settings is set to &#039;&#039;&#039;true&#039;&#039;&#039; to always create SEO friendly page titles, it will not make the title of a new page SEO friendly, but use the title given.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwformat&#039;&#039;&#039; = defaults to wiki. Currently only supports wiki or json. When set to json, the page content of the page will become a json. When used with mwtemplate, then the template name will be the key for the json. All form values will be stored as strings. Every new array with key names will automatically get a ffID value that will always be unique. This is done for easy editing later.&lt;br /&gt;
&lt;br /&gt;
There are several ways for creating a page with FlexForm.&lt;br /&gt;
&lt;br /&gt;
# Easiest  Use mwtemplate and mwwrite as described above (and optionally wsfollow, wsoption, etc)  This will use the values of mwtemplate and mwwrite and any form elements the current for has and create a new page with template &amp;quot;mwtemplate&amp;quot; and title of &amp;quot;mwwrite&amp;quot;. See example 1.&lt;br /&gt;
# More advanced and possibilities  Use mwtemplate and mwwrite with more options than described above (and optionally wsfollow, wsoption, etc)  mwwrite can use can use other elements in the form and use those values to create a title for a new page.  Field names can be added using square brackets. So if a form also has a text input field of &amp;quot;title&amp;quot; mwwrite could be &amp;quot;[title]&amp;quot;.   [mwrandom] can also be used e.g. mwwrite=&amp;quot;[title]/[mwrandom]&amp;quot;. See example 2.&lt;br /&gt;
# Create multiple pages with one form and control what form elements are used.  This is where mwfields comes in. This is a comma separated list of form elements that will be used to create the new page.  If a form has 15 text input fields, then using _create will include all 15 (filled-in by user) elements in the new page. Using mwfields you can tell _create specifically what form element to use to create a new page. So, when creating multiple new pages with one form, mwfields should be used with any and all _create. See example 3.&lt;br /&gt;
# Create a new page and fill different content slots for that page.   You have to give the definition of the first _create an id. The other _create elements reference the first _create with a mwwrite like mwwrite=&amp;quot;::id::&amp;lt;idOfWSCreateWithID&amp;gt;&amp;quot;. See example 4.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Example 1 : Create a new page with the next available number&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;orders/&amp;quot; mwtemplate=&amp;quot;Order&amp;quot; mwoption=&amp;quot;next_available&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Create a new page with the next available number in a range and always start from the beginning&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;orders/&amp;quot; mwtemplate=&amp;quot;Order&amp;quot; mwoption=&amp;quot;range:2019000-2019999&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Random number&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:&amp;quot; mwoption=&amp;quot;add_random&amp;quot; mwtemplate=&amp;quot;Solution&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2 : Create from text, mwrandom and fieldvalues&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:[namefield]/[mwrandom]&amp;quot; mwtemplate=&amp;quot;Solution&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 3 : Create from text and field values and only include specific form  element names in the new template&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:[namefield]/Personal&amp;quot; mwtemplate=&amp;quot;Personal&amp;quot; mwfields=&amp;quot;naam, adres, straat, plaats&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:[namefield]/Business&amp;quot; mwtemplate=&amp;quot;Business&amp;quot; mwfields=&amp;quot;Company, cadres, cstraat, cplaats&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 4 : Create a page with title : Test/[title]. With no main content and a template of Structured data with an argument of Hello in slot:mds-metadataslot&amp;quot;. At the same time content slot &amp;quot;mds-metadataslot2&amp;quot; get the same template with argument Hello2.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create id=&amp;quot;testingSlot&amp;quot; mwwrite=&amp;quot;Test/[title]&amp;quot; mwtemplate=&amp;quot;Structured data&amp;quot; mwfollow mwfields=&amp;quot;Hello&amp;quot; mwslot=&amp;quot;mds-metadataslot&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;::id::testingSlot&amp;quot; mwtemplate=&amp;quot;wsnone&amp;quot; mwfields=&amp;quot;Hello2&amp;quot; mwslot=&amp;quot;mds-metadataslot2&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 5 : Use &#039;&#039;&#039;wsnone&#039;&#039;&#039; and &#039;&#039;&#039;[https://www.mediawiki.org/wiki/Help:Substitution substitution] &#039;&#039;&#039; to copy content of an existing page onto a new page. This example copies the content of &amp;quot;Main Page&amp;quot; when creating a new page named &amp;quot;Test new page&amp;quot;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Test new page&amp;quot; mwtemplate=&amp;quot;wsnone&amp;quot; mwfields=&amp;quot;Content&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;Content&amp;quot;&amp;gt;{{subst::Main Page}}&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
If you create a page from text, mwrandom and field values and also add mwoption=&amp;quot;add_random&amp;quot;, another random number will be added to the end of the page title.&lt;br /&gt;
&lt;br /&gt;
You can have multiple instances of _create in a form, as long as mwfields is a non empty argument with every _create.&lt;br /&gt;
If you have multiple _create and they all have a mwfollow, the last _create in the list will be followed.&lt;br /&gt;
===Links===&lt;br /&gt;
https://www.mediawiki.org/wiki/Multi-Content_Revisions&lt;br /&gt;
&lt;br /&gt;
{{FlexForm/Create and edit comparison}}&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/select&amp;diff=3390</id>
		<title>DevOps:Doc/FlexForm/2.0/input/select</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/select&amp;diff=3390"/>
		<updated>2025-07-12T07:56:22Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* Example */ demonstrate use of &amp;#039;selected&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===Name===&lt;br /&gt;
select (dropdown)&lt;br /&gt;
===Type===&lt;br /&gt;
select&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to use select with option fields to create a dropdown input&lt;br /&gt;
===Description===&lt;br /&gt;
The &amp;lt;code&amp;gt;select&amp;lt;/code&amp;gt; element is used to create a drop-down list.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; attribute is needed to reference the form data after the form is submitted (if you omit the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; attribute, no data from the drop-down list will be submitted).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; attribute is needed to associate the drop-down list with a label.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;option&amp;gt;&amp;lt;/option&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;tags inside the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;select&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; element define the available options in the drop-down list.&lt;br /&gt;
&lt;br /&gt;
Instead of option inputs, it&#039;s also possible to use &amp;lt;code&amp;gt;selected&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt; as attributes of the select element. In this case &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt; should contain a comma-separated list of options and &amp;lt;code&amp;gt;selected&amp;lt;/code&amp;gt; can be used to specify which option should be selected.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;select&amp;gt;&amp;lt;option&amp;gt;&amp;lt;/option&amp;gt;&amp;lt;/select&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use placeholder to have an extra, non-selectable item with a suggestion. This also allows for not sending any data from a select, when the placeholder is still selected. Making a select field also an optional field in a form. See example 1.&lt;br /&gt;
&lt;br /&gt;
Select values have by default comma separated values when adding to a Template. You can specify a different separator using the argument &#039;&#039;&#039;separator&#039;&#039;&#039;. e.g. separator=&amp;quot;;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
All other valid HTML5 attributes are allowed&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Select a car:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;select name=&amp;quot;car&amp;quot; placeholder=&amp;quot;Choose a car&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;option value=&amp;quot;volvo&amp;quot;&amp;gt;Volvo&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;option value=&amp;quot;saab&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;Saab&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;select name=&amp;quot;car&amp;quot; placeholder=&amp;quot;Choose a car&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;volvo&amp;quot;&amp;gt;Volvo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;saab&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;Saab&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;label for=&amp;quot;dino-select&amp;quot;&amp;gt;Choose a dinosaur:&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;select id=&amp;quot;dino-select&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;optgroup label=&amp;quot;Theropods&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Tyrannosaurus&amp;quot;&amp;gt;Tyrannosaurus&amp;lt;/option&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Velociraptor&amp;quot;&amp;gt;Velociraptor&amp;lt;/option&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Deinonychus&amp;quot;&amp;gt;Deinonychus&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
    &amp;lt;optgroup label=&amp;quot;Sauropods&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Diplodocus&amp;quot;&amp;gt;Diplodocus&amp;lt;/option&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Saltasaurus&amp;quot;&amp;gt;Saltasaurus&amp;lt;/option&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Apatosaurus&amp;quot;&amp;gt;Apatosaurus&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;label for=&amp;quot;dino-select&amp;quot;&amp;gt;Choose a dinosaur:&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;select id=&amp;quot;dino-select&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;optgroup label=&amp;quot;Theropods&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Tyrannosaurus&amp;quot;&amp;gt;Tyrannosaurus&amp;lt;/option&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Velociraptor&amp;quot;&amp;gt;Velociraptor&amp;lt;/option&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Deinonychus&amp;quot;&amp;gt;Deinonychus&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
    &amp;lt;optgroup label=&amp;quot;Sauropods&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Diplodocus&amp;quot;&amp;gt;Diplodocus&amp;lt;/option&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Saltasaurus&amp;quot;&amp;gt;Saltasaurus&amp;lt;/option&amp;gt;&lt;br /&gt;
        &amp;lt;option value=&amp;quot;Apatosaurus&amp;quot;&amp;gt;Apatosaurus&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;/optgroup&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;select name=&amp;quot;Test&amp;quot; selected=&amp;quot;C&amp;quot; options=&amp;quot;A,B,C,D,E&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;select name=&amp;quot;Test&amp;quot; selected=&amp;quot;C&amp;quot; options=&amp;quot;A,B,C,D,E&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/Installation_of_FlexForm&amp;diff=3389</id>
		<title>DevOps:Doc/FlexForm/2.0/Installation of FlexForm</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/Installation_of_FlexForm&amp;diff=3389"/>
		<updated>2025-07-10T07:07:33Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* Notification/Messages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FlexForm is installed using [https://www.mediawiki.org/wiki/Composer/For_extensions Composer]: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
composer require open-csp/flex-form&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install FlexForm from [https://github.com/Open-CSP/FlexForm github] by installing it in extensions/FlexForm. You do have to run composer --update inside that folder after installation to get all dependencies. &lt;br /&gt;
&lt;br /&gt;
==== Setup ====&lt;br /&gt;
You can tweak &#039;&#039;&#039;FlexForm&#039;&#039;&#039; to an extent in your &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Will render form that makes no sense when inspected in the browser.&lt;br /&gt;
$wgFlexFormConfig[&#039;secure&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// A salt key for encryption. Used together with &amp;quot;secure&amp;quot; option. Must be set when using multiple instances of a wiki.&lt;br /&gt;
$wgFlexFormConfig[&#039;sec_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Interval time in ms, defaults to 3 minutes (180000 ms). Form is submitted on each interval regardless of changes.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_interval&#039;] = 30000;&lt;br /&gt;
&lt;br /&gt;
// Time in ms, defaults to 3 seconds (3000 ms). Form is submitted after the specified time, timer starts when there is a change in the form. Timer resets if there is another change before the time has passed.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_after_change&#039;] = 3000;&lt;br /&gt;
&lt;br /&gt;
// Text on the autosave button to toggle on.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_on&#039;] = &#039;Autosave on&#039;;&lt;br /&gt;
&lt;br /&gt;
// Text on the autosave button to toggle off.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_off&#039;] = &#039;Autosave off&#039;;&lt;br /&gt;
&lt;br /&gt;
// Currently the only form.&lt;br /&gt;
$wgFlexFormConfig[&#039;FlexFormDefaultTheme&#039;] = &amp;quot;plain&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// reCaptcha site key.&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_site_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// reCaptcha secret key.&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_secret_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Where to store images temporarily that need to be format converted.&lt;br /&gt;
$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Set to yes if FlexForm is allowed to create new users.&lt;br /&gt;
$wgFlexFormConfig[&#039;can_create_user&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Will filter all parser arguments to plain text, except value parameters. Will also disallow onClick and onFocus parameter. This feature will most likely be removed in future updates.&lt;br /&gt;
$wgFlexFormConfig[&#039;filter_input_tags&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to what is described by the loadscript form argument. When you change it do a different folder, then loadScript argument will be looking in this folder for its JavaScript file to load with the Form.&lt;br /&gt;
$wgFlexFormConfig[&#039;loadScriptPath&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to sysop. Only a user in the allowedGroups is able to edit pages with a FlexForm in the source.&lt;br /&gt;
$wgFlexFormConfig[&#039;allowedGroups&#039;] = [&amp;quot;sysop&amp;quot;,&amp;quot;moderator&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
// Defaults to true. When a user in the allowedGroups creates a form it will become valid and will be rendered. Someone not in the allowedGroups can create a form and save it, but it will never be rendered until a user from the allowedGroups will edit and re-save the page. Only then will a form become valid. The message &amp;quot;FORM CANNOT BE RENDERED, NOT VALIDATED&amp;quot; will be shown instead of the form when it is invalid or depending on the next setting an image stating it cannot be rendered.&lt;br /&gt;
$wgFlexFormConfig[&#039;renderonlyapprovedforms&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// When a form is invalid, an invalid image will be rendered instead of the form. Set to true to render i18n invalid message.&lt;br /&gt;
$wgFlexFormConfig[&#039;renderi18nErrorInsteadofImageForApprovedForms&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. This differs from FlexForm before 2.0. FlexForm will now honor the UserCan functions in MediaWiki. If a form edits or creates a page a user has no rights to, the form will fail.&lt;br /&gt;
$wgFlexFormConfig[&#039;userscaneditallpages&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to true. If a user is not in the allowedGroups then hide edit and editsource menu items for any page containing a FlexForm form.&lt;br /&gt;
$wgFlexFormConfig[&#039;hideEdit&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Will turn titles given to wscreate into url friendly slugs. Creating only latin character and converting spaces and special characters.&lt;br /&gt;
$wgFlexFormConfig[&#039;create-seo-titles&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// If you have a custom/different version of Pandoc than the one set by your hosting provider, you can add its local path here and FlexForm will use it, instead of the one set by environment variables&lt;br /&gt;
$wgFlexFormConfig[&#039;pandoc-install-path&#039;] = $IP . &#039;/bin/pandoc&#039;; // This will look for Pandoc executable in the root/bin of your MediaWiki instalment&lt;br /&gt;
&lt;br /&gt;
// FlexForm will by default always do an extra null edit on a save or an edit. This is mainly due to SMW. Not always this is necessary, so with this option you can turn it off. ( resulting in less handling time )&lt;br /&gt;
$wgFlexFormConfig[&#039;forceNullEdit&#039;] = true; // Default to true for backwards compatibility&lt;br /&gt;
&lt;br /&gt;
// When sending email, should we use separate smtp?&lt;br /&gt;
$wgFlexFormConfig[&#039;use_smtp&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_host&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_authentication&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_username&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_password&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_secure&#039;] = &amp;quot;TLS&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_port&#039;] = &amp;quot;587&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
* Add the following line at the end of your &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; to enable the extension:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;FlexForm&#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* It is also recommended to turn off the parser cache when using FlexForm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgParserCacheType = CACHE_NONE;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the [https://www.mediawiki.org/wiki/Manual:Update.php update script] which will automatically create the necessary database tables that this extension needs. &lt;br /&gt;
* Navigate to Special:Version on your wiki to verify that the extension is successfully installed.&lt;br /&gt;
&lt;br /&gt;
==== Migrate from version 1.x to 2.0 ====&lt;br /&gt;
* Please notice the changes in the config settings.&lt;br /&gt;
* Do not forget to run update.php.&lt;br /&gt;
* Also, by default, the setting &#039;&#039;&#039;renderonlyapprovedforms&#039;&#039;&#039; will be &#039;&#039;&#039;true&#039;&#039;&#039;. Meaning that once you install FlexForm v2.0 all your existing FlexForm forms in your wiki will be shown as unvalidated. Visit [[DevOps:Doc/FlexForm/2.0/Validated Forms|Validated Forms]] to read how to solve this easily.&lt;br /&gt;
&lt;br /&gt;
==== Notification/Messages ====&lt;br /&gt;
FlexForm has a notification system built in. This is used to show possible errors or success/custom messages. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As of version 2.2.2 this is a default feature&#039;&#039;&#039; and &amp;lt;nowiki&amp;gt;&amp;lt;form showmessage /&amp;gt;&amp;lt;/nowiki&amp;gt; is deprecated.&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3388</id>
		<title>DevOps:Doc/FlexForm/1.0/Error-messages</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3388"/>
		<updated>2025-07-10T07:04:50Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: clearer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
Troubles and Error messages&lt;br /&gt;
===Type===&lt;br /&gt;
_form&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Common behaviour and list of (error) messages that might occur&lt;br /&gt;
===Description===&lt;br /&gt;
Tag extensions, like FlexForm, cannot hold any html in its arguments.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; value=&amp;quot;hello&amp;lt;br&amp;gt;how are you&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The above example will simply not be rendered. This is how MediaWiki tags work.&lt;br /&gt;
&lt;br /&gt;
You can use the following syntax, it at least will not break. It is another way of writing tag code.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{#tag:_input||type=text|value=hello&amp;lt;br&amp;gt;how are you}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The HTML will be filtered out. &#039;&#039;&#039;However, with the new Parsoid Parser that is introduced, do not use the &amp;lt;nowiki&amp;gt;{{#tag:}}&amp;lt;/nowiki&amp;gt; method anymore.&#039;&#039;&#039; It will give unpredictable results as Parsoid renders these tags in no particular order.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a list of common error messages that might occur, with a brief description of what the problem might be.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Message&lt;br /&gt;
!Type&lt;br /&gt;
!Why&lt;br /&gt;
!Possible solutions&lt;br /&gt;
|-&lt;br /&gt;
|Can not find template&lt;br /&gt;
|_email&lt;br /&gt;
|shown when the page mentioned in the template cannot be read or parse by the API&lt;br /&gt;
|check page name if it exists or not miss-spelled&lt;br /&gt;
|-&lt;br /&gt;
|not a secure form&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and the form has been manipulated after form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Secure fields not complete&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and files with type is secure (not to be manipulated with) are incomplete after a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Did not receive a session token from the form&lt;br /&gt;
|form&lt;br /&gt;
|shown when a secure token that is generated by FlexForm did not come with a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Form session expired&lt;br /&gt;
|form&lt;br /&gt;
|shown when the time between a form render and the actual submit has taken to long&lt;br /&gt;
|Change the config option &#039;&#039;&#039;form-timeout-limit&#039;&#039;&#039; to a higher number in seconds ( default 7200 secs = 120 mins = 2 hours )&lt;br /&gt;
|-&lt;br /&gt;
|No return found&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted but FlexForm cannot find a page to return to after handling the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|no captcha details&lt;br /&gt;
|reCaptcha&lt;br /&gt;
|shown when a form with a recaptcha has been submitted, but no recaptcha information can be found in the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|No requests&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted, but FlexForm could not find any valid request&lt;br /&gt;
|Usually this means the &#039;&#039;&#039;action&#039;&#039;&#039; parameter of a form is invalid.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cannot find user to connect to file upload&lt;br /&gt;
|form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PHP move uploaded file error (file-handling)&lt;br /&gt;
|upload and canvas&lt;br /&gt;
|shown when a files or files are uploaded using FlexForm, but FlexForm cannot store them in the defined temp folder&lt;br /&gt;
|Make sure you set the FlexForm config : &amp;lt;code&amp;gt;$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
to a path where FlexForm has write rights. If you leave this empty, FlexForm will try to temporarily store the uploaded files in its own extension folder in the uploads folder. You can also check to see if this folder has write rights.&lt;br /&gt;
|-&lt;br /&gt;
| /Special:FlexForm Error: Class &amp;quot;JsonPath\JsonObject&amp;quot; not found&lt;br /&gt;
| forms&lt;br /&gt;
| shown when JsonPath is missing&lt;br /&gt;
| This, and similar errors about missing classes, may happen when you forgot to run &#039;composer update&#039; or &#039;composer update&#039; somehow failed to install the required package (in this case, [https://github.com/Galbar/JsonPath-PHP JsonPath]). Make sure FlexForm&#039;s composer.json is included in the merge-plugin section of your composer.local.json.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Error messages in the browser&#039;s console ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught (in promise) ReferenceError: wgFlexFormSecure is not defined&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. This message may show if you forgot to set &amp;lt;code&amp;gt;$wgParserCacheType = CACHE_NONE;&amp;lt;/code&amp;gt; in your LocalSettings.php file. Some features, such as instances, may not work without it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught SyntaxError: redeclaration of let ffDecryptObj&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. Same as above.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line [...] column [...] of the JSON data&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| This may happen if you have set your config options for debugging in such a way that any PHP warnings are printed, in turn mangling the JSON output expected by FlexForm. It is generally not a good idea to permanently use settings like &amp;lt;code&amp;gt;ini_set( &#039;display_errors&#039;, 1 ) &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;error_reporting( E_ALL )&amp;lt;/code&amp;gt; in a live environment.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Discord ===&lt;br /&gt;
You might find a helping hand here as well : https://discord.gg/ehFrPmT&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3387</id>
		<title>DevOps:Doc/FlexForm/1.0/Error-messages</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3387"/>
		<updated>2025-07-04T13:00:22Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
Troubles and Error messages&lt;br /&gt;
===Type===&lt;br /&gt;
_form&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Common behaviour and list of (error) messages that might occur&lt;br /&gt;
===Description===&lt;br /&gt;
Tag extensions, like FlexForm, cannot hold any html in its arguments.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; value=&amp;quot;hello&amp;lt;br&amp;gt;how are you&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The above example will simply not be rendered. This is how MediaWiki tags work.&lt;br /&gt;
&lt;br /&gt;
You can use the following syntax, it at least will not break. It is another way of writing tag code.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{#tag:_input||type=text|value=hello&amp;lt;br&amp;gt;how are you}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The HTML will be filtered out. &#039;&#039;&#039;However, with the new Parsoid Parser that is introduced, do not use the &amp;lt;nowiki&amp;gt;{{#tag:}}&amp;lt;/nowiki&amp;gt; method anymore.&#039;&#039;&#039; It will give unpredictable results as Parsoid renders these tags in no particular order.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a list of common error messages that might occur, with a brief description of what the problem might be.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Message&lt;br /&gt;
!Type&lt;br /&gt;
!Why&lt;br /&gt;
!Possible solutions&lt;br /&gt;
|-&lt;br /&gt;
|Can not find template&lt;br /&gt;
|_email&lt;br /&gt;
|shown when the page mentioned in the template cannot be read or parse by the API&lt;br /&gt;
|check page name if it exists or not miss-spelled&lt;br /&gt;
|-&lt;br /&gt;
|not a secure form&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and the form has been manipulated after form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Secure fields not complete&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and files with type is secure (not to be manipulated with) are incomplete after a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Did not receive a session token from the form&lt;br /&gt;
|form&lt;br /&gt;
|shown when a secure token that is generated by FlexForm did not come with a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Form session expired&lt;br /&gt;
|form&lt;br /&gt;
|shown when the time between a form render and the actual submit has taken to long&lt;br /&gt;
|Change the config option &#039;&#039;&#039;form-timeout-limit&#039;&#039;&#039; to a higher number in seconds ( default 7200 secs = 120 mins = 2 hours )&lt;br /&gt;
|-&lt;br /&gt;
|No return found&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted but FlexForm cannot find a page to return to after handling the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|no captcha details&lt;br /&gt;
|reCaptcha&lt;br /&gt;
|shown when a form with a recaptcha has been submitted, but no recaptcha information can be found in the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|No requests&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted, but FlexForm could not find any valid request&lt;br /&gt;
|Usually this means the &#039;&#039;&#039;action&#039;&#039;&#039; parameter of a form is invalid.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cannot find user to connect to file upload&lt;br /&gt;
|form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PHP move uploaded file error (file-handling)&lt;br /&gt;
|upload and canvas&lt;br /&gt;
|shown when a files or files are uploaded using FlexForm, but FlexForm cannot store them in the defined temp folder&lt;br /&gt;
|Make sure you set the FlexForm config : &amp;lt;code&amp;gt;$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
to a path where FlexForm has write rights. If you leave this empty, FlexForm will try to temporarily store the uploaded files in its own extension folder in the uploads folder. You can also check to see if this folder has write rights.&lt;br /&gt;
|-&lt;br /&gt;
| /Special:FlexForm Error: Class &amp;quot;JsonPath\JsonObject&amp;quot; not found&lt;br /&gt;
| forms&lt;br /&gt;
| shown when JsonPath is missing&lt;br /&gt;
| You must first download and install [https://github.com/Galbar/JsonPath-PHP JsonPath]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Error messages in the browser&#039;s console ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught (in promise) ReferenceError: wgFlexFormSecure is not defined&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. This message may show if you forgot to set &amp;lt;code&amp;gt;$wgParserCacheType = CACHE_NONE;&amp;lt;/code&amp;gt; in your LocalSettings.php file. Some features, such as instances, may not work without it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught SyntaxError: redeclaration of let ffDecryptObj&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. Same as above.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line [...] column [...] of the JSON data&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| This may happen if you have set your config options for debugging in such a way that any PHP warnings are printed, in turn mangling the JSON output expected by FlexForm. It is generally not a good idea to permanently use settings like &amp;lt;code&amp;gt;ini_set( &#039;display_errors&#039;, 1 ) &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;error_reporting( E_ALL )&amp;lt;/code&amp;gt; in a live environment.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Discord ===&lt;br /&gt;
You might find a helping hand here as well : https://discord.gg/ehFrPmT&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3386</id>
		<title>DevOps:Doc/FlexForm/1.0/Error-messages</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3386"/>
		<updated>2025-07-04T12:59:04Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: +JsonPath error - not yet sure how to install it&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
Troubles and Error messages&lt;br /&gt;
===Type===&lt;br /&gt;
_form&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Common behaviour and list of (error) messages that might occur&lt;br /&gt;
===Description===&lt;br /&gt;
Tag extensions, like FlexForm, cannot hold any html in its arguments.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; value=&amp;quot;hello&amp;lt;br&amp;gt;how are you&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The above example will simply not be rendered. This is how MediaWiki tags work.&lt;br /&gt;
&lt;br /&gt;
You can use the following syntax, it at least will not break. It is another way of writing tag code.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{#tag:_input||type=text|value=hello&amp;lt;br&amp;gt;how are you}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The HTML will be filtered out. &#039;&#039;&#039;However, with the new Parsoid Parser that is introduced, do not use the &amp;lt;nowiki&amp;gt;{{#tag:}}&amp;lt;/nowiki&amp;gt; method anymore.&#039;&#039;&#039; It will give unpredictable results as Parsoid renders these tags in no particular order.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a list of common error messages that might occur, with a brief description of what the problem might be.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Message&lt;br /&gt;
!Type&lt;br /&gt;
!Why&lt;br /&gt;
!Possible solutions&lt;br /&gt;
|-&lt;br /&gt;
|Can not find template&lt;br /&gt;
|_email&lt;br /&gt;
|shown when the page mentioned in the template cannot be read or parse by the API&lt;br /&gt;
|check page name if it exists or not miss-spelled&lt;br /&gt;
|-&lt;br /&gt;
|not a secure form&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and the form has been manipulated after form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Secure fields not complete&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and files with type is secure (not to be manipulated with) are incomplete after a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Did not receive a session token from the form&lt;br /&gt;
|form&lt;br /&gt;
|shown when a secure token that is generated by FlexForm did not come with a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Form session expired&lt;br /&gt;
|form&lt;br /&gt;
|shown when the time between a form render and the actual submit has taken to long&lt;br /&gt;
|Change the config option &#039;&#039;&#039;form-timeout-limit&#039;&#039;&#039; to a higher number in seconds ( default 7200 secs = 120 mins = 2 hours )&lt;br /&gt;
|-&lt;br /&gt;
|No return found&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted but FlexForm cannot find a page to return to after handling the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|no captcha details&lt;br /&gt;
|reCaptcha&lt;br /&gt;
|shown when a form with a recaptcha has been submitted, but no recaptcha information can be found in the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|No requests&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted, but FlexForm could not find any valid request&lt;br /&gt;
|Usually this means the &#039;&#039;&#039;action&#039;&#039;&#039; parameter of a form is invalid.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cannot find user to connect to file upload&lt;br /&gt;
|form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PHP move uploaded file error (file-handling)&lt;br /&gt;
|upload and canvas&lt;br /&gt;
|shown when a files or files are uploaded using FlexForm, but FlexForm cannot store them in the defined temp folder&lt;br /&gt;
|Make sure you set the FlexForm config : &amp;lt;code&amp;gt;$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
to a path where FlexForm has write rights. If you leave this empty, FlexForm will try to temporarily store the uploaded files in its own extension folder in the uploads folder. You can also check to see if this folder has write rights.&lt;br /&gt;
|-&lt;br /&gt;
| /Special:FlexForm Error: Class &amp;quot;JsonPath\JsonObject&amp;quot; not found&lt;br /&gt;
| You must first download and install [https://github.com/Galbar/JsonPath-PHP JsonPath]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Error messages in the browser&#039;s console ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught (in promise) ReferenceError: wgFlexFormSecure is not defined&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. This message may show if you forgot to set &amp;lt;code&amp;gt;$wgParserCacheType = CACHE_NONE;&amp;lt;/code&amp;gt; in your LocalSettings.php file. Some features, such as instances, may not work without it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught SyntaxError: redeclaration of let ffDecryptObj&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. Same as above.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line [...] column [...] of the JSON data&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| This may happen if you have set your config options for debugging in such a way that any PHP warnings are printed, in turn mangling the JSON output expected by FlexForm. It is generally not a good idea to permanently use settings like &amp;lt;code&amp;gt;ini_set( &#039;display_errors&#039;, 1 ) &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;error_reporting( E_ALL )&amp;lt;/code&amp;gt; in a live environment.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Discord ===&lt;br /&gt;
You might find a helping hand here as well : https://discord.gg/ehFrPmT&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/create&amp;diff=3385</id>
		<title>DevOps:Doc/FlexForm/2.0/create</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/create&amp;diff=3385"/>
		<updated>2025-07-03T07:48:00Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: update input to textarea&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_create&lt;br /&gt;
===Type===&lt;br /&gt;
_create&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Using a form to create new pages or overwrite existing pages&lt;br /&gt;
===Description===&lt;br /&gt;
_create can be defined as part of a form to have new page(s) created on form submit or overwrite (an) existing page(s).&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;_create&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwtemplate&#039;&#039;&#039; = Name of a template to use as content for the new page. If you have a form with only one input element you can also use mwtemplate=&amp;quot;wsnone&amp;quot;. This will take the content of the form input element and make it the source content of the new page (without putting it inside a template).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwwrite&#039;&#039;&#039; = Full name of the target page&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwfollow&#039;&#039;&#039; = Will send the user to the newly create page after form submission&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwoption&#039;&#039;&#039; can hold three different values:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;&#039;&#039;&#039;add_random&#039;&#039;&#039;&amp;quot; = Create random numbers&lt;br /&gt;
* &amp;quot;&#039;&#039;&#039;next_available&#039;&#039;&#039;&amp;quot; = Get the next available number. If mwwrite is : &amp;quot;orders/&amp;quot;, this option will find the highest orders number (e.g. orders/192) and will create a page with one number higher (e.g. orders/193)&lt;br /&gt;
* &amp;quot;&#039;&#039;&#039;range:&#039;&#039;&#039;&amp;quot; = Get the next available free slot in a range of numbers. If mwwrite is : &amp;quot;orders/&amp;quot;, this option will find the first free spot in a range of numbers. If mwoption=&amp;quot;range:2019000-2019999&amp;quot; and mwwrite=&amp;quot;orders/&amp;quot; then FlexForm will start looking for a page called orders/2019000. If exists it will look for orders/2019001  etc.. till the first free page is found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwleadingzero&#039;&#039;&#039; can be used in combination with range. When a range is set like 1-99999 using mwleadingzero will use the length of the  end range and use it to fill the start range with leading zeros, making the range from 00001-99999.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwfields&#039;&#039;&#039; = comma separated names of form elements that need to be included. Only works when using multiple _create.&lt;br /&gt;
&lt;br /&gt;
If you are creating multiple pages and want to re-assign form fields to template variables, you still add the form field name to mwfields, but add &amp;quot;&#039;&#039;&#039;::&#039;&#039;&#039;&amp;quot; and then the name of the template variable. So if you want to tell mwfields to use formfield &amp;quot;&#039;&#039;&#039;name2&#039;&#039;&#039;&amp;quot;, but add it to the template as &amp;quot;&#039;&#039;&#039;Name&#039;&#039;&#039;&amp;quot;, add : &amp;quot;&#039;&#039;&#039;name2::Name&#039;&#039;&#039;&amp;quot; to mwfields.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwslot&#039;&#039;&#039; = name of a specific content slot to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nooverwrite&#039;&#039;&#039; =  when this is set, no create will be done for a page that already exists. Even if you are creating a new slot for a page that already exist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;noseo&#039;&#039;&#039; =  when this is set, even if the setting &#039;&#039;&#039;create-seo-titles&#039;&#039;&#039; in your local settings is set to &#039;&#039;&#039;true&#039;&#039;&#039; to always create SEO friendly page titles, it will not make the title of a new page SEO friendly, but use the title given.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwformat&#039;&#039;&#039; = defaults to wiki. Currently only supports wiki or json. When set to json, the page content of the page will become a json. When used with mwtemplate, then the template name will be the key for the json. All form values will be stored as strings. Every new array with key names will automatically get a ffID value that will always be unique. This is done for easy editing later.&lt;br /&gt;
&lt;br /&gt;
There are several ways for creating a page with FlexForm.&lt;br /&gt;
&lt;br /&gt;
# Easiest  Use mwtemplate and mwwrite as described above (and optionally wsfollow, wsoption, etc)  This will use the values of mwtemplate and mwwrite and any form elements the current for has and create a new page with template &amp;quot;mwtemplate&amp;quot; and title of &amp;quot;mwwrite&amp;quot;. See example 1.&lt;br /&gt;
# More advanced and possibilities  Use mwtemplate and mwwrite with more options than described above (and optionally wsfollow, wsoption, etc)  mwwrite can use can use other elements in the form and use those values to create a title for a new page.  Field names can be added using square brackets. So if a form also has a text input field of &amp;quot;title&amp;quot; mwwrite could be &amp;quot;[title]&amp;quot;.   [mwrandom] can also be used e.g. mwwrite=&amp;quot;[title]/[mwrandom]&amp;quot;. See example 2.&lt;br /&gt;
# Create multiple pages with one form and control what form elements are used.  This is where mwfields comes in. This is a comma separated list of form elements that will be used to create the new page.  If a form has 15 text input fields, then using _create will include all 15 (filled-in by user) elements in the new page. Using mwfields you can tell _create specifically what form element to use to create a new page. So, when creating multiple new pages with one form, mwfields should be used with any and all _create. See example 3.&lt;br /&gt;
# Create a new page and fill different content slots for that page.   You have to give the definition of the first _create an id. The other _create elements reference the first _create with a mwwrite like mwwrite=&amp;quot;::id::&amp;lt;idOfWSCreateWithID&amp;gt;&amp;quot;. See example 4.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Example 1 : Create a new page with the next available number&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;orders/&amp;quot; mwtemplate=&amp;quot;Order&amp;quot; mwoption=&amp;quot;next_available&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Create a new page with the next available number in a range and always start from the beginning&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;orders/&amp;quot; mwtemplate=&amp;quot;Order&amp;quot; mwoption=&amp;quot;range:2019000-2019999&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Random number&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:&amp;quot; mwoption=&amp;quot;add_random&amp;quot; mwtemplate=&amp;quot;Solution&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2 : Create from text, mwrandom and fieldvalues&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:[namefield]/[mwrandom]&amp;quot; mwtemplate=&amp;quot;Solution&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 3 : Create from text and field values and only include specific form  element names in the new template&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:[namefield]/Personal&amp;quot; mwtemplate=&amp;quot;Personal&amp;quot; mwfields=&amp;quot;naam, adres, straat, plaats&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:[namefield]/Business&amp;quot; mwtemplate=&amp;quot;Business&amp;quot; mwfields=&amp;quot;Company, cadres, cstraat, cplaats&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 4 : Create a page with title : Test/[title]. With no main content and a template of Structured data with an argument of Hello in slot:mds-metadataslot&amp;quot;. At the same time content slot &amp;quot;mds-metadataslot2&amp;quot; get the same template with argument Hello2.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create id=&amp;quot;testingSlot&amp;quot; mwwrite=&amp;quot;Test/[title]&amp;quot; mwtemplate=&amp;quot;Structured data&amp;quot; mwfollow mwfields=&amp;quot;Hello&amp;quot; mwslot=&amp;quot;mds-metadataslot&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;::id::testingSlot&amp;quot; mwtemplate=&amp;quot;wsnone&amp;quot; mwfields=&amp;quot;Hello2&amp;quot; mwslot=&amp;quot;mds-metadataslot2&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 5 : Use &#039;&#039;&#039;wsnone&#039;&#039;&#039; and &#039;&#039;&#039;[https://www.mediawiki.org/wiki/Help:Substitution substitution] &#039;&#039;&#039; to copy content of an existing page onto a new page. This example copies the content of &amp;quot;Main Page&amp;quot; when creating a new page named &amp;quot;Test new page&amp;quot;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Test new page&amp;quot; mwtemplate=&amp;quot;wsnone&amp;quot; mwfields=&amp;quot;Content&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;Content&amp;quot;&amp;gt;{{subst::Main Page}}&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
If you create a page from text, mwrandom and field values and also add mwoption=&amp;quot;add_random&amp;quot;, another random number will be added to the end of the page title.&lt;br /&gt;
&lt;br /&gt;
You can have multiple instances of _create in a form, as long as mwfields is a non empty argument with every _create.&lt;br /&gt;
If you have multiple _create and they all have a mwfollow, the last _create in the list will be followed.&lt;br /&gt;
===Links===&lt;br /&gt;
https://www.mediawiki.org/wiki/Multi-Content_Revisions&lt;br /&gt;
&lt;br /&gt;
{{FlexForm/Create and edit comparison}}&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/token&amp;diff=3337</id>
		<title>DevOps:Doc/FlexForm/1.1/token</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/token&amp;diff=3337"/>
		<updated>2025-01-21T14:35:03Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_token&lt;br /&gt;
===Type===&lt;br /&gt;
_token&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Token input field&lt;br /&gt;
===Description===&lt;br /&gt;
Use of select2 tokens&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;_token&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;name&#039;&#039;&#039; = e.g. tokenfield[]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;separator&#039;&#039;&#039; = token values have by default comma separated values when adding to a Template. You can specify a different separator using this argument . e.g. separator=&amp;quot;;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;allowtags&#039;&#039;&#039; = allow user to add custom values that are not suggested through autocompletion or otherwise. As of version 2.2.19, use a value of &#039;allowtags&#039;; prior to that, just give the attribute name, without any value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;allowsort&#039;&#039;&#039; = (no value or (as of version 2.2.19 -&amp;gt;) value of &#039;allowsort&#039;) Allow user to sort values (drag and drop selected token). &#039;&#039;&#039;Does not work with query source.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;allowclear&#039;&#039;&#039; = (no value or (as of version 2.2.19 -&amp;gt;) value of &#039;allowclear&#039;) allow user to clear his selection. Will only work when you have set a placeholder.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;input-length-trigger&#039;&#039;&#039; = integer number of characters before lookup actually happens, defaults to 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;id&#039;&#039;&#039; = &#039;&#039;&#039;&#039;&#039;mandatory&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;query&#039;&#039;&#039; = If you have [https://www.semantic-mediawiki.org Semantic MediaWiki] installed, you can do a SMW Ask query here to fill the options list. &lt;br /&gt;
* &#039;&#039;&#039;returntext&#039;&#039;&#039; lets you set a property for the visible label of the token&lt;br /&gt;
* &#039;&#039;&#039;returnid&#039;&#039;&#039; (optional) lets you set a property for the value to be stored. This defaults to the page name.&lt;br /&gt;
* &#039;&#039;&#039;limit&#039;&#039;&#039; (optional) lets you sets the maximum number of pages to be returned by the query&lt;br /&gt;
* &#039;&#039;&#039;fquery&#039;&#039;&#039; (optional) lets you set a SMW Filter query that will be added to the query. Additional you can use [fffield=&#039;&amp;lt;name of a form field&amp;gt;&#039;] inside the fquery to dynamically add a value of a form field in the filter query.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;callback&#039;&#039;&#039; = templateCallBack&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;multiple&#039;&#039;&#039; = multiple&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Example 1 : Search for pages in the Doc page types.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
&amp;lt;_token name=&amp;quot;tokenfield[]&amp;quot; id=&amp;quot;tokener&amp;quot; query=&amp;quot;[[Class::Doc]][[Title::!!!]](limit=99999)(returntext=Title)&amp;quot; placeholder=&amp;quot;Search for Documentation Titles&amp;quot; multiple=&amp;quot;multiple&amp;quot; allowclear=&amp;quot;allowclear&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/_token&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form restrictions=&amp;quot;lifted&amp;quot; action=&amp;quot;get&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_token name=&amp;quot;tokenfield[]&amp;quot; id=&amp;quot;tokener&amp;quot; query=&amp;quot;[[Class::Doc]][[Title::!!!]](limit=99999)(returntext=Title)&amp;quot; placeholder=&amp;quot;Search for Documentation Titles&amp;quot; multiple=&amp;quot;multiple&amp;quot; allowclear=&amp;quot;allowclear&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/_token&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example 2 : Select one or more cars or create a new one&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
&amp;lt;_token name=&amp;quot;car[]&amp;quot; id=&amp;quot;test-tokens-multiple&amp;quot; multiple=&amp;quot;multiple&amp;quot; allowtags=&amp;quot;allowtags&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;volvo&amp;quot;&amp;gt;Volvo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;saab&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;Saab&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;tesla&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;Tesla&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/_token&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;form restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;_token name=&amp;quot;car[]&amp;quot; id=&amp;quot;test-tokens-multiple&amp;quot; multiple=&amp;quot;multiple&amp;quot; allowtags=&amp;quot;allowtags&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;volvo&amp;quot;&amp;gt;Volvo&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;saab&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;Saab&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;tesla&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;Tesla&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/_token&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 3 : using the &#039;&#039;&#039;selected&#039;&#039;&#039; and &#039;&#039;&#039;options&#039;&#039;&#039; attributes&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
&amp;lt;_token name=&amp;quot;TestSelected[]&amp;quot; id=&amp;quot;test-tokens-selected&amp;quot; selected=&amp;quot;C&amp;quot; options=&amp;quot;A,B,C,D,E&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;form restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_token name=&amp;quot;TestSelected[]&amp;quot; id=&amp;quot;test-tokens-selected&amp;quot; selected=&amp;quot;C&amp;quot; options=&amp;quot;A,B,C,D,E&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 4 : using fquery&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
&amp;lt;select name=&amp;quot;Version&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;+&amp;quot;&amp;gt;Any version&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;1.0&amp;quot;&amp;gt;1.0&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;1.1&amp;quot;&amp;gt;1.1&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;2.0&amp;quot;&amp;gt;2.0&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;2.1&amp;quot;&amp;gt;2.1&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;_token name=&amp;quot;Doc page&amp;quot; id=&amp;quot;tokens-with-fquery&amp;quot; query=&amp;quot;[[Class::Doc]][[Doc subject::DevOps:Doc/FlexForm]][[Title::!!!]](limit=99999)(returntext=Title)(fquery=[[Subject version::[fffield=Version] ]])&amp;quot; input-length-trigger=&amp;quot;1&amp;quot; placeholder=&amp;quot;Search for Documentation Titles&amp;quot; multiple=&amp;quot;multiple&amp;quot; allowclear=&amp;quot;allowclear&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/_token&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;form restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;select name=&amp;quot;Version&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;+&amp;quot;&amp;gt;Any version&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;1.0&amp;quot;&amp;gt;1.0&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;1.1&amp;quot;&amp;gt;1.1&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;2.0&amp;quot;&amp;gt;2.0&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;2.1&amp;quot;&amp;gt;2.1&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;_token name=&amp;quot;Doc page&amp;quot; id=&amp;quot;tokens-with-fquery&amp;quot; query=&amp;quot;[[Class::Doc]][[Doc subject::DevOps:Doc/FlexForm]][[Title::!!!]](limit=99999)(returntext=Title)(fquery=[[Subject version::[fffield=Version] ]])&amp;quot; input-length-trigger=&amp;quot;1&amp;quot; placeholder=&amp;quot;Search for Documentation Titles&amp;quot; multiple=&amp;quot;multiple&amp;quot; allowclear=&amp;quot;allowclear&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/_token&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
In an SMW query, the &#039;&#039;&#039;!!!&#039;&#039;&#039; will be replaced with whatever the user types.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=Template:FlexForm/Create_and_edit_comparison&amp;diff=3335</id>
		<title>Template:FlexForm/Create and edit comparison</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=Template:FlexForm/Create_and_edit_comparison&amp;diff=3335"/>
		<updated>2025-01-05T11:28:33Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;card&amp;quot; style=&amp;quot;background-color:#eaedf1;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;card-body&amp;quot;&amp;gt;The &amp;lt;code&amp;gt;_create&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;_edit&amp;lt;/code&amp;gt; tags share a lot of functionality but they do not always share the same attribute names or their intended usage may differ slightly. By presenting these attributes side by side, the following table may help you on your way more quickly.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! _create&lt;br /&gt;
! _edit&lt;br /&gt;
! comments&lt;br /&gt;
|- &lt;br /&gt;
| Can be used to create new pages&amp;lt;br&amp;gt;Can be used to edit existing pages&amp;lt;br&amp;gt;Cannot be used to edit a selection of fields on a page&lt;br /&gt;
| Cannot be used to create new pages&amp;lt;br&amp;gt;Can be used to edit existing pages,&amp;lt;br&amp;gt;including select fields&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwwrite&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;page title, optionally a formula in conjunction with &amp;lt;code&amp;gt;mwoption&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;mwleadingzero&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;page id or page title&lt;br /&gt;
|-&lt;br /&gt;
| specific to page creation:&lt;br /&gt;
* &amp;lt;code&amp;gt;mwleadingzero&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mwoption&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;noseo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nooverwrite&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwfollow&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| If you know the name of the target page in advance, you can always set &amp;lt;code&amp;gt;mwreturn&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; tag instead. &amp;lt;code&amp;gt;mwfollow&amp;lt;/code&amp;gt; was specifically created for use cases where the title of the page to be created cannot be predicted.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwfields&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;allows for multiple fields (comma-separated)&lt;br /&gt;
| &amp;lt;code&amp;gt;formfield&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;allows for single fields only&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;usefield&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwslot&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;mwslot&amp;lt;/code&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwformat&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;format&amp;lt;/code&amp;gt;&lt;br /&gt;
| wiki or json&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwtemplate&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&lt;br /&gt;
| template name or JSON configuration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
| can be used to set the value explicitly, without reading it from a form field.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/edit&amp;diff=3334</id>
		<title>DevOps:Doc/FlexForm/1.0/edit</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/edit&amp;diff=3334"/>
		<updated>2025-01-05T11:24:52Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: add a table of comparison&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_edit&lt;br /&gt;
===Type===&lt;br /&gt;
_edit&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Using a form to edit pages that have content with templates.&lt;br /&gt;
===Description===&lt;br /&gt;
How to edit pages in the wiki with FlexForm&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;_edit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;target&#039;&#039;&#039; = Target page ( title or page id ) that needs to be edited&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;template &#039;&#039;&#039; = Name of the template on the target page that needs to be edited. If there are multiple instances of the same template, you can specify what instance FlexForm should use if you have a unique key and value in the specific instance. You define it by &#039;&#039;&#039;template=&amp;quot;&amp;lt;name of template&amp;gt;|&amp;lt;name of argument&amp;gt;=&amp;lt;value of argument&amp;gt;&amp;quot;&#039;&#039;&#039;. E.g. &#039;&#039;&#039;template=&amp;quot;Edit user|User id=55&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;formfield&#039;&#039;&#039; = Name of the field in the template. Field in the form should have the same name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;usefield&#039;&#039;&#039; = [optional] If the field in the form differs from the template variable name, you can use &amp;quot;usefield&amp;quot; to let _edit know what other field from the form it should use&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;value&#039;&#039;&#039; = [optional] Don&#039;t read the value from the form field, but use this value explicitly&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwslot&#039;&#039;&#039; = [optional] Name of content slot to use&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;pageid&amp;quot; template=&amp;quot;template&amp;quot; formfield=&amp;quot;formfield&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simple test with a complete form you can use to see if editing works: Copy the following code snippet to the source code of a page and save. You will see a text field that will edit the &amp;quot;Content&amp;quot; parameter within the &amp;quot;Test&amp;quot; template call. Note that Template:Test does not need to exist for this example to work.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{Test&lt;br /&gt;
|Content=abc&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Test&amp;quot; formfield=&amp;quot;Content&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;Content&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
&lt;br /&gt;
* You can have multiple _edit&#039;s in a form all doing different tasks.&lt;br /&gt;
* If you have more than 5 edits to one single page in the wiki, consider [[DevOps:Doc/FlexForm/1.0/create]] to speed-up the process.&lt;br /&gt;
* If you omit value, then the value of the form will be used (so what a user has filled in).&lt;br /&gt;
===Links===&lt;br /&gt;
https://www.mediawiki.org/wiki/Multi-Content_Revisions&lt;br /&gt;
&lt;br /&gt;
{{FlexForm/Create and edit comparison}}&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/create&amp;diff=3333</id>
		<title>DevOps:Doc/FlexForm/2.0/create</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/create&amp;diff=3333"/>
		<updated>2025-01-05T11:24:02Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: add a table of comparison&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_create&lt;br /&gt;
===Type===&lt;br /&gt;
_create&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Using a form to create new pages or overwrite existing pages&lt;br /&gt;
===Description===&lt;br /&gt;
_create can be defined as part of a form to have new page(s) created on form submit or overwrite (an) existing page(s).&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;_create&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwtemplate&#039;&#039;&#039; = Name of a template to use as content for the new page. If you have a form with only one input element you can also use mwtemplate=&amp;quot;wsnone&amp;quot;. This will take the content of the form input element and make it the source content of the new page (without putting it inside a template).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwwrite&#039;&#039;&#039; = Full name of the target page&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwfollow&#039;&#039;&#039; = Will send the user to the newly create page after form submission&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwoption&#039;&#039;&#039; can hold three different values:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;&#039;&#039;&#039;add_random&#039;&#039;&#039;&amp;quot; = Create random numbers&lt;br /&gt;
* &amp;quot;&#039;&#039;&#039;next_available&#039;&#039;&#039;&amp;quot; = Get the next available number. If mwwrite is : &amp;quot;orders/&amp;quot;, this option will find the highest orders number (e.g. orders/192) and will create a page with one number higher (e.g. orders/193)&lt;br /&gt;
* &amp;quot;&#039;&#039;&#039;range:&#039;&#039;&#039;&amp;quot; = Get the next available free slot in a range of numbers. If mwwrite is : &amp;quot;orders/&amp;quot;, this option will find the first free spot in a range of numbers. If mwoption=&amp;quot;range:2019000-2019999&amp;quot; and mwwrite=&amp;quot;orders/&amp;quot; then FlexForm will start looking for a page called orders/2019000. If exists it will look for orders/2019001  etc.. till the first free page is found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwleadingzero&#039;&#039;&#039; can be used in combination with range. When a range is set like 1-99999 using mwleadingzero will use the length of the  end range and use it to fill the start range with leading zeros, making the range from 00001-99999.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwfields&#039;&#039;&#039; = comma separated names of form elements that need to be included. Only works when using multiple _create.&lt;br /&gt;
&lt;br /&gt;
If you are creating multiple pages and want to re-assign form fields to template variables, you still add the form field name to mwfields, but add &amp;quot;&#039;&#039;&#039;::&#039;&#039;&#039;&amp;quot; and then the name of the template variable. So if you want to tell mwfields to use formfield &amp;quot;&#039;&#039;&#039;name2&#039;&#039;&#039;&amp;quot;, but add it to the template as &amp;quot;&#039;&#039;&#039;Name&#039;&#039;&#039;&amp;quot;, add : &amp;quot;&#039;&#039;&#039;name2::Name&#039;&#039;&#039;&amp;quot; to mwfields.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwslot&#039;&#039;&#039; = name of a specific content slot to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nooverwrite&#039;&#039;&#039; =  when this is set, no create will be done for a page that already exists. Even if you are creating a new slot for a page that already exist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;noseo&#039;&#039;&#039; =  when this is set, even if the setting &#039;&#039;&#039;create-seo-titles&#039;&#039;&#039; in your local settings is set to &#039;&#039;&#039;true&#039;&#039;&#039; to always create SEO friendly page titles, it will not make the title of a new page SEO friendly, but use the title given.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwformat&#039;&#039;&#039; = defaults to wiki. Currently only supports wiki or json. When set to json, the page content of the page will become a json. When used with mwtemplate, then the template name will be the key for the json. All form values will be stored as strings. Every new array with key names will automatically get a ffID value that will always be unique. This is done for easy editing later.&lt;br /&gt;
&lt;br /&gt;
There are several ways for creating a page with FlexForm.&lt;br /&gt;
&lt;br /&gt;
# Easiest  Use mwtemplate and mwwrite as described above (and optionally wsfollow, wsoption, etc)  This will use the values of mwtemplate and mwwrite and any form elements the current for has and create a new page with template &amp;quot;mwtemplate&amp;quot; and title of &amp;quot;mwwrite&amp;quot;. See example 1.&lt;br /&gt;
# More advanced and possibilities  Use mwtemplate and mwwrite with more options than described above (and optionally wsfollow, wsoption, etc)  mwwrite can use can use other elements in the form and use those values to create a title for a new page.  Field names can be added using square brackets. So if a form also has a text input field of &amp;quot;title&amp;quot; mwwrite could be &amp;quot;[title]&amp;quot;.   [mwrandom] can also be used e.g. mwwrite=&amp;quot;[title]/[mwrandom]&amp;quot;. See example 2.&lt;br /&gt;
# Create multiple pages with one form and control what form elements are used.  This is where mwfields comes in. This is a comma separated list of form elements that will be used to create the new page.  If a form has 15 text input fields, then using _create will include all 15 (filled-in by user) elements in the new page. Using mwfields you can tell _create specifically what form element to use to create a new page. So, when creating multiple new pages with one form, mwfields should be used with any and all _create. See example 3.&lt;br /&gt;
# Create a new page and fill different content slots for that page.   You have to give the definition of the first _create an id. The other _create elements reference the first _create with a mwwrite like mwwrite=&amp;quot;::id::&amp;lt;idOfWSCreateWithID&amp;gt;&amp;quot;. See example 4.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Example 1 : Create a new page with the next available number&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;orders/&amp;quot; mwtemplate=&amp;quot;Order&amp;quot; mwoption=&amp;quot;next_available&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Create a new page with the next available number in a range and always start from the beginning&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;orders/&amp;quot; mwtemplate=&amp;quot;Order&amp;quot; mwoption=&amp;quot;range:2019000-2019999&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Random number&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:&amp;quot; mwoption=&amp;quot;add_random&amp;quot; mwtemplate=&amp;quot;Solution&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2 : Create from text, mwrandom and fieldvalues&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:[namefield]/[mwrandom]&amp;quot; mwtemplate=&amp;quot;Solution&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 3 : Create from text and field values and only include specific form  element names in the new template&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:[namefield]/Personal&amp;quot; mwtemplate=&amp;quot;Personal&amp;quot; mwfields=&amp;quot;naam, adres, straat, plaats&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Proj-solution:[namefield]/Business&amp;quot; mwtemplate=&amp;quot;Business&amp;quot; mwfields=&amp;quot;Company, cadres, cstraat, cplaats&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 4 : Create a page with title : Test/[title]. With no main content and a template of Structured data with an argument of Hello in slot:mds-metadataslot&amp;quot;. At the same time content slot &amp;quot;mds-metadataslot2&amp;quot; get the same template with argument Hello2.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_create id=&amp;quot;testingSlot&amp;quot; mwwrite=&amp;quot;Test/[title]&amp;quot; mwtemplate=&amp;quot;Structured data&amp;quot; mwfollow mwfields=&amp;quot;Hello&amp;quot; mwslot=&amp;quot;mds-metadataslot&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;::id::testingSlot&amp;quot; mwtemplate=&amp;quot;wsnone&amp;quot; mwfields=&amp;quot;Hello2&amp;quot; mwslot=&amp;quot;mds-metadataslot2&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 5 : Use &#039;&#039;&#039;wsnone&#039;&#039;&#039; and &#039;&#039;&#039;[https://www.mediawiki.org/wiki/Help:Substitution substitution] &#039;&#039;&#039; to copy content of an existing page onto a new page. This example copies the content of &amp;quot;Main Page&amp;quot; when creating a new page named &amp;quot;Test new page&amp;quot;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
&amp;lt;_create mwwrite=&amp;quot;Test new page&amp;quot; mwtemplate=&amp;quot;wsnone&amp;quot; mwfields=&amp;quot;Content&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;textarea&amp;quot; name=&amp;quot;Content&amp;quot;&amp;gt;{{subst::Main Page}}&amp;lt;/input&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
If you create a page from text, mwrandom and field values and also add mwoption=&amp;quot;add_random&amp;quot;, another random number will be added to the end of the page title.&lt;br /&gt;
&lt;br /&gt;
You can have multiple instances of _create in a form, as long as mwfields is a non empty argument with every _create.&lt;br /&gt;
If you have multiple _create and they all have a mwfollow, the last _create in the list will be followed.&lt;br /&gt;
===Links===&lt;br /&gt;
https://www.mediawiki.org/wiki/Multi-Content_Revisions&lt;br /&gt;
&lt;br /&gt;
{{FlexForm/Create and edit comparison}}&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=Template:FlexForm/Create_and_edit_comparison&amp;diff=3332</id>
		<title>Template:FlexForm/Create and edit comparison</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=Template:FlexForm/Create_and_edit_comparison&amp;diff=3332"/>
		<updated>2025-01-05T11:21:30Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;card&amp;quot; style=&amp;quot;background-color:#eaedf1;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;card-body&amp;quot;&amp;gt;The &amp;lt;code&amp;gt;_create&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;_edit&amp;lt;/code&amp;gt; tags share a lot of functionality but they do not always share the same attribute names or their intended usage may differ slightly. By presenting these attributes side by side, the following table may help you on your way more quickly.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! _create&lt;br /&gt;
! _edit&lt;br /&gt;
! comments&lt;br /&gt;
|- &lt;br /&gt;
| Can be used to create new pages&amp;lt;br&amp;gt;Can be used to edit existing pages&amp;lt;br&amp;gt;Cannot be used to edit a selection of fields on a page&lt;br /&gt;
| Cannot be used to create new pages&amp;lt;br&amp;gt;Can be used to edit existing pages,&amp;lt;br&amp;gt;including select fields&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwwrite&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;page title, optionally in conjunction with &amp;lt;code&amp;gt;mwoption&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;mwleadingzero&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;page id or page title&lt;br /&gt;
|-&lt;br /&gt;
| specific to page creation:&lt;br /&gt;
* &amp;lt;code&amp;gt;mwleadingzero&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mwoption&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;noseo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nooverwrite&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwfollow&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| If you know the name of the target page in advance, you can always set &amp;lt;code&amp;gt;mwreturn&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; tag instead. &amp;lt;code&amp;gt;mwfollow&amp;lt;/code&amp;gt; was specifically created for use cases where the title of the page to be created cannot be predicted.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwfields&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;allows for multiple fields (comma-separated)&lt;br /&gt;
| &amp;lt;code&amp;gt;formfield&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;allows for single fields only&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;usefield&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwslot&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;mwslot&amp;lt;/code&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwformat&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;format&amp;lt;/code&amp;gt;&lt;br /&gt;
| wiki or json&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwtemplate&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&lt;br /&gt;
| template name or JSON configuration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
| can be used to set the value explicitly, without reading it from a form field.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=Template:FlexForm/Create_and_edit_comparison&amp;diff=3331</id>
		<title>Template:FlexForm/Create and edit comparison</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=Template:FlexForm/Create_and_edit_comparison&amp;diff=3331"/>
		<updated>2025-01-05T11:18:46Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;card&amp;quot; style=&amp;quot;background-color:var(--light);&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;card-body&amp;quot;&amp;gt;The &amp;lt;code&amp;gt;_create&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;_edit&amp;lt;/code&amp;gt; tags share a lot of functionality but they do not always share the same attribute names or their intended usage may differ slightly. By presenting these attributes side by side, the following table may help you on your way more quickly.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! _create&lt;br /&gt;
! _edit&lt;br /&gt;
! comments&lt;br /&gt;
|- &lt;br /&gt;
| Can be used to create new pages&amp;lt;br&amp;gt;Can be used to edit existing pages&amp;lt;br&amp;gt;Cannot be used to edit a selection of fields on a page&lt;br /&gt;
| Cannot be used to create new pages&amp;lt;br&amp;gt;Can be used to edit existing pages,&amp;lt;br&amp;gt;including select fields&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwwrite&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;page title, optionally in conjunction with &amp;lt;code&amp;gt;mwoption&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;mwleadingzero&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;page id or page title&lt;br /&gt;
|-&lt;br /&gt;
| specific to page creation:&lt;br /&gt;
* &amp;lt;code&amp;gt;mwleadingzero&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mwoption&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;noseo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nooverwrite&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwfollow&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| If you know the name of the target page in advance, you can always set &amp;lt;code&amp;gt;mwreturn&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; tag instead. &amp;lt;code&amp;gt;mwfollow&amp;lt;/code&amp;gt; was specifically created for use cases where the title of the page to be created cannot be predicted.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwfields&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;allows for multiple fields (comma-separated)&lt;br /&gt;
| &amp;lt;code&amp;gt;formfield&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;allows for single fields only&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;usefield&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwslot&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;mwslot&amp;lt;/code&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwformat&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;format&amp;lt;/code&amp;gt;&lt;br /&gt;
| wiki or json&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwtemplate&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&lt;br /&gt;
| template name or JSON configuration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
| can be used to set the value explicitly, without reading it from a form field.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=Template:FlexForm/Create_and_edit_comparison&amp;diff=3330</id>
		<title>Template:FlexForm/Create and edit comparison</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=Template:FlexForm/Create_and_edit_comparison&amp;diff=3330"/>
		<updated>2025-01-05T11:15:59Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;_create&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;_edit&amp;lt;/code&amp;gt; tags share a lot of functionality but they do not always share the same attribute names or their intended usage may differ slightly. By presenting these attributes side by side, this table may help you on your way more quickly.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! _create&lt;br /&gt;
! _edit&lt;br /&gt;
! comments&lt;br /&gt;
|- &lt;br /&gt;
| Can be used to create new pages&amp;lt;br&amp;gt;Can be used to edit existing pages&amp;lt;br&amp;gt;Cannot be used to edit a selection of fields on a page&lt;br /&gt;
| Cannot be used to create new pages&amp;lt;br&amp;gt;Can be used to edit existing pages,&amp;lt;br&amp;gt;including select fields&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwwrite&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;page title, optionally in conjunction with &amp;lt;code&amp;gt;mwoption&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;mwleadingzero&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;page id or page title&lt;br /&gt;
|-&lt;br /&gt;
| specific to page creation:&lt;br /&gt;
* &amp;lt;code&amp;gt;mwleadingzero&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mwoption&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;noseo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nooverwrite&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwfollow&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| If you know the name of the target page in advance, you can always set &amp;lt;code&amp;gt;mwreturn&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; tag instead. &amp;lt;code&amp;gt;mwfollow&amp;lt;/code&amp;gt; was specifically created for use cases where the title of the page to be created cannot be predicted.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwfields&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;allows for multiple fields (comma-separated)&lt;br /&gt;
| &amp;lt;code&amp;gt;formfield&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;allows for single fields only&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;usefield&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwslot&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;mwslot&amp;lt;/code&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwformat&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;format&amp;lt;/code&amp;gt;&lt;br /&gt;
| wiki or json&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwtemplate&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&lt;br /&gt;
| template name or JSON configuration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
| can be used to set the value explicitly, without reading it from a form field.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=Template:FlexForm/Create_and_edit_comparison&amp;diff=3329</id>
		<title>Template:FlexForm/Create and edit comparison</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=Template:FlexForm/Create_and_edit_comparison&amp;diff=3329"/>
		<updated>2025-01-05T11:08:33Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: Created page with &amp;quot;The &amp;lt;code&amp;gt;_create&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;_edit&amp;lt;/code&amp;gt; tags share a lot of functionality but they do not always share the same attribute names or their intended usage may differ slig...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;_create&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;_edit&amp;lt;/code&amp;gt; tags share a lot of functionality but they do not always share the same attribute names or their intended usage may differ slightly. By presenting these attributes side by side, this table may help you on your way more quickly.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! _create&lt;br /&gt;
! _edit&lt;br /&gt;
! comments&lt;br /&gt;
|- &lt;br /&gt;
| Can be used to create new pages&amp;lt;br&amp;gt;Can be used to edit existing pages&amp;lt;br&amp;gt;Cannot be used to edit a selection of fields on a page&lt;br /&gt;
| Cannot be used to create new pages&amp;lt;br&amp;gt;Can be used to edit existing pages,&amp;lt;br&amp;gt;including select fields&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwwrite&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;page title, optionally in conjunction with &amp;lt;code&amp;gt;mwoption&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;mwleadingzero&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;page id or page title&lt;br /&gt;
|-&lt;br /&gt;
| specific to page creation:&lt;br /&gt;
* &amp;lt;code&amp;gt;mwleadingzero&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mwoption&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;noseo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nooverwrite&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwfollow&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;, but you can set &amp;lt;code&amp;gt;mwreturn&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; tag&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwfields&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;allows for multiple fields (comma-separated)&lt;br /&gt;
| &amp;lt;code&amp;gt;formfield&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;allows for single fields only&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;usefield&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwslot&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;mwslot&amp;lt;/code&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;mwformat&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;format&amp;lt;/code&amp;gt;&lt;br /&gt;
| wiki or json&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mwtemplate&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&lt;br /&gt;
| template name or JSON configuration&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;x&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
| can be used to set the value explicitly, without reading it from a form field.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/edit/json&amp;diff=3328</id>
		<title>DevOps:Doc/FlexForm/2.0/edit/json</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/edit/json&amp;diff=3328"/>
		<updated>2024-12-30T13:49:47Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: corrected mwformat --&amp;gt; format; made clear that template is mandatory&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_edit JSON content&lt;br /&gt;
===Type===&lt;br /&gt;
_edit&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Using a form to edit pages that have content with JSON.&lt;br /&gt;
===Description===&lt;br /&gt;
How to edit JSON content pages in the wiki with FlexForm.&lt;br /&gt;
&lt;br /&gt;
The edit function is very similar to editing template content, we will brake down the differences here.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;_edit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;target&#039;&#039;&#039; = Target page ( title or page id ) that needs to be edited&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;format&#039;&#039;&#039; = &amp;quot;json&amp;quot;. Tell an edit that we are working with JSON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;template &#039;&#039;&#039; = Mandatory if format=json. This argument has been kept to keep editing a template wiki page and editing a JSON page similar to each other.&lt;br /&gt;
Name of the template differs from editing template content and now has two options : json and jsonk. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;json&#039;&#039;&#039; : When you create a JSON page with _create, every new named array will also get a unique id, called &#039;&#039;&#039;ffID&#039;&#039;&#039;. The following example tells FlexForm to find a certain ffID and then find a named value ( so the key ) called Title. FlexForm will then check if the submitted form has an input with the same name the &amp;quot;Title&amp;quot; and use it&#039;s value to add to the JSON.&lt;br /&gt;
&lt;br /&gt;
Example JSON:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Coats&amp;quot;: {&lt;br /&gt;
        &amp;quot;ffID&amp;quot;: 1669192355,&lt;br /&gt;
        &amp;quot;Title&amp;quot;: &amp;quot;The Body protector&amp;quot;,&lt;br /&gt;
        &amp;quot;Type&amp;quot;: &amp;quot;Bodywarmer&amp;quot;,&lt;br /&gt;
        &amp;quot;Color&amp;quot;: [&lt;br /&gt;
            &amp;quot;blue&amp;quot;,&lt;br /&gt;
            &amp;quot;pink&amp;quot;&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Example EDIT:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;Json_test_result&amp;quot; format=&amp;quot;json&amp;quot; template=&amp;quot;json|ffID=1669192355&amp;quot; formfield=&amp;quot;Title&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If you do not have a ffID, but do have something else in the JSON that is always unique you can use those instead of a ffID. For example, if you know the &#039;&#039;&#039;Type:&amp;quot;Bodywamer&amp;quot;&#039;&#039;&#039; is unique in this JSON, you can edit the &#039;&#039;&#039;Title&#039;&#039;&#039; of the JSON this way :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;Json_test_result&amp;quot; format=&amp;quot;json&amp;quot; template=&amp;quot;json|Type=Bodywarmer&amp;quot; formfield=&amp;quot;Title&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;jsonk&#039;&#039;&#039; : This option lets you traverse down a JSON manually using the JSONPath (xpath for JSON). You tell FlexForm exactly what part of the JSON you want to edit and what value of a form input field to use. You can use the full root path method ( $. ) or leave it out for convenience and FlexForm will add it automatically. The following example uses the same JSON example from above and we tell FlexForm to go to &#039;&#039;&#039;Coats-&amp;gt;Title&#039;&#039;&#039;, then take the form input of type &#039;&#039;&#039;Title&#039;&#039;&#039; and put that value in the JSON.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;Json_test_result&amp;quot; format=&amp;quot;json&amp;quot; template=&amp;quot;jsonk|Coats.Title&amp;quot; formfield=&amp;quot;Title&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can also use a different input in your form to use as the new value&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;Json_test_result&amp;quot; format=&amp;quot;json&amp;quot; template=&amp;quot;jsonk|Coats.Title&amp;quot; formfield=&amp;quot;Alternative title&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can even traverse into unnamed values like so :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;Json_test_result&amp;quot; format=&amp;quot;json&amp;quot; template=&amp;quot;jsonk|Coats.Color[0]&amp;quot; formfield=&amp;quot;Title&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will change the first Color array value into the value of the form field Title.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;formfield&#039;&#039;&#039; = Name of the key in the JSON. When using template type json, then the formfield in the form should have the same name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;value&#039;&#039;&#039; = [optional] Don&#039;t read the value from the form field, but use this value explicitly&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mwslot&#039;&#039;&#039; = [optional] Name of content slot to use. Defaults to main content slot&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
&lt;br /&gt;
* You can have multiple _edit&#039;s in a form all doing different tasks.&lt;br /&gt;
* If you omit value, then the value of the form will be used (so what a user has filled in).&lt;br /&gt;
===Links===&lt;br /&gt;
https://www.mediawiki.org/wiki/Multi-Content_Revisions&lt;br /&gt;
&lt;br /&gt;
https://github.com/Galbar/JsonPath-PHP&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/file&amp;diff=3304</id>
		<title>DevOps:Doc/FlexForm/2.1/input/file</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.1/input/file&amp;diff=3304"/>
		<updated>2024-11-20T12:28:26Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
file&lt;br /&gt;
===Type===&lt;br /&gt;
input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Using file uploads&lt;br /&gt;
===Description===&lt;br /&gt;
Use a form to upload one or multiple files.&lt;br /&gt;
===Parameters===&lt;br /&gt;
input type=&amp;quot;file&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;target&#039;&#039;&#039;* : Name of the File page to be created&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;id&#039;&#039;&#039;* : This must always be unique, that is, it can only occur once on a page. Do not include a hyphen (&amp;quot;-&amp;quot;), underscore (&amp;quot;_&amp;quot;), or any special characters (also no spaces).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;action&#039;&#039;&#039;* : defaults to &#039;&#039;&#039;upload&#039;&#039;&#039;. Read more below on using this to convert docx documents to pages in the wiki.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;name&#039;&#039;&#039;* : As with any input field, a name is mandatory&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pagecontent&#039;&#039;&#039;: Text content to be added on the File Page. If you are using &#039;&#039;&#039;convertfrom&#039;&#039;&#039; then any images uploading during the convert will get the pagecontent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;comment&#039;&#039;&#039;: Text to show in recent changes or contributions list &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;force &#039;&#039;&#039;: Force images to a certain format (png, jpg or gif). When using this option, any file uploaded that is not supported will be uploaded as is.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;error_id &#039;&#039;&#039;: Id of a DOM Element where error notices will be shown&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;verbose_id &#039;&#039;&#039;: Id of a DOM element where information about the file is shown&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;use_label &#039;&#039;&#039;: Doesn&#039;t require a value. When an input field has a label attached to it, then the label will become the upload button and the input field will be hidden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;dropzone &#039;&#039;&#039;: Doesn&#039;t require a value. Will turn the verbose div into an additional file drop zone. If you also &#039;&#039;&#039;use_label&#039;&#039;&#039;, then the label will become the dropzone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;parsecontent&#039;&#039;&#039;: Will force FlexForm to insert values from other form fields inside the pagecontent field. Use square brackets, like [fieldname], where values should be inserted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;template&#039;&#039;&#039; : If you want to store a template call inside the content of the File page, you can &#039;&#039;&#039;template=&amp;lt;name of your template&amp;gt;&#039;&#039;&#039; in combination with &#039;&#039;&#039;parsecontent&#039;&#039;&#039;. [flexform-template] inside your content field will be replaced by &#039;&#039;&#039;{{&amp;lt;name of your template&#039;&#039;&#039; and &#039;&#039;&#039;[/flexform-template]&#039;&#039;&#039; will be replaced by &#039;&#039;&#039;}}&#039;&#039;&#039;. See example 3 on the examples page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039;= a required variable&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;target&#039;&#039;&#039; is basically the name you want to use to store the file or files. It recognizes &#039;&#039;&#039;[mwrandom]&#039;&#039;&#039;, &#039;&#039;&#039;[filename]&#039;&#039;&#039; and other form fields, by using their name with square brackets around them (see example). &#039;&#039;&#039;pagecontent&#039;&#039;&#039; can also hold form variables.&lt;br /&gt;
&lt;br /&gt;
=== action=&amp;quot;convertfrom:????&amp;quot; ===&lt;br /&gt;
====Pandoc====&lt;br /&gt;
The &#039;&#039;&#039;action&#039;&#039;&#039; argument defaults to &#039;&#039;upload&#039;&#039;. If you use &#039;&#039;&#039;action=&amp;quot;convertfrom:????&amp;quot;&#039;&#039;&#039; and you have Pandoc installed on your system, FlexForm will convert a document and create it as a page in the Wiki. &#039;&#039;&#039;target&#039;&#039;&#039; will then be used as a Page Title. Depending on your version of Pandoc, the results might differ. &#039;&#039;&#039;convertfrom&#039;&#039;&#039; allows all Pandoc to MediaWiki text conversions. &#039;&#039;&#039;docx&#039;&#039;&#039; would be a good example : action=&amp;quot;convertfrom:docx&amp;quot;. Any images uploaded during the convert can have their content of their filepages be filled using &#039;&#039;&#039;pagecontent&#039;&#039;&#039;. Since version 2.2.9 you can also add an argument &#039;&#039;&#039;slot=&amp;quot;&amp;lt;name of slot&amp;gt;&amp;quot;&#039;&#039;&#039; to have the converted Document be save to a specific slot on the target page, instead of the main slot. Keep in mind, MediaWiki slots need to be defined in your LocalSettings.&lt;br /&gt;
====Excel ( since version 2.2.9 )====&lt;br /&gt;
You can also use &#039;&#039;&#039;action=&amp;quot;convertfrom:xls&amp;quot;&#039;&#039;&#039; or &#039;&#039;&#039;action=&amp;quot;convertfrom:xlsx&amp;quot;&#039;&#039;&#039;. This allows for converting an Excel xls or xlsx file to JSON. Images are not supported. The argument &#039;&#039;&#039;slot&#039;&#039;&#039; is supported. &#039;&#039;This conversion is not done using Pandoc and thus will work without having Pandoc installed&#039;&#039;. (just make sure you run composer update after you update FlexForm).&lt;br /&gt;
&lt;br /&gt;
An excel document like this :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;options&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;description&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;HitCounter&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;WSStats&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;More&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|$wgDisableCounters&lt;br /&gt;
|automatically show hitcounts on a page and Special page&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|WSStats allows for adding this to a page using parser function&lt;br /&gt;
|-&lt;br /&gt;
|$wgHitcounterUpdateFreq&lt;br /&gt;
|frequency of counters update&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|WSStats uses MW DB abstraction layer to update hitcount. The approach is  different&lt;br /&gt;
|-&lt;br /&gt;
|skip_user_groups&lt;br /&gt;
|Skip certain user groups in counting&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|count_all_usergroups&lt;br /&gt;
|Count pages independend of a user group&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
Will result in the following JSON:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;options&amp;quot;: &amp;quot;$wgDisableCounters&amp;quot;,&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;automatically show hitcounts on a page and Special page&amp;quot;,&lt;br /&gt;
        &amp;quot;HitCounter&amp;quot;: &amp;quot;yes&amp;quot;,&lt;br /&gt;
        &amp;quot;WSStats&amp;quot;: &amp;quot;no&amp;quot;,&lt;br /&gt;
        &amp;quot;More&amp;quot;: &amp;quot;WSStats allows for adding this to a page using parser function&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;options&amp;quot;: &amp;quot;$wgHitcounterUpdateFreq&amp;quot;,&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;frequency of counters update&amp;quot;,&lt;br /&gt;
        &amp;quot;HitCounter&amp;quot;: &amp;quot;yes&amp;quot;,&lt;br /&gt;
        &amp;quot;WSStats&amp;quot;: &amp;quot;no&amp;quot;,&lt;br /&gt;
        &amp;quot;More&amp;quot;: &amp;quot;WSStats uses MW DB abstraction layer to update hitcount. The approach is different&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;options&amp;quot;: &amp;quot;skip_user_groups&amp;quot;,&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;Skip certain user groups in counting&amp;quot;,&lt;br /&gt;
        &amp;quot;HitCounter&amp;quot;: &amp;quot;no&amp;quot;,&lt;br /&gt;
        &amp;quot;WSStats&amp;quot;: &amp;quot;yes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;options&amp;quot;: &amp;quot;count_all_usergroups&amp;quot;,&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;Count pages independend of a user group&amp;quot;,&lt;br /&gt;
        &amp;quot;HitCounter&amp;quot;: &amp;quot;no&amp;quot;,&lt;br /&gt;
        &amp;quot;WSStats&amp;quot;: &amp;quot;yes&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HTMLtoImage===&lt;br /&gt;
You can also use the field input to upload an image created from part of the page shown where the form is rendered.&lt;br /&gt;
&lt;br /&gt;
Basically, you tell FlexForm you want to render a part of your screen as an image and upload it to the wiki.&lt;br /&gt;
&lt;br /&gt;
The syntax is the same as above, but it only needs : target, name and pagecontent. The other arguments are ignored. Additionally it needs an argument called &#039;&#039;&#039;presentor=&amp;quot;canvas&amp;quot;&#039;&#039;&#039; and it needs the ID of the element you want to convert to an image: &#039;&#039;&#039;canvas_source_id&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;By default the image will always be a .jpg file. We plan to support png if this is requested.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For example you have a DIV element with id=&amp;quot;content-to-convert&amp;quot;. Within this DIV you have content you want to convert to an image an upload to the Wiki.&lt;br /&gt;
&lt;br /&gt;
A FlexForm to utilize this would look something like this :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;content-to-convert&amp;quot; style=&amp;quot;width:500px&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;h1&amp;gt;Test Screenshot&amp;lt;/h1&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Lots of other content here&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;file&amp;quot; presentor=&amp;quot;canvas&amp;quot; id=&amp;quot;canvasUpload&amp;quot; target=&amp;quot;testCanvasFile.jpg&amp;quot; pagecontent=&amp;quot;testing&amp;quot; canvas_source_id=&amp;quot;content-to-convert&amp;quot;  /&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;upload&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You cannot use both file uploads in one form.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
An &#039;&#039;&#039;input type=&amp;quot;file&amp;quot;&#039;&#039;&#039; always needs a unique ID! ( do not use &amp;quot;-&amp;quot;, &amp;quot;_&amp;quot;, any special characters ( also no spaces ) ).&lt;br /&gt;
&lt;br /&gt;
A form that needs to upload files needs this argument : &#039;&#039;&#039;enctype=&amp;quot;multipart/form-data&amp;quot;&#039;&#039;&#039;. The argument needs to be added to the Form tag, not the input tag. See also : https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/enctype&lt;br /&gt;
&lt;br /&gt;
As FlexForm first handles File Upload, it will add the files processed to use in an _edit or a _create.&lt;br /&gt;
Every file upload field needs a name attribute and once a file has been uploaded you can use them in an edit or create in the following format :&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;FFUploadedFile-UploadName-&#039;&#039;&#039;&#039;&#039;&amp;lt;name attribute of input field&amp;gt;&#039;&#039; : Will hold the original file name uploaded&lt;br /&gt;
*&#039;&#039;&#039;FFUploadedFile-UploadBase-&#039;&#039;&#039;&#039;&#039;&amp;lt;name attribute of input field&amp;gt;&#039;&#039; : Will hold the original file name uploaded without the extension&lt;br /&gt;
*&#039;&#039;&#039;FFUploadedFile-NewName-&#039;&#039;&#039;&#039;&#039;&amp;lt;name attribute of input field&amp;gt;&#039;&#039; : Will hold the name of the file as it is uploaded into the Wiki ( Without the File: prefix )&lt;br /&gt;
&lt;br /&gt;
If you use a multiple file upload, then the above values will all be &#039;&#039;&#039;,&#039;&#039;&#039; separated.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/enctype&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file&lt;br /&gt;
&lt;br /&gt;
https://pandoc.org/&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/Installation_of_FlexForm&amp;diff=3281</id>
		<title>DevOps:Doc/FlexForm/2.0/Installation of FlexForm</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/Installation_of_FlexForm&amp;diff=3281"/>
		<updated>2024-11-08T10:32:45Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /FlexForm not hyphenated /Flex-Form&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FlexForm is installed using [https://www.mediawiki.org/wiki/Composer/For_extensions Composer]: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
composer require open-csp/flex-form&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can install FlexForm from [https://github.com/Open-CSP/FlexForm github] by installing it in extensions/FlexForm. You do have to run composer --update inside that folder after installation to get all dependencies. &lt;br /&gt;
&lt;br /&gt;
==== Setup ====&lt;br /&gt;
You can tweak &#039;&#039;&#039;FlexForm&#039;&#039;&#039; to an extent in your &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Will render form that makes no sense when inspected in the browser.&lt;br /&gt;
$wgFlexFormConfig[&#039;secure&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// A salt key for encryption. Used together with &amp;quot;secure&amp;quot; option. Must be set when using multiple instances of a wiki.&lt;br /&gt;
$wgFlexFormConfig[&#039;sec_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Interval time in ms, defaults to 3 minutes (180000 ms). Form is submitted on each interval regardless of changes.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_interval&#039;] = 30000;&lt;br /&gt;
&lt;br /&gt;
// Time in ms, defaults to 3 seconds (3000 ms). Form is submitted after the specified time, timer starts when there is a change in the form. Timer resets if there is another change before the time has passed.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_after_change&#039;] = 3000;&lt;br /&gt;
&lt;br /&gt;
// Text on the autosave button to toggle on.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_on&#039;] = &#039;Autosave on&#039;;&lt;br /&gt;
&lt;br /&gt;
// Text on the autosave button to toggle off.&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_off&#039;] = &#039;Autosave off&#039;;&lt;br /&gt;
&lt;br /&gt;
// Currently the only form.&lt;br /&gt;
$wgFlexFormConfig[&#039;FlexFormDefaultTheme&#039;] = &amp;quot;plain&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// reCaptcha site key.&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_site_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// reCaptcha secret key.&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_secret_key&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Where to store images temporarily that need to be format converted.&lt;br /&gt;
$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Set to yes if FlexForm is allowed to create new users.&lt;br /&gt;
$wgFlexFormConfig[&#039;can_create_user&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Will filter all parser arguments to plain text, except value parameters. Will also disallow onClick and onFocus parameter. This feature will most likely be removed in future updates.&lt;br /&gt;
$wgFlexFormConfig[&#039;filter_input_tags&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to what is described by the loadscript form argument. When you change it do a different folder, then loadScript argument will be looking in this folder for its JavaScript file to load with the Form.&lt;br /&gt;
$wgFlexFormConfig[&#039;loadScriptPath&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Defaults to sysop. Only a user in the allowedGroups is able to edit pages with a FlexForm in the source.&lt;br /&gt;
$wgFlexFormConfig[&#039;allowedGroups&#039;] = [&amp;quot;sysop&amp;quot;,&amp;quot;moderator&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
// Defaults to true. When a user in the allowedGroups creates a form it will become valid and will be rendered. Someone not in the allowedGroups can create a form and save it, but it will never be rendered until a user from the allowedGroups will edit and re-save the page. Only then will a form become valid. The message &amp;quot;FORM CANNOT BE RENDERED, NOT VALIDATED&amp;quot; will be shown instead of the form when it is invalid or depending on the next setting an image stating it cannot be rendered.&lt;br /&gt;
$wgFlexFormConfig[&#039;renderonlyapprovedforms&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// When a form is invalid, an invalid image will be rendered instead of the form. Set to true to render i18n invalid message.&lt;br /&gt;
$wgFlexFormConfig[&#039;renderi18nErrorInsteadofImageForApprovedForms&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. This differs from FlexForm before 2.0. FlexForm will now honor the UserCan functions in MediaWiki. If a form edits or creates a page a user has no rights to, the form will fail.&lt;br /&gt;
$wgFlexFormConfig[&#039;userscaneditallpages&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Defaults to true. If a user is not in the allowedGroups then hide edit and editsource menu items for any page containing a FlexForm form.&lt;br /&gt;
$wgFlexFormConfig[&#039;hideEdit&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// Defaults to false. Will turn titles given to wscreate into url friendly slugs. Creating only latin character and converting spaces and special characters.&lt;br /&gt;
$wgFlexFormConfig[&#039;create-seo-titles&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// If you have a custom/different version of Pandoc than the one set by your hosting provider, you can add its local path here and FlexForm will use it, instead of the one set by environment variables&lt;br /&gt;
$wgFlexFormConfig[&#039;pandoc-install-path&#039;] = $IP . &#039;/bin/pandoc&#039;; // This will look for Pandoc executable in the root/bin of your MediaWiki instalment&lt;br /&gt;
&lt;br /&gt;
// FlexForm will by default always do an extra null edit on a save or an edit. This is mainly due to SMW. Not always this is necessary, so with this option you can turn it off. ( resulting in less handling time )&lt;br /&gt;
$wgFlexFormConfig[&#039;forceNullEdit&#039;] = true; // Default to true for backwards compatibility&lt;br /&gt;
&lt;br /&gt;
// When sending email, should we use separate smtp?&lt;br /&gt;
$wgFlexFormConfig[&#039;use_smtp&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_host&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_authentication&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_username&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_password&#039;] = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_secure&#039;] = &amp;quot;TLS&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;smtp_port&#039;] = &amp;quot;587&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
* Add the following line at the end of your &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; to enable the extension:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;FlexForm&#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* It is also recommended to turn off the parser cache when using FlexForm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgParserCacheType = CACHE_NONE;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run the [https://www.mediawiki.org/wiki/Manual:Update.php update script] which will automatically create the necessary database tables that this extension needs. &lt;br /&gt;
* Navigate to Special:Version on your wiki to verify that the extension is successfully installed.&lt;br /&gt;
&lt;br /&gt;
==== Migrate from version 1.x to 2.0 ====&lt;br /&gt;
* Please notice the changes in the config settings.&lt;br /&gt;
* Do not forget to run update.php.&lt;br /&gt;
* Also, by default, the setting &#039;&#039;&#039;renderonlyapprovedforms&#039;&#039;&#039; will be &#039;&#039;&#039;true&#039;&#039;&#039;. Meaning that once you install FlexForm v2.0 all your existing FlexForm forms in your wiki will be shown as unvalidated. Visit [[DevOps:Doc/FlexForm/2.0/Validated Forms|Validated Forms]] to read how to solve this easily.&lt;br /&gt;
&lt;br /&gt;
==== Notification/Messages ====&lt;br /&gt;
FlexForm has a notification system build in. This is used to show possible errors or success/custom messages. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As off version 2.2.2 this is now a default feature&#039;&#039;&#039; and &amp;lt;nowiki&amp;gt;&amp;lt;form showmessage /&amp;gt;&amp;lt;/nowiki&amp;gt; is deprecated.&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=User:944f869b-8467-464e-95c7-903362952755/Test&amp;diff=3255</id>
		<title>User:944f869b-8467-464e-95c7-903362952755/Test</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=User:944f869b-8467-464e-95c7-903362952755/Test&amp;diff=3255"/>
		<updated>2024-08-27T21:01:46Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Target: [[Json/RecipeTest]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form id=&amp;quot;my-recipe-form--create&amp;quot; type=&amp;quot;addToWiki&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;_create id=&amp;quot;create-page&amp;quot; &lt;br /&gt;
mwwrite=&amp;quot;Json/RecipeTest&amp;quot; &lt;br /&gt;
mwtemplate=&amp;quot;Base properties&amp;quot; &lt;br /&gt;
mwslot=&amp;quot;ws-data&amp;quot; &lt;br /&gt;
mwfields=&amp;quot;Class&amp;quot; &lt;br /&gt;
mwfollow=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;hidden&amp;quot; name=&amp;quot;Class&amp;quot; value=&amp;quot;Test recipe&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_create id=&amp;quot;sdfsdfsdfsdf&amp;quot;&lt;br /&gt;
mwwrite=&amp;quot;::id::create-page&amp;quot; &lt;br /&gt;
mwformat=&amp;quot;json&amp;quot; &lt;br /&gt;
mwtemplate=&amp;quot;wsnone&amp;quot;&lt;br /&gt;
mwfields=&amp;quot;title,ingredients&amp;quot;&lt;br /&gt;
/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;title&amp;quot;&amp;gt;Title&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;title&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_instance&lt;br /&gt;
name=&amp;quot;ingredients&amp;quot;&lt;br /&gt;
format=&amp;quot;json&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;name&amp;quot;&amp;gt;Name&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;amount&amp;quot;&amp;gt;Amount&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;amount&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;unit&amp;quot;&amp;gt;Unit&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;unit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/_instance&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Save&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issue ==&lt;br /&gt;
;Fandata&lt;br /&gt;
Could not create a WikiPage Object from title ::id::..... Title is null.&lt;br /&gt;
&lt;br /&gt;
;Here&lt;br /&gt;
No such slot: main&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=User:944f869b-8467-464e-95c7-903362952755/Test&amp;diff=3254</id>
		<title>User:944f869b-8467-464e-95c7-903362952755/Test</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=User:944f869b-8467-464e-95c7-903362952755/Test&amp;diff=3254"/>
		<updated>2024-08-27T21:00:20Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Target: [[Json/RecipeTest]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form id=&amp;quot;my-recipe-form--create&amp;quot; type=&amp;quot;addToWiki&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;_create id=&amp;quot;create-page&amp;quot; &lt;br /&gt;
mwwrite=&amp;quot;Json/RecipeTest&amp;quot; &lt;br /&gt;
mwtemplate=&amp;quot;Base properties&amp;quot; &lt;br /&gt;
mwslot=&amp;quot;ws-data&amp;quot; &lt;br /&gt;
mwfields=&amp;quot;Class&amp;quot; &lt;br /&gt;
mwfollow=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;hidden&amp;quot; name=&amp;quot;Class&amp;quot; value=&amp;quot;Test recipe&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_create id=&amp;quot;sdfsdfsdfsdf&amp;quot;&lt;br /&gt;
mwwrite=&amp;quot;::id::create-page&amp;quot; &lt;br /&gt;
mwformat=&amp;quot;json&amp;quot; &lt;br /&gt;
mwtemplate=&amp;quot;wsnone&amp;quot;&lt;br /&gt;
mwfields=&amp;quot;title,ingredients&amp;quot;&lt;br /&gt;
/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;title&amp;quot;&amp;gt;Title&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;title&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_instance&lt;br /&gt;
name=&amp;quot;ingredients&amp;quot;&lt;br /&gt;
format=&amp;quot;json&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;name&amp;quot;&amp;gt;Name&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;amount&amp;quot;&amp;gt;Amount&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;amount&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;unit&amp;quot;&amp;gt;Unit&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;unit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/_instance&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Save&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Fandata&lt;br /&gt;
Could not create a WikiPage Object from title ::id::..... Title is null.&lt;br /&gt;
&lt;br /&gt;
;Here&lt;br /&gt;
No such slot: main&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=User:944f869b-8467-464e-95c7-903362952755/Test&amp;diff=3253</id>
		<title>User:944f869b-8467-464e-95c7-903362952755/Test</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=User:944f869b-8467-464e-95c7-903362952755/Test&amp;diff=3253"/>
		<updated>2024-08-27T20:58:37Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Target: [[Json:RecipeTest]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form id=&amp;quot;my-recipe-form--create&amp;quot; type=&amp;quot;addToWiki&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;_create id=&amp;quot;create-page&amp;quot; &lt;br /&gt;
mwwrite=&amp;quot;Json:RecipeTest&amp;quot; &lt;br /&gt;
mwtemplate=&amp;quot;Base properties&amp;quot; &lt;br /&gt;
mwslot=&amp;quot;ws-data&amp;quot; &lt;br /&gt;
mwfields=&amp;quot;Class&amp;quot; &lt;br /&gt;
mwfollow=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;hidden&amp;quot; name=&amp;quot;Class&amp;quot; value=&amp;quot;Test recipe&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_create id=&amp;quot;sdfsdfsdfsdf&amp;quot;&lt;br /&gt;
mwwrite=&amp;quot;::id::create-page&amp;quot; &lt;br /&gt;
mwformat=&amp;quot;json&amp;quot; &lt;br /&gt;
mwtemplate=&amp;quot;wsnone&amp;quot;&lt;br /&gt;
mwfields=&amp;quot;title,ingredients&amp;quot;&lt;br /&gt;
/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;title&amp;quot;&amp;gt;Title&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;title&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_instance&lt;br /&gt;
name=&amp;quot;ingredients&amp;quot;&lt;br /&gt;
format=&amp;quot;json&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;name&amp;quot;&amp;gt;Name&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;amount&amp;quot;&amp;gt;Amount&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;amount&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;unit&amp;quot;&amp;gt;Unit&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;unit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/_instance&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Save&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Fandata&lt;br /&gt;
Could not create a WikiPage Object from title ::id::..... Title is null.&lt;br /&gt;
&lt;br /&gt;
;Here&lt;br /&gt;
No such slot: main&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=User:944f869b-8467-464e-95c7-903362952755/Test&amp;diff=3252</id>
		<title>User:944f869b-8467-464e-95c7-903362952755/Test</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=User:944f869b-8467-464e-95c7-903362952755/Test&amp;diff=3252"/>
		<updated>2024-08-27T20:57:21Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: Created page with &amp;quot;Target: Json:RecipeTest  &amp;lt;form id=&amp;quot;my-recipe-form--create&amp;quot; type=&amp;quot;addToWiki&amp;quot; &amp;gt; &amp;lt;_create id=&amp;quot;create-page&amp;quot;  mwwrite=&amp;quot;Json:RecipeTest&amp;quot;  mwtemplate=&amp;quot;Base properties&amp;quot;  mwslot=&amp;quot;w...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Target: [[Json:RecipeTest]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form id=&amp;quot;my-recipe-form--create&amp;quot; type=&amp;quot;addToWiki&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;_create id=&amp;quot;create-page&amp;quot; &lt;br /&gt;
mwwrite=&amp;quot;Json:RecipeTest&amp;quot; &lt;br /&gt;
mwtemplate=&amp;quot;Base properties&amp;quot; &lt;br /&gt;
mwslot=&amp;quot;ws-data&amp;quot; &lt;br /&gt;
mwfields=&amp;quot;Class&amp;quot; &lt;br /&gt;
mwfollow=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;hidden&amp;quot; name=&amp;quot;Class&amp;quot; value=&amp;quot;Test recipe&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_create id=&amp;quot;sdfsdfsdfsdf&amp;quot;&lt;br /&gt;
mwwrite=&amp;quot;::id::create-page&amp;quot; &lt;br /&gt;
mwformat=&amp;quot;json&amp;quot; &lt;br /&gt;
mwtemplate=&amp;quot;wsnone&amp;quot;&lt;br /&gt;
mwfields=&amp;quot;title,ingredients&amp;quot;&lt;br /&gt;
/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;title&amp;quot;&amp;gt;Title&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;title&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_instance&lt;br /&gt;
name=&amp;quot;ingredients&amp;quot;&lt;br /&gt;
format=&amp;quot;json&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;name&amp;quot;&amp;gt;Name&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;amount&amp;quot;&amp;gt;Amount&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;amount&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ff&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;label for=&amp;quot;unit&amp;quot;&amp;gt;Unit&amp;lt;/label&amp;gt;&lt;br /&gt;
 &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;unit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/_instance&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Save&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Could not create a WikiPage Object from title ::id::..... Title is null.&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3224</id>
		<title>DevOps:Doc/FlexForm/1.0/Error-messages</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3224"/>
		<updated>2024-06-11T11:47:16Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* Error messages in the browser&amp;#039;s console */ h3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
Troubles and Error messages&lt;br /&gt;
===Type===&lt;br /&gt;
_form&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Common behaviour and list of (error) messages that might occur&lt;br /&gt;
===Description===&lt;br /&gt;
Tag extensions, like FlexForm, cannot hold any html in its arguments.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; value=&amp;quot;hello&amp;lt;br&amp;gt;how are you&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The above example will simply not be rendered. This is how MediaWiki tags work.&lt;br /&gt;
&lt;br /&gt;
You can use the following syntax, it at least will not break. It is another way of writing tag code.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{#tag:_input||type=text|value=hello&amp;lt;br&amp;gt;how are you}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The HTML will be filtered out. &#039;&#039;&#039;However, with the new Parsoid Parser that is introduced, do not use the &amp;lt;nowiki&amp;gt;{{#tag:}}&amp;lt;/nowiki&amp;gt; method anymore.&#039;&#039;&#039; It will give unpredictable results as Parsoid renders these tags in no particular order.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a list of common error messages that might occur, with a brief description of what the problem might be.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Message&lt;br /&gt;
!Type&lt;br /&gt;
!Why&lt;br /&gt;
!Possible solutions&lt;br /&gt;
|-&lt;br /&gt;
|Can not find template&lt;br /&gt;
|_email&lt;br /&gt;
|shown when the page mentioned in the template cannot be read or parse by the API&lt;br /&gt;
|check page name if it exists or not miss-spelled&lt;br /&gt;
|-&lt;br /&gt;
|not a secure form&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and the form has been manipulated after form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Secure fields not complete&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and files with type is secure (not to be manipulated with) are incomplete after a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Did not receive a session token from the form&lt;br /&gt;
|form&lt;br /&gt;
|shown when a secure token that is generated by FlexForm did not come with a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Form session expired&lt;br /&gt;
|form&lt;br /&gt;
|shown when the time between a form render and the actual submit has taken to long&lt;br /&gt;
|Change the config option &#039;&#039;&#039;form-timeout-limit&#039;&#039;&#039; to a higher number in seconds ( default 7200 secs = 120 mins = 2 hours )&lt;br /&gt;
|-&lt;br /&gt;
|No return found&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted but FlexForm cannot find a page to return to after handling the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|no captcha details&lt;br /&gt;
|reCaptcha&lt;br /&gt;
|shown when a form with a recaptcha has been submitted, but no recaptcha information can be found in the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|No requests&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted, but FlexForm could not find any valid request&lt;br /&gt;
|Usually this means the &#039;&#039;&#039;action&#039;&#039;&#039; parameter of a form is invalid.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cannot find user to connect to file upload&lt;br /&gt;
|form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PHP move uploaded file error (file-handling)&lt;br /&gt;
|upload and canvas&lt;br /&gt;
|shown when a files or files are uploaded using FlexForm, but FlexForm cannot store them in the defined temp folder&lt;br /&gt;
|Make sure you set the FlexForm config : &amp;lt;code&amp;gt;$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
to a path where FlexForm has write rights. If you leave this empty, FlexForm will try to temporarily store the uploaded files in its own extension folder in the uploads folder. You can also check to see if this folder has write rights.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Error messages in the browser&#039;s console ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught (in promise) ReferenceError: wgFlexFormSecure is not defined&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. This message may show if you forgot to set &amp;lt;code&amp;gt;$wgParserCacheType = CACHE_NONE;&amp;lt;/code&amp;gt; in your LocalSettings.php file. Some features, such as instances, may not work without it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught SyntaxError: redeclaration of let ffDecryptObj&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. Same as above.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line [...] column [...] of the JSON data&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| This may happen if you have set your config options for debugging in such a way that any PHP warnings are printed, in turn mangling the JSON output expected by FlexForm. It is generally not a good idea to permanently use settings like &amp;lt;code&amp;gt;ini_set( &#039;display_errors&#039;, 1 ) &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;error_reporting( E_ALL )&amp;lt;/code&amp;gt; in a live environment.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Discord ===&lt;br /&gt;
You might find a helping hand here as well : https://discord.gg/ehFrPmT&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3223</id>
		<title>DevOps:Doc/FlexForm/1.0/Error-messages</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3223"/>
		<updated>2024-06-11T11:46:27Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: another one&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
Troubles and Error messages&lt;br /&gt;
===Type===&lt;br /&gt;
_form&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Common behaviour and list of (error) messages that might occur&lt;br /&gt;
===Description===&lt;br /&gt;
Tag extensions, like FlexForm, cannot hold any html in its arguments.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; value=&amp;quot;hello&amp;lt;br&amp;gt;how are you&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The above example will simply not be rendered. This is how MediaWiki tags work.&lt;br /&gt;
&lt;br /&gt;
You can use the following syntax, it at least will not break. It is another way of writing tag code.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{#tag:_input||type=text|value=hello&amp;lt;br&amp;gt;how are you}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The HTML will be filtered out. &#039;&#039;&#039;However, with the new Parsoid Parser that is introduced, do not use the &amp;lt;nowiki&amp;gt;{{#tag:}}&amp;lt;/nowiki&amp;gt; method anymore.&#039;&#039;&#039; It will give unpredictable results as Parsoid renders these tags in no particular order.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a list of common error messages that might occur, with a brief description of what the problem might be.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Message&lt;br /&gt;
!Type&lt;br /&gt;
!Why&lt;br /&gt;
!Possible solutions&lt;br /&gt;
|-&lt;br /&gt;
|Can not find template&lt;br /&gt;
|_email&lt;br /&gt;
|shown when the page mentioned in the template cannot be read or parse by the API&lt;br /&gt;
|check page name if it exists or not miss-spelled&lt;br /&gt;
|-&lt;br /&gt;
|not a secure form&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and the form has been manipulated after form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Secure fields not complete&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and files with type is secure (not to be manipulated with) are incomplete after a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Did not receive a session token from the form&lt;br /&gt;
|form&lt;br /&gt;
|shown when a secure token that is generated by FlexForm did not come with a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Form session expired&lt;br /&gt;
|form&lt;br /&gt;
|shown when the time between a form render and the actual submit has taken to long&lt;br /&gt;
|Change the config option &#039;&#039;&#039;form-timeout-limit&#039;&#039;&#039; to a higher number in seconds ( default 7200 secs = 120 mins = 2 hours )&lt;br /&gt;
|-&lt;br /&gt;
|No return found&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted but FlexForm cannot find a page to return to after handling the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|no captcha details&lt;br /&gt;
|reCaptcha&lt;br /&gt;
|shown when a form with a recaptcha has been submitted, but no recaptcha information can be found in the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|No requests&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted, but FlexForm could not find any valid request&lt;br /&gt;
|Usually this means the &#039;&#039;&#039;action&#039;&#039;&#039; parameter of a form is invalid.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cannot find user to connect to file upload&lt;br /&gt;
|form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PHP move uploaded file error (file-handling)&lt;br /&gt;
|upload and canvas&lt;br /&gt;
|shown when a files or files are uploaded using FlexForm, but FlexForm cannot store them in the defined temp folder&lt;br /&gt;
|Make sure you set the FlexForm config : &amp;lt;code&amp;gt;$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
to a path where FlexForm has write rights. If you leave this empty, FlexForm will try to temporarily store the uploaded files in its own extension folder in the uploads folder. You can also check to see if this folder has write rights.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error messages in the browser&#039;s console ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught (in promise) ReferenceError: wgFlexFormSecure is not defined&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. This message may show if you forgot to set &amp;lt;code&amp;gt;$wgParserCacheType = CACHE_NONE;&amp;lt;/code&amp;gt; in your LocalSettings.php file. Some features, such as instances, may not work without it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught SyntaxError: redeclaration of let ffDecryptObj&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. Same as above.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line [...] column [...] of the JSON data&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| This may happen if you have set your config options for debugging in such a way that any PHP warnings are printed, in turn mangling the JSON output expected by FlexForm. It is generally not a good idea to permanently use settings like &amp;lt;code&amp;gt;ini_set( &#039;display_errors&#039;, 1 ) &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;error_reporting( E_ALL )&amp;lt;/code&amp;gt; in a live environment.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Discord ===&lt;br /&gt;
You might find a helping hand here as well : https://discord.gg/ehFrPmT&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3222</id>
		<title>DevOps:Doc/FlexForm/1.0/Error-messages</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3222"/>
		<updated>2024-06-09T19:05:58Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* Error messages in the browser&amp;#039;s console */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
Troubles and Error messages&lt;br /&gt;
===Type===&lt;br /&gt;
_form&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Common behaviour and list of (error) messages that might occur&lt;br /&gt;
===Description===&lt;br /&gt;
Tag extensions, like FlexForm, cannot hold any html in its arguments.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; value=&amp;quot;hello&amp;lt;br&amp;gt;how are you&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The above example will simply not be rendered. This is how MediaWiki tags work.&lt;br /&gt;
&lt;br /&gt;
You can use the following syntax, it at least will not break. It is another way of writing tag code.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{#tag:_input||type=text|value=hello&amp;lt;br&amp;gt;how are you}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The HTML will be filtered out. &#039;&#039;&#039;However, with the new Parsoid Parser that is introduced, do not use the &amp;lt;nowiki&amp;gt;{{#tag:}}&amp;lt;/nowiki&amp;gt; method anymore.&#039;&#039;&#039; It will give unpredictable results as Parsoid renders these tags in no particular order.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a list of common error messages that might occur, with a brief description of what the problem might be.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Message&lt;br /&gt;
!Type&lt;br /&gt;
!Why&lt;br /&gt;
!Possible solutions&lt;br /&gt;
|-&lt;br /&gt;
|Can not find template&lt;br /&gt;
|_email&lt;br /&gt;
|shown when the page mentioned in the template cannot be read or parse by the API&lt;br /&gt;
|check page name if it exists or not miss-spelled&lt;br /&gt;
|-&lt;br /&gt;
|not a secure form&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and the form has been manipulated after form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Secure fields not complete&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and files with type is secure (not to be manipulated with) are incomplete after a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Did not receive a session token from the form&lt;br /&gt;
|form&lt;br /&gt;
|shown when a secure token that is generated by FlexForm did not come with a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Form session expired&lt;br /&gt;
|form&lt;br /&gt;
|shown when the time between a form render and the actual submit has taken to long&lt;br /&gt;
|Change the config option &#039;&#039;&#039;form-timeout-limit&#039;&#039;&#039; to a higher number in seconds ( default 7200 secs = 120 mins = 2 hours )&lt;br /&gt;
|-&lt;br /&gt;
|No return found&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted but FlexForm cannot find a page to return to after handling the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|no captcha details&lt;br /&gt;
|reCaptcha&lt;br /&gt;
|shown when a form with a recaptcha has been submitted, but no recaptcha information can be found in the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|No requests&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted, but FlexForm could not find any valid request&lt;br /&gt;
|Usually this means the &#039;&#039;&#039;action&#039;&#039;&#039; parameter of a form is invalid.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cannot find user to connect to file upload&lt;br /&gt;
|form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PHP move uploaded file error (file-handling)&lt;br /&gt;
|upload and canvas&lt;br /&gt;
|shown when a files or files are uploaded using FlexForm, but FlexForm cannot store them in the defined temp folder&lt;br /&gt;
|Make sure you set the FlexForm config : &amp;lt;code&amp;gt;$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
to a path where FlexForm has write rights. If you leave this empty, FlexForm will try to temporarily store the uploaded files in its own extension folder in the uploads folder. You can also check to see if this folder has write rights.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error messages in the browser&#039;s console ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught (in promise) ReferenceError: wgFlexFormSecure is not defined&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. This message may show if you forgot to set &amp;lt;code&amp;gt;$wgParserCacheType = CACHE_NONE;&amp;lt;/code&amp;gt; in your LocalSettings.php file. Some features, such as instances, may not work without it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught SyntaxError: redeclaration of let ffDecryptObj&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. Same as above.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Discord ===&lt;br /&gt;
You might find a helping hand here as well : https://discord.gg/ehFrPmT&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3221</id>
		<title>DevOps:Doc/FlexForm/1.0/Error-messages</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=3221"/>
		<updated>2024-06-09T19:01:15Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: add JavaScript errors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
Troubles and Error messages&lt;br /&gt;
===Type===&lt;br /&gt;
_form&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Common behaviour and list of (error) messages that might occur&lt;br /&gt;
===Description===&lt;br /&gt;
Tag extensions, like FlexForm, cannot hold any html in its arguments.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; value=&amp;quot;hello&amp;lt;br&amp;gt;how are you&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The above example will simply not be rendered. This is how MediaWiki tags work.&lt;br /&gt;
&lt;br /&gt;
You can use the following syntax, it at least will not break. It is another way of writing tag code.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{{#tag:_input||type=text|value=hello&amp;lt;br&amp;gt;how are you}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The HTML will be filtered out. &#039;&#039;&#039;However, with the new Parsoid Parser that is introduced, do not use the &amp;lt;nowiki&amp;gt;{{#tag:}}&amp;lt;/nowiki&amp;gt; method anymore.&#039;&#039;&#039; It will give unpredictable results as Parsoid renders these tags in no particular order.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a list of common error messages that might occur, with a brief description of what the problem might be.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Message&lt;br /&gt;
!Type&lt;br /&gt;
!Why&lt;br /&gt;
!Possible solutions&lt;br /&gt;
|-&lt;br /&gt;
|Can not find template&lt;br /&gt;
|_email&lt;br /&gt;
|shown when the page mentioned in the template cannot be read or parse by the API&lt;br /&gt;
|check page name if it exists or not miss-spelled&lt;br /&gt;
|-&lt;br /&gt;
|not a secure form&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and the form has been manipulated after form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Secure fields not complete&lt;br /&gt;
|form&lt;br /&gt;
|shown when the sec option is set to true and files with type is secure (not to be manipulated with) are incomplete after a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Did not receive a session token from the form&lt;br /&gt;
|form&lt;br /&gt;
|shown when a secure token that is generated by FlexForm did not come with a form submit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Form session expired&lt;br /&gt;
|form&lt;br /&gt;
|shown when the time between a form render and the actual submit has taken to long&lt;br /&gt;
|Change the config option &#039;&#039;&#039;form-timeout-limit&#039;&#039;&#039; to a higher number in seconds ( default 7200 secs = 120 mins = 2 hours )&lt;br /&gt;
|-&lt;br /&gt;
|No return found&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted but FlexForm cannot find a page to return to after handling the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|no captcha details&lt;br /&gt;
|reCaptcha&lt;br /&gt;
|shown when a form with a recaptcha has been submitted, but no recaptcha information can be found in the form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|No requests&lt;br /&gt;
|form&lt;br /&gt;
|shown when a form has been submitted, but FlexForm could not find any valid request&lt;br /&gt;
|Usually this means the &#039;&#039;&#039;action&#039;&#039;&#039; parameter of a form is invalid.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cannot find user to connect to file upload&lt;br /&gt;
|form&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PHP move uploaded file error (file-handling)&lt;br /&gt;
|upload and canvas&lt;br /&gt;
|shown when a files or files are uploaded using FlexForm, but FlexForm cannot store them in the defined temp folder&lt;br /&gt;
|Make sure you set the FlexForm config : &amp;lt;code&amp;gt;$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
to a path where FlexForm has write rights. If you leave this empty, FlexForm will try to temporarily store the uploaded files in its own extension folder in the uploads folder. You can also check to see if this folder has write rights.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Error messages in the browser&#039;s console ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught (in promise) ReferenceError: wgFlexFormSecure is not defined&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. This message may show if you forgot to set &amp;lt;code&amp;gt;$wgParserCacheType = CACHE_NONE;&amp;lt;/code&amp;gt; in your settings. Some features, such as instances, may not work without this setting.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Uncaught SyntaxError: redeclaration of let ffDecryptObj&amp;lt;/code&amp;gt; (FlexForm.general.js)&lt;br /&gt;
| JavaScript error. Same as above.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Discord ===&lt;br /&gt;
You might find a helping hand here as well : https://discord.gg/ehFrPmT&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/signature&amp;diff=3145</id>
		<title>DevOps:Doc/FlexForm/2.0/input/signature</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/signature&amp;diff=3145"/>
		<updated>2023-12-08T13:55:51Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
signature&lt;br /&gt;
===Type===&lt;br /&gt;
input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a signature field&lt;br /&gt;
===Description===&lt;br /&gt;
A signature field allows person to add a signature to a form.&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;signature&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; = means required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;name&#039;&#039;&#039;*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As with any input field, a name is mandatory &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fname&#039;&#039;&#039;*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Name of the file to be placed in the Wiki&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ftype&#039;&#039;&#039;*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filetype. Either png, svg or jpg&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pagecontent&#039;&#039;&#039;*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The (text-) content that goes on the page when saving to the wiki&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;parsecontent&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;value : parsecontent&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Will force FlexForm to insert values from other form fields inside the pagecontent field. Use square brackets, like [fieldname], where values should be inserted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;template &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want to store a template call inside the content of the File page, you can template=&amp;lt;name of your template&amp;gt; in combination with parsecontent. [flexform-template] inside your content field will be replaced by {{&amp;lt;name of your template and [/flexform-template] will be replaced by }}. See example 3 on the file/input examples page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;class&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds an additional CSS class to the signature canvas.&lt;br /&gt;
&lt;br /&gt;
By default the signature canvas will always get class: wsform-signature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;clearbuttonclass&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds an additional CSS class to the clear button to clear the canvas.&lt;br /&gt;
&lt;br /&gt;
By default the clear button will always get class: wsform-signature-clear.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;clearbuttontext&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Text to be placed in the clear button. Default to Clear.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : color. Either hexadecimal, CSS color name or css rgb value&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Background color for the signature field&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;drawcolor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : color. Either hexadecimal, CSS color name or css rgb value&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Color of the signature pen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;thickness&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : integer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Thickness of the signature pen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;notavailablemessage&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a browser does not support the signature canvas, this message will be displayed.&lt;br /&gt;
&lt;br /&gt;
Default message : &amp;quot;Your browser doesn&#039;t support signing&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;guideline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show a horizontal line to guide when writing a signature.&lt;br /&gt;
&lt;br /&gt;
Use guideline=&amp;quot;true&amp;quot; is the only way to show the guideline.&lt;br /&gt;
&lt;br /&gt;
Please note that the guideline will be saved together with the signature, unless you choose svg as file type.&lt;br /&gt;
&lt;br /&gt;
Additional guideline option, available when guideline is set to true&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;guidelineoffset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type: integer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Offset from the bottom of the canvas&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;guidelineindent&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type: integer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Margin left and right from the line to the side of the canvas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- guidelinecolor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : color. Either hexadecimal, CSS color name or css rgb value&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Color for the guideline&lt;br /&gt;
&lt;br /&gt;
All other valid parameters for an input field are valid&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;signature&amp;quot; name=&amp;quot;signature&amp;quot; fname=&amp;quot;Signature-test&amp;quot; ftype=&amp;quot;png&amp;quot; pagecontent=&amp;quot;test&amp;quot; guideline=&amp;quot;true&amp;quot; clearbuttonclass=&amp;quot;btn btn-primary&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;signature&amp;quot; name=&amp;quot;signature&amp;quot; fname=&amp;quot;Signature-test&amp;quot; ftype=&amp;quot;png&amp;quot; pagecontent=&amp;quot;test&amp;quot; guideline=&amp;quot;true&amp;quot; clearbuttonclass=&amp;quot;btn btn-primary&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note that anonymous users may not see the signature field.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
&#039;&#039;Only one signature field per form is supported!&#039;&#039;&lt;br /&gt;
===Links===&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/signature&amp;diff=3144</id>
		<title>DevOps:Doc/FlexForm/2.0/input/signature</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/signature&amp;diff=3144"/>
		<updated>2023-12-08T13:48:43Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* Example */ add missing name parameter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
signature&lt;br /&gt;
===Type===&lt;br /&gt;
input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a signature field&lt;br /&gt;
===Description===&lt;br /&gt;
A signature field allows person to add a signature to a form.&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;signature&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; = means required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;name&#039;&#039;&#039;*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As with any input field, a name is mandatory &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fname&#039;&#039;&#039;*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Name of the file to be placed in the Wiki&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ftype&#039;&#039;&#039;*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filetype. Either png, svg or jpg&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;pagecontent&#039;&#039;&#039;*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The (text-) content that goes on the page when saving to the wiki&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;parsecontent&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;value : parsecontent&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Will force FlexForm to insert values from other form fields inside the pagecontent field. Use square brackets, like [fieldname], where values should be inserted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;template &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want to store a template call inside the content of the File page, you can template=&amp;lt;name of your template&amp;gt; in combination with parsecontent. [flexform-template] inside your content field will be replaced by {{&amp;lt;name of your template and [/flexform-template] will be replaced by }}. See example 3 on the file/input examples page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;class&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds an additional CSS class to the signature canvas.&lt;br /&gt;
&lt;br /&gt;
By default the signature canvas will always get class: wsform-signature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;clearbuttonclass&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds an additional CSS class to the clear button to clear the canvas.&lt;br /&gt;
&lt;br /&gt;
By default the clear button will always get class: wsform-signature-clear.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;clearbuttontext&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Text to be placed in the clear button. Default to Clear.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : color. Either hexadecimal, CSS color name or css rgb value&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Background color for the signature field&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;drawcolor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : color. Either hexadecimal, CSS color name or css rgb value&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Color of the signature pen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;thickness&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : integer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Thickness of the signature pen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;notavailablemessage&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a browser does not support the signature canvas, this message will be displayed.&lt;br /&gt;
&lt;br /&gt;
Default message : &amp;quot;Your browser doesn&#039;t support signing&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;guideline&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : text&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show a horizontal line to guide when writing a signature.&lt;br /&gt;
&lt;br /&gt;
Use guideline=&amp;quot;true&amp;quot; is the only way to show the guideline.&lt;br /&gt;
&lt;br /&gt;
Please note that the guideline will be saved together with the signature, unless you choose svg as file type.&lt;br /&gt;
&lt;br /&gt;
Additional guideline option, available when guideline is set to true&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;guidelineoffset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type: integer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Offset from the bottom of the canvas&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;&#039;guidelineindent&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type: integer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Margin left and right from the line to the side of the canvas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- guidelinecolor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;type : color. Either hexadecimal, CSS color name or css rgb value&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Color for the guideline&lt;br /&gt;
&lt;br /&gt;
All other valid parameters for an input field are valid&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;signature&amp;quot; name=&amp;quot;signature&amp;quot; fname=&amp;quot;Signature-test&amp;quot; ftype=&amp;quot;png&amp;quot; pagecontent=&amp;quot;test&amp;quot; guideline=&amp;quot;true&amp;quot; clearbuttonclass=&amp;quot;btn btn-primary&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;signature&amp;quot; name=&amp;quot;signature&amp;quot; fname=&amp;quot;Signature-test&amp;quot; ftype=&amp;quot;png&amp;quot; pagecontent=&amp;quot;test&amp;quot; guideline=&amp;quot;true&amp;quot; clearbuttonclass=&amp;quot;btn btn-primary&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
&#039;&#039;Only one signature field per form is supported!&#039;&#039;&lt;br /&gt;
===Links===&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/number&amp;diff=3143</id>
		<title>DevOps:Doc/FlexForm/2.0/input/number</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/number&amp;diff=3143"/>
		<updated>2023-12-08T13:42:15Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: add restrictions=&amp;quot;lifted&amp;quot; so anons can see the form&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
number&lt;br /&gt;
===Type===&lt;br /&gt;
input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a number only input field&lt;br /&gt;
===Description===&lt;br /&gt;
elements of type &amp;lt;code&amp;gt;&#039;&#039;&#039;&amp;quot;number&amp;quot;&#039;&#039;&#039;&amp;lt;/code&amp;gt; are used to let the user enter a number. They include built-in validation to reject non-numerical entries. The browser may opt to provide stepper arrows to let the user increase and decrease the value using their mouse or by simply tapping with a fingertip.&lt;br /&gt;
&lt;br /&gt;
By default, the up and down buttons provided for you to step the number up and down will step the value up and down by 1. You can change this by providing a &amp;lt;code&amp;gt;step&amp;lt;/code&amp;gt; attribute, which takes as its value a number specifying the step amount.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;code&amp;gt;min&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attributes to specify a minimum and maximum value that the field can have.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
input type=&amp;quot;number&amp;quot;&lt;br /&gt;
&lt;br /&gt;
As of version 1.1.37 there is an optional field you can use called &#039;&#039;&#039;calc&#039;&#039;&#039;. It allows you to do calculations with other input field of type=&amp;quot;number&amp;quot;.&lt;br /&gt;
The calc argument can hold a calculation and the other fields you want to use access them by there name field between square brackets. Like so : &amp;quot;5*[field1]+(20/[field2]&amp;quot;.&lt;br /&gt;
See the second example. Currently for this to work, the number field with the calc argument must be in the same Form.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
This example accepts only a value between 0 and 10 with steps of 0.01 (e.g. 2.21)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;number&amp;quot; placeholder=&amp;quot;1.0&amp;quot; step=&amp;quot;0.01&amp;quot; min=&amp;quot;0&amp;quot; max=&amp;quot;10&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;number&amp;quot; placeholder=&amp;quot;1.0&amp;quot; step=&amp;quot;0.01&amp;quot; min=&amp;quot;0&amp;quot; max=&amp;quot;10&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;get&amp;quot;&amp;gt;&lt;br /&gt;
  field1: e.g. try 20 &amp;lt;input type=&amp;quot;number&amp;quot; name=&amp;quot;field1&amp;quot; /&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  field2: e.g. try 5 &amp;lt;input type=&amp;quot;number&amp;quot; name=&amp;quot;field2&amp;quot; /&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  Calculation( 5 * field1 / ( 20 + field2 ) ) would become &#039;&#039;&#039;5 X 20 / ( 20 + 5 )&#039;&#039;&#039; = 4&amp;lt;br&amp;gt; Result: &amp;lt;input type=&amp;quot;number&amp;quot; name=&amp;quot;total&amp;quot; calc=&amp;quot;5*[field1]/(20+[field2])&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;get&amp;quot; restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
field1: e.g. try 20 &amp;lt;input type=&amp;quot;number&amp;quot; name=&amp;quot;field1&amp;quot; /&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
field2: e.g. try 5  &amp;lt;input type=&amp;quot;number&amp;quot; name=&amp;quot;field2&amp;quot; /&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Calculation( 5 * field1 / ( 20 + field2 ) ) would become &#039;&#039;&#039;5 X 20 / ( 20 + 5 )&#039;&#039;&#039; = 4&amp;lt;br&amp;gt; Result: &amp;lt;input type=&amp;quot;number&amp;quot; name=&amp;quot;total&amp;quot; calc=&amp;quot;5*[field1]/(20+[field2])&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
If you are using the Calc function and you do not see any calculations, then you can have a look in the console of your browser. It will show you any mistakes you have made in the calculation.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number&lt;br /&gt;
&lt;br /&gt;
===PageSync===&lt;br /&gt;
If you have PageSync installed, you can install an example using Calc field with FlexForm.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using Terminal&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Go to the extensions/PageSync/maintenance folder&lt;br /&gt;
&lt;br /&gt;
Type :&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
php WSps.maintenance.php --user=&amp;quot;You username&amp;quot; --install-shared-file=&amp;quot;https://www.open-csp.org/docs/PageSync/FlexForm-examples/PageSync_09-10-2023-19-49-44_2-6-1.zip&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using PageSync 2.6 and above Special Page.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use your browser and go to https://www.open-csp.org/docs/PageSync/FlexForm-examples/PageSync_09-10-2023-19-49-44_2-6-1.zip.&lt;br /&gt;
This will download the example file. Make sure you have set file upload in your wiki to allow .zip files. Upload the file.&lt;br /&gt;
&lt;br /&gt;
Navigate to your wiki Special:PageSync Special page. Choose &#039;&#039;&#039;SHARE&#039;&#039;&#039;, then at the bottom press the button &#039;&#039;&#039;INSTALL A SHARED FILE&#039;&#039;&#039;. The new page you get will have all your uploaded PageSync files at the top of the list. Choose the correct file and click on &#039;&#039;&#039;PREVIEW SHARED FILE&#039;&#039;&#039; to see all the details before you can actually install the example page.&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=2995</id>
		<title>DevOps:Doc/FlexForm/2.0/input/textarea</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=2995"/>
		<updated>2023-09-22T08:22:55Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* Version note */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
textarea&lt;br /&gt;
===Type===&lt;br /&gt;
textarea&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a textarea input field &lt;br /&gt;
===Description===&lt;br /&gt;
textarea elements create larger text input fields that let the user enter a text.&lt;br /&gt;
It also differs from other input fields as there is no value you can set. Instead you use an opening input type and a closing one. The value will be in between. See example.&lt;br /&gt;
===Parameters===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For all supported argument have a look at the link at the links section.&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes===&lt;br /&gt;
====VisualEditor====&lt;br /&gt;
If you have installed the [[mw:Extension:VisualEditor|VisualEditor]] and [[mw:Extension:VEForAll|VEForAll]] extensions, you can associate a textarea with the VisualEditor interface for rich text editing. To do so, just add &amp;lt;code&amp;gt;editor=&amp;quot;ve&amp;quot;&amp;lt;/code&amp;gt; to your textarea. You can have as many VE editors on a page as needed.&lt;br /&gt;
&lt;br /&gt;
====Version note====&lt;br /&gt;
In earlier versions of FlexForm, you would use an &amp;lt;code&amp;gt;_input&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;type=&amp;quot;textarea&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=2994</id>
		<title>DevOps:Doc/FlexForm/2.0/input/textarea</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=2994"/>
		<updated>2023-09-22T08:22:22Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* Version note */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
textarea&lt;br /&gt;
===Type===&lt;br /&gt;
textarea&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a textarea input field &lt;br /&gt;
===Description===&lt;br /&gt;
textarea elements create larger text input fields that let the user enter a text.&lt;br /&gt;
It also differs from other input fields as there is no value you can set. Instead you use an opening input type and a closing one. The value will be in between. See example.&lt;br /&gt;
===Parameters===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For all supported argument have a look at the link at the links section.&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes===&lt;br /&gt;
====VisualEditor====&lt;br /&gt;
If you have installed the [[mw:Extension:VisualEditor|VisualEditor]] and [[mw:Extension:VEForAll|VEForAll]] extensions, you can associate a textarea with the VisualEditor interface for rich text editing. To do so, just add &amp;lt;code&amp;gt;editor=&amp;quot;ve&amp;quot;&amp;lt;/code&amp;gt; to your textarea. You can have as many VE editors on a page as needed.&lt;br /&gt;
&lt;br /&gt;
====Version note====&lt;br /&gt;
In earlier versions of FlexForm, you would use an &amp;lt;code&amp;gt;._input&amp;lt;/code&amp;gt;. with &amp;lt;code&amp;gt;.type=&amp;quot;textarea&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=2993</id>
		<title>DevOps:Doc/FlexForm/2.0/input/textarea</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=2993"/>
		<updated>2023-09-22T08:21:03Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* VisualEditor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
textarea&lt;br /&gt;
===Type===&lt;br /&gt;
textarea&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a textarea input field &lt;br /&gt;
===Description===&lt;br /&gt;
textarea elements create larger text input fields that let the user enter a text.&lt;br /&gt;
It also differs from other input fields as there is no value you can set. Instead you use an opening input type and a closing one. The value will be in between. See example.&lt;br /&gt;
===Parameters===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For all supported argument have a look at the link at the links section.&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes===&lt;br /&gt;
====VisualEditor====&lt;br /&gt;
If you have installed the [[mw:Extension:VisualEditor|VisualEditor]] and [[mw:Extension:VEForAll|VEForAll]] extensions, you can associate a textarea with the VisualEditor interface for rich text editing. To do so, just add &amp;lt;code&amp;gt;editor=&amp;quot;ve&amp;quot;&amp;lt;/code&amp;gt; to your textarea. You can have as many VE editors on a page as needed.&lt;br /&gt;
&lt;br /&gt;
====Version note====&lt;br /&gt;
In earlier versions of FlexForm, you would &amp;lt;code&amp;gt;&amp;lt;_input type=&amp;quot;textarea&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=2992</id>
		<title>DevOps:Doc/FlexForm/2.0/input/textarea</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=2992"/>
		<updated>2023-09-22T08:13:28Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* VisualEditor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
textarea&lt;br /&gt;
===Type===&lt;br /&gt;
textarea&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a textarea input field &lt;br /&gt;
===Description===&lt;br /&gt;
textarea elements create larger text input fields that let the user enter a text.&lt;br /&gt;
It also differs from other input fields as there is no value you can set. Instead you use an opening input type and a closing one. The value will be in between. See example.&lt;br /&gt;
===Parameters===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For all supported argument have a look at the link at the links section.&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes===&lt;br /&gt;
====VisualEditor====&lt;br /&gt;
If you have installed the [[mw:Extension:VisualEditor|VisualEditor]] and [[mw:Extension:VEForAll|VEForAll]] extensions, you can associate a textarea with the VisualEditor interface for rich text editing. To do so, just add &amp;lt;code&amp;gt;editor=&amp;quot;ve&amp;quot;&amp;lt;/code&amp;gt; to the &amp;lt;code&amp;gt;_input&amp;lt;/code&amp;gt;. You can have as many VE editors on a page as needed.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=2991</id>
		<title>DevOps:Doc/FlexForm/2.0/input/textarea</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/2.0/input/textarea&amp;diff=2991"/>
		<updated>2023-09-22T08:11:18Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
textarea&lt;br /&gt;
===Type===&lt;br /&gt;
textarea&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a textarea input field &lt;br /&gt;
===Description===&lt;br /&gt;
textarea elements create larger text input fields that let the user enter a text.&lt;br /&gt;
It also differs from other input fields as there is no value you can set. Instead you use an opening input type and a closing one. The value will be in between. See example.&lt;br /&gt;
===Parameters===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For all supported argument have a look at the link at the links section.&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;textarea name=&amp;quot;comment&amp;quot; placeholder=&amp;quot;Type your comment&amp;quot; required=&amp;quot;required&amp;quot;&amp;gt;This is the text value&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Notes===&lt;br /&gt;
====VisualEditor====&lt;br /&gt;
If you have installed the [[mw:Extension:VEForAll|VEForAll extension]], it lets you use a textarea with the VisualEditor interface for rich text editing. To associate a textarea with VisualEditor, add &amp;lt;code&amp;gt;editor=&amp;quot;ve&amp;quot;&amp;lt;/code&amp;gt;. You can have as many VE editors on a page as needed. &lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=User:Admin/Tests/Test1&amp;diff=2258</id>
		<title>User:Admin/Tests/Test1</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=User:Admin/Tests/Test1&amp;diff=2258"/>
		<updated>2023-02-03T19:14:50Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==test 1==&lt;br /&gt;
Using the wiki tag version is used for _instance (#tag:_instance).&lt;br /&gt;
Target = [[User:Admin/Tests/2]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; id=&amp;quot;sdfsdfsdf2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;User:Admin/Tests/2&amp;quot; template=&amp;quot;Log&amp;quot; formfield=&amp;quot;Hours spent today&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#tag:_instance&lt;br /&gt;
|&amp;lt;div class=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
Task: &lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; name=&amp;quot;Task&amp;quot; placeholder=&amp;quot;Task&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tokens: &lt;br /&gt;
&amp;lt;_token name=&amp;quot;tokenfield[]&amp;quot; id=&amp;quot;tokener&amp;quot; query=&amp;quot;[[Class::Doc]][[Title::!!!]](limit=99999)(returntext=Title)&amp;quot; placeholder=&amp;quot;Search for Documentation Titles&amp;quot; multiple=&amp;quot;multiple&amp;quot; allowclear&amp;gt;&amp;lt;/_token&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|template-parent=Log&lt;br /&gt;
|template=Hours spent&lt;br /&gt;
|name=Hours spent today&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; class=&amp;quot;btn btn-info&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=User:Admin/Tests/Test1&amp;diff=2257</id>
		<title>User:Admin/Tests/Test1</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=User:Admin/Tests/Test1&amp;diff=2257"/>
		<updated>2023-02-03T19:13:35Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==test 1==&lt;br /&gt;
Using the wiki tag version is used for _instance. &lt;br /&gt;
Target = [[User:Admin/Tests/2]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; id=&amp;quot;sdfsdfsdf2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;User:Admin/Tests/2&amp;quot; template=&amp;quot;Log&amp;quot; formfield=&amp;quot;Hours spent today&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#tag:_instance&lt;br /&gt;
|&amp;lt;div class=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
Task: &lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; name=&amp;quot;Task&amp;quot; placeholder=&amp;quot;Task&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tokens: &lt;br /&gt;
&amp;lt;_token name=&amp;quot;tokenfield[]&amp;quot; id=&amp;quot;tokener&amp;quot; query=&amp;quot;[[Class::Doc]][[Title::!!!]](limit=99999)(returntext=Title)&amp;quot; placeholder=&amp;quot;Search for Documentation Titles&amp;quot; multiple=&amp;quot;multiple&amp;quot; allowclear&amp;gt;&amp;lt;/_token&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|template-parent=Log&lt;br /&gt;
|template=Hours spent&lt;br /&gt;
|name=Hours spent today&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; class=&amp;quot;btn btn-info&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=User:Admin/Tests/Test1&amp;diff=2256</id>
		<title>User:Admin/Tests/Test1</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=User:Admin/Tests/Test1&amp;diff=2256"/>
		<updated>2023-02-03T19:12:47Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==test 1==&lt;br /&gt;
Using the wiki tag version is used for _instance. &lt;br /&gt;
Target = [[{{FULLPAGENAME}}/2]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; id=&amp;quot;sdfsdfsdf2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{FULLPAGENAME}}/2&amp;quot; template=&amp;quot;Log&amp;quot; formfield=&amp;quot;Hours spent today&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#tag:_instance&lt;br /&gt;
|&amp;lt;div class=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
Task: &lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; name=&amp;quot;Task&amp;quot; placeholder=&amp;quot;Task&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tokens: &lt;br /&gt;
&amp;lt;_token name=&amp;quot;tokenfield[]&amp;quot; id=&amp;quot;tokener&amp;quot; query=&amp;quot;[[Class::Doc]][[Title::!!!]](limit=99999)(returntext=Title)&amp;quot; placeholder=&amp;quot;Search for Documentation Titles&amp;quot; multiple=&amp;quot;multiple&amp;quot; allowclear&amp;gt;&amp;lt;/_token&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|template-parent=Log&lt;br /&gt;
|template=Hours spent&lt;br /&gt;
|name=Hours spent today&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; class=&amp;quot;btn btn-info&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=User:Admin/Tests/Test1&amp;diff=2255</id>
		<title>User:Admin/Tests/Test1</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=User:Admin/Tests/Test1&amp;diff=2255"/>
		<updated>2023-02-03T19:11:37Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==test 1==&lt;br /&gt;
Using the wiki tag version is used for _instance. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; id=&amp;quot;sdfsdfsdf2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_edit target=&amp;quot;{{FULLPAGENAME}}/2&amp;quot; template=&amp;quot;Log&amp;quot; formfield=&amp;quot;Hours spent today&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#tag:_instance&lt;br /&gt;
|&amp;lt;div class=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
Task: &lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; name=&amp;quot;Task&amp;quot; placeholder=&amp;quot;Task&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tokens: &lt;br /&gt;
&amp;lt;_token name=&amp;quot;tokenfield[]&amp;quot; id=&amp;quot;tokener&amp;quot; query=&amp;quot;[[Class::Doc]][[Title::!!!]](limit=99999)(returntext=Title)&amp;quot; placeholder=&amp;quot;Search for Documentation Titles&amp;quot; multiple=&amp;quot;multiple&amp;quot; allowclear&amp;gt;&lt;br /&gt;
&amp;lt;/_token&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|template-parent=Log&lt;br /&gt;
|template=Hours spent&lt;br /&gt;
|name=Hours spent today&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; class=&amp;quot;btn btn-info&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/instance&amp;diff=2239</id>
		<title>DevOps:Doc/FlexForm/1.0/instance</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/instance&amp;diff=2239"/>
		<updated>2023-01-30T18:22:25Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* Example */ Again, without &amp;quot;restrictions=lifted&amp;quot; people won&amp;#039;t be able to see this&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_instance&lt;br /&gt;
===Type===&lt;br /&gt;
_instance&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Add or remove defined instances to a form&lt;br /&gt;
===Description===&lt;br /&gt;
With &#039;&#039;&#039;_instance&#039;&#039;&#039; you can define a part of a form as an instance that can be added or removed by the user (in a way add more rows to submit more information).&lt;br /&gt;
&lt;br /&gt;
====== How it works ======&lt;br /&gt;
&#039;&#039;&#039;_instance&#039;&#039;&#039; holds a list of parameters that define the usage of the instance.&lt;br /&gt;
&lt;br /&gt;
First you define what template on a page it needs to edit (&#039;&#039;&#039;template-parent&#039;&#039;&#039;) and what parameter of that template needs to be edited (&#039;&#039;&#039;name&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The idea is that the &#039;&#039;&#039;name&#039;&#039;&#039; attribute will hold multiple templates. That template is defined with the &#039;&#039;&#039;template&#039;&#039;&#039; parameter.&lt;br /&gt;
&lt;br /&gt;
If you leave out anything else, FlexForm will render the instance based on the default Wikibase Solutions setup. (default settings listed with the parameters).&lt;br /&gt;
&lt;br /&gt;
All the other parameters are described below.&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;template-parent&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Main template to edit on a page&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;name&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Name of the parameter to edit with the template-parent. Fields inside the instance cannot have the same name as this parameter.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;template&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Name of the template to put inside parameter name.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;default-content&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows to fill the instanced textarea with default content. Note: When a page contains text default content will always be overwritten.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;button-add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Main class for the button add instance. This is a class name that triggers the add instance.&lt;br /&gt;
default WSmultipleTemplateAddAbove&lt;br /&gt;
You can set this to none to not add this option at all&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;button-add-extra&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra class that can be added to the button for styling&lt;br /&gt;
default wsform-instance-add-btn&lt;br /&gt;
If you want no extra class then use button-add-extra=&amp;quot;none&amp;quot;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;button-remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Main class for the button remove instance. This is the class name that triggers the remove instance.&lt;br /&gt;
&lt;br /&gt;
default &#039;&#039;&#039;WSmultipleTemplateDel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can set this to none to not add this option at all&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;button-remove-extra&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra class that can be added to the button for styling&lt;br /&gt;
&lt;br /&gt;
default &#039;&#039;&#039;wsform-instance-remove-btn&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want no extra class then use button-remove-extra=&amp;quot;none&amp;quot;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;button-move&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Main class for the move instance button. This is the class name that trigger a move instance.&lt;br /&gt;
&lt;br /&gt;
default &#039;&#039;&#039;ws-sortable-handles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can set this to none to not add this option at all&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;button-move-extra&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra class that can be add to the button for styling&lt;br /&gt;
&lt;br /&gt;
default &#039;&#039;&#039;wsform-instance-move-handle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want no extra class then use button-move-extra=&amp;quot;none&amp;quot;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;add-button-on-bottom&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Button below instance to add an add button. Value is text in the button&lt;br /&gt;
&lt;br /&gt;
Use a value of &amp;quot;none&amp;quot; to disable this button&lt;br /&gt;
&lt;br /&gt;
default &#039;&#039;&#039;empty&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;button-on-bottom-class&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Class for the button below the instance. Defaults to WSmultipleTemplateAddAbove&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;wrapper-instance&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
div wrapper for the defined instance.&lt;br /&gt;
&lt;br /&gt;
default &#039;&#039;&#039;WSmultipleTemplateMain&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;wrapper-main&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
main div wrapper for all instances&lt;br /&gt;
&lt;br /&gt;
default &#039;&#039;&#039;WSmultipleTemplateMain&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;wrapper-main-extra&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra class to add styling to the instances.&lt;br /&gt;
&lt;br /&gt;
default &#039;&#039;&#039;wsform-instance-record&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;instance-storage&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
class for the textarea to store instance information&lt;br /&gt;
&lt;br /&gt;
default &#039;&#039;&#039;WSmultipleTemplateField&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;instance-list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Class name for the wrapper for the list of  instances&lt;br /&gt;
&lt;br /&gt;
default &#039;&#039;&#039;WSmultipleTemplateList&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;get&amp;quot; restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;_edit target=&amp;quot;{{PAGEID}}&amp;quot; template=&amp;quot;Log&amp;quot; formfield=&amp;quot;Hours spent today&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;_instance &lt;br /&gt;
		template-parent=&amp;quot;Log&amp;quot; &lt;br /&gt;
		template=&amp;quot;Hours spent&amp;quot; &lt;br /&gt;
		name=&amp;quot;Hours spent today&amp;quot; &lt;br /&gt;
		&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;test&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;_input type=&amp;quot;text&amp;quot; name=&amp;quot;Task&amp;quot; placeholder=&amp;quot;Task&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/_instance&amp;gt;&lt;br /&gt;
	&amp;lt;_input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;get&amp;quot; restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_instance &lt;br /&gt;
template-parent=&amp;quot;Log&amp;quot; &lt;br /&gt;
template=&amp;quot;Hours spent&amp;quot; &lt;br /&gt;
name=&amp;quot;Hours spent today&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;test&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; name=&amp;quot;Task&amp;quot; placeholder=&amp;quot;Task&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/_instance&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using instances default content together with Tokens and a SMW query&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When using this combination, usually the value of a token has been saved and is put inside the default content. When rendering the instances, FlexForm will try to do a query to look-up the label that is attached to the value of the token. &lt;br /&gt;
&lt;br /&gt;
Example : Say the Token-field is used to find certain pages with certain Semantic properties. In most cases the token visually shows the Display title of a query while the value of the token is the exact page Title and that is also the value that will be stored.&lt;br /&gt;
&lt;br /&gt;
When rendering instances with previous saved page titles, FlexForm Tokens does not have the appropriate label to show for the token, in this case the Displaytitle. FlexForm will then analyze the SMW query attached to the token and try to get the SMW property as a label. In this case, the Displaytitle.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
&lt;br /&gt;
Tutorial on Instances : https://wikibase-solutions.com/developer-logs/flexform-instances?WSLanguage=en&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/date&amp;diff=1898</id>
		<title>DevOps:Doc/FlexForm/1.0/input/date</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/date&amp;diff=1898"/>
		<updated>2022-12-09T11:37:21Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* Note */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
date&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a date input field &lt;br /&gt;
===Description===&lt;br /&gt;
_input elements of type=&amp;quot;date&amp;quot; create input fields that let the user enter a date, either with a textbox that validates the input or a special date picker interface.&lt;br /&gt;
&lt;br /&gt;
The resulting value includes the year, month, and day, but not the time.&lt;br /&gt;
&lt;br /&gt;
The date is formatted according to ISO8601, described in Format of a valid date string in Date and time formats used in HTML.&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;date&amp;quot;&lt;br /&gt;
&lt;br /&gt;
All other valid parameters for an input field are valid. Additionally you can use min, max and step.&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;_input type=&amp;quot;date&amp;quot; name=&amp;quot;date&amp;quot; value=&amp;quot;2022-03-01&amp;quot; min=&amp;quot;2022-01-01&amp;quot; max=&amp;quot;2022-12-31&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;date&amp;quot; name=&amp;quot;date&amp;quot; value=&amp;quot;2022-03-01&amp;quot; min=&amp;quot;2022-01-01&amp;quot; max=&amp;quot;2022-12-31&amp;quot; /&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
When an incorrect date is entered, the browser will fall back to a text-input field. Read the link below how to handle these situations.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/url&amp;diff=1896</id>
		<title>DevOps:Doc/FlexForm/1.0/input/url</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/url&amp;diff=1896"/>
		<updated>2022-11-29T17:48:25Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
url&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;get&amp;quot; restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;yoururl&amp;quot;&amp;gt;Your website: &amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;url&amp;quot; name=&amp;quot;website-url&amp;quot; id=&amp;quot;yoururl&amp;quot; pattern=&amp;quot;https?://.*&amp;quot; size=&amp;quot;30&amp;quot; value=&amp;quot;https://&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; value=&amp;quot;Go&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form action=&amp;quot;get&amp;quot; restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;yoururl&amp;quot;&amp;gt;Your website: &amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;url&amp;quot; name=&amp;quot;website-url&amp;quot; id=&amp;quot;yoururl&amp;quot; pattern=&amp;quot;https?://.*&amp;quot; size=&amp;quot;30&amp;quot; value=&amp;quot;https://&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; value=&amp;quot;Go&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/week&amp;diff=1895</id>
		<title>DevOps:Doc/FlexForm/1.0/input/week</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/week&amp;diff=1895"/>
		<updated>2022-11-29T17:27:25Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
week&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_form restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_label&amp;gt;Six weeks vacant: 30-35 (2022). Pick any&amp;lt;/_label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;week&amp;quot; name=&amp;quot;hotel-week&amp;quot; id=&amp;quot;hotel-week&amp;quot; min=&amp;quot;2022-W30&amp;quot; max=&amp;quot;2022-W35&amp;quot; value=&amp;quot;2022-W34&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_label&amp;gt;Six weeks vacant: 30-35 (2022). Pick any&amp;lt;/_label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;week&amp;quot; name=&amp;quot;hotel-week&amp;quot; id=&amp;quot;hotel-week&amp;quot; min=&amp;quot;2022-W30&amp;quot; max=&amp;quot;2022-W35&amp;quot; value=&amp;quot;2022-W34&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/week&amp;diff=1894</id>
		<title>DevOps:Doc/FlexForm/1.0/input/week</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/week&amp;diff=1894"/>
		<updated>2022-11-29T17:27:02Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
week&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_form restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_label&amp;gt;Six weeks vacant: 30-35 (2022). Pick any&amp;lt;/_label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;week&amp;quot; name=&amp;quot;hotel-week&amp;quot; id=&amp;quot;hotel-week&amp;quot; min=&amp;quot;2022-W30&amp;quot; max=&amp;quot;2022-W35&amp;quot; value=&amp;quot;2022-W34&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_label&amp;gt;Six weeks vacant: 30-35 (2022). Pick any&amp;lt;/_label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;week&amp;quot; name=&amp;quot;hotel-week&amp;quot; id=&amp;quot;hotel-week&amp;quot; min=&amp;quot;2022-W30&amp;quot; max=&amp;quot;2022-W35&amp;quot; value=&amp;quot;2022-W34&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/time&amp;diff=1893</id>
		<title>DevOps:Doc/FlexForm/1.0/input/time</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/time&amp;diff=1893"/>
		<updated>2022-11-29T16:09:24Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
time&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_form restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;apptime&amp;quot;&amp;gt;Pick a time between 9 AM and 5 PM.&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;time&amp;quot; id=&amp;quot;apptime&amp;quot; name=&amp;quot;appointment&amp;quot; min=&amp;quot;09:00&amp;quot; max=&amp;quot;17:00&amp;quot; value=&amp;quot;10:00&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;apptime&amp;quot;&amp;gt;Pick a time between 9 AM and 5 PM.&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;time&amp;quot; id=&amp;quot;apptime&amp;quot; name=&amp;quot;appointment&amp;quot; min=&amp;quot;09:00&amp;quot; max=&amp;quot;17:00&amp;quot; value=&amp;quot;10:00&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/time&amp;diff=1892</id>
		<title>DevOps:Doc/FlexForm/1.0/input/time</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/time&amp;diff=1892"/>
		<updated>2022-11-29T16:08:43Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
time&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_form restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;apptime&amp;quot;&amp;gt;Pick a time between 9 AM and 5 PM.&amp;lt;/_label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;time&amp;quot; id=&amp;quot;apptime&amp;quot; name=&amp;quot;appointment&amp;quot; min=&amp;quot;09:00&amp;quot; max=&amp;quot;17:00&amp;quot; value=&amp;quot;10:00&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form restrictions=&amp;quot;lifted&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;apptime&amp;quot;&amp;gt;Pick a time between 9 AM and 5 PM.&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;time&amp;quot; id=&amp;quot;apptime&amp;quot; name=&amp;quot;appointment&amp;quot; min=&amp;quot;09:00&amp;quot; max=&amp;quot;17:00&amp;quot; value=&amp;quot;10:00&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/time&amp;diff=1891</id>
		<title>DevOps:Doc/FlexForm/1.0/input/time</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/time&amp;diff=1891"/>
		<updated>2022-11-29T16:05:48Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
time&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;apptime&amp;quot;&amp;gt;Pick a time between 9 AM and 5 PM.&amp;lt;_label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;time&amp;quot; id=&amp;quot;apptime&amp;quot; name=&amp;quot;appointment&amp;quot; min=&amp;quot;09:00&amp;quot; max=&amp;quot;17:00&amp;quot; value=&amp;quot;10:00&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_label for=&amp;quot;apptime&amp;quot;&amp;gt;Pick a time between 9 AM and 5 PM.&amp;lt;_label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;time&amp;quot; id=&amp;quot;apptime&amp;quot; name=&amp;quot;appointment&amp;quot; min=&amp;quot;09:00&amp;quot; max=&amp;quot;17:00&amp;quot; value=&amp;quot;10:00&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/reset&amp;diff=1890</id>
		<title>DevOps:Doc/FlexForm/1.0/input/reset</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/reset&amp;diff=1890"/>
		<updated>2022-11-29T15:54:08Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
reset&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Input of type reset. Used to reset all form inputs to their initial values. &lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;get&amp;quot; restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Title&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;Some initial value here&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Name&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Description&amp;quot; type=&amp;quot;textarea&amp;quot;&amp;gt;&amp;lt;/_input&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;reset&amp;quot; class=&amp;quot;btn btn-secondary&amp;quot; value=&amp;quot;Reset&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form action=&amp;quot;get&amp;quot; restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Title&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;Some initial value here&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Name&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Description&amp;quot; type=&amp;quot;textarea&amp;quot;&amp;gt;&amp;lt;/_input&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;reset&amp;quot; class=&amp;quot;btn btn-secondary&amp;quot; value=&amp;quot;Reset&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/reset&amp;diff=1889</id>
		<title>DevOps:Doc/FlexForm/1.0/input/reset</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/reset&amp;diff=1889"/>
		<updated>2022-11-29T15:53:24Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
reset&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Input of type reset. Used to reset all form inputs to their initial values. &lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
{{#tag:syntaxhighlight|&amp;lt;_form action=&amp;quot;get&amp;quot; restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Title&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;Some initial value here&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Name&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Description&amp;quot; type=&amp;quot;textarea&amp;quot;&amp;gt;&amp;lt;/_input&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;reset&amp;quot; class=&amp;quot;btn btn-secondary&amp;quot; value=&amp;quot;Reset&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
|lang=html&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form action=&amp;quot;get&amp;quot; restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Title&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;Some initial value here&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Name&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input name=&amp;quot;Description&amp;quot; type=&amp;quot;textarea&amp;quot;&amp;gt;&amp;lt;/_input&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_input type=&amp;quot;reset&amp;quot; class=&amp;quot;btn btn-secondary&amp;quot; value=&amp;quot;Reset&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/tel&amp;diff=1888</id>
		<title>DevOps:Doc/FlexForm/1.0/input/tel</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/tel&amp;diff=1888"/>
		<updated>2022-11-29T15:41:09Z</updated>

		<summary type="html">&lt;p&gt;944f869b-8467-464e-95c7-903362952755: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Name==&lt;br /&gt;
tel&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Input type for telephone numbers. &lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;get&amp;quot; restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;call-me&amp;quot;&amp;gt;Enter your phone number (Dutch format: +31 123456789 )&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;tel&amp;quot; id=&amp;quot;call-me&amp;quot; name=&amp;quot;phone&amp;quot; pattern=&amp;quot;(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)&amp;quot; value=&amp;quot;+31 123456789&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;_form action=&amp;quot;get&amp;quot; restrictions=&amp;quot;lifted&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;call-me&amp;quot;&amp;gt;Enter your phone number (Dutch format: +31 123456789 )&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;tel&amp;quot; id=&amp;quot;call-me&amp;quot; name=&amp;quot;phone&amp;quot; pattern=&amp;quot;(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)&amp;quot; value=&amp;quot;+31 123456789&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;/div&gt;</summary>
		<author><name>944f869b-8467-464e-95c7-903362952755</name></author>
	</entry>
</feed>