templates/SelectMonth.html.twig
diff --git a/.doc/UI/build/html/_images/MVC.png b/.doc/UI/build/html/_images/MVC.png
index ebebef42e8..042f6a4933 100644
Binary files a/.doc/UI/build/html/_images/MVC.png and b/.doc/UI/build/html/_images/MVC.png differ
diff --git a/.doc/UI/build/html/_sources/TwigBase/TwigBase.rst.txt b/.doc/UI/build/html/_sources/TwigBase/TwigBase.rst.txt
index 30f8e24ab1..7edca0415d 100644
--- a/.doc/UI/build/html/_sources/TwigBase/TwigBase.rst.txt
+++ b/.doc/UI/build/html/_sources/TwigBase/TwigBase.rst.txt
@@ -4,6 +4,26 @@
Twig Base Presentation
======================
+This feature is intended to help extension creators to design forms in a *modern* way.
+
The **Twig Base** feature is based on MVC structure:
-.. image:: MVC.png
\ No newline at end of file
+.. image:: MVC.png
+
+When creating an extension following this structure, some parts have to be done:
+
+:Model:
+ Optional part to define the specific data model for the extension
+
+:Service:
+ Recommended part to produce the data to be displayed
+
+:Controller:
+ Mandatory part to gather the data from the *Service* and display using the *View*.
+ The *Controller* contains an automatic routing mechanism to be selected by the *operation* parameter.
+
+:View:
+ Mandatory part to display the data given by the *Controller*
+
+:End point:
+ Mandatory part receiving the request and calling the *Controller*
\ No newline at end of file
diff --git a/.doc/UI/build/html/_sources/TwigBaseTuto/Step2/Step2.rst.txt b/.doc/UI/build/html/_sources/TwigBaseTuto/Step2/Step2.rst.txt
index 5fe80cae7f..e5344be20a 100644
--- a/.doc/UI/build/html/_sources/TwigBaseTuto/Step2/Step2.rst.txt
+++ b/.doc/UI/build/html/_sources/TwigBaseTuto/Step2/Step2.rst.txt
@@ -72,7 +72,7 @@ Then create landing page for your module ``my-module/index.php``
true,
+
+ // ...
+ );
+
+
+
diff --git a/.doc/UI/build/html/_sources/TwigBaseTuto/Step4/Step4.rst.txt b/.doc/UI/build/html/_sources/TwigBaseTuto/Step4/Step4.rst.txt
index 2460ba5ad9..f3c055168c 100644
--- a/.doc/UI/build/html/_sources/TwigBaseTuto/Step4/Step4.rst.txt
+++ b/.doc/UI/build/html/_sources/TwigBaseTuto/Step4/Step4.rst.txt
@@ -56,6 +56,8 @@ Now add the operation in the controller:
}
}
+*Disclaimer: The code is for tutorial only, don't use it in production as no check is done on the entries*
+
The corresponding template must be created ``templates/SelectMonth.html.twig``
.. code-block:: twig
diff --git a/.doc/UI/build/html/searchindex.js b/.doc/UI/build/html/searchindex.js
index e6d314d4ff..ff69b15d96 100644
--- a/.doc/UI/build/html/searchindex.js
+++ b/.doc/UI/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["TwigBase/TwigBase","TwigBaseReference/TwigBaseReference","TwigBaseTuto/Step1/Step1","TwigBaseTuto/Step2/Step2","TwigBaseTuto/Step3/Step3","TwigBaseTuto/Step4/Step4","TwigBaseTuto/TwigBaseTuto","generated/Component/Alert/Alert","generated/Component/Button/Button","generated/Component/ButtonGroup/ButtonGroup","generated/Component/CollapsibleSection/CollapsibleSection","generated/Component/Component","generated/Component/DataTable/DataTable","generated/Component/Field/Field","generated/Component/FieldBadge/FieldBadge","generated/Component/FieldSet/FieldSet","generated/Component/Form/Form","generated/Component/Input/FileSelect/FileSelect","generated/Component/Input/Input","generated/Component/Input/Select/Select","generated/Component/Input/Select/SelectOption","generated/Component/Panel/Panel","generated/Component/Spinner/Spinner","generated/Component/Title/Title","generated/Component/Toolbar/Toolbar","generated/Component/Toolbar/ToolbarSpacer/ToolbarSpacer","generated/Layout/Layout","generated/Layout/MultiColumn/Column/Column","generated/Layout/MultiColumn/MultiColumn","generated/Layout/UIContentBlock","index","manual/Component/Alert/AlertAdditionalDescription","manual/Component/Alert/AlertFooter","manual/Component/Button/ButtonAdditionalDescription","manual/Component/Button/ButtonFooter","manual/Component/ButtonGroup/ButtonGroupAdditionalDescription","manual/Component/ButtonGroup/ButtonGroupFooter","manual/Component/CollapsibleSection/CollapsibleSectionAdditionalDescription","manual/Component/CollapsibleSection/CollapsibleSectionFooter","manual/Component/DataTable/DataTableAdditionalDescription","manual/Component/DataTable/DataTableFooter","manual/Component/Field/FieldAdditionalDescription","manual/Component/Field/FieldFooter","manual/Component/FieldBadge/FieldBadgeAdditionalDescription","manual/Component/FieldBadge/FieldBadgeFooter","manual/Component/FieldSet/FieldSetAdditionalDescription","manual/Component/FieldSet/FieldSetFooter","manual/Component/Form/FormAdditionalDescription","manual/Component/Form/FormFooter","manual/Component/Input/FileSelect/FileSelectAdditionalDescription","manual/Component/Input/FileSelect/FileSelectFooter","manual/Component/Input/InputAdditionalDescription","manual/Component/Input/InputFooter","manual/Component/Input/Select/SelectAdditionalDescription","manual/Component/Input/Select/SelectFooter","manual/Component/Input/Select/SelectOptionAdditionalDescription","manual/Component/Input/Select/SelectOptionFooter","manual/Component/Panel/PanelAdditionalDescription","manual/Component/Panel/PanelFooter","manual/Component/Spinner/SpinnerAdditionalDescription","manual/Component/Spinner/SpinnerFooter","manual/Component/Title/TitleAdditionalDescription","manual/Component/Title/TitleFooter","manual/Component/Toolbar/ToolbarAdditionalDescription","manual/Component/Toolbar/ToolbarFooter","manual/Component/Toolbar/ToolbarSpacer/ToolbarSpacerAdditionalDescription","manual/Component/Toolbar/ToolbarSpacer/ToolbarSpacerFooter","manual/Layout/MultiColumn/Column/ColumnAdditionalDescription","manual/Layout/MultiColumn/Column/ColumnFooter","manual/Layout/MultiColumn/MultiColumnAdditionalDescription","manual/Layout/MultiColumn/MultiColumnFooter","manual/Layout/UIContentBlockAdditionalDescription","manual/Layout/UIContentBlockFooter"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["TwigBase\\TwigBase.rst","TwigBaseReference\\TwigBaseReference.rst","TwigBaseTuto\\Step1\\Step1.rst","TwigBaseTuto\\Step2\\Step2.rst","TwigBaseTuto\\Step3\\Step3.rst","TwigBaseTuto\\Step4\\Step4.rst","TwigBaseTuto\\TwigBaseTuto.rst","generated\\Component\\Alert\\Alert.rst","generated\\Component\\Button\\Button.rst","generated\\Component\\ButtonGroup\\ButtonGroup.rst","generated\\Component\\CollapsibleSection\\CollapsibleSection.rst","generated\\Component\\Component.rst","generated\\Component\\DataTable\\DataTable.rst","generated\\Component\\Field\\Field.rst","generated\\Component\\FieldBadge\\FieldBadge.rst","generated\\Component\\FieldSet\\FieldSet.rst","generated\\Component\\Form\\Form.rst","generated\\Component\\Input\\FileSelect\\FileSelect.rst","generated\\Component\\Input\\Input.rst","generated\\Component\\Input\\Select\\Select.rst","generated\\Component\\Input\\Select\\SelectOption.rst","generated\\Component\\Panel\\Panel.rst","generated\\Component\\Spinner\\Spinner.rst","generated\\Component\\Title\\Title.rst","generated\\Component\\Toolbar\\Toolbar.rst","generated\\Component\\Toolbar\\ToolbarSpacer\\ToolbarSpacer.rst","generated\\Layout\\Layout.rst","generated\\Layout\\MultiColumn\\Column\\Column.rst","generated\\Layout\\MultiColumn\\MultiColumn.rst","generated\\Layout\\UIContentBlock.rst","index.rst","manual\\Component\\Alert\\AlertAdditionalDescription.rst","manual\\Component\\Alert\\AlertFooter.rst","manual\\Component\\Button\\ButtonAdditionalDescription.rst","manual\\Component\\Button\\ButtonFooter.rst","manual\\Component\\ButtonGroup\\ButtonGroupAdditionalDescription.rst","manual\\Component\\ButtonGroup\\ButtonGroupFooter.rst","manual\\Component\\CollapsibleSection\\CollapsibleSectionAdditionalDescription.rst","manual\\Component\\CollapsibleSection\\CollapsibleSectionFooter.rst","manual\\Component\\DataTable\\DataTableAdditionalDescription.rst","manual\\Component\\DataTable\\DataTableFooter.rst","manual\\Component\\Field\\FieldAdditionalDescription.rst","manual\\Component\\Field\\FieldFooter.rst","manual\\Component\\FieldBadge\\FieldBadgeAdditionalDescription.rst","manual\\Component\\FieldBadge\\FieldBadgeFooter.rst","manual\\Component\\FieldSet\\FieldSetAdditionalDescription.rst","manual\\Component\\FieldSet\\FieldSetFooter.rst","manual\\Component\\Form\\FormAdditionalDescription.rst","manual\\Component\\Form\\FormFooter.rst","manual\\Component\\Input\\FileSelect\\FileSelectAdditionalDescription.rst","manual\\Component\\Input\\FileSelect\\FileSelectFooter.rst","manual\\Component\\Input\\InputAdditionalDescription.rst","manual\\Component\\Input\\InputFooter.rst","manual\\Component\\Input\\Select\\SelectAdditionalDescription.rst","manual\\Component\\Input\\Select\\SelectFooter.rst","manual\\Component\\Input\\Select\\SelectOptionAdditionalDescription.rst","manual\\Component\\Input\\Select\\SelectOptionFooter.rst","manual\\Component\\Panel\\PanelAdditionalDescription.rst","manual\\Component\\Panel\\PanelFooter.rst","manual\\Component\\Spinner\\SpinnerAdditionalDescription.rst","manual\\Component\\Spinner\\SpinnerFooter.rst","manual\\Component\\Title\\TitleAdditionalDescription.rst","manual\\Component\\Title\\TitleFooter.rst","manual\\Component\\Toolbar\\ToolbarAdditionalDescription.rst","manual\\Component\\Toolbar\\ToolbarFooter.rst","manual\\Component\\Toolbar\\ToolbarSpacer\\ToolbarSpacerAdditionalDescription.rst","manual\\Component\\Toolbar\\ToolbarSpacer\\ToolbarSpacerFooter.rst","manual\\Layout\\MultiColumn\\Column\\ColumnAdditionalDescription.rst","manual\\Layout\\MultiColumn\\Column\\ColumnFooter.rst","manual\\Layout\\MultiColumn\\MultiColumnAdditionalDescription.rst","manual\\Layout\\MultiColumn\\MultiColumnFooter.rst","manual\\Layout\\UIContentBlockAdditionalDescription.rst","manual\\Layout\\UIContentBlockFooter.rst"],objects:{},objnames:{},objtypes:{},terms:{"0":[2,5],"1":[6,23],"2":[4,6],"3":[2,5,6],"4":6,"break":29,"case":[7,32],"class":[3,4,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],"default":[3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],"function":[3,4,5,7,32],"int":23,"new":[2,3,6],"null":[7,8,10,12,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29],"public":[3,4,5],"return":[7,32],"static":[4,12,39],"true":[5,7,8,19,20,23,32],"var":[7,32],A:[11,26],For:3,If:[2,19],In:5,No:[8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,34,35,36,37,38,40,43,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72],The:[0,4,5,7,12,13,15,23,32,40,42,46,62],Then:3,Will:[23,62],abl:3,abov:2,accept:4,acolumn:[12,40],acontainerclass:[7,24,29,32],action:[5,8,9,16],actiontyp:8,ad:[3,6],adapt:18,adata:[12,40],add:[3,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addbutton:9,addclass:[7,32],addcolumn:28,addcssclass:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addcssfilerelpath:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],adddeferredblock:[7,10,12,13,14,15,16,19,21,23,24,27,28,29],addextrablock:9,addhtml:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addjsfilerelpath:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addmainblock:21,addmultiplecssfilesrelpath:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addmultiplejsfilesrelpath:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addopt:19,addsubblock:[7,10,12,13,14,15,16,19,21,23,24,27,28,29],addsubtitleblock:21,addtitleblock:21,addtoolbarblock:21,aextraparam:12,after:3,ajax:[7,32],ajaxdata:12,ajaxurl:12,alert:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,31,32],all:2,allow:[19,29],alreadi:7,also:9,altern:8,amonth:5,an:[3,4,5,7,8,9,32],ani:[4,8],anim:[7,32],aoption:12,aparam:[4,5,13],applic:[3,4],approot:3,aquart:[4,5],ar:[4,5,7],arrai:[4,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],asset:2,attcod:13,attlabel:13,attribut:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],atttyp:13,autoload:3,avoid:8,base:29,basi:[7,8,12,21],befor:19,begin:3,better:18,bismedallion:23,bissubmit:[5,8],block:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],bodi:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],bool:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],bselect:[4,5,20],bstatu:[7,32],build:3,built:3,button:[5,9,11,33],buttongroup:11,buttontext:17,buttontoolbarspac:25,call:[3,5,7,32],can:[2,3,4,7,32],cancel:8,cancoreupd:[7,32],cannot:8,chang:19,check:[3,7],choic:8,code:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,62],collaps:7,collapsiblesect:11,color:[7,8,21],colorfromclass:21,colorfromcolorsemant:21,colorfromormstyl:21,column:[12,26,28,40],combodo:[3,4],comfort:3,comment:[10,13,15,16,17,18,20,22,23,24,27,28,29],commun:7,compon:[3,7,8,12,18,21,30],compos:3,consid:8,consol:11,contain:[2,4,23,29],content:[7,10,12,13,14,15,16,19,21,23,24,27,28,29,32],control:[2,4,5],core:[7,32],correspond:[3,5],creat:[3,4,5,6,19],css:[2,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],cssclass:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],csscolorclass:21,current:[4,5],danger:[7,21],data:[2,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32,40],dataattribut:[4,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],datat:[11,39],date:4,dbobjectset:12,deal:18,dedic:2,deferredblock:[7,10,12,13,14,15,16,19,21,23,24,27,28,29],descript:[12,40],descriptionfield1:[12,40],destruct:8,detect:19,develop:3,dict_:[7,32],dict_format:[23,62],dictionari:2,differ:2,dir_error_out:[7,32],disabl:20,displai:[2,3,4,7,11,19,23,29,32,62],displaycolumn:12,displaypag:[3,4,5],doc:2,dump:3,dure:3,dynam:[4,12,39],els:[7,32],endfor:[4,5],enduialert:[7,32],enduicollapsiblesect:10,enduicolumn:27,enduicontentblock:[4,5,7,29,32],enduidatat:12,enduifield:[13,42],enduifieldbadg:14,enduifieldset:[15,46],enduiform:[4,5,16],enduimulticolumn:28,enduipanel:21,enduiselect:[4,5,19],enduititl:[3,4,5,23,62],enduitoolbar:24,enter:3,environ:[15,46],error:[7,32],exampl:[4,33,41,45],exec:3,exec_modul:3,exec_pag:3,extend:[3,4,5],extens:2,failur:[7,21,31,32],fals:[4,5,7,8,32],featur:0,februari:[4,5],feedback:7,field:[11,15,18,41,42],fieldbadg:11,fieldset:[11,13,45,46],filenam:17,fileselect:11,first:8,focu:8,folder:[2,3],follow:[2,12,23,40,62],forfailur:32,forhidden:5,forinform:32,form:[4,5,8,11,18,19],format:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,40],forpag:[3,4,5,62],forprimaryact:5,forselect:[4,5],forselectopt:[4,5],found:3,from:[3,7],fulltextsearchtitle_text:[23,62],gener:[2,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32,42,46],get:2,getus:4,give:[4,7],go:[3,8],goe:[7,10,12,13,14,15,16,19,21,23,24,27,28,29,32],ha:[9,12,40],hand:8,handleoper:3,have:[3,4,5,12,40],he:8,header:[7,32],hello:[4,6],helloworld:[3,4,5],helper:2,here:[3,4,7,10,12,13,14,15,16,19,21,23,24,27,28,29,32],hidden:[5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32],hook:2,how:4,html:[3,4,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32],http:3,ibo:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32],iconclass:8,id:7,ilevel:23,img:2,imonth:5,inc:3,index:[3,4,5],indic:[3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],inform:[3,5,7,11,21,31,32],initdisplaydata:12,input:[5,11,19],inputid:13,inputtyp:13,instal:3,instanc:3,instead:8,ischeck:18,isclos:[7,32],iscollaps:[7,21,32],isdis:[8,18],isheadervisibleonscrol:21,ishidden:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32],islabelbefor:19,ismandatori:13,ismultipl:19,isreadonli:[13,18],isslav:13,itop:[2,3,4,11,13,15,18,42,46],itopupd:[7,32],iuiblock:[7,9,10,12,13,14,15,16,19,21,23,24,27,28,29],iuicontentblock:21,januari:[4,5],javascript:[7,32],js:2,jscode:8,jsrefresh:12,just:3,label:[8,12,13,18,19,20,40],labelfield1:[12,40],land:3,layout:[3,13,30],let:[3,4,5],like:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],line:29,link:8,ll:2,load:[7,32],localhost:3,locat:3,main:[7,8],mainblock:21,make:[7,8,9,12,21],mandatori:[8,9,10,12,13,14,15,17,18,19,20,21,23,27,29],march:[4,5],menu:9,messag:[7,21],method:[3,4],model:2,modifi:5,modul:[2,3],modulesroot:3,month:[4,5],more:[3,4],multicolumn:26,multipl:[5,19],must:[5,7],mustchang:13,mustprompt:13,mvc:0,my:[2,3,4],mycompani:[3,4],myform:5,mymodul:[3,4],mymodulecontrol:[3,4,5],name:[3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],namefield1:[12,40],namefield2:[12,40],namespac:[3,4],navig:8,need:5,next:3,nice:3,now:[3,5],object:21,oblock:27,obutton:9,ocancoreupd:[7,32],oinput:13,ok:5,omenu:9,onclickjscod:8,one:5,onli:[5,7,8],onsubmitjscod:16,opag:12,open:8,openedbydefault:[7,10],oper:[3,6],operationhelloworld:[3,4],operationselectmonth:5,option:[7,8,9,10,12,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29],orequir:[7,32],ormstyl:[14,21],oset:12,ostyl:14,otitl:23,oupdatecontrol:3,output:[4,5],page:[2,3,7,26],panel:[11,12],param:[8,12,14,25],paramet:4,part:5,pass:[5,6],path:3,php:[2,3,4,5],placehold:18,popovermenu:9,posit:[8,19],pre:29,present:[2,30],previou:5,primari:[7,8,9,21],product:[13,42],provid:[8,9,10,12,14,16,17,18,19,20,21,22,24,25,27,28,29,34,35,36,37,38,40,43,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72],purpos:8,put:2,r:4,raw:7,readparam:5,real:[7,32],rectangular:7,relat:[13,15],remov:7,removeclass:[7,32],render:3,requir:[7,32],require_onc:3,result:[13,15,42,46],resultcolumn:12,role:[4,5],run:3,s:[3,4,5],sanit:7,scheme:[7,21],sclass:21,scode:29,scontent:7,screen:7,sdate:4,second:8,secondari:[7,8,21],see:[3,8,18],seen:4,select:[3,4,5,11,20],selectmonth:5,selectopt:[11,19],selector:4,send:4,serv:26,servic:2,set:[3,5,7,32],setdefaultoper:3,setup:3,sfilter:12,sfulltext:[23,62],she:8,should:[3,8],show:[7,32],showfilenam:17,siconclass:8,siconcovermethod:23,siconurl:23,sid:[4,5,7,8,10,12,13,15,16,17,18,19,20,22,23,24,25,27,28,29,32],side:9,sinputid:18,sinputnam:18,sinputtyp:18,sinputvalu:18,slabel:[4,5,8,13,18,19,20,42],slayout:13,slegend:[15,46],slistid:12,small:42,smessag:[7,32],smonth:[4,5],sname:[4,5,8,17,18,19],some:4,someth:8,soon:19,space:3,specif:[3,7,21],specifi:3,spinner:[7,11,32],src:[2,3,4,5],sref:12,sselectedmonth:5,ssubtitl:21,standard:[4,5,7,32,46],starget:8,startup:3,stitl:[3,4,5,7,10,12,21,23,62],stooltiptext:8,string:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],structur:[0,6],stype:[8,18],sub:29,subblock:[7,10,12,13,14,15,16,19,21,23,24,27,28,29],submit:[5,19],submitonchang:19,subtitl:21,subtitleblock:21,success:[7,8,21,31,32],surl:8,svalu:[4,5,8,14,18,20],svaluehtml:13,symlink:3,syntax:[3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],system:7,systeminform:3,tag:3,tell:8,templat:[2,5,6],temporari:[7,32],them:4,thi:[3,4,5,8],titl:[3,7,11,21],titleblock:21,toolbar:11,toolbarspac:11,toolblock:21,toolkit:3,tooltip:8,transform:4,trigger:8,tutori:30,twig:[2,3,4,5],twigbas:[3,4],two:4,type:[4,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],ui:[3,7,8,23,32,62],uialert:[7,32],uiblock:[13,19,23,27],uibutton:[5,8],uibuttongroup:9,uicollapsiblesect:10,uicolumn:27,uicontentblock:[4,5,7,26,32],uidatat:12,uifield:[13,15,42,46],uifieldbadg:14,uifieldset:[15,46],uifileselect:17,uiform:[4,5,16],uiinput:[5,18],uimulticolumn:28,uipanel:21,uiselect:[4,5,19],uiselectopt:[4,5,20],uispinn:[7,22,32],uititl:[3,4,5,23,62],uitoolbar:24,uitoolbarspac:25,unitari:11,updat:[3,7,32],url:8,us:[2,3,4,5,7,8,11,29,32],user:[7,8],userright:4,util:5,valid:8,valu:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],valuefield1:[12,40],valuefield2:[12,40],valueid:13,valueraw:13,variabl:[5,6],vendor:2,version:2,want:3,warn:[7,21,31],we:[3,4,5],webpag:12,when:[3,18],wide:7,without:3,world:[4,6],yet:[8,9,10,12,14,16,17,18,19,20,21,22,24,25,27,28,29,34,35,36,37,38,40,43,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72],you:[2,3,4],your:[2,3]},titles:["Twig Base Presentation","Twig Base Reference","1. Creating the structure","2. Hello World!","3. Passing variables to templates","4. Adding new operations","Twig Base Tutorial","Alert","Button","ButtonGroup","CollapsibleSection","UI Components","DataTable","Field","FieldBadge","FieldSet","Form","FileSelect","Input","Select","SelectOption","Panel","Spinner","Title","Toolbar","ToolbarSpacer","UI Layouts","Column","MultiColumn","UIContentBlock","Welcome to iTop 3.0 UI\u2019s documentation!","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples"],titleterms:{"0":30,"1":2,"2":3,"3":[4,30],"4":5,"new":5,The:3,ad:5,alert:7,alternativeneutr:8,base:[0,1,6,30],button:8,buttongroup:9,buttonwithoptionsmenu:9,collapsiblesect:10,column:27,common:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],compon:[11,26],control:3,creat:2,datat:12,destructiveiconlink:8,document:30,end:3,exampl:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72],field:13,fieldbadg:14,fieldset:15,fileselect:17,foract:24,foralternativedestructiveact:8,foralternativeprimaryact:8,foralternativesecondaryact:8,foralternativevalidationact:8,forblock:27,forbutton:24,forcancel:8,forclass:21,forcod:29,fordang:[7,21],fordestructiveact:8,forfailur:[7,21],forfield:14,forform:12,forhidden:18,forinform:[7,21],forinputwithlabel:18,form:16,forobject:12,forpag:23,forpagewithicon:23,forpositiveact:8,forpreformat:29,forprimaryact:8,forrend:12,forrenderingobject:12,forresult:12,forsecondaryact:8,forselect:19,forselectopt:20,forselectwithlabel:19,forstaticdata:12,forsuccess:[7,21],forwarn:[7,21],fromobject:13,fromparam:13,hello:3,iconact:8,iconlink:8,input:18,itop:30,larg:13,layout:26,linkneutr:8,multicolumn:28,neutral:[7,8,21,23],oper:5,output:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71],panel:21,paramet:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],pass:4,point:3,present:0,refer:[1,30],s:30,select:19,selectopt:20,small:13,spinner:22,standard:[10,13,15,16,17,18,22,23,24,25,27,28,29],structur:2,tag:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30],templat:[3,4],titl:23,toolbar:24,toolbarspac:25,tutori:6,twig:[0,1,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30],ui:[11,26,30],uicontentblock:29,variabl:4,welcom:30,withbrandingprimarycolor:[7,21],withbrandingsecondarycolor:[7,21],world:3}})
\ No newline at end of file
+Search.setIndex({docnames:["TwigBase/TwigBase","TwigBaseReference/TwigBaseReference","TwigBaseTuto/Step1/Step1","TwigBaseTuto/Step2/Step2","TwigBaseTuto/Step3/Step3","TwigBaseTuto/Step4/Step4","TwigBaseTuto/TwigBaseTuto","generated/Component/Alert/Alert","generated/Component/Button/Button","generated/Component/ButtonGroup/ButtonGroup","generated/Component/CollapsibleSection/CollapsibleSection","generated/Component/Component","generated/Component/DataTable/DataTable","generated/Component/Field/Field","generated/Component/FieldBadge/FieldBadge","generated/Component/FieldSet/FieldSet","generated/Component/Form/Form","generated/Component/Input/FileSelect/FileSelect","generated/Component/Input/Input","generated/Component/Input/Select/Select","generated/Component/Input/Select/SelectOption","generated/Component/Panel/Panel","generated/Component/Spinner/Spinner","generated/Component/Title/Title","generated/Component/Toolbar/Toolbar","generated/Component/Toolbar/ToolbarSpacer/ToolbarSpacer","generated/Layout/Layout","generated/Layout/MultiColumn/Column/Column","generated/Layout/MultiColumn/MultiColumn","generated/Layout/UIContentBlock","index","manual/Component/Alert/AlertAdditionalDescription","manual/Component/Alert/AlertFooter","manual/Component/Button/ButtonAdditionalDescription","manual/Component/Button/ButtonFooter","manual/Component/ButtonGroup/ButtonGroupAdditionalDescription","manual/Component/ButtonGroup/ButtonGroupFooter","manual/Component/CollapsibleSection/CollapsibleSectionAdditionalDescription","manual/Component/CollapsibleSection/CollapsibleSectionFooter","manual/Component/DataTable/DataTableAdditionalDescription","manual/Component/DataTable/DataTableFooter","manual/Component/Field/FieldAdditionalDescription","manual/Component/Field/FieldFooter","manual/Component/FieldBadge/FieldBadgeAdditionalDescription","manual/Component/FieldBadge/FieldBadgeFooter","manual/Component/FieldSet/FieldSetAdditionalDescription","manual/Component/FieldSet/FieldSetFooter","manual/Component/Form/FormAdditionalDescription","manual/Component/Form/FormFooter","manual/Component/Input/FileSelect/FileSelectAdditionalDescription","manual/Component/Input/FileSelect/FileSelectFooter","manual/Component/Input/InputAdditionalDescription","manual/Component/Input/InputFooter","manual/Component/Input/Select/SelectAdditionalDescription","manual/Component/Input/Select/SelectFooter","manual/Component/Input/Select/SelectOptionAdditionalDescription","manual/Component/Input/Select/SelectOptionFooter","manual/Component/Panel/PanelAdditionalDescription","manual/Component/Panel/PanelFooter","manual/Component/Spinner/SpinnerAdditionalDescription","manual/Component/Spinner/SpinnerFooter","manual/Component/Title/TitleAdditionalDescription","manual/Component/Title/TitleFooter","manual/Component/Toolbar/ToolbarAdditionalDescription","manual/Component/Toolbar/ToolbarFooter","manual/Component/Toolbar/ToolbarSpacer/ToolbarSpacerAdditionalDescription","manual/Component/Toolbar/ToolbarSpacer/ToolbarSpacerFooter","manual/Layout/MultiColumn/Column/ColumnAdditionalDescription","manual/Layout/MultiColumn/Column/ColumnFooter","manual/Layout/MultiColumn/MultiColumnAdditionalDescription","manual/Layout/MultiColumn/MultiColumnFooter","manual/Layout/UIContentBlockAdditionalDescription","manual/Layout/UIContentBlockFooter"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["TwigBase\\TwigBase.rst","TwigBaseReference\\TwigBaseReference.rst","TwigBaseTuto\\Step1\\Step1.rst","TwigBaseTuto\\Step2\\Step2.rst","TwigBaseTuto\\Step3\\Step3.rst","TwigBaseTuto\\Step4\\Step4.rst","TwigBaseTuto\\TwigBaseTuto.rst","generated\\Component\\Alert\\Alert.rst","generated\\Component\\Button\\Button.rst","generated\\Component\\ButtonGroup\\ButtonGroup.rst","generated\\Component\\CollapsibleSection\\CollapsibleSection.rst","generated\\Component\\Component.rst","generated\\Component\\DataTable\\DataTable.rst","generated\\Component\\Field\\Field.rst","generated\\Component\\FieldBadge\\FieldBadge.rst","generated\\Component\\FieldSet\\FieldSet.rst","generated\\Component\\Form\\Form.rst","generated\\Component\\Input\\FileSelect\\FileSelect.rst","generated\\Component\\Input\\Input.rst","generated\\Component\\Input\\Select\\Select.rst","generated\\Component\\Input\\Select\\SelectOption.rst","generated\\Component\\Panel\\Panel.rst","generated\\Component\\Spinner\\Spinner.rst","generated\\Component\\Title\\Title.rst","generated\\Component\\Toolbar\\Toolbar.rst","generated\\Component\\Toolbar\\ToolbarSpacer\\ToolbarSpacer.rst","generated\\Layout\\Layout.rst","generated\\Layout\\MultiColumn\\Column\\Column.rst","generated\\Layout\\MultiColumn\\MultiColumn.rst","generated\\Layout\\UIContentBlock.rst","index.rst","manual\\Component\\Alert\\AlertAdditionalDescription.rst","manual\\Component\\Alert\\AlertFooter.rst","manual\\Component\\Button\\ButtonAdditionalDescription.rst","manual\\Component\\Button\\ButtonFooter.rst","manual\\Component\\ButtonGroup\\ButtonGroupAdditionalDescription.rst","manual\\Component\\ButtonGroup\\ButtonGroupFooter.rst","manual\\Component\\CollapsibleSection\\CollapsibleSectionAdditionalDescription.rst","manual\\Component\\CollapsibleSection\\CollapsibleSectionFooter.rst","manual\\Component\\DataTable\\DataTableAdditionalDescription.rst","manual\\Component\\DataTable\\DataTableFooter.rst","manual\\Component\\Field\\FieldAdditionalDescription.rst","manual\\Component\\Field\\FieldFooter.rst","manual\\Component\\FieldBadge\\FieldBadgeAdditionalDescription.rst","manual\\Component\\FieldBadge\\FieldBadgeFooter.rst","manual\\Component\\FieldSet\\FieldSetAdditionalDescription.rst","manual\\Component\\FieldSet\\FieldSetFooter.rst","manual\\Component\\Form\\FormAdditionalDescription.rst","manual\\Component\\Form\\FormFooter.rst","manual\\Component\\Input\\FileSelect\\FileSelectAdditionalDescription.rst","manual\\Component\\Input\\FileSelect\\FileSelectFooter.rst","manual\\Component\\Input\\InputAdditionalDescription.rst","manual\\Component\\Input\\InputFooter.rst","manual\\Component\\Input\\Select\\SelectAdditionalDescription.rst","manual\\Component\\Input\\Select\\SelectFooter.rst","manual\\Component\\Input\\Select\\SelectOptionAdditionalDescription.rst","manual\\Component\\Input\\Select\\SelectOptionFooter.rst","manual\\Component\\Panel\\PanelAdditionalDescription.rst","manual\\Component\\Panel\\PanelFooter.rst","manual\\Component\\Spinner\\SpinnerAdditionalDescription.rst","manual\\Component\\Spinner\\SpinnerFooter.rst","manual\\Component\\Title\\TitleAdditionalDescription.rst","manual\\Component\\Title\\TitleFooter.rst","manual\\Component\\Toolbar\\ToolbarAdditionalDescription.rst","manual\\Component\\Toolbar\\ToolbarFooter.rst","manual\\Component\\Toolbar\\ToolbarSpacer\\ToolbarSpacerAdditionalDescription.rst","manual\\Component\\Toolbar\\ToolbarSpacer\\ToolbarSpacerFooter.rst","manual\\Layout\\MultiColumn\\Column\\ColumnAdditionalDescription.rst","manual\\Layout\\MultiColumn\\Column\\ColumnFooter.rst","manual\\Layout\\MultiColumn\\MultiColumnAdditionalDescription.rst","manual\\Layout\\MultiColumn\\MultiColumnFooter.rst","manual\\Layout\\UIContentBlockAdditionalDescription.rst","manual\\Layout\\UIContentBlockFooter.rst"],objects:{},objnames:{},objtypes:{},terms:{"0":[2,5],"1":[6,23],"2":[4,6],"3":[2,5,6],"4":6,"break":29,"case":[3,7,32],"class":[3,4,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],"default":[3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],"function":[3,4,5,7,32],"int":23,"new":[2,3,6],"null":[7,8,10,12,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29],"public":[3,4,5],"return":[7,32],"static":[4,12,39],"true":[3,5,7,8,19,20,23,32],"var":[7,32],A:[11,26],For:3,If:[2,3,19],In:[3,5],No:[8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,34,35,36,37,38,40,43,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72],The:[0,4,5,7,12,13,15,23,32,40,42,46,62],Then:3,Will:[23,62],abl:3,abov:2,accept:4,acolumn:[12,40],acontainerclass:[7,24,29,32],action:[5,8,9,16],actiontyp:8,ad:[3,6],adapt:18,adata:[12,40],add:[3,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addbutton:9,addclass:[7,32],addcolumn:28,addcssclass:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addcssfilerelpath:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],adddeferredblock:[7,10,12,13,14,15,16,19,21,23,24,27,28,29],addextrablock:9,addhtml:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addjsfilerelpath:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addmainblock:21,addmultiplecssfilesrelpath:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addmultiplejsfilesrelpath:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],addopt:19,addsubblock:[7,10,12,13,14,15,16,19,21,23,24,27,28,29],addsubtitleblock:21,addtitleblock:21,addtoolbarblock:21,aextraparam:12,after:3,ajax:[7,32],ajaxdata:12,ajaxurl:12,alert:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,31,32],all:[2,3],allow:[19,29],alreadi:7,also:9,altern:8,amonth:5,an:[0,3,4,5,7,8,9,32],ani:[4,8],anim:[7,32],aoption:12,aparam:[4,5,13],applic:[3,4],approot:3,aquart:[4,5],ar:[4,5,7],arrai:[3,4,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],asset:2,attcod:13,attlabel:13,attribut:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],atttyp:13,autoload:3,automat:0,avoid:8,base:29,basi:[7,8,12,21],befor:19,begin:3,better:18,bismedallion:23,bissubmit:[5,8],block:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],bodi:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],bool:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],bselect:[4,5,20],bstatu:[7,32],build:3,built:3,button:[5,9,11,33],buttongroup:11,buttontext:17,buttontoolbarspac:25,call:[0,3,5,7,32],can:[2,3,4,7,32],cancel:8,cancoreupd:[7,32],cannot:8,chang:[3,19],check:[3,5,7],choic:8,code:[5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,62],collaps:7,collapsiblesect:11,color:[7,8,21],colorfromclass:21,colorfromcolorsemant:21,colorfromormstyl:21,column:[12,26,28,40],com:3,combodo:[3,4],comfort:3,comment:[10,13,15,16,17,18,20,22,23,24,27,28,29],commun:7,compon:[3,7,8,12,18,21,30],compos:3,configur:3,consid:8,consol:11,contain:[0,2,4,23,29],content:[7,10,12,13,14,15,16,19,21,23,24,27,28,29,32],control:[0,2,4,5],core:[7,32],correspond:[3,5],creat:[0,3,4,5,6,19],creator:0,css:[2,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],cssclass:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],csscolorclass:21,current:[4,5],danger:[7,21],data:[0,2,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32,40],dataattribut:[4,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],datat:[11,39],date:4,dbobjectset:12,deal:18,dedic:2,deferredblock:[7,10,12,13,14,15,16,19,21,23,24,27,28,29],defin:0,descript:[12,40],descriptionfield1:[12,40],design:0,destruct:8,detect:19,dev:3,develop:3,developer_mod:3,dict_:[7,32],dict_format:[23,62],dictionari:2,differ:2,dir_error_out:[7,32],disabl:20,disclaim:5,displai:[0,2,3,4,7,11,19,23,29,32,62],displaycolumn:12,displaypag:[3,4,5],doc:2,doe:3,don:5,done:[0,5],dump:3,dure:3,dynam:[4,12,39],els:[7,32],enabl:3,end:0,endfor:[4,5],enduialert:[7,32],enduicollapsiblesect:10,enduicolumn:27,enduicontentblock:[4,5,7,29,32],enduidatat:12,enduifield:[13,42],enduifieldbadg:14,enduifieldset:[15,46],enduiform:[4,5,16],enduimulticolumn:28,enduipanel:21,enduiselect:[4,5,19],enduititl:[3,4,5,23,62],enduitoolbar:24,enter:3,entri:5,env:3,environ:[15,46],error:[7,32],exampl:[4,33,41,45],exec:3,exec_modul:3,exec_pag:3,extend:[3,4,5],extens:[0,2],failur:[7,21,31,32],fals:[4,5,7,8,32],featur:0,februari:[4,5],feedback:7,field:[11,15,18,41,42],fieldbadg:11,fieldset:[11,13,45,46],file:3,filenam:17,fileselect:11,first:8,focu:8,folder:[2,3],follow:[0,2,3,12,23,40,62],forfailur:32,forhidden:5,forinform:32,form:[0,4,5,8,11,18,19],format:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,40],forpag:[3,4,5,62],forprimaryact:5,forselect:[4,5],forselectopt:[4,5],found:3,from:[0,3,7],fulltextsearchtitle_text:[23,62],gather:0,gener:[2,3,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32,42,46],get:2,getus:4,github:3,give:[4,7],given:0,go:[3,8],goe:[7,10,12,13,14,15,16,19,21,23,24,27,28,29,32],ha:[9,12,40],hand:8,handleoper:3,have:[0,3,4,5,12,40],he:8,header:[7,32],hello:[4,6],helloworld:[3,4,5],help:0,helper:2,here:[3,4,7,10,12,13,14,15,16,19,21,23,24,27,28,29,32],hidden:[5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32],hook:2,how:4,html:[3,4,5,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32],http:3,ibo:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32],iconclass:8,id:7,ilevel:23,img:2,imonth:5,inc:3,index:[3,4,5],indic:[3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],inform:[3,5,7,11,21,31,32],initdisplaydata:12,initi:3,input:[5,11,19],inputid:13,inputtyp:13,instal:3,instanc:3,instead:8,intend:0,ischeck:18,isclos:[7,32],iscollaps:[7,21,32],isdevelopmentenviron:3,isdis:[8,18],isheadervisibleonscrol:21,ishidden:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32],islabelbefor:19,ismandatori:13,ismultipl:19,isreadonli:[13,18],isslav:13,itop:[2,3,4,11,13,15,18,42,46],itopupd:[7,32],itsm:[],iuiblock:[7,9,10,12,13,14,15,16,19,21,23,24,27,28,29],iuicontentblock:21,januari:[4,5],javascript:[7,32],job:3,js:2,jscode:8,jsrefresh:12,just:3,label:[8,12,13,18,19,20,40],labelfield1:[12,40],land:3,layout:[3,13,30],let:[3,4,5],like:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],line:29,link:8,ll:[2,3],load:[7,32],loadconfig:3,localhost:3,locat:3,main:[7,8],mainblock:21,make:[7,8,9,12,21],mandatori:[0,8,9,10,12,13,14,15,17,18,19,20,21,23,27,29],march:[4,5],mechan:0,menu:9,messag:[7,21],metamodel:3,method:[3,4],model:[0,2],modern:0,modifi:[3,5],modul:[2,3],modulesroot:3,month:[4,5],more:[3,4],multicolumn:26,multipl:[5,19],must:[5,7],mustchang:13,mustprompt:13,mvc:0,my:[2,3,4],mycompani:[3,4],myform:5,mymodul:[3,4],mymodulecontrol:[3,4,5],myset:3,name:[3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],namefield1:[12,40],namefield2:[12,40],namespac:[3,4],navig:8,necessari:3,need:5,next:3,nice:3,notic:3,now:[3,5],object:21,oblock:27,obutton:9,ocancoreupd:[7,32],offici:3,oinput:13,ok:5,omenu:9,onclickjscod:8,one:5,onli:[5,7,8],onsubmitjscod:16,opag:12,open:8,openedbydefault:[7,10],oper:[0,3,6],operationhelloworld:[3,4],operationselectmonth:5,option:[0,7,8,9,10,12,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29],orequir:[7,32],ormstyl:[14,21],oset:12,ostyl:14,otitl:23,oupdatecontrol:3,output:[4,5],packag:3,page:[2,3,7,26],panel:[11,12],param:[8,12,14,25],paramet:[0,3,4],part:[0,5],pass:[5,6],path:3,php:[2,3,4,5],placehold:18,point:0,popovermenu:9,posit:[8,19],pre:29,present:[2,30],previou:5,primari:[7,8,9,21],produc:0,product:[5,13,42],provid:[8,9,10,12,14,16,17,18,19,20,21,22,24,25,27,28,29,34,35,36,37,38,40,43,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72],purpos:8,put:2,r:4,raw:7,readparam:5,real:[7,32],receiv:0,recommend:0,rectangular:7,relat:[13,15],remov:7,removeclass:[7,32],render:3,request:0,requir:[7,32],require_onc:3,result:[3,13,15,42,46],resultcolumn:12,role:[4,5],rout:0,run:3,s:[3,4,5],sanit:7,scheme:[7,21],sclass:21,scode:29,scontent:7,screen:7,sdate:4,second:8,secondari:[7,8,21],see:[3,8,18],seen:4,select:[0,3,4,5,11,20],selectmonth:5,selectopt:[11,19],selector:4,send:4,serv:26,servic:[0,2],set:[3,5,7,32],setdefaultoper:3,setup:3,sfilter:12,sfulltext:[23,62],she:8,should:[3,8],show:[7,32],showfilenam:17,siconclass:8,siconcovermethod:23,siconurl:23,sid:[4,5,7,8,10,12,13,15,16,17,18,19,20,22,23,24,25,27,28,29,32],side:9,sinputid:18,sinputnam:18,sinputtyp:18,sinputvalu:18,slabel:[4,5,8,13,18,19,20,42],slayout:13,slegend:[15,46],slistid:12,small:42,smessag:[7,32],smonth:[4,5],sname:[4,5,8,17,18,19],some:[0,4],someth:8,soon:19,sourc:3,space:3,specif:[0,3,7,21],specifi:3,spinner:[7,11,32],src:[2,3,4,5],sref:12,sselectedmonth:5,ssubtitl:21,standard:[4,5,7,32,46],starget:8,startup:3,stitl:[3,4,5,7,10,12,21,23,62],stooltiptext:8,string:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],structur:[0,6],stype:[8,18],sub:29,subblock:[7,10,12,13,14,15,16,19,21,23,24,27,28,29],submit:[5,19],submitonchang:19,subtitl:21,subtitleblock:21,success:[7,8,21,31,32],surl:8,svalu:[4,5,8,14,18,20],svaluehtml:13,symlink:3,syntax:[3,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],system:7,systeminform:[],t:5,tag:3,tell:8,templat:[2,5,6],temporari:[7,32],them:4,thi:[0,3,4,5,8],titl:[3,7,11,21],titleblock:21,toolbar:11,toolbarspac:11,toolblock:21,toolkit:3,tooltip:8,transform:4,trigger:8,tutori:[5,30],twig:[2,3,4,5],twigbas:[3,4],two:4,type:[4,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],ui:[3,7,8,23,32,62],uialert:[7,32],uiblock:[13,19,23,27],uibutton:[5,8],uibuttongroup:9,uicollapsiblesect:10,uicolumn:27,uicontentblock:[4,5,7,26,32],uidatat:12,uifield:[13,15,42,46],uifieldbadg:14,uifieldset:[15,46],uifileselect:17,uiform:[4,5,16],uiinput:[5,18],uimulticolumn:28,uipanel:21,uiselect:[4,5,19],uiselectopt:[4,5,20],uispinn:[7,22,32],uititl:[3,4,5,23,62],uitoolbar:24,uitoolbarspac:25,unitari:11,unlock:3,updat:[3,7,32],url:8,us:[0,2,3,4,5,7,8,11,29,32],user:[7,8],userright:4,util:[3,5],valid:8,valu:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],valuefield1:[12,40],valuefield2:[12,40],valueid:13,valueraw:13,variabl:[5,6],vendor:2,version:2,view:0,wai:0,want:3,warn:[7,21,31],we:[3,4,5],webpag:12,when:[0,3,18],which:3,wide:7,without:3,wizard:3,work:3,world:[4,6],yet:[8,9,10,12,14,16,17,18,19,20,21,22,24,25,27,28,29,34,35,36,37,38,40,43,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72],you:[2,3,4],your:[2,3]},titles:["Twig Base Presentation","Twig Base Reference","1. Creating the structure","2. Hello World!","3. Passing variables to templates","4. Adding new operations","Twig Base Tutorial","Alert","Button","ButtonGroup","CollapsibleSection","UI Components","DataTable","Field","FieldBadge","FieldSet","Form","FileSelect","Input","Select","SelectOption","Panel","Spinner","Title","Toolbar","ToolbarSpacer","UI Layouts","Column","MultiColumn","UIContentBlock","Welcome to iTop 3.0 UI\u2019s documentation!","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples","Output","Examples"],titleterms:{"0":30,"1":2,"2":3,"3":[4,30],"4":5,"new":5,The:3,ad:5,alert:7,alternativeneutr:8,base:[0,1,6,30],button:8,buttongroup:9,buttonwithoptionsmenu:9,collapsiblesect:10,column:27,common:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],compon:[11,26],control:3,creat:2,datat:12,destructiveiconlink:8,document:30,end:3,exampl:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72],field:13,fieldbadg:14,fieldset:15,fileselect:17,foract:24,foralternativedestructiveact:8,foralternativeprimaryact:8,foralternativesecondaryact:8,foralternativevalidationact:8,forblock:27,forbutton:24,forcancel:8,forclass:21,forcod:29,fordang:[7,21],fordestructiveact:8,forfailur:[7,21],forfield:14,forform:12,forhidden:18,forinform:[7,21],forinputwithlabel:18,form:16,forobject:12,forpag:23,forpagewithicon:23,forpositiveact:8,forpreformat:29,forprimaryact:8,forrend:12,forrenderingobject:12,forresult:12,forsecondaryact:8,forselect:19,forselectopt:20,forselectwithlabel:19,forstaticdata:12,forsuccess:[7,21],forwarn:[7,21],fromobject:13,fromparam:13,hello:3,iconact:8,iconlink:8,input:18,itop:30,larg:13,layout:26,linkneutr:8,multicolumn:28,neutral:[7,8,21,23],oper:5,output:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71],panel:21,paramet:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29],pass:4,point:3,present:0,refer:[1,30],s:30,select:19,selectopt:20,small:13,spinner:22,standard:[10,13,15,16,17,18,22,23,24,25,27,28,29],structur:2,tag:[7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30],templat:[3,4],titl:23,toolbar:24,toolbarspac:25,tutori:6,twig:[0,1,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30],ui:[11,26,30],uicontentblock:29,variabl:4,welcom:30,withbrandingprimarycolor:[7,21],withbrandingsecondarycolor:[7,21],world:3}})
\ No newline at end of file
diff --git a/.doc/UI/source/TwigBase/MVC.png b/.doc/UI/source/TwigBase/MVC.png
index ebebef42e8..042f6a4933 100644
Binary files a/.doc/UI/source/TwigBase/MVC.png and b/.doc/UI/source/TwigBase/MVC.png differ
diff --git a/.doc/UI/source/TwigBase/TwigBase.rst b/.doc/UI/source/TwigBase/TwigBase.rst
index 30f8e24ab1..7edca0415d 100644
--- a/.doc/UI/source/TwigBase/TwigBase.rst
+++ b/.doc/UI/source/TwigBase/TwigBase.rst
@@ -4,6 +4,26 @@
Twig Base Presentation
======================
+This feature is intended to help extension creators to design forms in a *modern* way.
+
The **Twig Base** feature is based on MVC structure:
-.. image:: MVC.png
\ No newline at end of file
+.. image:: MVC.png
+
+When creating an extension following this structure, some parts have to be done:
+
+:Model:
+ Optional part to define the specific data model for the extension
+
+:Service:
+ Recommended part to produce the data to be displayed
+
+:Controller:
+ Mandatory part to gather the data from the *Service* and display using the *View*.
+ The *Controller* contains an automatic routing mechanism to be selected by the *operation* parameter.
+
+:View:
+ Mandatory part to display the data given by the *Controller*
+
+:End point:
+ Mandatory part receiving the request and calling the *Controller*
\ No newline at end of file
diff --git a/.doc/UI/source/TwigBase/twig base.pptx b/.doc/UI/source/TwigBase/twig base.pptx
new file mode 100644
index 0000000000..817661c229
Binary files /dev/null and b/.doc/UI/source/TwigBase/twig base.pptx differ
diff --git a/.doc/UI/source/TwigBaseTuto/Step2/Step2.rst b/.doc/UI/source/TwigBaseTuto/Step2/Step2.rst
index 5fe80cae7f..e5344be20a 100644
--- a/.doc/UI/source/TwigBaseTuto/Step2/Step2.rst
+++ b/.doc/UI/source/TwigBaseTuto/Step2/Step2.rst
@@ -72,7 +72,7 @@ Then create landing page for your module ``my-module/index.php``
true,
+
+ // ...
+ );
+
+
+
diff --git a/.doc/UI/source/TwigBaseTuto/Step4/Step4.rst b/.doc/UI/source/TwigBaseTuto/Step4/Step4.rst
index 2460ba5ad9..f3c055168c 100644
--- a/.doc/UI/source/TwigBaseTuto/Step4/Step4.rst
+++ b/.doc/UI/source/TwigBaseTuto/Step4/Step4.rst
@@ -56,6 +56,8 @@ Now add the operation in the controller:
}
}
+*Disclaimer: The code is for tutorial only, don't use it in production as no check is done on the entries*
+
The corresponding template must be created ``templates/SelectMonth.html.twig``
.. code-block:: twig