<?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=Slot+migration</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=Slot+migration"/>
	<link rel="alternate" type="text/html" href="https://open-csp.org/Special:Contributions/Slot_migration"/>
	<updated>2026-04-29T18:06:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/create&amp;diff=1142</id>
		<title>DevOps:Doc/FlexForm/1.0/create</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/create&amp;diff=1142"/>
		<updated>2022-08-03T12:00:16Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&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 for 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;
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;
===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 an 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;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Form_options&amp;diff=1141</id>
		<title>DevOps:Doc/FlexForm/1.0/Form options</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Form_options&amp;diff=1141"/>
		<updated>2022-08-03T12:00:16Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_form&lt;br /&gt;
===Type===&lt;br /&gt;
_form&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Various FlexForm options&lt;br /&gt;
===Description===&lt;br /&gt;
Parameters you can add to the _form tag.&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;formtarget&#039;&#039;&#039; ====&lt;br /&gt;
&lt;br /&gt;
====== &#039;&#039;Change the html post action to a custom one&#039;&#039; ======&lt;br /&gt;
In some rare cases you might want to create a FlexForm, but not have FlexForm handle the post data. In that case use formtarget=&amp;quot;your url here&amp;quot; to tell html form where to go when someone submits the data.&lt;br /&gt;
&lt;br /&gt;
See example 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: Keep in mind that this option will completely ignore FlexForm on form submission. No pages will be created or edited.&#039;&#039;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;messageonsuccess&#039;&#039;&#039; ====&lt;br /&gt;
&lt;br /&gt;
====== &#039;&#039;Show a custom message when form is successfully posted&#039;&#039; ======&lt;br /&gt;
It&#039;s sometimes handy to show a custom message when a form has been successfully posted, especially when after a post you return to the same form page.&lt;br /&gt;
&lt;br /&gt;
See example 2&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;no_submit_on_return&#039;&#039;&#039; ====&lt;br /&gt;
&lt;br /&gt;
====== &#039;&#039;Disable enter key for submitting a form&#039;&#039; ======&lt;br /&gt;
A HTML form usually gets submitted on pressing enter when there&#039;s like one text field. To disable that use the no_submit_on_return option.&lt;br /&gt;
This will add some JavaScript to the form disabling form submission on typing an enter.&lt;br /&gt;
&lt;br /&gt;
See example 3&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;recaptcha-v3-action&#039;&#039;&#039; ====&lt;br /&gt;
&lt;br /&gt;
====== &#039;&#039;Use reCaptcha Version 3 on a flexform&#039;&#039; ======&lt;br /&gt;
Have FlexForm use Google reCAPTCHA v3 to prevent spamming in a form.&lt;br /&gt;
&lt;br /&gt;
You need to add you recaptcha key and secret in the configuration.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_site_key&#039;]   = &amp;quot;&amp;quot;; // reCaptcha site key&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_secret_key&#039;] = &amp;quot;&amp;quot;; // reCaptcha secret key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then you can use &amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;recaptcha-v3-action=&amp;quot;action name&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Where action name is the name of the action to describe the form. It&#039;s an extra security measurement. You can choose your own name e.g. : contactform&lt;br /&gt;
&lt;br /&gt;
See example 4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: reCAPTCHA v3 will not work when submitting the form through AJAX (mwidentifier=&amp;quot;ajax&amp;quot;)&#039;&#039;&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;autosave&#039;&#039;&#039; ====&lt;br /&gt;
&lt;br /&gt;
====== &#039;&#039;Auto save forms on interval, after change or both&#039;&#039; ======&lt;br /&gt;
FlexForm autosave function allows for saving the open form in the background while someone is writing in it.&lt;br /&gt;
&lt;br /&gt;
This feature has 3 options:&lt;br /&gt;
&lt;br /&gt;
Save a form in the background on &#039;&#039;&#039;interval&#039;&#039;&#039;, on &#039;&#039;&#039;change&#039;&#039;&#039; or &#039;&#039;&#039;both&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
It support &amp;quot;normal&amp;quot; forms as well as a form with mwidentifier=&amp;quot;ajax&amp;quot;, meaning a form setup to be posted as an Ajax call. Also tested with TinyMCE ( tinymce extension ).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TinyMCE Note&#039;&#039;&#039;: WSForm will look for all elements that have a class name starting with &amp;quot;tinymce&amp;quot;, as suggested by TinyMCE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When using &#039;&#039;auto&#039;&#039; or &#039;&#039;oninterval&#039;&#039; a button will be added to the top of the form showing autosave interval is on. Clicking the button will turn interval saving off. When you turn it off and autosave is set to auto, the after change will still autosave.&lt;br /&gt;
&lt;br /&gt;
====== Config ======&lt;br /&gt;
&#039;&#039;The interval time and the after on change time can be set in the config file. When using interval or auto, the text for the button that appears above the form can be set in the config file.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To style the button to switch off and on the Interval saving classes are added to it in different states:&lt;br /&gt;
&lt;br /&gt;
When on it will have the classes : &#039;&#039;btn btn-primary ws-interval-on&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When off it will have the classes : &#039;&#039;btn btn ws-interval-off&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====== Parameters ======&lt;br /&gt;
&lt;br /&gt;
On form create tag add autosave as parameter. e.g.&lt;br /&gt;
&lt;br /&gt;
This will set autosave to auto.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; id=&amp;quot;unique id per form&amp;quot; autosave=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set autosave to interval only :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; id=&amp;quot;unique id per form&amp;quot; autosave=&amp;quot;oninterval&amp;quot;&amp;gt;&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set autosave to change only :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; id=&amp;quot;unique id per form&amp;quot; autosave=&amp;quot;onchange&amp;quot;&amp;gt;&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note: A form needs to have an unique identifier set by its id&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
==== &#039;&#039;&#039;setwikicomment&#039;&#039;&#039; ====&lt;br /&gt;
&lt;br /&gt;
====== &#039;&#039;Set the summary text shown in the recent changes and or contributions&#039;&#039; ======&lt;br /&gt;
This can be really handy to describe what form or action was responsible for the changes in the Wiki.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; setwikicomment=&amp;quot;Edit user preference form&amp;quot; &amp;gt;&lt;br /&gt;
   Your flexform elements here&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
==== &#039;&#039;&#039;extension&#039;&#039;&#039; ====&lt;br /&gt;
&lt;br /&gt;
====== &#039;&#039;Have an extension do additional tasks with form values&#039;&#039; ======&lt;br /&gt;
You can create an extension for FlexForm that can do additonal tasks to a Form. See extension Docs for more information&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; extension=&amp;quot;&amp;lt;name of your extension&amp;quot; &amp;gt;&lt;br /&gt;
   Your flexform elements here&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
===Examples===&lt;br /&gt;
Example 1 : formtarget&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; formtarget=&amp;quot;https://example.com/handleform.php&amp;quot; &amp;gt;&lt;br /&gt;
   Your flexform elements here&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Example 2 : messageonsuccess&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; messageonsuccess=&amp;quot;Information posted, thanks!&amp;quot;&amp;gt;&lt;br /&gt;
    Your flexform elements here&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Example 3 : no_submit_on_return&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; no_submit_on_return&amp;gt;&lt;br /&gt;
    Your flexform elements here&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Example 4 : reCaptcha v3&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot;  recaptcha-v3-action=&amp;quot;contactform&amp;quot;&amp;gt;&lt;br /&gt;
    Your flexform elements here&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;
===Links===&lt;br /&gt;
https://developers.google.com/recaptcha/docs/v3&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/instance&amp;diff=1140</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=1140"/>
		<updated>2022-08-03T12:00:16Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&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;addToWiki&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;addToWiki&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;
&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;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/ShowOnSelect&amp;diff=1139</id>
		<title>DevOps:Doc/FlexForm/1.0/ShowOnSelect</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/ShowOnSelect&amp;diff=1139"/>
		<updated>2022-08-03T12:00:15Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
showonselect&lt;br /&gt;
===Type===&lt;br /&gt;
_form&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Show or hide elements based on a form input change&lt;br /&gt;
===Description===&lt;br /&gt;
This allows to show elements in a form based on a selection option, a checkbox status or radio button status.&lt;br /&gt;
&lt;br /&gt;
You can create a complete form with certain form elements hidden based on a selection in the form done by a user.&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;show-on-select on the _form tag&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For it all to work you must let FlexForm know you want to use Show On Select by adding a parameter to the _form tag. &#039;&#039;&#039;See example 1&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;show-on-select on a select field&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The actual show-on-select attribute is added to an option field within a select field.&lt;br /&gt;
The value of show-on-select will be used to show a show-on-select-trigger with the same name. &#039;&#039;&#039;See example 2&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This will show an additional text input field with the name texttest1 when you select option 1 and texttest2 will be hidden. When option 2 is chosen, then texttest2 will be shown and texttest1 hidden.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;show-on-checked on a radio button&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3&#039;&#039;&#039; shows you can also add a show-on-select-trigger to something different than a FlexForm _input field.&lt;br /&gt;
The example will hide the div with the trigger until the radio button is checked.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;show-on-checked on a checkbox and show-on-unchecked on a checkbox&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 4&#039;&#039;&#039; show an example of how to use show-on-checked for a checkbox field.&lt;br /&gt;
Checkboxes can have an additional option called show-on-unchecked. So, in the example, if a checkbox is unchecked it will show test B and hide test A. If the checkbox is checked it wish show test A and hide test B&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Example 1 : Show or hide elements based on a form input change&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; show-on-select=&amp;quot;show-on-select&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;
Example 2 : show-on-select on a select field&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; show-on-select=&amp;quot;show-on-select&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;_select name=&amp;quot;selectme&amp;quot; id=&amp;quot;selectme&amp;quot; &amp;gt;&lt;br /&gt;
		&amp;lt;_input type=&amp;quot;option&amp;quot; for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId2&amp;quot; selected=&amp;quot;selected&amp;quot; value=&amp;quot;1&amp;quot;&amp;gt;1&amp;lt;/_input&amp;gt;&lt;br /&gt;
		&amp;lt;_input type=&amp;quot;option&amp;quot; for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; value=&amp;quot;2&amp;quot;&amp;gt;2&amp;lt;/_input&amp;gt;&lt;br /&gt;
		&amp;lt;_input type=&amp;quot;option&amp;quot; for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId3&amp;quot; value=&amp;quot;3&amp;quot;&amp;gt;3&amp;lt;/_input&amp;gt;&lt;br /&gt;
	&amp;lt;/_select&amp;gt;&lt;br /&gt;
	&amp;lt;_input type=&amp;quot;text&amp;quot; show-on-select-trigger=&amp;quot;testingId&amp;quot; name=&amp;quot;texttest1&amp;quot; value=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;_input type=&amp;quot;text&amp;quot; show-on-select-trigger=&amp;quot;testingId2&amp;quot; name=&amp;quot;texttest2&amp;quot; value=&amp;quot;1&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;addToWiki&amp;quot; show-on-select=&amp;quot;show-on-select&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;_select name=&amp;quot;selectme&amp;quot; id=&amp;quot;selectme&amp;quot; &amp;gt;&lt;br /&gt;
		&amp;lt;_input type=&amp;quot;option&amp;quot; for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId2&amp;quot; selected=&amp;quot;selected&amp;quot; value=&amp;quot;1&amp;quot;&amp;gt;1&amp;lt;/_input&amp;gt;&lt;br /&gt;
		&amp;lt;_input type=&amp;quot;option&amp;quot; for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId&amp;quot; value=&amp;quot;2&amp;quot;&amp;gt;2&amp;lt;/_input&amp;gt;&lt;br /&gt;
		&amp;lt;_input type=&amp;quot;option&amp;quot; for=&amp;quot;selectme&amp;quot; show-on-select=&amp;quot;testingId3&amp;quot; value=&amp;quot;3&amp;quot;&amp;gt;3&amp;lt;/_input&amp;gt;&lt;br /&gt;
	&amp;lt;/_select&amp;gt;&lt;br /&gt;
	&amp;lt;_input type=&amp;quot;text&amp;quot; show-on-select-trigger=&amp;quot;testingId&amp;quot; name=&amp;quot;texttest1&amp;quot; value=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;_input type=&amp;quot;text&amp;quot; show-on-select-trigger=&amp;quot;testingId2&amp;quot; name=&amp;quot;texttest2&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 3 : show-on-checked on a radio button&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; show-on-select=&amp;quot;show-on-select&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;_input type=&amp;quot;radio&amp;quot; show-on-checked=&amp;quot;tester&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;tester&amp;quot;&amp;gt;&lt;br /&gt;
		test checked&lt;br /&gt;
	&amp;lt;/div&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;addToWiki&amp;quot; show-on-select=&amp;quot;show-on-select&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;_input type=&amp;quot;radio&amp;quot; show-on-checked=&amp;quot;tester&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;tester&amp;quot;&amp;gt;&lt;br /&gt;
		test checked&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 4 : show-on-checked on a checkbox and show-on-unchecked on a checkbox.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; show-on-select=&amp;quot;show-on-select&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;_input type=&amp;quot;checkbox&amp;quot; show-on-checked=&amp;quot;test A&amp;quot; show-on-unchecked=&amp;quot;test B&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;test A&amp;quot;&amp;gt;test checked&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;test B&amp;quot;&amp;gt;test unchecked&amp;lt;/div&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;addToWiki&amp;quot; show-on-select=&amp;quot;show-on-select&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;_input type=&amp;quot;checkbox&amp;quot; show-on-checked=&amp;quot;test A&amp;quot; show-on-unchecked=&amp;quot;test B&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;test A&amp;quot;&amp;gt;test checked&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div show-on-select-trigger=&amp;quot;test B&amp;quot;&amp;gt;test unchecked&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
