Admin. console:
- Class and id on object form
- Class current and target state on object transition form
- Object form mode (view/edit/create/stimulus)
- Object attributes: Attribute code, attribute definition class and raw value
- Navigation menu: Their IDs on group and items
- Actions menu: Their IDs on items
Portal:
- Object attributes: Attribute code, attribute definition class and raw value
- The code now uses the standard extension method (using interfaces)
- the metamodel can now filter on iModuleExtension in order to leverage extensions modularity (see MetaModel::EnumPlugins second param)
- during the setup, there is no pawsord policy control
- there is now a default policy
- new (more precie) translation reflecting the default policy
- fix CI?
Previous commit : 24eb82d1
Use \CMDBObject::SetTrackInfo
Move \CMDBObject::SetCurrentChange calls at the top most level of the stacks
Restore old behaviors that were removed in previous commit
- CombodoPortalToolbox.CloseAllModals() : Close all modal on the page
- CombodoPortalToolbox.OpenUrlInModal(sTargetUrl, bCloseOtherModals) : Open an URL in a modal, typically opening an object form
- CombodoPortalToolbox.OpenModal(oOptions) : Generic method to open modals in the portal with various options
* 📝 little PHPDoc in BackupExec
* ♻️ Create a extendable implementation of iScheduledProcess
* create AbstractWeeklyScheduledProcess
* move schedule methods to the new abstract class
* create ProcessInvalidConfigException
* in cron.php skip abstract class
- bootstrap.inc.php is now included by approot.inc.php
- remove all unescessaries includes of bootstrap.inc.php
- in bootstrap.inc.php autoload can be bypassed using a feature flag because "why not"
Loop was removed in 5c483efd but we need it !
Sample rule that needs such a loop :
<action_rule id="N2555_multiple_results_addtolist" _delta="define">
<source_oql>SELECT Person WHERE id > 0</source_oql>
<presets>
<preset id="1">add_to_list(id, contacts_list)</preset>
</presets>
</action_rule>
This code is a drop in replacement based on an abstract counter based on an abstract keyValue store.
The counter can be
- class based (in this case the counter is initialized on max(id) + 1
- key based (in this case the counter starts at 0)
Important: on both cases the counter is no more kept aligned with the primary key.
This lead to a MySQL8 compatible implementation.