Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
cdfded7
N°8772 - Form dependencies manager implementation
bdalsass Oct 17, 2025
0dae734
N°8772 - Form dependencies manager implementation
bdalsass Oct 20, 2025
ccdfbbe
N°8701 - Fix class icon alt text displaying in portal tile when there…
steffunky Oct 15, 2025
c83d998
N°4058 - fix PHP Deprecated base64_decodestrlen : Passing nul
odain-cbd Oct 21, 2025
5df73f5
N°8781 - Improve twig base controller render error report
eespie Oct 10, 2025
834d4d4
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 22, 2025
1a4a64c
N°8772 - Form dependencies manager implementation
bdalsass Oct 17, 2025
ee745f8
N°8772 - Form dependencies manager implementation
bdalsass Oct 22, 2025
c4e2cc6
Merge remote-tracking branch 'origin/develop' into feature/8772_form_…
bdalsass Oct 23, 2025
239814a
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 23, 2025
5dea3f5
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 23, 2025
8c35433
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 23, 2025
98c0b11
N°8772 - Form dependencies manager implementation - WIP
eespie Oct 23, 2025
fd449d1
N°8772 - Form dependencies manager implementation - WIP
eespie Oct 23, 2025
21b786e
N°8772 - Form dependencies manager implementation - WIP
eespie Oct 23, 2025
5582afe
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 24, 2025
a51272f
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 24, 2025
7708f8e
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 24, 2025
a1025ac
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 24, 2025
243a525
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 24, 2025
33c03f9
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 24, 2025
eb3c5e4
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 24, 2025
a4fbe90
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 24, 2025
212309e
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 24, 2025
675db85
N°8772 - log for exception
eespie Oct 24, 2025
c2fcf41
N°8772 - Sub-forms WIP
eespie Oct 24, 2025
5d335b3
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 28, 2025
2a3de68
N°8772 - Form turbo stream WIP
eespie Oct 28, 2025
8134d9a
N°8772 - Form turbo stream WIP
eespie Oct 28, 2025
9804821
N°8772 - Twig factorization
eespie Oct 29, 2025
6952bfa
N°8771 - Add Symfony form component to iTop core
bdalsass Oct 28, 2025
8582e89
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
bdalsass Oct 29, 2025
1394edc
N°8772 - Turbo WIP
eespie Oct 29, 2025
c00bcbc
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
bdalsass Oct 29, 2025
06dbdcb
N°8772 - Turbo WIP
eespie Oct 29, 2025
7a6f36b
N°8772 - Debug & turbo
eespie Oct 30, 2025
4c10cfe
N°8772 - Errors & turbo
eespie Oct 30, 2025
601cde0
N°8772 - Traditional parameters declaration
eespie Oct 30, 2025
0df5441
N°8772 - cleanup code
eespie Oct 30, 2025
45e4d92
N°8772 - automatic dependency in controller WIP
eespie Oct 31, 2025
0196765
N°8772 - automatic dependency in controller WIP
eespie Oct 31, 2025
d4415d6
N°8772 - some tests
eespie Oct 31, 2025
5df44b8
Remove .compilation-symlinks
jf-cbd Oct 31, 2025
077c488
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
jf-cbd Oct 31, 2025
0d7ccd7
N°8772 - Moved debug forms
eespie Oct 31, 2025
4c9373d
N°8772 - Fix error
eespie Nov 3, 2025
68d2038
N°8772 - dynamic form
bdalsass Oct 30, 2025
20da966
N°8772 - dynamic form
bdalsass Nov 3, 2025
0909ddf
N°8772 - dynamic form
bdalsass Nov 3, 2025
5a1f6ff
N°8772 - WIP dependencies - Does not work yet
eespie Nov 4, 2025
a092b65
N°8772 - WIP dependencies - Does not work yet
eespie Nov 4, 2025
4f4ba71
WIP
jf-cbd Nov 4, 2025
b3ed7f4
N°8772 - UIBlocks
eespie Nov 4, 2025
8fdad79
N°8772 - Turbo Ok
eespie Nov 5, 2025
9ea546e
N°8772 - Turbo + Collections WIP
eespie Nov 5, 2025
5b7a1ee
N°8772 - dynamic form
bdalsass Nov 5, 2025
03c37f2
:white_check_mark: N°8772 - Fix IO tests
eespie Nov 5, 2025
b6ec29c
N°8772 - ExpressionFormBlock WIP
eespie Nov 6, 2025
a448f66
N°8772 - dynamic form
bdalsass Nov 7, 2025
cfdf412
N°8772 - Dynamic debug and error
eespie Nov 7, 2025
7fd2791
N°8772 - dynamic form
bdalsass Nov 12, 2025
7095e5e
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
bdalsass Nov 12, 2025
cbb0e2e
N°8772 - dynamic form
bdalsass Nov 12, 2025
3d2485a
N°8772 - dynamic form
bdalsass Nov 12, 2025
5af8adf
N°8772 - fix debug display
eespie Nov 12, 2025
101b1b2
N°8772 - remove debug if not wanted like in config edition
eespie Nov 12, 2025
5cacfcb
N°8772 - dynamic form
bdalsass Nov 12, 2025
4d159ea
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
bdalsass Nov 12, 2025
c2ec3a9
N°8772 - remove unused class
eespie Nov 13, 2025
36d49d3
N°8772 - wip
eespie Nov 13, 2025
cef8fbc
N°8772 - Dashlet group by
eespie Nov 13, 2025
7733f13
Add Tom-Select lib
jf-cbd Nov 13, 2025
f68082d
N°8772 - Dashlet group by
eespie Nov 13, 2025
e5058fb
N°8772 - dynamic form
bdalsass Nov 14, 2025
dc1ce2d
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
bdalsass Nov 14, 2025
891df6a
N°8772 - Expressions inputs are now :input instead of [[input]] (and …
eespie Nov 14, 2025
bdde63a
N°8772 - dynamic form
bdalsass Nov 14, 2025
750b2b9
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
bdalsass Nov 14, 2025
b345660
N°8772 - Form Expressions using iTop Expressions
eespie Nov 14, 2025
5b11428
N°8772 - Error message
eespie Nov 14, 2025
b9d905a
N°8772 - refactor
eespie Nov 14, 2025
ea95ae6
Merge remote-tracking branch 'origin/develop' into feature/8772_form_…
eespie Nov 14, 2025
e02fc9c
Merge dicos...
eespie Nov 14, 2025
3085023
N°8772 - Error message
eespie Nov 14, 2025
51ebbc4
N°8772 - Refactor
eespie Nov 14, 2025
753d0ac
N°8772 - dynamic form
bdalsass Nov 17, 2025
047c820
:white_check_mark: N°8772 - AbstractFormIO and FormBinding tests
eespie Nov 17, 2025
07a61d5
:white_check_mark: N°8772 - AbstractFormIO and FormBinding tests
eespie Nov 17, 2025
2a8ed93
:white_check_mark: N°8772 - AbstractFormIO and FormBinding tests
eespie Nov 18, 2025
6a4ed98
Merge remote-tracking branch 'origin/develop' into feature/8772_form_…
eespie Nov 18, 2025
8ecb36b
:white_check_mark: N°8772 - FormBinding tests
eespie Nov 18, 2025
e08835c
:white_check_mark: N°8772 - AbstractFormIO tests
eespie Nov 18, 2025
11973d6
:art: CS Fixer
eespie Nov 18, 2025
7c0f454
:white_check_mark: Runtime Model Reflection & namespace
eespie Nov 18, 2025
0cb7c73
:white_check_mark: N°8772 - AbstractFormIO tests
eespie Nov 18, 2025
f939265
Add Tom-Select lib
jf-cbd Nov 18, 2025
546912a
:white_check_mark: N°8772 -
eespie Nov 18, 2025
24d78df
:art: N°8772 - CS Fixer
eespie Nov 19, 2025
e95ce21
Add sAPPROOTURL to the data of the twig
eespie Nov 19, 2025
4169e10
Fix wrong path for turbo
jf-cbd Nov 19, 2025
8f05c2b
Fix CI error (cf. 2651)
jf-cbd Nov 19, 2025
6678689
Fix wrong path for turbo
jf-cbd Nov 19, 2025
65bd6d9
Add ModelReflection Service as dependency injection + tests
eespie Nov 19, 2025
bd44f97
:art: N°8772 - CS Fixer
eespie Nov 19, 2025
3e471ed
:art: N°8772 - Moved DI under Service
eespie Nov 19, 2025
7b29d56
:white_check_mark: N°8772 - wip
eespie Nov 20, 2025
a19472c
:art: N°8772 - CS Fixer
eespie Nov 20, 2025
dd4eb9b
OQLToCLassConverter class conversion
bdalsass Nov 24, 2025
ce53487
Quick and dirty patch TomSelect CSS style
bdalsass Nov 24, 2025
f2a5559
N°8772 - Removed RawFormat and OUTPUT_VALUE
eespie Nov 24, 2025
039beb4
:art: PHP CS Fixer
eespie Nov 24, 2025
33e8f9c
Remove string to bool converter
bdalsass Nov 25, 2025
283ecb6
Remove empty tests files
bdalsass Nov 25, 2025
10ac497
Update expression blocks
bdalsass Nov 25, 2025
7a67267
wip cleaning and other stuff
bdalsass Nov 25, 2025
7a515d0
N°8772 - exceptions
eespie Nov 25, 2025
8e3d132
:art: PHP CS Fixer
eespie Nov 25, 2025
852238a
N°8772 - OQL exceptions
eespie Nov 26, 2025
87ca11b
change turbo for form errors
bdalsass Nov 26, 2025
9195864
:art: PHP CS Fixer
eespie Nov 26, 2025
02650f8
WIP Tom Select options
jf-cbd Nov 25, 2025
a0f28f7
OK for Tom Select
jf-cbd Nov 26, 2025
72c5cbf
:white_check_mark: N°8772 - FormBlock tests
eespie Nov 26, 2025
041ee2a
N°8772 - exceptions
eespie Nov 26, 2025
6aabed3
Add default value for max_items_selected
jf-cbd Nov 26, 2025
8272503
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
jf-cbd Nov 26, 2025
d0a2af4
N°8772 - new LabelFormBlock and xml description wip
eespie Nov 27, 2025
b8a093e
test and corrections
bdalsass Nov 27, 2025
1e859ef
:art: PHP CS Fixer
eespie Nov 27, 2025
8f39e69
:white_check_mark: autoload
eespie Nov 27, 2025
8401aa1
:art: PHP CS Fixer
eespie Nov 27, 2025
e67fcbc
test and corrections
bdalsass Nov 27, 2025
06e5c80
test and corrections
bdalsass Nov 27, 2025
81f056a
validator component
bdalsass Dec 1, 2025
e790929
validator component
bdalsass Dec 1, 2025
a88f335
N°8772 - xml description wip
eespie Dec 1, 2025
54aaf55
N°8772 - XML description traduction to PHP wip
eespie Dec 1, 2025
3d8e429
N°8772 - XML description traduction to PHP wip
eespie Dec 1, 2025
8f8a0e2
validator component
bdalsass Dec 2, 2025
d8c0cd7
With form in modal
jf-cbd Dec 2, 2025
b1129f1
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
jf-cbd Dec 2, 2025
4620710
collections
bdalsass Dec 3, 2025
842bbce
form type correction
bdalsass Dec 4, 2025
9c540b6
form collection
bdalsass Dec 4, 2025
5295dec
N°8772 - XML description wip
eespie Dec 4, 2025
099b996
N°8772 - XML description wip
eespie Dec 4, 2025
4e6c12b
N°8772 - XML description wip
eespie Dec 4, 2025
4349303
N°8772 - Fix broken cache
eespie Dec 4, 2025
ba1d62a
N°8772 - form controller
eespie Dec 4, 2025
ee762b9
N°8772 - form controller
eespie Dec 4, 2025
b9591b0
N°8772 - "generic" form controller
eespie Dec 4, 2025
af8fb73
N°8772 - "generic" form controller
eespie Dec 4, 2025
e092f87
N°8772 - "generic" form controller
eespie Dec 4, 2025
3503805
form input
bdalsass Dec 4, 2025
1fe6103
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
bdalsass Dec 4, 2025
b315b97
N°8772 - "generic" form controller wip
eespie Dec 4, 2025
be54bd5
N°8772 - add &debug in request
eespie Dec 5, 2025
9c00ea2
:white_check_mark: N°8772 - fix tests
eespie Dec 5, 2025
8374d12
N°8772 - removed use and set back full ns
eespie Dec 5, 2025
0d3f7c5
N°8772 - test driven compiler wip
eespie Dec 5, 2025
9543624
collections
bdalsass Dec 8, 2025
090925e
collections
bdalsass Dec 10, 2025
c40e7ab
N°8772 - test driven compiler wip
eespie Dec 10, 2025
4d7183e
N°8772 - Compiler: add static inputs
eespie Dec 10, 2025
49ff937
N°8772 - Compiler: add dynamic bindings
eespie Dec 10, 2025
2f36846
io array option
bdalsass Dec 11, 2025
5352047
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
bdalsass Dec 11, 2025
94fed54
N°8772 - Compiler: add relevance conditions (with test fail)
eespie Dec 11, 2025
41d15f1
N°8772 - Compiler: Add errors check
eespie Dec 11, 2025
2b8de85
N°8772 - Compiler: Add errors check
eespie Dec 11, 2025
fdc958a
N°8772 - Compiler: Expressions in input
eespie Dec 11, 2025
eff59a9
:white_check_mark: N°8772 - CI
eespie Dec 11, 2025
a77e54c
N°8772 - PropertyTrees definition in DataModel
eespie Dec 15, 2025
2530d59
N°8772 - compilation of choices values
eespie Dec 15, 2025
75afd3b
N°8772 - compilation of choices from inputs
eespie Dec 16, 2025
b653236
N°8772 - cache fix
eespie Dec 16, 2025
bd20818
N°8772 - cache now accept subdirectories
eespie Dec 16, 2025
c6589b0
N°8772 - Form compiler for classes
eespie Dec 16, 2025
e50109a
N°8772 - Added DashletHeaderDynamic
eespie Dec 16, 2025
c898df4
N°8772 - Added themes extensibility to controller
eespie Dec 17, 2025
fb3cbcd
form for dashboard
bdalsass Dec 17, 2025
49e5869
:art: Add automatic class return type to MetaModel::GetObject() and M…
eespie Dec 18, 2025
f010476
:art: Add automatic class return type to MetaModel::GetObject() and M…
eespie Dec 18, 2025
d17c3aa
:white_check_mark: Fix false positive in tests
eespie Dec 19, 2025
d21b1eb
N°8772 - Form compiler for collections
eespie Dec 19, 2025
048b1a9
N°8772 - Form compiler for collections
eespie Dec 19, 2025
0dc32b3
dashboard editor
bdalsass Dec 22, 2025
1a93b30
Merge remote-tracking branch 'origin/feature/8772_form_dependencies_m…
bdalsass Dec 22, 2025
7713a11
dashboard editor
bdalsass Dec 22, 2025
a627f8a
form as custom element
bdalsass Dec 23, 2025
39a6111
- Row template for turbo replace
bdalsass Dec 24, 2025
2e1bb26
failed tests
bdalsass Dec 24, 2025
e7d6905
N°8772 - Form compiler for collections (update of XML format)
eespie Dec 29, 2025
a83307f
N°8772 - Form compiler for collections (update of XML format)
eespie Dec 29, 2025
dfed286
:white_check_mark: N°8772 - fix PHP CS Fixer errors
eespie Dec 29, 2025
144259a
N°8772 - Form expression fix
eespie Dec 29, 2025
209ce94
:white_check_mark: N°8772 - fix PHP CS Fixer errors
eespie Dec 29, 2025
3628c2b
N°8772 - fix expression dependencies in collections
eespie Dec 29, 2025
8051342
fix typo
eespie Dec 29, 2025
c4c905d
Merge branch 'develop' into feature/8772_form_dependencies_manager
bdalsass Dec 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 16 additions & 0 deletions .phpstorm.meta.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

/*
* @copyright Copyright (C) 2010-2025 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/

namespace PHPSTORM_META
{
override(\MetaModel::NewObject(0), map([
'' => '@',
]));
override(\MetaModel::GetObject(0), map([
'' => '@',
]));
}
216 changes: 216 additions & 0 deletions application/datamodel.application.xml
Original file line number Diff line number Diff line change
Expand Up @@ -849,5 +849,221 @@ Call $this->AddInitialAttributeFlags($sAttCode, $iFlags) for all the initial att
</methods>
</class>
</classes>
<property_trees _delta="define" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://www.combodo.com/itop-schema/3.3">
<property_tree id="DashletGroupBy" xsi:type="Combodo-PropertyTree">
<extends>Dashlet</extends>
<nodes>
<node id="title">
<label>UI:DashletGroupBy:Prop-Title</label>
<value-type xsi:type="Combodo-ValueType-Label"/><!-- LabelFormBlock -->
</node>
<node id="query">
<label>UI:DashletGroupBy:Prop-Query</label>
<value-type xsi:type="Combodo-ValueType-OQL">
<data-transform>
<xml-node-empty-not-allowed/> <!-- mandatory quoi ! -->
</data-transform>
</value-type>
</node>
<node id="group_by">
<label>UI:DashletGroupBy:Prop-GroupBy</label>
<value-type xsi:type="Combodo-ValueType-ClassAttributeGroupBy"> <!-- par défaut, il proposera le state attribute de la classe -->
<class>{{query.selected_class}}</class>
<data-transform>
<xml-node-empty-not-allowed/>
</data-transform>
</value-type>
</node>
<node id="style"> <!-- possible de le cacher, etc.... celui-ci nous met dedans -->
<label>UI:DashletGroupBy:Prop-Style</label>
<value-type xsi:type="Combodo-ValueType-Choice">
<data-transform>
<xml-node-empty-defaults-to>bars</xml-node-empty-defaults-to>
</data-transform>
<values>
<value id="bars">
<label>UI:DashletGroupByBars:Label</label>
</value>
<value id="pie">
<label>UI:DashletGroupByPie:Label</label>
</value>
<value id="table">
<label>UI:DashletGroupByTable:Label</label>
</value>
</values>
</value-type>
</node>
<node id="aggregation_function">
<label>UI:DashletGroupBy:Prop-Function</label>
<value-type xsi:type="Combodo-ValueType-AggregateFunction"> <!-- par défaut : count -->
<data-transform>
<xml-node-empty-not-allowed/> <!-- mandatory quoi ! -->
</data-transform>
<class>{{query.selected_class}}</class> <!-- pour savoir si il y a des attributs additionnables -->
</value-type>
</node>
<node id="aggregation_attribute">
<label>UI:DashletGroupBy:Prop-FunctionAttribute</label>
<relevance-condition>{{aggregation_function.value != 'count'}}</relevance-condition>
<value-type xsi:type="Combodo-ValueType-ClassAttribute">
<data-transform>
<xml-node-empty-not-allowed/> <!-- mandatory quoi ! -->
</data-transform>
<class>{{query.selected_class}}</class>
<category>numeric</category>
</value-type>
</node>
<node id="order_by">
<label>UI:DashletGroupBy:Prop-OrderField</label>
<value-type xsi:type="Combodo-ValueType-ChoiceFromInput">
<values>
<value id="attribute">
<label>{{aggregation_attribute.label}}</label>
</value>
<value id="function">
<label>{{aggregation_function.label}}</label>
</value>
</values>
</value-type>
</node>
<node id="limit">
<label>UI:DashletGroupBy:Prop-Limit</label>
<relevance-condition>{{order_by.value = 'function'}}</relevance-condition>
<value-type xsi:type="Combodo-ValueType-Integer"/>
</node>
<node id="order_direction">
<label>UI:DashletGroupBy:Prop-OrderDirection</label>
<value-type xsi:type="Combodo-ValueType-Choice">
<data-transform>
<xml-node-empty-not-allowed/>
</data-transform>
<values>
<value id="asc">
<label>UI:DashletGroupBy:Order:asc</label>
</value>
<value id="desc">
<label>UI:DashletGroupBy:Order:desc</label>
</value>
</values>
</value-type>
<display-default>desc</display-default>
</node>
</nodes>
</property_tree>
<property_tree id="DashletBadge" xsi:type="Combodo-PropertyTree">
<extends>Dashlet</extends>
<nodes>
<node id="class">
<label>UI:DashletBadge:Prop-Class</label>
<value-type xsi:type="Combodo-ValueType-Class">
<categories-csv>bizmodel</categories-csv>
</value-type>
</node>
</nodes>
</property_tree>
<property_tree id="DashletHeaderDynamic" xsi:type="Combodo-PropertyTree">
<extends>Dashlet</extends>
<nodes>
<node id="title">
<label>UI:DashletHeaderDynamic:Prop-Title</label>
<value-type xsi:type="Combodo-ValueType-Label">
<not-blank/>
</value-type>
</node>
<node id="icon">
<label>UI:DashletHeaderDynamic:Prop-Icon</label>
<value-type xsi:type="Combodo-ValueType-Icon">
</value-type>
</node>
<node id="subtitle">
<label>UI:DashletHeaderDynamic:Prop-Subtitle</label>
<value-type xsi:type="Combodo-ValueType-Label"/>
</node>
<node id="query">
<label>UI:DashletHeaderDynamic:Prop-Query</label>
<value-type xsi:type="Combodo-ValueType-OQL">
<data-transform>
<xml-node-empty-not-allowed/>
</data-transform>
</value-type>
</node>
<node id="group_by">
<label>UI:DashletHeaderDynamic:Prop-GroupBy</label>
<value-type xsi:type="Combodo-ValueType-ClassAttribute">
<data-transform>
<xml-node-empty-not-allowed/>
</data-transform>
<class>{{query.selected_class}}</class>
<category>enum</category>
</value-type>
</node>
<node id="values">
<label>UI:DashletHeaderDynamic:Prop-Values</label>
<value-type xsi:type="Combodo-ValueType-CollectionOfValues">
<data-transform>
<xml-format xsi:type="xml-format-csv"/>
</data-transform>
<value-type xsi:type="Combodo-ValueType-ClassAttributeValue">
<class>{{query.selected_class}}</class>
<attribute>{{group_by.value}}</attribute>
</value-type>
</value-type>
</node>
</nodes>
</property_tree>
<property_tree id="DashletHeaderStatic" xsi:type="Combodo-PropertyTree">
<extends>Dashlet</extends>
<nodes>
<node id="title">
<label>UI:DashletHeaderStatic:Prop-Title</label>
<value-type xsi:type="Combodo-ValueType-Label"/>
</node>
<node id="icon">
<label>UI:DashletHeaderStatic:Prop-Icon</label>
<value-type xsi:type="Combodo-ValueType-Icon"/>
</node>
</nodes>
</property_tree>
<property_tree id="DashletObjectList" xsi:type="Combodo-PropertyTree">
<extends>Dashlet</extends>
<nodes>
<node id="title">
<label>UI:DashletObjectList:Prop-Title</label>
<value-type xsi:type="Combodo-ValueType-Label">
</value-type>
</node>
<node id="query">
<label>UI:DashletObjectList:Prop-Query</label>
<value-type xsi:type="Combodo-ValueType-OQL"/>
</node>
<node id="menu">
<label>UI:DashletObjectList:Prop-Menu</label>
<value-type xsi:type="Combodo-ValueType-Boolean">
<on>
<!-- not so cute, but matches exactly 3.2 implementation of boolean fields -->
<label>UI:UserManagement:ActionAllowed:Yes</label>
<value>true</value>
</on>
<off>
<label>UI:UserManagement:ActionAllowed:No</label>
<value>false</value>
</off>
</value-type>
</node>
</nodes>
</property_tree>
<property_tree id="DashletPlainText" xsi:type="Combodo-PropertyTree">
<extends>Dashlet</extends>
<nodes>
<node id="text">
<label>UI:DashletPlainText:Prop-Text</label>
<constraints>
<not_blank/>
</constraints>
<value-type xsi:type="Combodo-ValueType-Text"/>
</node>
</nodes>
</property_tree>
</property_trees>
</meta>
</itop_design>
6 changes: 6 additions & 0 deletions application/utils.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -1900,6 +1900,12 @@ public static function DoPostRequest($sUrl, $aData, $sOptionnalHeaders = null, &
return $response;
}

public static function QuoteForPHP(string $sValue): string
{
$sEscaped = str_replace(['\\', "'"], ['\\\\', "\\'"], $sValue);
return "'$sEscaped'";
}

/**
* Get a standard list of character sets
*
Expand Down
1 change: 1 addition & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
"symfony/mailer": "^6.4",
"symfony/security-csrf": "^6.4",
"symfony/twig-bundle": "~6.4.0",
"symfony/validator" : "^6.4",
"symfony/yaml": "~6.4.0",
"tecnickcom/tcpdf": "^6.6.0",
"thenetworg/oauth2-azure": "^2.0"
Expand Down
103 changes: 102 additions & 1 deletion composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion core/designdocument.class.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
/**
* Class \Combodo\iTop\DesignDocument
*
* A design document is the DOM tree that modelize behaviors. One of its
* A design document is the DOM tree that models behaviors. One of its
* characteristics is that it can be altered by the mean of the same kind of document.
*
*/
Expand Down
Loading