Restore prototypes of cmdbAbstractObject methods in which we added $sMode to preserve compatibility with existing extensions (#240)

* Restore prototypes of cmdbAbstractObject methods in which we added $sMode to preserve compatibility with existing extensions

* Rename cmdbAbstractObject::ENUM_OBJECT_MODE_XXX

* Add cmdbAbstractObject::ENUM_OBJECT_MODE_BULK_EDIT

* Refactor usage of $sDisplayMode in cmdbAbstractObject::DisplayModifyForm()
This commit is contained in:
Molkobain
2021-11-16 17:47:09 +01:00
committed by GitHub
parent 1b2d75efd6
commit 2a913cd484
10 changed files with 147 additions and 77 deletions

View File

@@ -62,11 +62,11 @@ class ActivityPanel extends UIBlock
/** @var \DBObject $oObject The object for which the activity panel is for */
protected $oObject;
/**
* @see \cmdbAbstractObject::ENUM_OBJECT_MODE_XXX
* @see \cmdbAbstractObject::ENUM_DISPLAY_MODE_XXX
* @var string $sObjectMode Display mode of $oObject (create, edit, view, ...)
*/
protected $sObjectMode;
/** @var null|string $sTransactionId Only when $sObjectMode is set to \cmdbAbstractObject::ENUM_OBJECT_MODE_VIEW */
/** @var null|string $sTransactionId Only when $sObjectMode is set to \cmdbAbstractObject::ENUM_DISPLAY_MODE_VIEW */
protected $sTransactionId;
/** @var array $aCaseLogs Metadata of the case logs (att. code, color, ...), will be use to make the tabs and identify them easily */
protected $aCaseLogs;
@@ -107,7 +107,7 @@ class ActivityPanel extends UIBlock
$this->InitializeCaseLogTabs();
$this->InitializeCaseLogTabsEntryForms();
$this->InitializeComposeMenu();
$this->SetObjectMode(cmdbAbstractObject::DEFAULT_OBJECT_MODE);
$this->SetObjectMode(cmdbAbstractObject::DEFAULT_DISPLAY_MODE);
$this->SetObject($oObject);
$this->SetEntries($aEntries);
$this->bAreEntriesSorted = false;
@@ -184,7 +184,7 @@ class ActivityPanel extends UIBlock
* Set the display mode of the $oObject
*
* @param string $sMode
* @see cmdbAbstractObject::ENUM_OBJECT_MODE_XXX
* @see cmdbAbstractObject::ENUM_DISPLAY_MODE_XXX
*
* @return $this
* @throws \Exception
@@ -204,7 +204,7 @@ class ActivityPanel extends UIBlock
/**
* Return the display mode of the $oObject
*
* @see cmdbAbstractObject::ENUM_OBJECT_MODE_XXX
* @see cmdbAbstractObject::ENUM_DISPLAY_MODE_XXX
* @return string
*/
public function GetObjectMode(): string
@@ -260,13 +260,13 @@ class ActivityPanel extends UIBlock
/**
* @return bool True if the lock mechanism has to be enabled
* @uses \cmdbAbstractObject::ENUM_OBJECT_MODE_VIEW
* @uses \cmdbAbstractObject::ENUM_DISPLAY_MODE_VIEW
* @uses static::HasAnEditableCaseLogTab()
* @uses "concurrent_lock_enabled" config. param.
*/
public function IsLockEnabled(): bool
{
return (cmdbAbstractObject::ENUM_OBJECT_MODE_VIEW === $this->sObjectMode) && (MetaModel::GetConfig()->Get('concurrent_lock_enabled')) && (true === $this->HasAnEditableCaseLogTab());
return (cmdbAbstractObject::ENUM_DISPLAY_MODE_VIEW === $this->sObjectMode) && (MetaModel::GetConfig()->Get('concurrent_lock_enabled')) && (true === $this->HasAnEditableCaseLogTab());
}
/**
@@ -567,8 +567,8 @@ class ActivityPanel extends UIBlock
// - There is a least 1 *writable* case log
// - And object is in view mode (in edit mode, it will be handled by the general form)
// Otherwise we generate unnecessary transaction IDs that could saturate the system
if ((false === $bIsReadOnly) && (false === $this->HasTransactionId()) && (cmdbAbstractObject::ENUM_OBJECT_MODE_VIEW === $this->sObjectMode)) {
$this->sTransactionId = (cmdbAbstractObject::ENUM_OBJECT_MODE_VIEW === $this->sObjectMode) ? utils::GetNewTransactionId() : null;
if ((false === $bIsReadOnly) && (false === $this->HasTransactionId()) && (cmdbAbstractObject::ENUM_DISPLAY_MODE_VIEW === $this->sObjectMode)) {
$this->sTransactionId = (cmdbAbstractObject::ENUM_DISPLAY_MODE_VIEW === $this->sObjectMode) ? utils::GetNewTransactionId() : null;
}
// Add log to compose button menu only if it is editable

View File

@@ -43,7 +43,7 @@ class ActivityPanelFactory
/**
* Make an activity panel for an object details layout, meaning that it should contain the case logs and the activity.
*
* @see cmdbAbstractObject::ENUM_OBJECT_MODE_XXX
* @see cmdbAbstractObject::ENUM_DISPLAY_MODE_XXX
*
* @param \DBObject $oObject
* @param string $sMode Mode the object is being displayed (view, edit, create, ...), default is view.
@@ -56,14 +56,14 @@ class ActivityPanelFactory
* @throws \MySQLException
* @throws \OQLException
*/
public static function MakeForObjectDetails(DBObject $oObject, string $sMode = cmdbAbstractObject::DEFAULT_OBJECT_MODE)
public static function MakeForObjectDetails(DBObject $oObject, string $sMode = cmdbAbstractObject::DEFAULT_DISPLAY_MODE)
{
$sObjClass = get_class($oObject);
$sObjId = $oObject->GetKey();
if ($sMode == cmdbAbstractObject::ENUM_OBJECT_MODE_PRINT) {
if ($sMode == cmdbAbstractObject::ENUM_DISPLAY_MODE_PRINT) {
$oActivityPanel = new ActivityPanelPrint($oObject, [], ActivityPanel::BLOCK_CODE);
$sMode = cmdbAbstractObject::ENUM_OBJECT_MODE_VIEW;
$sMode = cmdbAbstractObject::ENUM_DISPLAY_MODE_VIEW;
} else {
$oActivityPanel = new ActivityPanel($oObject, [], ActivityPanel::BLOCK_CODE);
}

View File

@@ -143,20 +143,20 @@ class CaseLogEntryForm extends UIContentBlock
*
* @param string $sObjectMode
* @see $sSubmitMode
* @see cmdbAbstractObject::ENUM_OBJECT_MODE_XXX
* @see cmdbAbstractObject::ENUM_DISPLAY_MODE_XXX
*
* @return $this
*/
public function SetSubmitModeFromHostObjectMode($sObjectMode)
{
switch ($sObjectMode){
case cmdbAbstractObject::ENUM_OBJECT_MODE_CREATE:
case cmdbAbstractObject::ENUM_OBJECT_MODE_EDIT:
case cmdbAbstractObject::ENUM_DISPLAY_MODE_CREATE:
case cmdbAbstractObject::ENUM_DISPLAY_MODE_EDIT:
$sSubmitMode = static::ENUM_SUBMIT_MODE_BRIDGED;
break;
case cmdbAbstractObject::ENUM_OBJECT_MODE_VIEW:
case cmdbAbstractObject::ENUM_OBJECT_MODE_STIMULUS:
case cmdbAbstractObject::ENUM_DISPLAY_MODE_VIEW:
case cmdbAbstractObject::ENUM_DISPLAY_MODE_STIMULUS:
default:
$sSubmitMode = static::ENUM_SUBMIT_MODE_AUTONOMOUS;
break;

View File

@@ -33,7 +33,7 @@ use UserRights;
*/
class CaseLogEntryFormFactory
{
public static function MakeForCaselogTab(DBObject $oObject, string $sCaseLogAttCode, string $sObjectMode = cmdbAbstractObject::DEFAULT_OBJECT_MODE)
public static function MakeForCaselogTab(DBObject $oObject, string $sCaseLogAttCode, string $sObjectMode = cmdbAbstractObject::DEFAULT_DISPLAY_MODE)
{
$oCaseLogEntryForm = new CaseLogEntryForm($oObject, $sCaseLogAttCode);
$oCaseLogEntryForm->SetSubmitModeFromHostObjectMode($sObjectMode)