Form fields that are in a hidden section will not be submitted together with the form!&lt;br /&gt;
===Links===&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/file&amp;diff=1138</id>
		<title>DevOps:Doc/FlexForm/1.0/input/file</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/file&amp;diff=1138"/>
		<updated>2022-08-03T12:00:15Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&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;pagecontent &#039;&#039;&#039;: Text content to be added on the File Page&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;*&#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;
=== 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 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 action=&amp;quot;addToWiki&amp;quot; &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;
===Examples===&lt;br /&gt;
==== Example 1 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;file&amp;quot; id=&amp;quot;file-upload&amp;quot; target=&amp;quot;pictures-[filename]-[mwrandom]&amp;quot; pagecontent=&amp;quot;Information of the test file&amp;quot; error_id=&amp;quot;div-error&amp;quot; verbose_id=&amp;quot;div-verbose&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example 2 ====&lt;br /&gt;
Always make sure an image will be transformed to jpeg.&lt;br /&gt;
&lt;br /&gt;
Allow for multiple file upload.&lt;br /&gt;
&lt;br /&gt;
Add form text field &amp;quot;description&amp;quot; on the files page content.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;file&amp;quot; id=&amp;quot;file-upload&amp;quot; multiple=&amp;quot;multiple&amp;quot; parsecontent target=&amp;quot;pictures-[filename]-[mwrandom]&amp;quot; pagecontent=&amp;quot;Information for this image: [description]&amp;quot; force=&amp;quot;jpg&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;_input type=&amp;quot;text&amp;quot; name=&amp;quot;description&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;
==== Example 3 ====&lt;br /&gt;
Store a template to the pagecontent. You can use this if you want the filepage to have structured content or if you want to store structured data with an extension like SMW.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot; &amp;gt;&lt;br /&gt;
{{#tag:_input ||type=file |id=file-upload |target=picture-[mwrandom] |parsecontent=true |pagecontent=&amp;lt;nowiki&amp;gt;{{Uploaded file &lt;br /&gt;
|Uploaded from page=&amp;lt;/nowiki&amp;gt;{{FULLPAGENAME}}&amp;lt;nowiki&amp;gt;&lt;br /&gt;
|Uploaded by=&amp;lt;/nowiki&amp;gt;{{CURRENTLOGGEDUSER}}&amp;lt;nowiki&amp;gt;&lt;br /&gt;
|Comment=[Comment]&lt;br /&gt;
}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; name=&amp;quot;Comment&amp;quot; placeholder=&amp;quot;Comment&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;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
A &#039;&#039;&#039;_input type=&amp;quot;file&amp;quot;&#039;&#039;&#039; always needs a unique ID!&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Share_pages&amp;diff=1137</id>
		<title>DevOps:Doc/PageSync/1.5/Share pages</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Share_pages&amp;diff=1137"/>
		<updated>2022-08-03T12:00:15Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With PageSync you can also select pages or files and create a &#039;&#039;&#039;PageSync Share File&#039;&#039;&#039; from them.&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;PageSync share file&#039;&#039;&#039; can be used on another Wiki with PageSync installed and have those pages or files be installed there.&lt;br /&gt;
&lt;br /&gt;
The big difference with the Backup option is that you can choose what pages or files will be included based on tags. Also restoring a backup on another Wiki will add the contents to PageSync to monitor them as well. Restoring a &#039;&#039;&#039;PageSync Share&#039;&#039;&#039; option only adds the pages or files to a wiki once. Therefore a &#039;&#039;&#039;PageSync share file&#039;&#039;&#039; could be used to install a set of templates, widgets, pages and files to add functionality to your wiki.&lt;br /&gt;
&lt;br /&gt;
If you navigate to the PageSync Special page and click on the SHARE tab you will see an overview of the shared files you have created if you already have any.&lt;br /&gt;
&lt;br /&gt;
This page allows for you to download a PageSync Share file or delete it from your server. There are also two button to create a new PageSync Share file or install a PageSync Share file.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot PageSync Share page.png|alt=Screenshot PageSync Share page|none|thumb|600x600px|PageSync Share page]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
==== Install a PageSync Shared File ====&lt;br /&gt;
[[File:Screenshot PageSync Install PageSync Share file screen.png|alt=Install PageSync Share file screen|thumb|600x600px|Install PageSync Share file screen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installing a set of pages through a &#039;&#039;&#039;PageSync Share file&#039;&#039;&#039; is done by sharing the URL where the ZIP file can be downloaded.&lt;br /&gt;
&lt;br /&gt;
On this screen you can type the download URL. This can be e.g. a github link.&lt;br /&gt;
&lt;br /&gt;
When you enter the URL and click the download and preview button, PageSync will check if the file is valid and will take you to the next page where you can view details information on the &#039;&#039;&#039;PageSync Share File&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot PageSync preview ShareFile install.png|alt=Information on the PageSync Share file you are about to install.|left|thumb|600x600px|Information on the PageSync Share file you are about to install.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Preview page will show you all the information available before installing the &#039;&#039;&#039;PageSync Share File&#039;&#039;&#039;. You also need to agree with the description within the File information.&lt;br /&gt;
&lt;br /&gt;
Once you click the &#039;&#039;&#039;INSTALL FILES&#039;&#039;&#039; button, PageSync will install all the pages and files that are in the ZIP file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
==== Create a PageSync Share File ====&lt;br /&gt;
[[File:Screenshot PageSync create PageSync Share File.png|alt=Screenshot PageSync create PageSync Share File|thumb|600x600px|PageSync create PageSync Share File]]&lt;br /&gt;
&lt;br /&gt;
If you click the create the button create a share ZIP file, you will get a new screen where you select pages or files based on their tags.&lt;br /&gt;
&lt;br /&gt;
You have three options there..&lt;br /&gt;
&lt;br /&gt;
* Pages must have all chosen tags&lt;br /&gt;
* Pages must have at least one chosen tag&lt;br /&gt;
* Ignore tags and select all synced pages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot PageSync create share file overview.png|alt=Screenshot PageSync create share file overview|left|thumb|600x600px|PageSync create share file overview]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After clicking the &#039;&#039;&#039;Select and preview pages&#039;&#039;&#039;-button you will get an overview of the selected pages and files.&lt;br /&gt;
&lt;br /&gt;
You will also &#039;&#039;&#039;need&#039;&#039;&#039; to add a Description/Disclaimer to the to be created Share File.&lt;br /&gt;
&lt;br /&gt;
Project, Company and Name are optional. PageSync will always add your name and the name of the Wiki where you are creating the &#039;&#039;&#039;PageSync Share file&#039;&#039;&#039; from.&lt;br /&gt;
&lt;br /&gt;
This information will be shown when someone wants to install you PageSync Share File.&lt;br /&gt;
&lt;br /&gt;
Once you click on the &#039;&#039;&#039;Create share file&#039;&#039;&#039;-button, you will go back to the main PageSync Share page with an overview of your &#039;&#039;&#039;PageSync Share Files&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/checkbox&amp;diff=1136</id>
		<title>DevOps:Doc/FlexForm/1.0/input/checkbox</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/checkbox&amp;diff=1136"/>
		<updated>2022-08-03T12:00:14Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
checkbox&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to use checkboxes&lt;br /&gt;
===Description===&lt;br /&gt;
&amp;lt;code&amp;gt;_input&amp;lt;/code&amp;gt; elements of type &#039;&#039;&#039;&amp;lt;code&amp;gt;checkbox&amp;lt;/code&amp;gt;&#039;&#039;&#039; are rendered by default as boxes that are checked (ticked) when activated, like you might see in an official government paper form. The exact appearance depends upon the operating system configuration under which the browser is running.  Generally this is a square but it may have rounded corners.  A checkbox allows you to select single values for submission in a form (or not).&lt;br /&gt;
===Parameters===&lt;br /&gt;
_input type=&amp;quot;checkbox&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- Extra option &#039;&#039;&#039;default&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;By default, when a checkbox is not checked, it will &#039;&#039;&#039;not&#039;&#039;&#039; be send with the form. This is standard HTML5 behaviour.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
If you do want a value send with the form if the checkbox is not Clicked, then you can use the &amp;quot;default&amp;quot; parameter.&lt;br /&gt;
&lt;br /&gt;
So the following example will send &amp;quot;Yes&amp;quot; when the checkbox is clicked and &amp;quot;No&amp;quot; when it is not.&lt;br /&gt;
 _input name=&amp;quot;test&amp;quot; value=&amp;quot;Yes&amp;quot; default=&amp;quot;No&amp;quot; type=&amp;quot;checkbox&amp;quot;&lt;br /&gt;
Keep in mind that if you use checkboxes as an array of information like in this example :&lt;br /&gt;
 _input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Role[]&amp;quot; default=&amp;quot;1&amp;quot; value=&amp;quot;organizer&amp;quot; id=&amp;quot;organizer-checkbox&amp;quot;&lt;br /&gt;
 _input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Role[]&amp;quot; default=&amp;quot;2&amp;quot; value=&amp;quot;participant&amp;quot; id=&amp;quot;participant-checkbox&amp;quot;&lt;br /&gt;
Then using the &amp;quot;default&amp;quot; option will only work if none of the checkboxes have been clicked. &#039;&#039;&#039;You should not set a default value per checkbox when they all use the same name&#039;&#039;&#039;. If you do (like in the example above) only the last checkbox with a default value will be used if no checkboxes have been checked and the value for Role in this case would be &amp;quot;2&amp;quot;.&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;_input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Archived&amp;quot; value=&amp;quot;Yes&amp;quot; id=&amp;quot;archived-checkbox&amp;quot; /&amp;gt; &amp;lt;_label for=&amp;quot;archived-checkbox&amp;quot;&amp;gt;Yes, archive this page&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Archived&amp;quot; value=&amp;quot;Yes&amp;quot; id=&amp;quot;archived-checkbox&amp;quot; /&amp;gt; &amp;lt;_label for=&amp;quot;archived-checkbox&amp;quot;&amp;gt;Yes, archive this page&amp;lt;/_label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Role[]&amp;quot; value=&amp;quot;organizer&amp;quot; id=&amp;quot;organizer-checkbox&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;organizer-checkbox&amp;quot;&amp;gt;Organizer&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Role[]&amp;quot; value=&amp;quot;participant&amp;quot; id=&amp;quot;participant-checkbox&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;participant-checkbox&amp;quot;&amp;gt;Participant&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Role[]&amp;quot; value=&amp;quot;contact&amp;quot; id=&amp;quot;contact-checkbox&amp;quot; /&amp;gt;&amp;lt;_label for=&amp;quot;contact-checkbox&amp;quot;&amp;gt;Contact&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Role[]&amp;quot; value=&amp;quot;user&amp;quot; id=&amp;quot;user-checkbox&amp;quot; /&amp;gt;&amp;lt;_label for=&amp;quot;user-checkbox&amp;quot;&amp;gt;User&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Role[]&amp;quot; value=&amp;quot;organizer&amp;quot; id=&amp;quot;organizer-checkbox&amp;quot; /&amp;gt; &amp;lt;_label for=&amp;quot;organizer-checkbox&amp;quot;&amp;gt;Organizer&amp;lt;/_label&amp;gt;&amp;lt;br&amp;gt;&amp;lt;_input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Role[]&amp;quot; value=&amp;quot;participant&amp;quot; id=&amp;quot;participant-checkbox&amp;quot; /&amp;gt; &amp;lt;_label for=&amp;quot;participant-checkbox&amp;quot;&amp;gt;Participant&amp;lt;/_label&amp;gt;&amp;lt;br&amp;gt;&amp;lt;_input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Role[]&amp;quot; value=&amp;quot;contact&amp;quot; id=&amp;quot;contact-checkbox&amp;quot; /&amp;gt; &amp;lt;_label for=&amp;quot;contact-checkbox&amp;quot;&amp;gt;Contact&amp;lt;/_label&amp;gt;&amp;lt;br&amp;gt;&amp;lt;_input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;Role[]&amp;quot; value=&amp;quot;user&amp;quot; id=&amp;quot;user-checkbox&amp;quot; /&amp;gt; &amp;lt;_label for=&amp;quot;user-checkbox&amp;quot;&amp;gt;User&amp;lt;/_label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
Radio buttons are similar to checkboxes, but with an important distinction — radio buttons are grouped into a set in which only one radio button can be selected at a time, whereas checkboxes allow you to turn single values on and off. Where multiple controls exist, radio buttons allow one to be selected out of them all, whereas checkboxes allow multiple values to be selected.&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/email&amp;diff=1135</id>
		<title>DevOps:Doc/FlexForm/1.0/email</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/email&amp;diff=1135"/>
		<updated>2022-08-03T12:00:14Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_email&lt;br /&gt;
===Type===&lt;br /&gt;
_email&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Using a form to send an email&lt;br /&gt;
===Description===&lt;br /&gt;
FlexForm can send a submitted form as an email. The FlexForm tag needs an action of &#039;email&#039; for this. All other setting are done through the _email function.&lt;br /&gt;
&lt;br /&gt;
An email is send using an email template. Such an email template can be any page in the Wiki where you define the details for the email.&lt;br /&gt;
&lt;br /&gt;
When sending an email you need certain information:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+At form level means this can be set within the Form.&lt;br /&gt;
At template level means this is set within the template.&lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
!At form level&lt;br /&gt;
!At template level&lt;br /&gt;
!Mandetory&lt;br /&gt;
|-&lt;br /&gt;
|To&lt;br /&gt;
|email address&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|From&lt;br /&gt;
|email address&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|Subject&lt;br /&gt;
|text&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|Content&lt;br /&gt;
|text&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|CC&lt;br /&gt;
|email address&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|BCC&lt;br /&gt;
|email address&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|Reply to&lt;br /&gt;
|email address&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|Attachment&lt;br /&gt;
|Filepath&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|Header&lt;br /&gt;
|Wiki Page&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|-&lt;br /&gt;
|Footer&lt;br /&gt;
|Wiki&lt;br /&gt;
|no&lt;br /&gt;
|yes&lt;br /&gt;
|no&lt;br /&gt;
|}&lt;br /&gt;
All the elements needed to send an email can be set inside the email template. You can create multiple email templates. You simply tell FlexForm what email template to use in the form. The elements that can be set at form level will override any defined elements in the template.&lt;br /&gt;
&lt;br /&gt;
All form elements that should be send with the email, must be defined in the email template. If you have a _field element of type text and a name of &amp;quot;address&amp;quot; and you want to send this with the email, you have to put the name of the field inside the template with a &amp;quot;$&amp;quot;-sign in front of it( in this case $address). See examples.&lt;br /&gt;
===Form Parameters===&lt;br /&gt;
&#039;&#039;&#039;to&#039;&#039;&#039; = recipients email address&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;template&#039;&#039;&#039; = Title name of Wiki pages containing the email template&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;subject&#039;&#039;&#039; = Subject of the email to be send&lt;br /&gt;
&lt;br /&gt;
=== Template Parameters ===&lt;br /&gt;
&#039;&#039;&#039;_to&#039;&#039;&#039; = recipients email address&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_from&#039;&#039;&#039; = senders email address&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_subject&#039;&#039;&#039; = email subject&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_cc&#039;&#039;&#039; = email address that receives a copy of the email&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_bcc&#039;&#039;&#039; = email address that receives a copy of the email, but not visible to anyone else&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_replyto&#039;&#039;&#039; = email address used when someone replies to the send email&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_header&#039;&#039;&#039; = Title name of Wiki page with the email letterhead&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_footer&#039;&#039;&#039; = Title name of Wiki page with the email footer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;_html&#039;&#039;&#039; = Value can be yes or no, defaults to yes. Whether or not the email should be send as HTML (yes) or plain text (no)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is defined in an email template, then _email would only need the template argument to send an email.&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;email&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_email template=&amp;quot;FlexForm_mail_template&amp;quot;&amp;gt;&amp;lt;/_email&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; placeholder=&amp;quot;Your name&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;email&amp;quot; name=&amp;quot;email&amp;quot; placeholder=&amp;quot;Your email address&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;text&amp;quot; name=&amp;quot;city&amp;quot;  placeholder=&amp;quot;City you live&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; value=&amp;quot;submit your information&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Wiki page with title &amp;quot;FlexForm_mail_template&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
%_to=$email%&lt;br /&gt;
%_bcc=info@wikibase.nl%&lt;br /&gt;
%_subject=Form submitted from website by $name%&lt;br /&gt;
%_from=info@wikibase.nl%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Dear &amp;lt;strong&amp;gt;$name&amp;lt;/strong&amp;gt;,&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
  Thank you for submitting the form on our website. We have received the following details:&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Name : $name&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Email : $email&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;City : $city&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;We will contact you shortly&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Best regards&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/Installation_of_FlexForm&amp;diff=1134</id>
		<title>DevOps:Doc/FlexForm/1.1/Installation of FlexForm</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/Installation_of_FlexForm&amp;diff=1134"/>
		<updated>2022-08-03T12:00:14Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation ==&lt;br /&gt;
Grab in instance from https://github.com/WikibaseSolutions/FlexForm.&lt;br /&gt;
&lt;br /&gt;
Create a &amp;quot;&#039;&#039;&#039;FlexForm&#039;&#039;&#039;&amp;quot; folder in your Wiki extensions folder and extract the files there.&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 Localsettings.php&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgFlexFormConfig[&#039;secure&#039;] = true; //( default is true ). Will render form that make no sense when inspected in the browser&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;sec_key&#039;] = &amp;quot;&amp;quot;; // 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;
&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_interval&#039;] = 30000; // Interval time in ms, defaults to 3 minutes (180000 ms). Form is submitted on each interval regardless of changes.&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_after_change&#039;] = 3000; // 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;
&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_on&#039;] = &#039;Autosave on&#039;; // text on the autosave button to toggle on&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_off&#039;] = &#039;Autosave off&#039;; // text on the autosave button to toggle off&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;FlexFormDefaultTheme&#039;] = &amp;quot;plain&amp;quot;; // Currently the only form&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_site_key&#039;] = &amp;quot;&amp;quot;; // reCaptcha site key&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_secret_key&#039;] = &amp;quot;&amp;quot;; // reCaptcha secret key&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;; // Where to store images temporarily that need to be format converted&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;can_create_user&#039;] = &amp;quot;&amp;quot;; // Defaults to false. Set to yes if FlexForm is allowed to create new users&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;filter_input_tags&#039;] = false; // 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;
&lt;br /&gt;
$wgFlexFormConfig[&#039;CreateAndEditForms&#039;][&#039;allowedGroups&#039;] = [&amp;quot;sysop&amp;quot;,&amp;quot;moderator&amp;quot;]; // Defaults to sysop. Only a user in the allowedGroups is able to edit pages with a FlexForm in the source.&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;CreateAndEditForms&#039;][&#039;hideEdit&#039;] = true; // 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;
&lt;br /&gt;
$wgFlexFormConfig[&#039;create-seo-titles&#039;] = true; // 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;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Finally ====&lt;br /&gt;
Add the following line at the end of your LocalSettings.php to enable the extension :&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;
==== Notification/Messages ====&lt;br /&gt;
&#039;&#039;&#039;FlexForm&#039;&#039;&#039; has a notification system build in. This is used to show possible errors or success / custom  messages.&lt;br /&gt;
To enable this.. add to your header page :&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form showmessages /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm&amp;diff=1133</id>
		<title>DevOps:Doc/FlexForm</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm&amp;diff=1133"/>
		<updated>2022-08-03T12:00:14Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:FlexForm logo.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FlexForm&#039;&#039;&#039; is an enhanced HTML5 Form rendering engine.&lt;br /&gt;
&lt;br /&gt;
It renders HTML5 form elements and allows editing or creating one or more pages with one form.&lt;br /&gt;
&lt;br /&gt;
When you are familiar with creating HTML5 forms you will have no problem using &#039;&#039;&#039;FlexForm&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
To get started for the first time, have a look at the get started documentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FlexForm&#039;&#039;&#039; is a complete rewrite from the previous &#039;&#039;&#039;WSForm&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Why FlexForm ===&lt;br /&gt;
Currently there are several MediaWiki extensions that help you create Forms for your website.&lt;br /&gt;
&lt;br /&gt;
What makes &#039;&#039;&#039;FlexForm&#039;&#039;&#039; different from the other extensions, is that it is really flexible. You can create a simple form (or a complex one) on any page and in any namespace.&lt;br /&gt;
&lt;br /&gt;
You do not have to use any special page to setup a form or to render it.&lt;br /&gt;
&lt;br /&gt;
It is also not bound to any kind of styling. This means that a simple form will not look very nice by default, but adding some css styling classes to the form gives you all the freedom in styling the form to any and all your needs. For those who are a bit less stylish, &#039;&#039;&#039;FlexForm&#039;&#039;&#039; will be supporting MediaWiki OOUI styling in the future by means of Themes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FlexForm&#039;&#039;&#039; has Themes support.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FlexForm&#039;&#039;&#039; is very powerful.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;One&#039;&#039;&#039; singe form can:&lt;br /&gt;
&lt;br /&gt;
* create a page in the Wiki&lt;br /&gt;
* create several pages in the Wiki&lt;br /&gt;
* can edit a page in the Wiki&lt;br /&gt;
* can edit several pages in the Wiki&lt;br /&gt;
* can edit Multi Revision Content slots&lt;br /&gt;
* can send an email&lt;br /&gt;
* can upload a file&lt;br /&gt;
* can upload multiple files&lt;br /&gt;
&lt;br /&gt;
Or do a combination of all of the above.&lt;br /&gt;
&lt;br /&gt;
There are also Show on Select options, Multiple instances options and submit a form through Ajax (so the user stays on the page without any reload).&lt;br /&gt;
&lt;br /&gt;
If you still want more features, check the documentation on the right.&lt;br /&gt;
&lt;br /&gt;
=== How is it different from PageForms? ===&lt;br /&gt;
Some of the main difference are:&lt;br /&gt;
&lt;br /&gt;
* PageForms will render forms through its Special page. The only exception is the &#039;&#039;autoedit&#039;&#039; parser function that will allow to edit a parameter in a template on a page using Ajax.&lt;br /&gt;
* PageForms renders an edit button on a page. With it you can edit Template parameters on a page.&lt;br /&gt;
* FlexForm can render a form on any page or render several forms on page. It allows for editing multiple Template parameters on a page or different pages.&lt;br /&gt;
* FlexForm will not read the content and template of a page and render an edit form. It does allow for you to create a very simple form that gives you all the freedom to show only relevant information to be edited.&lt;br /&gt;
* FlexForm is designed to handle multiple tasks with one form. Create or edit page(s), send an email, upload one or multiple files or a combination.&lt;br /&gt;
* FlexForm can be combined with the Chameleon skin and Bootstrap (or with custom js/css) to render forms in a popup, tab or collapsible element to create a more user-friendly experience where editing is part of the same page where you are also displaying information.&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/signature&amp;diff=1132</id>
		<title>DevOps:Doc/FlexForm/1.0/input/signature</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/signature&amp;diff=1132"/>
		<updated>2022-08-03T12:00:13Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&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;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;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; 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; 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;
===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>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/PageSync/2.0/Installing_PageSync&amp;diff=1131</id>
		<title>DevOps:Doc/PageSync/2.0/Installing PageSync</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/PageSync/2.0/Installing_PageSync&amp;diff=1131"/>
		<updated>2022-08-03T12:00:13Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 2.0 has a major change in its file management. ==&lt;br /&gt;
&lt;br /&gt;
====== When installing version 2.0 you will have to remove all the PageSync files: &#039;&#039;&#039;export.index&#039;&#039;&#039; and all the files in the &#039;&#039;&#039;export folder&#039;&#039;&#039;. Alternatively you could set a new path for the PageSync files ( &#039;&#039;&#039;$wgPageSync[&#039;filePath&#039;]&#039;&#039;&#039; = ). ======&lt;br /&gt;
&lt;br /&gt;
====== You will then have to add them again to PageSync. ======&lt;br /&gt;
Or try to run the &#039;&#039;&#039;maintenance&#039;&#039;&#039; script with &#039;&#039;&#039;--convert-2-version-2&#039;&#039;&#039;. This should convert all your files and keep them in PageSync. &#039;&#039;&#039;Make a Backup first!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Grab in instance from https://github.com/Open-CSP/PageSync.&lt;br /&gt;
&lt;br /&gt;
Create a &amp;quot;&#039;&#039;&#039;PageSync&#039;&#039;&#039;&amp;quot; folder in your Wiki extensions folder and extract the files there.&lt;br /&gt;
&lt;br /&gt;
==== Setup ====&lt;br /&gt;
&#039;&#039;&#039;PageSync&#039;&#039;&#039; needs a full path to a directory to store the files that can be synced. e.g. $IP/wspsFiles&lt;br /&gt;
&lt;br /&gt;
This can be set in the localsettings as  :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgPageSync[&#039;filePath&#039;] =  $IP . &#039;/wspsFiles&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PageSync&#039;&#039;&#039; also needs a temporary file path to a directory to handle received Share file.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgPageSync[&#039;tempFilePath&#039;] =  $IP . &#039;/wspsTemp&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure the folders have the correct rights for &#039;&#039;&#039;PageSync&#039;&#039;&#039; to store files. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;u&amp;gt;It is also a good practice to store these files outside of your html folder. The content of pages are stored as raw wikitext and although you can store synced files in sub folders hidden within the root, they are potentially visible.&amp;lt;/u&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Files from the File namespace will also be synced. &lt;br /&gt;
&lt;br /&gt;
You can define what slots you want to sync. Default value is all. If you change this value, make sure to add &amp;quot;main&amp;quot; for the main content-slot.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgPageSync[&#039;contentSlotsToBeSynced&#039;] = &amp;quot;all&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgPageSync[&#039;contentSlotsToBeSynced&#039;] = [&#039;main&#039;, &#039;my-content-slot&#039;];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Finally ====&lt;br /&gt;
Add the following line at the end of your LocalSettings.php, or at least after the above configuration setting, to enable the extension :&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;PageSync&#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Navigate to Special:Version on your wiki to verify that the extension is successfully installed.&lt;br /&gt;
&lt;br /&gt;
If you have the extension AdminLinks installed, you can find a link to PageSync there.&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/extensions&amp;diff=1130</id>
		<title>DevOps:Doc/FlexForm/1.1/extensions</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/extensions&amp;diff=1130"/>
		<updated>2022-08-03T12:00:13Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;FlexForm&#039;&#039;&#039; can be extended by a PHP function to handle additional tasks after a Form has been submitted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done with &#039;&#039;&#039;FFAfterFormHandling&#039;&#039;&#039; MediaWiki Hook. For more information see de Docs on Hooks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or using the following method:&lt;br /&gt;
&lt;br /&gt;
Start a FlexForm and tell it to use your extension :&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; extension=&amp;quot;&amp;lt;name of your extension&amp;quot; &amp;gt;&lt;br /&gt;
   Your flexform elements here&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a folder in &amp;lt;code&amp;gt;FlexForm/src/Modules/Handlers&amp;lt;/code&amp;gt; with the name of your extension. &lt;br /&gt;
&lt;br /&gt;
In this folder create a file called &amp;lt;code&amp;gt;PostHandler.php&amp;lt;/code&amp;gt; with the following namespace : &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
namespace FlexForm\Modules\Handlers\&amp;lt; your extension name = same as folder name &amp;gt;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your extension will be based based on a class PostHandler and will utilize the &#039;&#039;&#039;HandlerInterface&#039;&#039;&#039; interface and will only hold one method : &#039;&#039;&#039;execute&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class PostHandler implements HandlerInterface {&lt;br /&gt;
	/**&lt;br /&gt;
	 * @inerhitDoc&lt;br /&gt;
	 */&lt;br /&gt;
	public function execute( array $flexFormFields, HandleResponse $responseHandler ): HandleResponse {&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The array &amp;lt;code&amp;gt;$flexFormFields&amp;lt;/code&amp;gt; will be available and hold all submitted Form elements as &#039;&#039;&#039;name-&amp;gt;value&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If your extension produces an error, throw a &#039;&#039;&#039;FlexFormException&#039;&#039;&#039; and FlexForm will take care of the rest. &#039;&#039;Make sure to throw a message that with your extension name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If your extension has successfully finished its tasks, tell the &#039;&#039;&#039;responsehandler&#039;&#039;&#039; it has been successful and return the responseHandler :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$responseHandler-&amp;gt;setReturnType( HandleResponse::TYPE_SUCCESS );&lt;br /&gt;
return $responseHandler;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your extension has successfully finished its tasks and you want to pass additional information to the user :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$responseHandler-&amp;gt;setReturnType( HandleResponse::TYPE_SUCCESS );&lt;br /&gt;
$responseHandler-&amp;gt;setReturnData( string &amp;lt; your message &amp;gt; );&lt;br /&gt;
return $responseHandler;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NOTE: ====&lt;br /&gt;
When a FlexForm has the extension tag. FlexForm will first search for the extension in the Handlers folder. If it cannot be found it will run the &#039;&#039;&#039;FFAfterFormHandling&#039;&#039;&#039; hook.&lt;br /&gt;
&lt;br /&gt;
No error message will be shown if FlexForm cannot find the extension.&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Error-messages&amp;diff=1129</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=1129"/>
		<updated>2022-08-03T12:00:13Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&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.&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;
&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>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/API/FlexFormBot&amp;diff=1128</id>
		<title>DevOps:Doc/FlexForm/1.1/API/FlexFormBot</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/API/FlexFormBot&amp;diff=1128"/>
		<updated>2022-08-03T12:00:12Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
API&lt;br /&gt;
===Type===&lt;br /&gt;
FlexFormBot&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Trigger a FlexForm action.&lt;br /&gt;
===Description===&lt;br /&gt;
Trigger a FlexForm action. Currently only the email trigger is available.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;trigger&#039;&#039;&#039; - What function needs to be triggered within FlexForm. This parameter is required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;data&#039;&#039;&#039; - Extra data needed for the Trigger function. Depends on the trigger action. Please read the manual for more information. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;title&#039;&#039;&#039; - Title needed for the Trigger function. Depends on the trigger action. Please read the manual for more information. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;token&#039;&#039;&#039; - A &amp;quot;&#039;&#039;&#039;csrf&#039;&#039;&#039;&amp;quot; token retrieved from action=query&amp;amp;meta=tokens. This parameter is required.&lt;br /&gt;
&lt;br /&gt;
====Trigger email====&lt;br /&gt;
With this trigger you can send an email, based on the email-template. &lt;br /&gt;
&lt;br /&gt;
The email trigger also needs a title of a page. That page needs to be setup as a full email template. Read the docs &amp;quot;email&amp;quot; on how to setup such a template. &lt;br /&gt;
&lt;br /&gt;
Additionally, you can use the data attribute to add BCC addresses to an email. Format is a JSON  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{ &amp;quot;bcc&amp;quot;: &amp;quot;Charlot [charlot@wikibase.nl], Ad [ad@wikibase.nl]&amp;quot; }&amp;lt;/code&amp;gt; &lt;br /&gt;
===Example===&lt;br /&gt;
Make a call using the csrf token to the MediaWiki API&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
  To = api.php&lt;br /&gt;
  action = FlexFormBot&lt;br /&gt;
  trigger = email&lt;br /&gt;
  title = Email template page&lt;br /&gt;
  token = &amp;lt;your csrf token&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Return format===&lt;br /&gt;
The API result will be in a JSON format. When an error occurs, you will have an error field present where you can read its message.&lt;br /&gt;
&lt;br /&gt;
Example of an error&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;FlexFormBot&amp;quot;: {&lt;br /&gt;
        &amp;quot;error&amp;quot;: {&lt;br /&gt;
            &amp;quot;message&amp;quot;: &amp;quot;The page you specified doesn&#039;t exist.&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: {&lt;br /&gt;
                &amp;quot;trigger&amp;quot;: &amp;quot;email&amp;quot;,&lt;br /&gt;
                &amp;quot;title&amp;quot;: &amp;quot;Email_template_tsest&amp;quot;,&lt;br /&gt;
                &amp;quot;data&amp;quot;: null&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of success&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;FlexFormBot&amp;quot;: {&lt;br /&gt;
        &amp;quot;result&amp;quot;: {&lt;br /&gt;
            &amp;quot;request&amp;quot;: {&lt;br /&gt;
                &amp;quot;trigger&amp;quot;: &amp;quot;email&amp;quot;,&lt;br /&gt;
                &amp;quot;title&amp;quot;: &amp;quot;Email_template_test&amp;quot;,&lt;br /&gt;
                &amp;quot;data&amp;quot;: null&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;message&amp;quot;: &amp;quot;success&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
You need to add the csrf token with every request to FlexFormBot&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/select&amp;diff=1127</id>
		<title>DevOps:Doc/FlexForm/1.0/input/select</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/select&amp;diff=1127"/>
		<updated>2022-08-03T12:00:12Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&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;_input type=&amp;quot;option&amp;quot;&amp;gt;&amp;lt;/_input&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;tags inside the &amp;lt;code&amp;gt;&amp;lt;select&amp;gt;&amp;lt;/code&amp;gt; element define the available options in the drop-down list.&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;_input type=&amp;quot;option&amp;quot;&amp;gt;&amp;lt;/_input&amp;gt;&amp;lt;/_select&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&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;&amp;gt;&lt;br /&gt;
		&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;volvo&amp;quot;&amp;gt;Volvo&amp;lt;/_input&amp;gt;&lt;br /&gt;
		&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;saab&amp;quot;&amp;gt;Saab&amp;lt;/_input&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;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;volvo&amp;quot;&amp;gt;Volvo&amp;lt;/_input&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;saab&amp;quot;&amp;gt;Saab&amp;lt;/_input&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;div&amp;gt;&lt;br /&gt;
	&amp;lt;_select name=&amp;quot;car-2&amp;quot; placeholder=&amp;quot;Select car&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;optgroup label=&amp;quot;German&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;bmw&amp;quot;&amp;gt;BMW&amp;lt;/_input&amp;gt;&lt;br /&gt;
			&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;mercedes&amp;quot; disabled=&amp;quot;disabled&amp;quot;&amp;gt;Mercedes&amp;lt;/_input&amp;gt;&lt;br /&gt;
		&amp;lt;/optgroup&amp;gt;&lt;br /&gt;
		&amp;lt;optgroup label=&amp;quot;French&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;renault&amp;quot;&amp;gt;Renault&amp;lt;/_input&amp;gt;&lt;br /&gt;
			&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;peugot&amp;quot;&amp;gt;Peugot&amp;lt;/_input&amp;gt;&lt;br /&gt;
		&amp;lt;/optgroup&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-2&amp;quot; placeholder=&amp;quot;Select car&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;optgroup label=&amp;quot;German&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;bmw&amp;quot;&amp;gt;BMW&amp;lt;/_input&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;mercedes&amp;quot; disabled=&amp;quot;disabled&amp;quot;&amp;gt;Mercedes&amp;lt;/_input&amp;gt;&lt;br /&gt;
&amp;lt;/optgroup&amp;gt;&lt;br /&gt;
&amp;lt;optgroup label=&amp;quot;French&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;renault&amp;quot;&amp;gt;Renault&amp;lt;/_input&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;option&amp;quot; value=&amp;quot;peugot&amp;quot;&amp;gt;Peugot&amp;lt;/_input&amp;gt;&lt;br /&gt;
&amp;lt;/optgroup&amp;gt;&lt;br /&gt;
&amp;lt;/_select&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/Change-log&amp;diff=1126</id>
		<title>DevOps:Doc/FlexForm/Change-log</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/Change-log&amp;diff=1126"/>
		<updated>2022-08-03T12:00:12Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Changelog===&lt;br /&gt;
&lt;br /&gt;
*1.1.26 : Rendering instances with default content will do a SMW Ask to get the Display property for a token using its value and Query&lt;br /&gt;
*1.1.25 : Instance default-content 2 token fix&lt;br /&gt;
&lt;br /&gt;
*1.1.24 : Fixed an issue where select2 tokens callbacks were initiated multiple times. Removed 1.12 J-UI dependency.&lt;br /&gt;
&lt;br /&gt;
*1.1.23 : Another instance update for tokens. Recent changes are now initiated.&lt;br /&gt;
&lt;br /&gt;
*1.1.22 : Instances and textarea fix&lt;br /&gt;
&lt;br /&gt;
*1.1.21 : Fixed Paragraph tag appearing in fieldset&lt;br /&gt;
&lt;br /&gt;
*1.1.20 : Fixed file upload preview and dropzone issues&lt;br /&gt;
&lt;br /&gt;
*1.1.19 : Added wscreate usefield like options. Fixed SMW query results being escaped&lt;br /&gt;
&lt;br /&gt;
*1.1.17 : Fixed autosave with Instances&lt;br /&gt;
&lt;br /&gt;
*1.1.16 : VE error message fix when nog VE loaded.&lt;br /&gt;
&lt;br /&gt;
*1.1.15 : Extended the hook to contain extension name.&lt;br /&gt;
&lt;br /&gt;
*1.1.14 : Create user email is now a system message. Added FFAfterFormHandling Hook.&lt;br /&gt;
&lt;br /&gt;
*1.1.13 : Added extension support&lt;br /&gt;
&lt;br /&gt;
*1.1.12 : Added entity decoding to mwreturn to support &amp;amp;-sign. Fixed multiple instances issue.&lt;br /&gt;
&lt;br /&gt;
*1.1.11 : SEO url&#039;s to file upload&lt;br /&gt;
&lt;br /&gt;
*1.1.10 : Added sortable tokens&lt;br /&gt;
&lt;br /&gt;
*1.1.9 : Addendum and SEO setting&lt;br /&gt;
&lt;br /&gt;
*1.1.8 : FileUpload fix&lt;br /&gt;
&lt;br /&gt;
*1.1.7 : Add HTML screenshot upload (canvas)&lt;br /&gt;
&lt;br /&gt;
*1.1.6 : reCaptcha fixed. Rdy to test. https://github.com/WikibaseSolutions/FlexForm/issues/8&lt;br /&gt;
&lt;br /&gt;
*1.1.5 : Fixed slot creation bug&lt;br /&gt;
&lt;br /&gt;
*1.1.4 : Instances changes&lt;br /&gt;
&lt;br /&gt;
*1.1.3 : Added frame parsing for tokens. Form validation was set to input field validations.. Fixed!&lt;br /&gt;
&lt;br /&gt;
*1.1.2 : Fixed no submit on enter per form. Security checksum changes.&lt;br /&gt;
&lt;br /&gt;
*1.1.1 : Added support for anonymous users&lt;br /&gt;
&lt;br /&gt;
*1.1.0     : Email bot api support, create user support, various fixed after refactoring. Added security options. Special note: By default only a sysop can now edit or create a page with FlexForm on it. This can be changed in the settings for FlexForm.&lt;br /&gt;
&lt;br /&gt;
*1.0       : Initial first public release  &#039;&#039;Compared to the previous version any File upload method is not supported and will be added in a later version. Rendering of a form has been rewritten to support themes.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input&amp;diff=1125</id>
		<title>DevOps:Doc/FlexForm/1.0/input</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input&amp;diff=1125"/>
		<updated>2022-08-03T12:00:12Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_input&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Create various input field using _input&lt;br /&gt;
===Description===&lt;br /&gt;
_input is like input in HTML, but can differ sometimes.&lt;br /&gt;
===Parameters===&lt;br /&gt;
All valid HTML attributes can be used, like :&lt;br /&gt;
&lt;br /&gt;
name, value, class, placeholder, required etc..&lt;br /&gt;
&lt;br /&gt;
For possible types you can search the &#039;&#039;&#039;FlexForm&#039;&#039;&#039; docs for all documentation that starts with _input.&lt;br /&gt;
&lt;br /&gt;
Some examples for types are : text, url, phone, textarea, password, range, checkboxes, radiobutton, email and more.&lt;br /&gt;
&lt;br /&gt;
There are some &#039;&#039;&#039;FlexForm&#039;&#039;&#039; specific attributes like &#039;&#039;parsepost&#039;&#039; and &#039;&#039;html&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- parsepost&#039;&#039;&#039; can be used on e.g. a hidden field where the value holds names of other fields to be switched at post processing. e.g.&lt;br /&gt;
&lt;br /&gt;
This will read the form field value with name &amp;quot;title&amp;quot; and replace [title] in the value of the newtitle field&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;TODO: Above needs more details&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- html&#039;&#039;&#039; attribute allows filtering input fields. The options are :&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;default&amp;quot; which is the same as not adding it at all. It will filter by the HTMLPurifier rules (see link below)&lt;br /&gt;
* &amp;quot;all&amp;quot; no filtering will be done (not even XSS hacks)&lt;br /&gt;
* &amp;quot;nohtml&amp;quot; means all HTML will be filtered out&lt;br /&gt;
* &amp;quot;custom&amp;quot; is used like this : &amp;quot;custom=b,u,i&amp;quot;, meaning no html is allowed, except bold, italic and underline&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- required&#039;&#039;&#039; attribute in FlexForm differs from the HTML variant.&lt;br /&gt;
&lt;br /&gt;
When a &#039;&#039;&#039;HTML5&#039;&#039;&#039; form field has the word &amp;quot;&#039;&#039;&#039;required&#039;&#039;&#039;&amp;quot; as an attribute, this field will always be required. Even &#039;&#039;&#039;required=&amp;quot;no&amp;quot;&#039;&#039;&#039; will make the field required.&lt;br /&gt;
&lt;br /&gt;
With &#039;&#039;&#039;FlexForm&#039;&#039;&#039; this needs to be &#039;&#039;&#039;required=&amp;quot;required&amp;quot;&#039;&#039;&#039; for an input field to be required. Only required or required=&amp;quot;no&amp;quot; or required=&amp;quot;whatever&amp;quot; will not make the field a required field.&lt;br /&gt;
&lt;br /&gt;
Example on how to use required in FlexForm :&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;email&amp;quot; name=&amp;quot;emailfield&amp;quot; placeholder=&amp;quot;This is a placeholder&amp;quot; required=&amp;quot;required&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/PageSync&amp;diff=1124</id>
		<title>DevOps:Doc/PageSync</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/PageSync&amp;diff=1124"/>
		<updated>2022-08-03T12:00:12Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:PageSync logo.png|frameless]]&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;PageSync&#039;&#039;&#039; MediaWiki extension allows for storing any wiki page content to a file on the server. Allowing for it be e.g. pushed to git or bitbucket and deployed on another server. The reason for development of PageSync was to have all application artifacts, including templates, forms and other pages in the wiki, under version control.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PageSync&#039;&#039;&#039; has a maintenance script to import pages from file. This enables automatic deployment of wikis and transfer of content from one wiki to another.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PageSync&#039;&#039;&#039; is able to sync all Multi Revision Content slots and will also sync Files in the File namespace. Additionally you can save all synced files as a ZIP Archive and exchange the ZIP archive. &lt;br /&gt;
&lt;br /&gt;
Pages that have been added to &#039;&#039;&#039;PageSync&#039;&#039;&#039; can also be given &#039;&#039;tags&#039;&#039; and &#039;&#039;descriptions&#039;&#039;. With these tags you can pick certain pages and files and combine them into one &#039;&#039;&#039;PageSync Share file&#039;&#039;&#039;. Such a share file can be shared with others that have &#039;&#039;&#039;PageSync&#039;&#039;&#039; installed and will only install the pages and files inside the Share file without adding them to &#039;&#039;&#039;PageSync&#039;&#039;&#039;. A one time pages and files instalment.&lt;br /&gt;
&lt;br /&gt;
For more information on installing and usage, please have a look at the documentation.&lt;br /&gt;
&lt;br /&gt;
== Scenario ==&lt;br /&gt;
We usually have a developing environment. When developing is done, we push our code to a repository. From there we create a Docker container and we deploy it to a Testing server. From there it is deployed to an Acceptance server and finally to production.&lt;br /&gt;
&lt;br /&gt;
This is all fine with PHP and or JavaScript code, but we also create templates and widgets that are fundamental for it all to work properly.&lt;br /&gt;
&lt;br /&gt;
With &#039;&#039;&#039;PageSync&#039;&#039;&#039;, we can now also push our Templates, Widgets or any important Wiki page to our repository. When deploying a container, the &#039;&#039;&#039;PageSync&#039;&#039;&#039; maintenance script is automatically run and therefore also updating pages in the Wiki.&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Using_PageSync&amp;diff=1123</id>
		<title>DevOps:Doc/PageSync/1.5/Using PageSync</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Using_PageSync&amp;diff=1123"/>
		<updated>2022-08-03T12:00:11Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also the Special page section below.&lt;br /&gt;
&lt;br /&gt;
Basically, if you are a sysop, any page that can be synced will have a slider in the top menu. Click on it and it will turn blue indicating it is synced ( a notification will also be shown ). If the slider is already blue when you visit a page, it simply means the page is already synced and is being monitored for changes. Click the slider again for the page to be excluded from syncing.&lt;br /&gt;
&lt;br /&gt;
== User rights ==&lt;br /&gt;
sysop/admins are allowed to set a page to be synced. All other users have no such ability.&lt;br /&gt;
&lt;br /&gt;
== Special Page ==&lt;br /&gt;
By default the special page shows a list of all Wiki pages set for syncing.&lt;br /&gt;
&lt;br /&gt;
* From the Special page you can also create, restore and delete ZIP backups. To be able to use &#039;&#039;&#039;ZIP Backups&#039;&#039;&#039;, make sure ZIPArchive is installed on your PHP setup.&lt;br /&gt;
* The special page also allows for you to do a &#039;&#039;&#039;Semantic MediaWiki Query&#039;&#039;&#039; to quickly add certain pages to &#039;&#039;&#039;PageSync&#039;&#039;&#039;. This feature only works if you have &#039;&#039;&#039;&#039;&#039;SemanticMediaWiki&#039;&#039;&#039;&#039;&#039; extension installed.&lt;br /&gt;
* Creating &#039;&#039;&#039;PageSync Share files&#039;&#039;&#039; is also done from the Special page.&lt;br /&gt;
* The Special Page also shows all currently synced pages.&lt;br /&gt;
* Finally you can also delete all synced pages from the Special page. This will not delete any pages in the Wiki, only the ones stored on the server by &#039;&#039;&#039;PageSync&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The entry page for the &#039;&#039;&#039;PageSync&#039;&#039;&#039; Special page will show you a list of all the pages and files that &#039;&#039;&#039;PageSync&#039;&#039;&#039; is monitoring. &lt;br /&gt;
&lt;br /&gt;
Every listing allows for you to remove the page from &#039;&#039;&#039;PageSync&#039;&#039;&#039; by clicking it &#039;&#039;&#039;SYNC&#039;&#039;&#039; slider&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Edit button&#039;&#039;&#039; allows for adding tags and a description to a page. This is useful if you want to create a &#039;&#039;&#039;PageSync&#039;&#039;&#039; Share file.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot PageSync entry page.png|alt=The entry Special page for PageSync|center|thumb|600x600px|The entry Special page for PageSync]]&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/radio&amp;diff=1122</id>
		<title>DevOps:Doc/FlexForm/1.0/input/radio</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/radio&amp;diff=1122"/>
		<updated>2022-08-03T12:00:11Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
radio&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to use radio buttons&lt;br /&gt;
===Description===&lt;br /&gt;
_input elements of type radio are generally used in radio groups—collections of radio buttons describing a set of related options. Only one radio button in a given group can be selected at the same time. Radio buttons are typically rendered as small circles, which are filled or highlighted when selected.&lt;br /&gt;
===Parameters===&lt;br /&gt;
_input type=&amp;quot;radio&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 maintenance drone:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;_input type=&amp;quot;radio&amp;quot; id=&amp;quot;huey&amp;quot; name=&amp;quot;drone&amp;quot; value=&amp;quot;huey&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;_label for=&amp;quot;huey&amp;quot;&amp;gt;Huey&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;_input type=&amp;quot;radio&amp;quot; id=&amp;quot;dewey&amp;quot; name=&amp;quot;drone&amp;quot; value=&amp;quot;dewey&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;_label for=&amp;quot;dewey&amp;quot;&amp;gt;Dewey&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;_input type=&amp;quot;radio&amp;quot; id=&amp;quot;louie&amp;quot; name=&amp;quot;drone&amp;quot; value=&amp;quot;louie&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;_label for=&amp;quot;louie&amp;quot;&amp;gt;Louie&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Select a maintenance drone:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;_input type=&amp;quot;radio&amp;quot; id=&amp;quot;huey&amp;quot; name=&amp;quot;drone&amp;quot; value=&amp;quot;huey&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;_label for=&amp;quot;huey&amp;quot;&amp;gt;Huey&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;_input type=&amp;quot;radio&amp;quot; id=&amp;quot;dewey&amp;quot; name=&amp;quot;drone&amp;quot; value=&amp;quot;dewey&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;_label for=&amp;quot;dewey&amp;quot;&amp;gt;Dewey&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;_input type=&amp;quot;radio&amp;quot; id=&amp;quot;louie&amp;quot; name=&amp;quot;drone&amp;quot; value=&amp;quot;louie&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;_label for=&amp;quot;louie&amp;quot;&amp;gt;Louie&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
Radio buttons are similar to checkboxes, but with an important distinction — radio buttons are grouped into a set in which only one radio button can be selected at a time, whereas checkboxes allow you to turn single values on and off. Where multiple controls exist, radio buttons allow one to be selected out of them all, whereas checkboxes allow multiple values to be selected.&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Installing_PageSync&amp;diff=1121</id>
		<title>DevOps:Doc/PageSync/1.5/Installing PageSync</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Installing_PageSync&amp;diff=1121"/>
		<updated>2022-08-03T12:00:11Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation ==&lt;br /&gt;
Grab in instance from https://github.com/Open-CSP/PageSync.&lt;br /&gt;
&lt;br /&gt;
Create a &amp;quot;&#039;&#039;&#039;PageSync&#039;&#039;&#039;&amp;quot; folder in your Wiki extensions folder and extract the files there.&lt;br /&gt;
&lt;br /&gt;
==== Setup ====&lt;br /&gt;
&#039;&#039;&#039;PageSync&#039;&#039;&#039; needs a full path to a directory to store the files that can be synced. e.g. $IP/wspsFiles&lt;br /&gt;
&lt;br /&gt;
This can be set in the localsettings as  :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgPageSync[&#039;filePath&#039;] =  $IP . &#039;/wspsFiles&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PageSync&#039;&#039;&#039; also needs a temporary file path to a directory to handle received Share file.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgPageSync[&#039;tempFilePath&#039;] =  $IP . &#039;/wspsTemp&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure the folders have the correct rights for &#039;&#039;&#039;PageSync&#039;&#039;&#039; to store files. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;u&amp;gt;It is also a good practice to store these files outside of your html folder. The content of pages are stored as raw wikitext and although you can store synced files in sub folders hidden within the root, they are potentially visible.&amp;lt;/u&amp;gt;&amp;lt;/small&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Files from the File namespace will also be synced. &lt;br /&gt;
&lt;br /&gt;
You can define what slots you want to sync. Default value is all. If you change this value, make sure to add &amp;quot;main&amp;quot; for the main content-slot.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgPageSync[&#039;contentSlotsToBeSynced&#039;] = &amp;quot;all&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgPageSync[&#039;contentSlotsToBeSynced&#039;] = [&#039;main&#039;, &#039;my-content-slot&#039;];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Finally ====&lt;br /&gt;
Add the following line at the end of your LocalSettings.php, or at least after the above configuration setting, to enable the extension :&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;PageSync&#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Navigate to Special:Version on your wiki to verify that the extension is successfully installed.&lt;br /&gt;
&lt;br /&gt;
If you have the extension AdminLinks installed, you can find a link to PageSync there.&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/Hooks&amp;diff=1120</id>
		<title>DevOps:Doc/FlexForm/1.1/Hooks</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/Hooks&amp;diff=1120"/>
		<updated>2022-08-03T12:00:11Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FFAfterFormHandling hook&lt;br /&gt;
&lt;br /&gt;
When FlexForm&lt;br /&gt;
&lt;br /&gt;
* is initiated with an extension&lt;br /&gt;
* is finished processing a submit and just before it will set notifications and return to the user&lt;br /&gt;
&lt;br /&gt;
it (FlexForm) will first search for the extension in the extension folder. If it cannot find it, the &#039;&#039;&#039;FFAfterFormHandling&#039;&#039;&#039; Hook will run.&lt;br /&gt;
&lt;br /&gt;
Allowing people to do additional actions with the information submitted by the Form.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |&amp;lt;center&amp;gt;FFAfterFormHandling&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;center&amp;gt;Available since version 1.1.15&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |&amp;lt;center&amp;gt;Allows final actions on form values before output&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|function&lt;br /&gt;
|&amp;lt;code&amp;gt;public static function onFFAfterFormHandling( string $external, array $flexFormFields, HandleResponse &amp;amp;$responseHandler ) { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|hook&lt;br /&gt;
|&amp;lt;code&amp;gt;$wgHooks[&#039;FFAfterFormHandling&#039;][] = &#039;MyExtensionHooks::onFFAfterFormHandling&#039;;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|called from&lt;br /&gt;
|&amp;lt;code&amp;gt;FlexForm/src/Processors/Request/External.php. Method: runHook&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The string $external will hold the name of the extension that was assigned to the form.&lt;br /&gt;
&lt;br /&gt;
The array &amp;lt;code&amp;gt;$flexFormFields&amp;lt;/code&amp;gt; will be available and hold all submitted Form elements as &#039;&#039;&#039;name-&amp;gt;value&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
responseHandler function :&lt;br /&gt;
&lt;br /&gt;
on error :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$responseHandler-&amp;gt;setReturnType( HandleResponse::TYPE_ERROR );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$responseHandler-&amp;gt;setReturnStatus( &amp;quot;Your general error info&amp;quot; );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$responseHandler-&amp;gt;setReturnData( &amp;quot;Details information&amp;quot; );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on success you only have to return true. If you want to add a message that FlexForm should show, then you can do the following :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$responseHandler-&amp;gt;setReturnType( HandleResponse::TYPE_SUCCESS);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$responseHandler-&amp;gt;setReturnData( &amp;quot;Success information&amp;quot; );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Always return true;&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Installation_of_FlexForm&amp;diff=1119</id>
		<title>DevOps:Doc/FlexForm/1.0/Installation of FlexForm</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Installation_of_FlexForm&amp;diff=1119"/>
		<updated>2022-08-03T12:00:10Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation ==&lt;br /&gt;
Grab in instance from https://github.com/WikibaseSolutions/FlexForm.&lt;br /&gt;
&lt;br /&gt;
Create a &amp;quot;&#039;&#039;&#039;FlexForm&#039;&#039;&#039;&amp;quot; folder in your Wiki extensions folder and extract the files there.&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 Localsettings.php&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgFlexFormConfig[&#039;secure&#039;] = true; //( default is true ). Will render form that make no sense when inspected in the browser&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;sec_key&#039;] = &amp;quot;&amp;quot;; // 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;
&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_interval&#039;] = 30000; // defaults to 3 minutes.&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_after_change&#039;] = 3000; // defaults to 3 seconds after last change&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_on&#039;] = &#039;Autosave on&#039;; // text on the autosave button to toggle on&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_off&#039;] = &#039;Autosave off&#039;; // text on the autosave button to toggle off&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;FlexFormDefaultTheme&#039;] = &amp;quot;plain&amp;quot;; // Currently the only form&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_site_key&#039;] = &amp;quot;&amp;quot;; // reCaptcha site key&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;rc_secret_key&#039;] = &amp;quot;&amp;quot;; // reCaptcha secret key&lt;br /&gt;
&lt;br /&gt;
$wgFlexFormConfig[&#039;file_temp_path&#039;] = &amp;quot;&amp;quot;; // Where to store images temporarily that need to be format converted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Finally ====&lt;br /&gt;
Add the following line at the end of your LocalSettings.php to enable the extension :&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;
==== Notification/Messages ====&lt;br /&gt;
&#039;&#039;&#039;FlexForm&#039;&#039;&#039; has a notification system build in. This is used to show possible errors or success / custom  messages.&lt;br /&gt;
To enable this.. add to your header page :&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form showmessages /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/token&amp;diff=1118</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=1118"/>
		<updated>2022-08-03T12:00:10Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&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;allowtags&#039;&#039;&#039; = (no value) Allow to create values that do not exist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;allowsort&#039;&#039;&#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; = allow user to clear his selection (for json ajax calls)&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;
&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;_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;/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;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>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/token&amp;diff=1117</id>
		<title>DevOps:Doc/FlexForm/1.0/token</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/token&amp;diff=1117"/>
		<updated>2022-08-03T12:00:10Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&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;allowtags&#039;&#039;&#039; = (no value) Allow to create values that do not exist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;allowclear&#039;&#039;&#039; = allow user to clear his selection (for json ajax calls)&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;
&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;_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;/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 allowsort&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>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/submit&amp;diff=1116</id>
		<title>DevOps:Doc/FlexForm/1.0/input/submit</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/submit&amp;diff=1116"/>
		<updated>2022-08-03T12:00:10Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
submit&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to submit a form&lt;br /&gt;
===Description===&lt;br /&gt;
To have a form send to the handler it must have a submit button.&lt;br /&gt;
&lt;br /&gt;
_input elements of type &amp;quot;&#039;&#039;&#039;submit&#039;&#039;&#039;&amp;quot; are rendered as buttons. When the click event occurs (typically because the user clicked the button), the user agent attempts to submit the form to the server. &lt;br /&gt;
&lt;br /&gt;
FlexForm has several ways to submit form. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1&#039;&#039;&#039; is the traditional way&lt;br /&gt;
&lt;br /&gt;
A user clicks the submit button and the page refreshes or, depending on the form settings, brings the user to e.g. a thank you page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2&#039;&#039;&#039; is submitting a Form using Ajax&lt;br /&gt;
&lt;br /&gt;
Meaning the user will stay on the page without the need to reload a page. This can be very handy if a page has several FlexForms that do various tasks.&lt;br /&gt;
===Parameters===&lt;br /&gt;
_input type=&amp;quot;submit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
All other arguments like &amp;quot;class&amp;quot;  &amp;quot;id&amp;quot; etc are allowed&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Example 1&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; value=&amp;quot;Send Request&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Example 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;submit&amp;quot; value=&amp;quot;Send Request&amp;quot; mwidentifier=&amp;quot;ajax&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
When a user clicks on a submit button. FlexForm disables the button (to prevent clicking more than once), will add a class of &amp;quot;wsform-submitting&amp;quot; to the form while it is being submitted and will add a class &amp;quot;wsform-submitted&amp;quot; when it is done (this last class is only relevant for ajax submit).&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/submit&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/datetime-local&amp;diff=1115</id>
		<title>DevOps:Doc/FlexForm/1.0/input/datetime-local</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/datetime-local&amp;diff=1115"/>
		<updated>2022-08-03T12:00:09Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
datetime-local&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a date and time input field &lt;br /&gt;
===Description===&lt;br /&gt;
_input elements of type datetime-local create input controls that let the user easily enter both a date and a time, including the year, month, and day as well as the time in hours and minutes.&lt;br /&gt;
&lt;br /&gt;
The format of the date and time value used by this input type is YYYY-MM-DDThh:mm.&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;datetime-local&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;_label for=&amp;quot;meeting-time&amp;quot;&amp;gt;Choose a time for your appointment:&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;datetime-local&amp;quot; id=&amp;quot;meeting-time&amp;quot;&lt;br /&gt;
       name=&amp;quot;meeting-time&amp;quot; value=&amp;quot;2022-03-01T10:00&amp;quot;&lt;br /&gt;
  min=&amp;quot;2022-03-01T10:00&amp;quot; max=&amp;quot;2022-03-01T18:00&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;meeting-time&amp;quot;&amp;gt;Choose a time for your appointment:&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;datetime-local&amp;quot; id=&amp;quot;meeting-time&amp;quot;&lt;br /&gt;
       name=&amp;quot;meeting-time&amp;quot; value=&amp;quot;2022-03-01T10:00&amp;quot;&lt;br /&gt;
  min=&amp;quot;2022-03-01T10:00&amp;quot; max=&amp;quot;2022-03-01T18:00&amp;quot; /&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
The displayed date and time formats differ from the actual value; the displayed date and time are formatted according to the user&#039;s locale as reported by their operating system, whereas the date/time value is always formatted YYYY-MM-DDThh:mm.&lt;br /&gt;
&lt;br /&gt;
For more information on this input type, see the link below.&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/legend&amp;diff=1114</id>
		<title>DevOps:Doc/FlexForm/1.0/legend</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/legend&amp;diff=1114"/>
		<updated>2022-08-03T12:00:09Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
legend&lt;br /&gt;
===Type===&lt;br /&gt;
legend&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Title for a _fieldset&lt;br /&gt;
===Description===&lt;br /&gt;
_legend is always used in combination with _fieldset. It is the title of a fieldset.&lt;br /&gt;
===Parameters===&lt;br /&gt;
_legend&lt;br /&gt;
&lt;br /&gt;
The title comes between the beginning and end tags (see example).&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;&amp;gt;&lt;br /&gt;
	&amp;lt;_fieldset&amp;gt;&lt;br /&gt;
		&amp;lt;_legend class=&amp;quot;legend-example&amp;quot;&amp;gt;Choose your favorite monster&amp;lt;/_legend&amp;gt;&lt;br /&gt;
		&amp;lt;_input class=&amp;quot;legend-example&amp;quot; type=&amp;quot;radio&amp;quot; id=&amp;quot;kraken&amp;quot; name=&amp;quot;monster&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;_label for=&amp;quot;kraken&amp;quot;&amp;gt;Kraken&amp;lt;/_label&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;_input class=&amp;quot;legend-example&amp;quot; type=&amp;quot;radio&amp;quot; id=&amp;quot;sasquatch&amp;quot; name=&amp;quot;monster&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;_label for=&amp;quot;sasquatch&amp;quot;&amp;gt;Sasquatch&amp;lt;/_label&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;_input class=&amp;quot;legend-example&amp;quot; type=&amp;quot;radio&amp;quot; id=&amp;quot;mothman&amp;quot; name=&amp;quot;monster&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;_label for=&amp;quot;mothman&amp;quot;&amp;gt;Mothman&amp;lt;/_label&amp;gt;&lt;br /&gt;
	&amp;lt;/_fieldset&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;&amp;gt;&lt;br /&gt;
&amp;lt;_fieldset&amp;gt;&lt;br /&gt;
&amp;lt;_legend class=&amp;quot;legend-example&amp;quot;&amp;gt;Choose your favorite monster&amp;lt;/_legend&amp;gt;&lt;br /&gt;
&amp;lt;_input class=&amp;quot;legend-example&amp;quot; type=&amp;quot;radio&amp;quot; id=&amp;quot;kraken&amp;quot; name=&amp;quot;monster&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;kraken&amp;quot;&amp;gt;Kraken&amp;lt;/_label&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;_input class=&amp;quot;legend-example&amp;quot; type=&amp;quot;radio&amp;quot; id=&amp;quot;sasquatch&amp;quot; name=&amp;quot;monster&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;sasquatch&amp;quot;&amp;gt;Sasquatch&amp;lt;/_label&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;_input class=&amp;quot;legend-example&amp;quot; type=&amp;quot;radio&amp;quot; id=&amp;quot;mothman&amp;quot; name=&amp;quot;monster&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;mothman&amp;quot;&amp;gt;Mothman&amp;lt;/_label&amp;gt;&lt;br /&gt;
&amp;lt;/_fieldset&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/edit&amp;diff=1113</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=1113"/>
		<updated>2022-08-03T12:00:09Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&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&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;
===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 singe 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;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/createuser&amp;diff=1112</id>
		<title>DevOps:Doc/FlexForm/1.1/createuser</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/createuser&amp;diff=1112"/>
		<updated>2022-08-03T12:00:09Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
_createuser&lt;br /&gt;
===Type===&lt;br /&gt;
_createuser&lt;br /&gt;
===Synopsis===&lt;br /&gt;
Using a form to register a new user in the Wiki&lt;br /&gt;
===Description===&lt;br /&gt;
_createuser is very powerfull and needs special attention. This option can create a new user in the Wiki. It will create a random password and send the user details to the users email address. A confirm emailaddress email will also be send.&lt;br /&gt;
&lt;br /&gt;
This functionality is disabled by default and can be enabled by setting the &amp;lt;code&amp;gt;$wgFlexFormConfig[&#039;can_create_user&#039;] = true;&amp;lt;/code&amp;gt; , see [[DevOps:Doc/FlexForm/1.0/Installation_of_FlexForm]].&lt;br /&gt;
===Parameters===&lt;br /&gt;
&#039;&#039;&#039;_createuser&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;username&#039;&#039;&#039; = [mandatory] The new username to be registered&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;email&#039;&#039;&#039; = [mandatory] The email address of the new user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;realname&#039;&#039;&#039; = Optional the real name of the user&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
Create a new user with username adje&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;addToWiki&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;_createuser username=&amp;quot;adje&amp;quot; email=&amp;quot;ad@wikibase.nl&amp;quot; realname=&amp;quot;Ad Strack van Schijndel&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;_input type=&amp;quot;submit&amp;quot; value=&amp;quot;create Adje&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;
Make sure that when using this powerful function to have the FlexForm setting &amp;quot;secure&amp;quot; to true for more security. Furthermore, take care where you show such a form.&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/image&amp;diff=1110</id>
		<title>DevOps:Doc/FlexForm/1.0/input/image</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/image&amp;diff=1110"/>
		<updated>2022-08-03T12:00:09Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
image&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
A graphiocal submit button&lt;br /&gt;
===Description===&lt;br /&gt;
_input elements of type image are used to create graphical submit buttons, i.e. submit buttons that take the form of an image rather than text.&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;image&amp;quot;&lt;br /&gt;
&lt;br /&gt;
All other valid parameters for an input field are valid. Additionally you can use min, max, step and list. &lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_fieldset style=&amp;quot;border:1px solid #eee; padding:15px;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;_legend&amp;gt;Sign in&amp;lt;/_legend&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Sign in to your account:&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;_label for=&amp;quot;userId&amp;quot;&amp;gt;User ID&amp;lt;/_label&amp;gt;&lt;br /&gt;
    &amp;lt;_input type=&amp;quot;text&amp;quot; id=&amp;quot;userId&amp;quot; name=&amp;quot;userId&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;_input type=&amp;quot;image&amp;quot; id=&amp;quot;image&amp;quot; alt=&amp;quot;Login&amp;quot;&lt;br /&gt;
  src=&amp;quot;//{{filepath:Login-btn-example.png|nowiki}}&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/_fieldset&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_fieldset style=&amp;quot;border:1px solid #eee; padding:15px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_legend&amp;gt;Sign in&amp;lt;/_legend&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Sign in to your account:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;_label for=&amp;quot;userId&amp;quot;&amp;gt;User ID&amp;lt;/_label&amp;gt;&lt;br /&gt;
  &amp;lt;_input type=&amp;quot;text&amp;quot; id=&amp;quot;userId&amp;quot; name=&amp;quot;userId&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;image&amp;quot; id=&amp;quot;image&amp;quot; alt=&amp;quot;Login&amp;quot;&lt;br /&gt;
  src=&amp;quot;{{filepath:Login-btn-example.png|nowiki}}&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/_fieldset&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/image&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/number&amp;diff=1109</id>
		<title>DevOps:Doc/FlexForm/1.0/input/number</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/number&amp;diff=1109"/>
		<updated>2022-08-03T12:00:08Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&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;
===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;
===Note===&lt;br /&gt;
 &lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/button&amp;diff=1108</id>
		<title>DevOps:Doc/FlexForm/1.0/input/button</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/button&amp;diff=1108"/>
		<updated>2022-08-03T12:00:08Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
button&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a simple push button&lt;br /&gt;
===Description===&lt;br /&gt;
Elements of type button are rendered as simple push buttons, which can be programmed to control custom functionality anywhere on a webpage as required when assigned an event handler function. &lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;button&amp;quot;&lt;br /&gt;
&lt;br /&gt;
All other valid parameters for an input field are valid&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specific parameters.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For there exact meaning, follow the link in the Link section below&lt;br /&gt;
&lt;br /&gt;
* autofocus&lt;br /&gt;
* autocomplete&lt;br /&gt;
* disabled&lt;br /&gt;
* form&lt;br /&gt;
* formaction&lt;br /&gt;
* formenctype&lt;br /&gt;
* &amp;lt;s&amp;gt;formmethod&amp;lt;/s&amp;gt; -- not supported by FlexForm&lt;br /&gt;
* formnovalidate&lt;br /&gt;
* formtarget&lt;br /&gt;
* name&lt;br /&gt;
* type - in FlexForm this argument is buttontype (e.g. _input type=&amp;quot;button&amp;quot; buttontype=&amp;quot;submit&amp;quot;)&lt;br /&gt;
* value&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;button&amp;quot;&amp;gt;Click me&amp;lt;/_input&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &amp;lt;_input type=&amp;quot;button&amp;quot;&amp;gt;Click me&amp;lt;/_input&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
The FlexForm button renders a &#039;&#039;&#039;&amp;lt;button&amp;gt;&#039;&#039;&#039; HTML attribute and &#039;&#039;&#039;not&#039;&#039;&#039; a &#039;&#039;&#039;input type=&amp;quot;button&amp;quot;&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
This will give you more freedom and is actually preferred. See the Link in the Links section for all the options.&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/month&amp;diff=1107</id>
		<title>DevOps:Doc/FlexForm/1.0/input/month</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/month&amp;diff=1107"/>
		<updated>2022-08-03T12:00:08Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
month&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a month/year input field &lt;br /&gt;
===Description===&lt;br /&gt;
&#039;&#039;&#039;_input&#039;&#039;&#039; elements of type &#039;&#039;&#039;month&#039;&#039;&#039; create input fields that let the user enter a month and year allowing a month and year to be easily entered. The value is a string whose value is in the format &amp;quot;YYYY-MM&amp;quot;, where YYYY is the four-digit year and MM is the month number. &lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;month&amp;quot;&lt;br /&gt;
&lt;br /&gt;
All other valid parameters for an input field are valid. Additionally you can use min, max, step and list. &lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;bday-month&amp;quot;&amp;gt;What month were you born in?&amp;lt;/_label&amp;gt;&lt;br /&gt;
  &amp;lt;_input id=&amp;quot;bday-month&amp;quot; type=&amp;quot;month&amp;quot; name=&amp;quot;bday-month&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_label for=&amp;quot;bday-month&amp;quot;&amp;gt;What month were you born in?&amp;lt;/_label&amp;gt;&lt;br /&gt;
  &amp;lt;_input id=&amp;quot;bday-month&amp;quot; type=&amp;quot;month&amp;quot; name=&amp;quot;bday-month&amp;quot; /&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
When not a correct month is entered, the browser will fallback to a text-input field. Read the link below how to handle these situations. &lt;br /&gt;
&lt;br /&gt;
Also note that not all browsers support the month attribute.&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/month&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/fieldset&amp;diff=1106</id>
		<title>DevOps:Doc/FlexForm/1.0/fieldset</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/fieldset&amp;diff=1106"/>
		<updated>2022-08-03T12:00:08Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
fieldset&lt;br /&gt;
===Type===&lt;br /&gt;
fieldset&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to group certain inputfields together&lt;br /&gt;
===Description===&lt;br /&gt;
A _fieldset can visually group certain form elements together. In other word you can group questions related to each other.&lt;br /&gt;
&lt;br /&gt;
A _fieldset is useally used in combination with _legend, but not necessary.&lt;br /&gt;
===Parameters===&lt;br /&gt;
_fieldset&lt;br /&gt;
&lt;br /&gt;
Can hold all styling HTML5 arguments. It also has a form tag that refers to the form&#039;s id when a fieldset is not nested within a form.&lt;br /&gt;
&lt;br /&gt;
You can also disable a fieldset, essentially disabling all _input fields inside a _fieldset.&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;&amp;gt;&lt;br /&gt;
  &amp;lt;_fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;_legend&amp;gt;Simple fieldset&amp;lt;/_legend&amp;gt;&lt;br /&gt;
    &amp;lt;_input type=&amp;quot;radio&amp;quot; id=&amp;quot;radio&amp;quot; /&amp;gt;&amp;lt;_label for=&amp;quot;radio&amp;quot;&amp;gt;Spirit of radio&amp;lt;/_label&amp;gt;&lt;br /&gt;
  &amp;lt;/_fieldset&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;&amp;gt;&lt;br /&gt;
  &amp;lt;_fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;_legend&amp;gt;Simple fieldset&amp;lt;/_legend&amp;gt;&lt;br /&gt;
    &amp;lt;_input type=&amp;quot;radio&amp;quot; id=&amp;quot;radio&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;_label for=&amp;quot;radio&amp;quot;&amp;gt;Spirit of radio&amp;lt;/_label&amp;gt;&lt;br /&gt;
  &amp;lt;/_fieldset&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Note===&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/date&amp;diff=1105</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=1105"/>
		<updated>2022-08-03T12:00:07Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&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 not a correct date is entered, the browser will fallback to a text-input field. Read the link below how to handle these situations.&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>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Getting_started&amp;diff=1104</id>
		<title>DevOps:Doc/FlexForm/1.0/Getting started</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/Getting_started&amp;diff=1104"/>
		<updated>2022-08-03T12:00:07Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;FlexForm&#039;&#039;&#039; is a parser function. You can use it on any page and in any namespace. By default it will render plain HTML5 forms with no styling. To bring forms to life and make them attractive, you will need to add styling to a &#039;&#039;&#039;FlexForm&#039;&#039;&#039; or render using themes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FlexForm&#039;&#039;&#039; syntax is much like creating a standard form in HTML5, so if you are familiar with creating HTML5 forms, you should have no problems with &#039;&#039;&#039;FlexForm&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you are not familiar with HTML Forms, then [https://www.w3schools.com/html/html_forms.asp this link to W3schools] might be a good start.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
This is a simple HTML5 form :&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form&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;input type=&amp;quot;submit&amp;quot; value=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;This is the same form, but now build with &#039;&#039;&#039;FlexForm&#039;&#039;&#039; :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_form action=&amp;quot;get&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;_input type=&amp;quot;submit&amp;quot; value=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/_form&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/hidden&amp;diff=1103</id>
		<title>DevOps:Doc/FlexForm/1.0/input/hidden</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/hidden&amp;diff=1103"/>
		<updated>2022-08-03T12:00:07Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
hidden&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a hidden input field &lt;br /&gt;
===Description===&lt;br /&gt;
_input elements of type hidden let web developers include data that cannot be seen or modified by users when a form is submitted. For example, the ID of the content that is currently being ordered or edited, or a unique security token. Hidden inputs are completely invisible in the rendered page, and there is no way to make it visible in the page&#039;s content.&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;hidden&amp;quot;&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;hidden&amp;quot; name=&amp;quot;token&amp;quot; value=&amp;quot;123231321&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
While the value isn&#039;t displayed to the user in the page&#039;s content, it is visible—and can be edited—using any browser&#039;s developer tools or &amp;quot;View Source&amp;quot; functionality. If you want to create a secure field, then use _input type=&amp;quot;secure&amp;quot;.&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/hidden&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/range&amp;diff=1102</id>
		<title>DevOps:Doc/FlexForm/1.0/input/range</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/range&amp;diff=1102"/>
		<updated>2022-08-03T12:00:07Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
range&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a input slider&lt;br /&gt;
===Description===&lt;br /&gt;
Used to get a value between x and y, presented to the user as a slider.&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;range&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Other options :&lt;br /&gt;
autocomplete&lt;br /&gt;
list&lt;br /&gt;
min&lt;br /&gt;
max&lt;br /&gt;
step&lt;br /&gt;
value&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;range&amp;quot; min=&amp;quot;5&amp;quot; max=&amp;quot;10&amp;quot; step=&amp;quot;0.01&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &amp;lt;_input type=&amp;quot;range&amp;quot; min=&amp;quot;5&amp;quot; max=&amp;quot;10&amp;quot; step=&amp;quot;0.01&amp;quot; /&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
By default, the granularity, is 1, meaning that the value is always an integer. You can change the step attribute to control the granularity. For example, If you need a value between 5 and 10, accurate to two decimal places, you should set the value of step to 0.01.&lt;br /&gt;
&lt;br /&gt;
If you want to accept any value regardless of how many decimal places it extends to, you can specify a value of &amp;quot;any&amp;quot; for the step attribute.&lt;br /&gt;
===Links===&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Sync_custom_query&amp;diff=1101</id>
		<title>DevOps:Doc/PageSync/1.5/Sync custom query</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Sync_custom_query&amp;diff=1101"/>
		<updated>2022-08-03T12:00:07Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Screenshot PageSync custom query main.png|alt=Screenshot PageSync custom Ask query|thumb|600x600px|Screenshot PageSync custom Ask query]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have Semantic MediaWiki installed you can quickly add pages to &#039;&#039;&#039;PageSync&#039;&#039;&#039; using a Semantic Ask Query.&lt;br /&gt;
&lt;br /&gt;
From the Special page you can click on SYNC CUSTOM QUERY. It will then give you the option to enter a Semantic Ask Query.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you have entered a Semantic Ask Query, you will get an overview of all pages that apply to the query. You can individually add them to &#039;&#039;&#039;PageSync&#039;&#039;&#039; by clicking the Slider on the right or use the big &amp;quot;&amp;quot; button to add them all at once. When using the button you can also Tag the pages you are adding. This can be handy if you want to Share pages or files.&lt;br /&gt;
[[File:Screenshot PageSync Custom Query 2.png|alt=Screenshot PageSync Custom Query result|center|thumb|600x600px|Screenshot PageSync Custom Query result]]&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/color&amp;diff=1100</id>
		<title>DevOps:Doc/FlexForm/1.0/input/color</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/color&amp;diff=1100"/>
		<updated>2022-08-03T12:00:06Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
color&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a color input field&lt;br /&gt;
===Description===&lt;br /&gt;
Elements of type &amp;quot;color&amp;quot; provide a user interface element that lets a user specify a color, either by using a visual color picker interface or by entering the color into a text field in &amp;quot;#rrggbb&amp;quot; hexadecimal format. Only simple colors (with no alpha channel) are allowed.&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;color&amp;quot;&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;color&amp;quot; value=&amp;quot;#ff0000&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &amp;lt;_input type=&amp;quot;color&amp;quot; value=&amp;quot;#ff0000&amp;quot; /&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
When adding a standard value to a color field that is not a solid color or a number in HEX notation, the result will always be #000000 (in other words: black)&lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/color&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Backups&amp;diff=1099</id>
		<title>DevOps:Doc/PageSync/1.5/Backups</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Backups&amp;diff=1099"/>
		<updated>2022-08-03T12:00:06Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;From the Special page for PageSync there is a tab called &#039;&#039;&#039;BACKUPS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
There you can take a snapshot of all current pages and files that are monitored by PageSync.&lt;br /&gt;
&lt;br /&gt;
Such a backup file can be restored at a later time to set all monitored pages back to that specific snapshot.&lt;br /&gt;
&lt;br /&gt;
It is even possible to share a backup file with other wiki&#039;s and let it be restored there. They will be added to &#039;&#039;&#039;PageSync&#039;&#039;&#039; automatically and be monitored after restoring.&lt;br /&gt;
&lt;br /&gt;
Be careful when restoring a backup as it will delete all the files &#039;&#039;&#039;PageSync&#039;&#039;&#039; has created (it will not remove any pages or files in the wiki! Only the files &#039;&#039;&#039;PageSync&#039;&#039;&#039; created.) and build the structure from the backup-file.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot PageSync Backup.png|alt=PageSync Special page Backup overview|center|thumb|600x600px|&#039;&#039;PageSync Special page Backup overview&#039;&#039;]]&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/secure&amp;diff=1098</id>
		<title>DevOps:Doc/FlexForm/1.0/input/secure</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/secure&amp;diff=1098"/>
		<updated>2022-08-03T12:00:06Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
secure&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render a hidden input field that is secure&lt;br /&gt;
===Description===&lt;br /&gt;
_input elements of type secure are similar to type hidden. The difference is that a secure field is not readable by a user and a form will fail if it gets altered using Browsers developer tools&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;secure&amp;quot;&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;secure&amp;quot; name=&amp;quot;token&amp;quot; value=&amp;quot;123231321&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will render something similar to &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input name=&amp;quot;2425fb14579653aef53179a2849e4593ES5rgMk=&amp;quot; value=&amp;quot;7cade404c7d02c02a3087e4fd6954caby0QljHbAPys0&amp;quot; type=&amp;quot;hidden&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
When using action=&amp;quot;get&amp;quot; a secure field will not be returned in the url&lt;br /&gt;
===Links===&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/password&amp;diff=1097</id>
		<title>DevOps:Doc/FlexForm/1.0/input/password</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/password&amp;diff=1097"/>
		<updated>2022-08-03T12:00:06Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
password&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to use the password field for input&lt;br /&gt;
===Description===&lt;br /&gt;
When using the password field, people cannot see what they are typing.&lt;br /&gt;
===Parameters===&lt;br /&gt;
_input type=&amp;quot;password&amp;quot;&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;password&amp;quot; name=&amp;quot;pass&amp;quot; placeholder=&amp;quot;Type your password&amp;quot; required=&amp;quot;required&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;password&amp;quot; name=&amp;quot;pass&amp;quot; placeholder=&amp;quot;Type your password&amp;quot; required=&amp;quot;required&amp;quot; /&amp;gt; &lt;br /&gt;
===Note===&lt;br /&gt;
All attributes for a password input field are supported (like in this case : name, placeholder and required). Obviously never use form action=&amp;quot;GET&amp;quot; when using a password field, always use POST. &lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/email&amp;diff=1096</id>
		<title>DevOps:Doc/FlexForm/1.0/input/email</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/email&amp;diff=1096"/>
		<updated>2022-08-03T12:00:06Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
email&lt;br /&gt;
===Type===&lt;br /&gt;
_input&lt;br /&gt;
===Synopsis===&lt;br /&gt;
How to render an email input field &lt;br /&gt;
===Description===&lt;br /&gt;
When rendering an email input field, the browser will check if it is a valid email address.&lt;br /&gt;
===Parameters===&lt;br /&gt;
type=&amp;quot;email&amp;quot;&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;email&amp;quot; name=&amp;quot;mail&amp;quot; placeholder=&amp;quot;Type your email address&amp;quot; required=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;email&amp;quot; name=&amp;quot;mail&amp;quot; placeholder=&amp;quot;Type your email address&amp;quot; required=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
===Note===&lt;br /&gt;
All attributes for an email input field are supported (like in this case : name, placeholder and required.) &lt;br /&gt;
===Links===&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Maintenance_script&amp;diff=1095</id>
		<title>DevOps:Doc/PageSync/1.5/Maintenance script</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/PageSync/1.5/Maintenance_script&amp;diff=1095"/>
		<updated>2022-08-03T12:00:05Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PageSync also comes with a maintenance script, in order to import previous exported pages.&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
; summary&lt;br /&gt;
: Additional text that will be added to the files imported History.&lt;br /&gt;
; user&lt;br /&gt;
: Your username. Will be added to the import log. [mandatory]&lt;br /&gt;
; rebuild-index&lt;br /&gt;
: Rebuild the index file from existing files in export folder&lt;br /&gt;
; force-rebuild-index&lt;br /&gt;
: Used with &#039;rebuild-index&#039; to suppress confirmation&lt;br /&gt;
&lt;br /&gt;
=== ShareFile import options ===&lt;br /&gt;
; install-shared-file&lt;br /&gt;
: Url or path on the server to a PageSync share file&lt;br /&gt;
; install-shared-file-from-temp&lt;br /&gt;
: Name of the PageSync Share file already in the PageSync TempPath&lt;br /&gt;
; silent&lt;br /&gt;
: Will show no output in the terminal until it is finished.&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/API&amp;diff=1093</id>
		<title>DevOps:Doc/FlexForm/1.1/API</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.1/API&amp;diff=1093"/>
		<updated>2022-08-03T12:00:05Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Name===&lt;br /&gt;
API&lt;br /&gt;
===Type===&lt;br /&gt;
API&lt;br /&gt;
===Synopsis===&lt;br /&gt;
FlexForm API functions&lt;br /&gt;
===Description===&lt;br /&gt;
FlexForm has some build-in API functions.&lt;br /&gt;
&lt;br /&gt;
Have a look at one of the subpages for more information.&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/create-or-edit-a-page&amp;diff=1092</id>
		<title>DevOps:Doc/FlexForm/create-or-edit-a-page</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/create-or-edit-a-page&amp;diff=1092"/>
		<updated>2022-08-03T12:00:05Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Creating or editing a page is done using &#039;&#039;&#039;_create&#039;&#039;&#039; or &#039;&#039;&#039;_edit&#039;&#039;&#039; in a Form.&lt;br /&gt;
&lt;br /&gt;
Have a look at the Documentation for more information.&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/textarea&amp;diff=1091</id>
		<title>DevOps:Doc/FlexForm/1.0/input/textarea</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=DevOps:Doc/FlexForm/1.0/input/textarea&amp;diff=1091"/>
		<updated>2022-08-03T12:00:05Z</updated>

		<summary type="html">&lt;p&gt;Slot migration: Slot migration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;_input type=&amp;quot;textarea&amp;quot; name=&amp;quot;Comment&amp;quot;&amp;gt;...&amp;lt;/_input&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Slot migration</name></author>
	</entry>
</feed>