mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-01 14:38:47 +02:00
Merge branch 'support/3.2' into develop
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry;
|
||||
|
||||
|
||||
use AttributeDateTime;
|
||||
use Combodo\iTop\Application\UI\Base\UIBlock;
|
||||
use Combodo\iTop\Core\CMDBChange\CMDBChangeOrigin;
|
||||
@@ -335,7 +335,7 @@ class ActivityEntry extends UIBlock
|
||||
$sDecorationClasses = null;
|
||||
|
||||
// Note: We put fa-fw on all cases instead of just in the template as one of the cases could (in the future) not use FA icons. This will ensure that any use of the FA icons are always the same width.
|
||||
switch($this->GetOrigin()) {
|
||||
switch ($this->GetOrigin()) {
|
||||
case CMDBChangeOrigin::CSV_INTERACTIVE:
|
||||
case CMDBChangeOrigin::CSV_IMPORT:
|
||||
$sDecorationClasses = 'fas fa-fw fa-file-import';
|
||||
@@ -364,4 +364,4 @@ class ActivityEntry extends UIBlock
|
||||
|
||||
return $sDecorationClasses;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry;
|
||||
|
||||
|
||||
use AttributeDateTime;
|
||||
use CMDBChange;
|
||||
use CMDBChangeOp;
|
||||
@@ -83,7 +83,7 @@ class ActivityEntryFactory
|
||||
$oUser = MetaModel::GetObject('User', $aOrmEntry['user_id'], false, true);
|
||||
$sUserLogin = ($oUser === null) ? '' : $oUser->Get('login');
|
||||
|
||||
// We sanitize OrmEntry even if it's already sanitized: if the entry is somehow truncated or metadata are wrong we may break whole page DOM
|
||||
// We sanitize OrmEntry even if it's already sanitized: if the entry is somehow truncated or metadata are wrong we may break whole page DOM
|
||||
$oEntry = new CaseLogEntry(
|
||||
DateTime::createFromFormat(AttributeDateTime::GetInternalFormat(), $aOrmEntry['date']),
|
||||
$sUserLogin,
|
||||
@@ -154,4 +154,4 @@ class ActivityEntryFactory
|
||||
|
||||
return $sFactoryFqcn;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\CMDBChangeOp;
|
||||
|
||||
|
||||
/**
|
||||
* Class CMDBChangeOpAttachmentAddedFactory
|
||||
*
|
||||
@@ -31,4 +31,4 @@ namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\CM
|
||||
class CMDBChangeOpAttachmentAddedFactory extends CMDBChangeOpFactory
|
||||
{
|
||||
public const DEFAULT_DECORATION_CLASSES = 'fas fa-fw fa-paperclip';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\CMDBChangeOp;
|
||||
|
||||
|
||||
/**
|
||||
* Class CMDBChangeOpAttachmentRemovedFactory
|
||||
*
|
||||
@@ -31,4 +31,4 @@ namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\CM
|
||||
class CMDBChangeOpAttachmentRemovedFactory extends CMDBChangeOpFactory
|
||||
{
|
||||
public const DEFAULT_DECORATION_CLASSES = 'fas fa-fw fa-unlink';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\CMDBChangeOp;
|
||||
|
||||
|
||||
/**
|
||||
* Class CMDBChangeOpCreateFactory
|
||||
*
|
||||
@@ -28,6 +28,7 @@ namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\CM
|
||||
* @since 3.0.0
|
||||
* @internal
|
||||
*/
|
||||
class CMDBChangeOpCreateFactory extends CMDBChangeOpFactory {
|
||||
class CMDBChangeOpCreateFactory extends CMDBChangeOpFactory
|
||||
{
|
||||
public const DEFAULT_DECORATION_CLASSES = 'fas fa-fw fa-seedling';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\CMDBChangeOp;
|
||||
|
||||
|
||||
/**
|
||||
* Class CMDBChangeOpDeleteFactory
|
||||
*
|
||||
@@ -28,6 +28,7 @@ namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\CM
|
||||
* @since 3.0.0
|
||||
* @internal
|
||||
*/
|
||||
class CMDBChangeOpDeleteFactory extends CMDBChangeOpFactory {
|
||||
class CMDBChangeOpDeleteFactory extends CMDBChangeOpFactory
|
||||
{
|
||||
public const DEFAULT_DECORATION_CLASSES = 'fas fa-fw fa-trash';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\CMDBChangeOp;
|
||||
|
||||
|
||||
use AttributeDateTime;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\ActivityEntry;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\EditsEntry;
|
||||
@@ -82,15 +82,13 @@ class CMDBChangeOpFactory
|
||||
// - Set login in the friendlyname as a fallback
|
||||
$sAuthorLogin = $oChangeOp->Get('userinfo');
|
||||
// - Try to find user login from its ID if present (since iTop 3.0.0)
|
||||
if(empty($iAuthorId) === false)
|
||||
{
|
||||
if (empty($iAuthorId) === false) {
|
||||
$oAuthor = MetaModel::GetObject('User', $iAuthorId, false, true);
|
||||
if(empty($oAuthor) === false)
|
||||
{
|
||||
if (empty($oAuthor) === false) {
|
||||
$sAuthorLogin = $oAuthor->Get('login');
|
||||
}
|
||||
}
|
||||
|
||||
return $sAuthorLogin;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\CMDBChangeOp;
|
||||
|
||||
|
||||
use AttributeDateTime;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\EditsEntry;
|
||||
use DateTime;
|
||||
@@ -60,4 +60,4 @@ class CMDBChangeOpSetAttributeFactory extends CMDBChangeOpFactory
|
||||
|
||||
return $oEntry;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\CMDBChangeOp;
|
||||
|
||||
|
||||
use AttributeDateTime;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\TransitionEntry;
|
||||
use DateTime;
|
||||
@@ -56,12 +56,10 @@ class CMDBChangeOpSetAttributeScalarFactory extends CMDBChangeOpSetAttributeFact
|
||||
$sTargetStateLabel = MetaModel::GetStateLabel($sHostObjectClass, $oChangeOp->Get('newvalue'));
|
||||
|
||||
$oEntry = new TransitionEntry($oDateTime, $sAuthorLogin, $sHostObjectClass, $sOriginStateLabel, $sTargetStateLabel);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$oEntry = parent::MakeFromCmdbChangeOp($oChangeOp);
|
||||
}
|
||||
|
||||
return $oEntry;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry;
|
||||
|
||||
|
||||
use DateTime;
|
||||
use utils;
|
||||
|
||||
@@ -70,10 +70,10 @@ class CaseLogEntry extends ActivityEntry
|
||||
$this->sAttCode = $sAttCode;
|
||||
$this->SetCaseLogRank(static::DEFAULT_CASELOG_RANK);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the author and its information based on the $sAuthorLogin using parent call
|
||||
* If no parent call found no matching User, fallback on caselog author name and display it as foreign message
|
||||
* If no parent call found no matching User, fallback on caselog author name and display it as foreign message
|
||||
*
|
||||
* @param string $sAuthorLogin
|
||||
*
|
||||
@@ -84,13 +84,13 @@ class CaseLogEntry extends ActivityEntry
|
||||
public function SetAuthor(string $sAuthorLogin)
|
||||
{
|
||||
parent::SetAuthor($sAuthorLogin);
|
||||
|
||||
|
||||
// If no User was found in parent call
|
||||
if($this->sAuthorLogin === '') {
|
||||
if ($this->sAuthorLogin === '') {
|
||||
// Use caselog user_login info as friendlyname and compute its initials
|
||||
$this->sAuthorFriendlyname = $this->sAuthorName;
|
||||
$this->sAuthorInitials = utils::ToAcronym($this->sAuthorFriendlyname);
|
||||
|
||||
|
||||
// Reset Picture as we probably have default image
|
||||
$this->sAuthorPictureAbsUrl = null;
|
||||
// Reset bIsFromCurrentUser as UserRights often consider '' login as current user login
|
||||
@@ -132,4 +132,4 @@ class CaseLogEntry extends ActivityEntry
|
||||
{
|
||||
return $this->iCaseLogRank;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry;
|
||||
|
||||
|
||||
use DateTime;
|
||||
use Dict;
|
||||
use Exception;
|
||||
@@ -137,8 +137,7 @@ class EditsEntry extends ActivityEntry
|
||||
*/
|
||||
public function RemoveAttribute(string $sAttCode)
|
||||
{
|
||||
if (array_key_exists($sAttCode, $this->aAttributes))
|
||||
{
|
||||
if (array_key_exists($sAttCode, $this->aAttributes)) {
|
||||
unset($this->aAttributes[$sAttCode]);
|
||||
}
|
||||
|
||||
@@ -180,8 +179,7 @@ class EditsEntry extends ActivityEntry
|
||||
// We need the array to be indexed by numbers instead of being associative
|
||||
$aAttributesData = array_values($this->GetAttributes());
|
||||
$iAttributesCount = count($aAttributesData);
|
||||
switch($iAttributesCount)
|
||||
{
|
||||
switch ($iAttributesCount) {
|
||||
case 0:
|
||||
$sDescriptionAsHtml = '';
|
||||
break;
|
||||
@@ -204,8 +202,7 @@ class EditsEntry extends ActivityEntry
|
||||
$sFirstAttLabelAsHtml = '<span class="ibo-edits-entry--attribute-label" data-attribute-code="'.$aAttributesData[0]['code'].'">'.$aAttributesData[0]['label'].'</span>';
|
||||
$sSecondAttLabelAsHtml = '<span class="ibo-edits-entry--attribute-label" data-attribute-code="'.$aAttributesData[1]['code'].'">'.$aAttributesData[1]['label'].'</span>';
|
||||
|
||||
switch($iAttributesCount)
|
||||
{
|
||||
switch ($iAttributesCount) {
|
||||
case 2:
|
||||
$sDescriptionAsHtml = Dict::Format('Change:TwoAttributesChanged', $sFirstAttLabelAsHtml, $sSecondAttLabelAsHtml);
|
||||
break;
|
||||
@@ -222,4 +219,4 @@ class EditsEntry extends ActivityEntry
|
||||
|
||||
return $sDescriptionAsHtml;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\EventNotification;
|
||||
|
||||
|
||||
/**
|
||||
* Class EventNotificationEmailFactory
|
||||
*
|
||||
@@ -34,4 +34,4 @@ class EventNotificationEmailFactory extends EventNotificationFactory
|
||||
{
|
||||
/** @inheritDoc */
|
||||
public const DEFAULT_DECORATION_CLASSES = 'fas fa-fw fa-envelope';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\EventNotification;
|
||||
|
||||
|
||||
use AttributeDateTime;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\NotificationEntry;
|
||||
use DateTime;
|
||||
@@ -65,4 +65,4 @@ class EventNotificationFactory
|
||||
|
||||
return $oEntry;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry;
|
||||
|
||||
|
||||
use DateTime;
|
||||
|
||||
/**
|
||||
@@ -108,4 +108,4 @@ class NotificationEntry extends ActivityEntry
|
||||
{
|
||||
return $this->sMessage;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry;
|
||||
|
||||
|
||||
use DateTime;
|
||||
use MetaModel;
|
||||
|
||||
@@ -63,7 +63,11 @@ class TransitionEntry extends ActivityEntry
|
||||
* @throws \OQLException
|
||||
*/
|
||||
public function __construct(
|
||||
DateTime $oDateTime, string $sAuthorLogin, string $sObjectClass, string $sOriginStateCode, string $sTargetStateCode,
|
||||
DateTime $oDateTime,
|
||||
string $sAuthorLogin,
|
||||
string $sObjectClass,
|
||||
string $sOriginStateCode,
|
||||
string $sTargetStateCode,
|
||||
?string $sId = null
|
||||
) {
|
||||
parent::__construct($oDateTime, $sAuthorLogin, null, $sId);
|
||||
@@ -145,4 +149,4 @@ class TransitionEntry extends ActivityEntry
|
||||
{
|
||||
return $this->sTargetStateLabel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel;
|
||||
|
||||
|
||||
use cmdbAbstractObject;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityEntry\ActivityEntryFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\CaseLogEntryForm\CaseLogEntryFormFactory;
|
||||
@@ -73,8 +73,7 @@ class ActivityPanelFactory
|
||||
|
||||
// Prepare caselogs
|
||||
$aCaseLogTabs = $oActivityPanel->GetCaseLogTabs();
|
||||
foreach($aCaseLogTabs as $sCaseLogAttCode => $aCaseLogData)
|
||||
{
|
||||
foreach ($aCaseLogTabs as $sCaseLogAttCode => $aCaseLogData) {
|
||||
/** @var \ormCaseLog $oCaseLog */
|
||||
$oCaseLog = $oObject->Get($sCaseLogAttCode);
|
||||
|
||||
@@ -160,8 +159,7 @@ class ActivityPanelFactory
|
||||
while ($oNotifEvent = $oNotifEventsSet->Fetch()) {
|
||||
try {
|
||||
$oEntry = ActivityEntryFactory::MakeFromEventNotification($oNotifEvent);
|
||||
}
|
||||
catch (Exception $oException) {
|
||||
} catch (Exception $oException) {
|
||||
IssueLog::Debug(static::class.': Could not create entry from EventNotification #'.$oNotifEvent->GetKey().' related to trigger "'.$oNotifEvent->Get('trigger_id_friendlyname').'" / action "'.$oNotifEvent->Get('action_id_friendlyname').'" / object #'.$oNotifEvent->Get('object_id').': '.$oException->getMessage());
|
||||
continue;
|
||||
}
|
||||
@@ -177,4 +175,4 @@ class ActivityPanelFactory
|
||||
|
||||
return $oActivityPanel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
@@ -6,7 +7,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel;
|
||||
|
||||
|
||||
use appUserPreferences;
|
||||
use BinaryExpression;
|
||||
use cmdbAbstractObject;
|
||||
@@ -124,7 +124,9 @@ class ActivityPanelHelper
|
||||
if (null !== $sChangeOpIdToOffsetFrom) {
|
||||
$oSearch->AddConditionExpression(
|
||||
new BinaryExpression(
|
||||
new FieldExpression('id', 'CO'), '<', new VariableExpression('id')
|
||||
new FieldExpression('id', 'CO'),
|
||||
'<',
|
||||
new VariableExpression('id')
|
||||
)
|
||||
);
|
||||
$aArgs['id'] = $sChangeOpIdToOffsetFrom;
|
||||
@@ -162,8 +164,7 @@ class ActivityPanelHelper
|
||||
$iChangeId = $oChangeOp->Get('change');
|
||||
try {
|
||||
$oEntry = ActivityEntryFactory::MakeFromCmdbChangeOp($oChangeOp, $oChange);
|
||||
}
|
||||
catch (Exception $oException) {
|
||||
} catch (Exception $oException) {
|
||||
IssueLog::Debug(static::class.': Could not create entry from CMDBChangeOp #'.$oChangeOp->GetKey().' related to '.$oChangeOp->Get('objclass').'::'.$oChangeOp->Get('objkey').': '.$oException->getMessage());
|
||||
continue;
|
||||
}
|
||||
@@ -192,4 +193,4 @@ class ActivityPanelHelper
|
||||
|
||||
return $aResults;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
@@ -18,4 +19,4 @@ class ActivityPanelPrint extends ActivityPanel
|
||||
// Overloaded constants
|
||||
public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/layouts/activity-panel/print';
|
||||
public const DEFAULT_JS_TEMPLATE_REL_PATH = 'base/layouts/activity-panel/print';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\CaseLogEntryForm;
|
||||
|
||||
use AttributeCaseLog;
|
||||
@@ -160,7 +162,7 @@ class CaseLogEntryForm extends UIContentBlock
|
||||
*/
|
||||
public function SetSubmitModeFromHostObjectMode($sObjectMode)
|
||||
{
|
||||
switch ($sObjectMode){
|
||||
switch ($sObjectMode) {
|
||||
case cmdbAbstractObject::ENUM_DISPLAY_MODE_CREATE:
|
||||
case cmdbAbstractObject::ENUM_DISPLAY_MODE_EDIT:
|
||||
$sSubmitMode = static::ENUM_SUBMIT_MODE_BRIDGED;
|
||||
@@ -324,5 +326,5 @@ class CaseLogEntryForm extends UIContentBlock
|
||||
|
||||
return $aSubBlocks;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\CaseLogEntryForm;
|
||||
|
||||
|
||||
use cmdbAbstractObject;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Button\Button;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Button\ButtonUIBlockFactory;
|
||||
@@ -86,8 +85,11 @@ class CaseLogEntryFormFactory
|
||||
$oSetToCheckRights = DBObjectSet::FromObject($oObject);
|
||||
$aStimuli = Metamodel::EnumStimuli($sObjClass);
|
||||
foreach ($aTransitions as $sStimulusCode => $aTransitionDef) {
|
||||
$iActionAllowed = (get_class($aStimuli[$sStimulusCode]) == 'StimulusUserAction') ? UserRights::IsStimulusAllowed($sObjClass,
|
||||
$sStimulusCode, $oSetToCheckRights) : UR_ALLOWED_NO;
|
||||
$iActionAllowed = (get_class($aStimuli[$sStimulusCode]) == 'StimulusUserAction') ? UserRights::IsStimulusAllowed(
|
||||
$sObjClass,
|
||||
$sStimulusCode,
|
||||
$oSetToCheckRights
|
||||
) : UR_ALLOWED_NO;
|
||||
switch ($iActionAllowed) {
|
||||
case UR_ALLOWED_YES:
|
||||
$oMenuItem = PopoverMenuItemFactory::MakeFromApplicationPopupMenuItem(
|
||||
@@ -107,4 +109,4 @@ JS
|
||||
|
||||
return $oMenu;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\Dashboard;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\tJSRefreshCallback;
|
||||
use Combodo\iTop\Application\UI\Base\UIBlock;
|
||||
|
||||
@@ -130,4 +129,4 @@ class DashboardColumn extends UIBlock
|
||||
$this->bLastRow = $bLastRow;
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\Dashboard;
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlock;
|
||||
@@ -99,4 +99,4 @@ class DashboardLayout extends UIBlock
|
||||
{
|
||||
return $this->aDashboardRows;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\Dashboard;
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\tJSRefreshCallback;
|
||||
@@ -68,4 +68,4 @@ class DashboardRow extends UIBlock
|
||||
$this->iRowIndex = $iRowIndex;
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
@@ -6,7 +7,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\MultiColumn\Column;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlock;
|
||||
|
||||
/**
|
||||
@@ -16,8 +16,9 @@ use Combodo\iTop\Application\UI\Base\Layout\UIContentBlock;
|
||||
* @internal
|
||||
* @since 3.0.0
|
||||
*/
|
||||
class Column extends UIContentBlock {
|
||||
class Column extends UIContentBlock
|
||||
{
|
||||
// Overloaded constants
|
||||
public const BLOCK_CODE = 'ibo-column';
|
||||
public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/layouts/multi-column/column/layout';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\MultiColumn\Column;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\AbstractUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\UIBlock;
|
||||
|
||||
@@ -53,4 +52,4 @@ class ColumnUIBlockFactory extends AbstractUIBlockFactory
|
||||
|
||||
return $oInput;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
@@ -6,7 +7,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\MultiColumn;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\Layout\MultiColumn\Column\Column;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlock;
|
||||
|
||||
@@ -42,4 +42,4 @@ class MultiColumn extends UIContentBlock
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
@@ -6,7 +7,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\MultiColumn;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\AbstractUIBlockFactory;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -89,7 +90,6 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
/** @var bool */
|
||||
protected $bShowMenusCount;
|
||||
|
||||
|
||||
/**
|
||||
* NavigationMenu constructor.
|
||||
*
|
||||
@@ -105,7 +105,10 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function __construct(
|
||||
ApplicationContext $oAppContext, PopoverMenu $oUserMenu, NewsroomMenu $oNewsroomMenu = null, ?string $sId = null
|
||||
ApplicationContext $oAppContext,
|
||||
PopoverMenu $oUserMenu,
|
||||
NewsroomMenu $oNewsroomMenu = null,
|
||||
?string $sId = null
|
||||
) {
|
||||
parent::__construct($sId);
|
||||
|
||||
@@ -116,7 +119,7 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
$this->sAppFullIconUrl = Branding::GetFullMainLogoAbsoluteUrl();
|
||||
$this->sAppIconLink = $oConfig->Get('app_icon_url');
|
||||
$this->SetShowMenusCount($oConfig->Get('navigation_menu.show_menus_count'));
|
||||
$this->aSiloSelection = array();
|
||||
$this->aSiloSelection = [];
|
||||
$this->aMenuGroups = ApplicationMenu::GetMenuGroups($oAppContext->GetAsHash());
|
||||
$this->oUserMenu = $oUserMenu;
|
||||
$this->oNewsroomMenu = $oNewsroomMenu;
|
||||
@@ -197,7 +200,7 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
$oAppContext = new ApplicationContext();
|
||||
$sCurrentOrganization = $oAppContext->GetCurrentValue('org_id');
|
||||
|
||||
if(!empty($sCurrentOrganization)) {
|
||||
if (!empty($sCurrentOrganization)) {
|
||||
return $sCurrentOrganization;
|
||||
}
|
||||
return '';
|
||||
@@ -287,7 +290,7 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
$sPropCode = 'app_icon_url';
|
||||
|
||||
// Try if a custom URL was set in the configuration file
|
||||
if(MetaModel::GetConfig()->IsCustomValue($sPropCode)) {
|
||||
if (MetaModel::GetConfig()->IsCustomValue($sPropCode)) {
|
||||
$this->sAppIconLink = MetaModel::GetConfig()->Get($sPropCode);
|
||||
}
|
||||
// Otherwise use the home page
|
||||
@@ -300,7 +303,8 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
* @return True if the silo selection is enabled, false otherwise
|
||||
* @since 3.1.0
|
||||
*/
|
||||
public function IsSiloSelectionEnabled() : bool {
|
||||
public function IsSiloSelectionEnabled(): bool
|
||||
{
|
||||
return MetaModel::GetConfig()->Get('navigation_menu.show_organization_filter');
|
||||
}
|
||||
|
||||
@@ -315,7 +319,7 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
$this->bHasSiloSelected = false;
|
||||
$this->sSiloLabel = null;
|
||||
|
||||
if (! $this->IsSiloSelectionEnabled()){
|
||||
if (! $this->IsSiloSelectionEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -323,8 +327,7 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
// List of visible Organizations
|
||||
$iCount = 0;
|
||||
$oSet = null;
|
||||
if (MetaModel::IsValidClass('Organization'))
|
||||
{
|
||||
if (MetaModel::IsValidClass('Organization')) {
|
||||
// Display the list of *favorite* organizations... but keeping in mind what is the real number of organizations
|
||||
$aFavoriteOrgs = appUserPreferences::GetPref('favorite_orgs', null);
|
||||
$oSearchFilter = new DBObjectSearch('Organization');
|
||||
@@ -335,14 +338,12 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
// Now get the list of Orgs to be displayed in the menu
|
||||
$oSearchFilter = DBObjectSearch::FromOQL(ApplicationMenu::GetFavoriteSiloQuery());
|
||||
$oSearchFilter->SetModifierProperty('UserRightsGetSelectFilter', 'bSearchMode', true);
|
||||
if (!empty($aFavoriteOrgs))
|
||||
{
|
||||
if (!empty($aFavoriteOrgs)) {
|
||||
$oSearchFilter->AddCondition('id', $aFavoriteOrgs, 'IN');
|
||||
}
|
||||
$oSet = new CMDBObjectSet($oSearchFilter); // List of favorite orgs
|
||||
}
|
||||
switch ($iCount)
|
||||
{
|
||||
switch ($iCount) {
|
||||
case 0:
|
||||
case 1:
|
||||
// No such dimension/silo or only one possible choice => nothing to select
|
||||
@@ -352,7 +353,7 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
$oAppContext = new ApplicationContext();
|
||||
$iCurrentOrganization = $oAppContext->GetCurrentValue('org_id');
|
||||
|
||||
if(!empty($iCurrentOrganization)) {
|
||||
if (!empty($iCurrentOrganization)) {
|
||||
$oCurrentOrganization = MetaModel::GetObject('Organization', $iCurrentOrganization, true, true);
|
||||
$this->bHasSiloSelected = true;
|
||||
$this->sSiloLabel = $oCurrentOrganization->GetRawName();
|
||||
@@ -364,12 +365,22 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
|
||||
$oWidget = new UIExtKeyWidget('Organization', 'org_id', '', true /* search mode */);
|
||||
$iMaxComboLength = MetaModel::GetConfig()->Get('max_combo_length');
|
||||
$this->aSiloSelection['html'] .= $oWidget->DisplaySelect($oPage, $iMaxComboLength, false, Dict::S('UI:Layout:NavigationMenu:Silo:Label'), $oSet, $iCurrentOrganization, false, 'c[org_id]', '',
|
||||
array(
|
||||
$this->aSiloSelection['html'] .= $oWidget->DisplaySelect(
|
||||
$oPage,
|
||||
$iMaxComboLength,
|
||||
false,
|
||||
Dict::S('UI:Layout:NavigationMenu:Silo:Label'),
|
||||
$oSet,
|
||||
$iCurrentOrganization,
|
||||
false,
|
||||
'c[org_id]',
|
||||
'',
|
||||
[
|
||||
'iFieldSize' => 20,
|
||||
'iMinChars' => MetaModel::GetConfig()->Get('min_autocomplete_chars'),
|
||||
'sDefaultValue' => Dict::S('UI:AllOrganizations'),
|
||||
));
|
||||
]
|
||||
);
|
||||
$this->aSiloSelection['html'] .= $oPage->GetHtml();
|
||||
// Add other dimensions/context information to this form
|
||||
$oAppContext->Reset('org_id'); // org_id is handled above and we want to be able to change it here !
|
||||
@@ -378,7 +389,7 @@ class NavigationMenu extends UIBlock implements iKeyboardShortcut
|
||||
$this->aSiloSelection['html'] .= '</form>';
|
||||
|
||||
$sAddClearButton = "";
|
||||
if ($this->bHasSiloSelected ){
|
||||
if ($this->bHasSiloSelected) {
|
||||
$sAddClearButton = "$('#mini_clear_org_id').removeClass('ibo-is-hidden');";
|
||||
}
|
||||
|
||||
@@ -415,21 +426,17 @@ JS;
|
||||
{
|
||||
$bIsExpanded = false;
|
||||
// Check if menu should be opened only if we re not in demo mode
|
||||
if (false === MetaModel::GetConfig()->Get('demo_mode'))
|
||||
{
|
||||
if (false === MetaModel::GetConfig()->Get('demo_mode')) {
|
||||
// Force state if necessary...
|
||||
if (utils::ReadParam('force_menu_pane', null) === 0)
|
||||
{
|
||||
if (utils::ReadParam('force_menu_pane', null) === 0) {
|
||||
$bIsExpanded = false;
|
||||
}
|
||||
// ... otherwise look for the new user pref ...
|
||||
elseif (appUserPreferences::GetPref('navigation_menu.expanded', null) !== null)
|
||||
{
|
||||
elseif (appUserPreferences::GetPref('navigation_menu.expanded', null) !== null) {
|
||||
$bIsExpanded = appUserPreferences::GetPref('navigation_menu.expanded', null) === 'expanded';
|
||||
}
|
||||
// ... or fallback on the old one
|
||||
elseif (appUserPreferences::GetPref('menu_pane', null) !== null)
|
||||
{
|
||||
elseif (appUserPreferences::GetPref('menu_pane', null) !== null) {
|
||||
$bIsExpanded = appUserPreferences::GetPref('menu_pane', null) === 'opened';
|
||||
}
|
||||
}
|
||||
@@ -469,7 +476,7 @@ JS;
|
||||
'sOrganization' => UserRights::GetContactOrganizationFriendlyname(),
|
||||
'sFirstname' => UserRights::GetContactFirstname(),
|
||||
'sPictureUrl' => $sPictureUrl,
|
||||
'sWelcomeMessage' => Dict::Format('UI:Layout:NavigationMenu:UserInfo:WelcomeMessage:Text', UserRights::GetContactFirstname())
|
||||
'sWelcomeMessage' => Dict::Format('UI:Layout:NavigationMenu:UserInfo:WelcomeMessage:Text', UserRights::GetContactFirstname()),
|
||||
];
|
||||
|
||||
// Logon message
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\NavigationMenu;
|
||||
|
||||
|
||||
use ApplicationContext;
|
||||
use Combodo\iTop\Application\UI\Base\Component\PopoverMenu\NewsroomMenu\NewsroomMenuFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenuFactory;
|
||||
@@ -46,15 +46,17 @@ class NavigationMenuFactory
|
||||
*/
|
||||
public static function MakeStandard()
|
||||
{
|
||||
|
||||
|
||||
$oNewsroomMenu = null;
|
||||
if (MetaModel::GetConfig()->Get('newsroom_enabled'))
|
||||
{
|
||||
if (MetaModel::GetConfig()->Get('newsroom_enabled')) {
|
||||
$oNewsroomMenu = NewsroomMenuFactory::MakeNewsroomMenuForNavigationMenu();
|
||||
}
|
||||
|
||||
|
||||
return new NavigationMenu(
|
||||
new ApplicationContext(), PopoverMenuFactory::MakeUserMenuForNavigationMenu(), $oNewsroomMenu, NavigationMenu::BLOCK_CODE
|
||||
new ApplicationContext(),
|
||||
PopoverMenuFactory::MakeUserMenuForNavigationMenu(),
|
||||
$oNewsroomMenu,
|
||||
NavigationMenu::BLOCK_CODE
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
@@ -6,7 +7,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\Object;
|
||||
|
||||
|
||||
use cmdbAbstractObject;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Panel\Panel;
|
||||
use Combodo\iTop\Application\UI\Helper\UIHelper;
|
||||
@@ -113,7 +113,7 @@ class ObjectDetails extends Panel implements iKeyboardShortcut
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @see self::$sClassLabel
|
||||
* @return string
|
||||
@@ -224,7 +224,7 @@ class ObjectDetails extends Panel implements iKeyboardShortcut
|
||||
// Default icon is the class icon
|
||||
$sIconUrl = $oObject->GetIcon(false);
|
||||
// Note: Class icons are a square image with no margin around, so they need to be zoomed out in the medallion
|
||||
$sIconCoverMethod = $oObject->HasInstanceIcon() && !$oObject->HasHighlightIcon() ? static::ENUM_ICON_COVER_METHOD_COVER : static::ENUM_ICON_COVER_METHOD_ZOOMOUT;
|
||||
$sIconCoverMethod = $oObject->HasInstanceIcon() && !$oObject->HasHighlightIcon() ? static::ENUM_ICON_COVER_METHOD_COVER : static::ENUM_ICON_COVER_METHOD_ZOOMOUT;
|
||||
|
||||
$this->SetIcon($sIconUrl, $sIconCoverMethod, true);
|
||||
}
|
||||
@@ -288,4 +288,4 @@ class ObjectDetails extends Panel implements iKeyboardShortcut
|
||||
{
|
||||
return "[data-role='".static::BLOCK_CODE."']";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
@@ -6,7 +7,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\Object;
|
||||
|
||||
|
||||
use cmdbAbstractObject;
|
||||
use DBObject;
|
||||
|
||||
@@ -36,4 +36,4 @@ class ObjectFactory
|
||||
|
||||
return $oObjectDetails;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\Object;
|
||||
<?php
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\Object;
|
||||
|
||||
use ApplicationContext;
|
||||
use cmdbAbstractObject;
|
||||
@@ -29,7 +29,6 @@ class ObjectSummary extends ObjectDetails
|
||||
{
|
||||
use tUIContentAreas;
|
||||
|
||||
|
||||
// Overloaded constants
|
||||
/**
|
||||
* @inheritDoc
|
||||
@@ -44,7 +43,7 @@ class ObjectSummary extends ObjectDetails
|
||||
*/
|
||||
public const REQUIRES_ANCESTORS_DEFAULT_JS_FILES = true;
|
||||
/** @var \DBObject Object that will be displayed as summary */
|
||||
protected $oObject;
|
||||
protected $oObject;
|
||||
|
||||
/** @var array Map of fields that will be displayed for the current object */
|
||||
protected $aObjectDisplayValues;
|
||||
@@ -53,9 +52,9 @@ class ObjectSummary extends ObjectDetails
|
||||
|
||||
public function __construct(DBObject $oObject, ?string $sId = null)
|
||||
{
|
||||
parent::__construct($oObject,cmdbAbstractObject::ENUM_DISPLAY_MODE_VIEW, $sId);
|
||||
parent::__construct($oObject, cmdbAbstractObject::ENUM_DISPLAY_MODE_VIEW, $sId);
|
||||
$this->oObject = $oObject;
|
||||
|
||||
|
||||
$this->ComputeDetails();
|
||||
$this->SetToolBlocks([]);
|
||||
$this->ComputeActions();
|
||||
@@ -63,25 +62,26 @@ class ObjectSummary extends ObjectDetails
|
||||
|
||||
/**
|
||||
* Compute object zlists and build the Field map that will be displayed
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \DictExceptionMissingString
|
||||
*/
|
||||
public function ComputeDetails(){
|
||||
public function ComputeDetails()
|
||||
{
|
||||
$sClass = $this->sClassName;
|
||||
|
||||
|
||||
$aDetailsList = MetaModel::GetZListItems($sClass, 'summary');
|
||||
|
||||
if(empty($aDetailsList)){
|
||||
|
||||
if (empty($aDetailsList)) {
|
||||
$aComplementAttributeSpec = MetaModel::GetNameSpec($sClass, FriendlyNameType::COMPLEMENTARY);
|
||||
$aAdditionalField = $aComplementAttributeSpec[1];
|
||||
if (!empty($aAdditionalField)) {
|
||||
$aDetailsList = $aAdditionalField;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$aFieldsMap = [];
|
||||
foreach ($aDetailsList as $sAttCode) {
|
||||
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
|
||||
@@ -91,10 +91,9 @@ class ObjectSummary extends ObjectDetails
|
||||
$this->aObjectDisplayValues = $aFieldsMap;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Build the Actions that will be displayed in the summary header
|
||||
*
|
||||
*
|
||||
* @return void
|
||||
* @throws \Exception
|
||||
*/
|
||||
@@ -103,27 +102,26 @@ class ObjectSummary extends ObjectDetails
|
||||
$oRouter = Router::GetInstance();
|
||||
$oDetailsButton = null;
|
||||
// We can pass a DBObject to the UIBlock, so we check for the DisplayModifyForm method
|
||||
if(method_exists($this->oObject, 'DisplayModifyForm') && UserRights::IsActionAllowed($this->sClassName, UR_ACTION_MODIFY)) {
|
||||
if (method_exists($this->oObject, 'DisplayModifyForm') && UserRights::IsActionAllowed($this->sClassName, UR_ACTION_MODIFY)) {
|
||||
$oPopoverMenu = new PopoverMenu();
|
||||
|
||||
|
||||
$oDetailsAction = new URLPopupMenuItem(
|
||||
'UI:Menu:View',
|
||||
Dict::S('UI:Menu:View'),
|
||||
ApplicationContext::MakeObjectUrl($this->sClassName, $this->sObjectId),
|
||||
'_blank'
|
||||
);
|
||||
);
|
||||
$oModifyButton = ButtonUIBlockFactory::MakeLinkNeutral(
|
||||
$oRouter->GenerateUrl('object.modify', ['class' => $this->sClassName, 'id' => $this->sObjectId]),
|
||||
Dict::S('UI:Menu:Modify'),
|
||||
'fas fa-external-link-alt',
|
||||
'_blank',
|
||||
);
|
||||
|
||||
|
||||
$oPopoverMenu->AddItem('more-actions', PopoverMenuItemFactory::MakeFromApplicationPopupMenuItem($oDetailsAction))->SetContainer(PopoverMenu::ENUM_CONTAINER_PARENT);
|
||||
|
||||
|
||||
$oDetailsButton = ButtonGroupUIBlockFactory::MakeButtonWithOptionsMenu($oModifyButton, $oPopoverMenu);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$oDetailsButton = ButtonUIBlockFactory::MakeLinkNeutral(
|
||||
ApplicationContext::MakeObjectUrl($this->sClassName, $this->sObjectId),
|
||||
Dict::S('UI:Menu:View'),
|
||||
@@ -131,7 +129,7 @@ class ObjectSummary extends ObjectDetails
|
||||
'_blank',
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$this->oActions = $oDetailsButton;
|
||||
$this->AddToolbarBlock($oDetailsButton);
|
||||
}
|
||||
@@ -158,7 +156,8 @@ class ObjectSummary extends ObjectDetails
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function GetDisplayValues() {
|
||||
public function GetDisplayValues()
|
||||
{
|
||||
return $this->aObjectDisplayValues;
|
||||
}
|
||||
|
||||
@@ -188,4 +187,4 @@ class ObjectSummary extends ObjectDetails
|
||||
{
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\PageContent;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
|
||||
use Combodo\iTop\Application\UI\Base\iUIBlock;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\iUIContentBlock;
|
||||
@@ -34,7 +34,8 @@ use Combodo\iTop\Application\UI\Base\UIBlock;
|
||||
* @internal
|
||||
* @since 3.0.0
|
||||
*/
|
||||
class PageContent extends UIBlock implements iUIContentBlock {
|
||||
class PageContent extends UIBlock implements iUIContentBlock
|
||||
{
|
||||
use tUIContentAreas;
|
||||
|
||||
// Overloaded constants
|
||||
@@ -52,7 +53,8 @@ class PageContent extends UIBlock implements iUIContentBlock {
|
||||
*
|
||||
* @param string|null $sId
|
||||
*/
|
||||
public function __construct(?string $sId = null) {
|
||||
public function __construct(?string $sId = null)
|
||||
{
|
||||
parent::__construct($sId);
|
||||
|
||||
$this->SetMainBlocks([]);
|
||||
@@ -69,7 +71,8 @@ class PageContent extends UIBlock implements iUIContentBlock {
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function SetMainBlocks(array $aBlocks) {
|
||||
public function SetMainBlocks(array $aBlocks)
|
||||
{
|
||||
$this->SetContentAreaBlocks(static::ENUM_CONTENT_AREA_MAIN, $aBlocks);
|
||||
|
||||
return $this;
|
||||
@@ -81,7 +84,8 @@ class PageContent extends UIBlock implements iUIContentBlock {
|
||||
* @return \Combodo\iTop\Application\UI\Base\iUIBlock[]
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function GetMainBlocks() {
|
||||
public function GetMainBlocks()
|
||||
{
|
||||
return $this->GetContentAreaBlocks(static::ENUM_CONTENT_AREA_MAIN);
|
||||
}
|
||||
|
||||
@@ -137,7 +141,8 @@ class PageContent extends UIBlock implements iUIContentBlock {
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function SetExtraHtmlContent(string $sExtraHtmlContent) {
|
||||
public function SetExtraHtmlContent(string $sExtraHtmlContent)
|
||||
{
|
||||
$this->sExtraHtmlContent = $sExtraHtmlContent;
|
||||
|
||||
return $this;
|
||||
@@ -148,7 +153,8 @@ class PageContent extends UIBlock implements iUIContentBlock {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function GetExtraHtmlContent() {
|
||||
public function GetExtraHtmlContent()
|
||||
{
|
||||
return $this->sExtraHtmlContent;
|
||||
}
|
||||
|
||||
@@ -159,7 +165,8 @@ class PageContent extends UIBlock implements iUIContentBlock {
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function AddHtml(string $sHtml) {
|
||||
public function AddHtml(string $sHtml)
|
||||
{
|
||||
$oBlock = new Html($sHtml);
|
||||
$this->AddMainBlock($oBlock);
|
||||
|
||||
@@ -171,7 +178,8 @@ class PageContent extends UIBlock implements iUIContentBlock {
|
||||
*
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function AddSubBlock(?iUIBlock $oSubBlock) {
|
||||
public function AddSubBlock(?iUIBlock $oSubBlock)
|
||||
{
|
||||
if ($oSubBlock) {
|
||||
$this->AddMainBlock($oSubBlock);
|
||||
}
|
||||
@@ -185,7 +193,8 @@ class PageContent extends UIBlock implements iUIContentBlock {
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function RemoveSubBlock(string $sId) {
|
||||
public function RemoveSubBlock(string $sId)
|
||||
{
|
||||
foreach ($this->GetContentAreas() as $oContentArea) {
|
||||
$oContentArea->RemoveSubBlock($sId);
|
||||
}
|
||||
@@ -200,7 +209,8 @@ class PageContent extends UIBlock implements iUIContentBlock {
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function HasSubBlock(string $sId): bool {
|
||||
public function HasSubBlock(string $sId): bool
|
||||
{
|
||||
foreach ($this->GetContentAreas() as $oContentArea) {
|
||||
if ($oContentArea->HasSubBlock($sId)) {
|
||||
return true;
|
||||
@@ -215,7 +225,8 @@ class PageContent extends UIBlock implements iUIContentBlock {
|
||||
*
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function GetSubBlock(string $sId): ?iUIBlock {
|
||||
public function GetSubBlock(string $sId): ?iUIBlock
|
||||
{
|
||||
foreach ($this->GetContentAreas() as $oContentArea) {
|
||||
$oSubBlock = $oContentArea->GetSubBlock($sId);
|
||||
if (!is_null($oSubBlock)) {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\PageContent;
|
||||
|
||||
|
||||
use cmdbAbstractObject;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\ActivityPanel\ActivityPanelFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\Object\ObjectFactory;
|
||||
@@ -71,4 +71,4 @@ class PageContentFactory
|
||||
|
||||
return $oLayout;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\PageContent;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
|
||||
use Combodo\iTop\Application\UI\Base\iUIBlock;
|
||||
|
||||
@@ -31,7 +31,8 @@ use Combodo\iTop\Application\UI\Base\iUIBlock;
|
||||
* @internal
|
||||
* @since 3.0.0
|
||||
*/
|
||||
class PageContentWithSideContent extends PageContent {
|
||||
class PageContentWithSideContent extends PageContent
|
||||
{
|
||||
// Overloaded constants
|
||||
public const BLOCK_CODE = 'ibo-page-content-with-side-content';
|
||||
public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/layouts/page-content/with-side-content';
|
||||
@@ -45,7 +46,8 @@ class PageContentWithSideContent extends PageContent {
|
||||
*
|
||||
* @param string|null $sId
|
||||
*/
|
||||
public function __construct(?string $sId = null) {
|
||||
public function __construct(?string $sId = null)
|
||||
{
|
||||
parent::__construct($sId);
|
||||
|
||||
$this->SetSideBlocks([]);
|
||||
@@ -58,7 +60,8 @@ class PageContentWithSideContent extends PageContent {
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function SetSideBlocks(array $aBlocks) {
|
||||
public function SetSideBlocks(array $aBlocks)
|
||||
{
|
||||
$this->SetContentAreaBlocks(static::ENUM_CONTENT_AREA_SIDE, $aBlocks);
|
||||
|
||||
return $this;
|
||||
@@ -70,7 +73,8 @@ class PageContentWithSideContent extends PageContent {
|
||||
* @return \Combodo\iTop\Application\UI\Base\iUIBlock[]
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function GetSideBlocks(): array {
|
||||
public function GetSideBlocks(): array
|
||||
{
|
||||
return $this->GetContentAreaBlocks(static::ENUM_CONTENT_AREA_SIDE);
|
||||
}
|
||||
|
||||
@@ -82,7 +86,8 @@ class PageContentWithSideContent extends PageContent {
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function AddSideBlock(iUIBlock $oBlock) {
|
||||
public function AddSideBlock(iUIBlock $oBlock)
|
||||
{
|
||||
$this->AddBlockToContentArea(static::ENUM_CONTENT_AREA_SIDE, $oBlock);
|
||||
|
||||
return $this;
|
||||
@@ -95,7 +100,8 @@ class PageContentWithSideContent extends PageContent {
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function AddSideHtml(string $sHtml) {
|
||||
public function AddSideHtml(string $sHtml)
|
||||
{
|
||||
$this->AddBlockToContentArea(static::ENUM_CONTENT_AREA_SIDE, new Html($sHtml));
|
||||
|
||||
return $this;
|
||||
@@ -123,4 +129,4 @@ class PageContentWithSideContent extends PageContent {
|
||||
{
|
||||
return parent::HasSubBlocks() || !empty($this->GetSideBlocks());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\TabContainer\Tab;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\iUIBlock;
|
||||
use Combodo\iTop\Application\UI\Base\UIException;
|
||||
use Dict;
|
||||
@@ -35,7 +35,6 @@ use utils;
|
||||
*/
|
||||
class AjaxTab extends Tab
|
||||
{
|
||||
|
||||
/**
|
||||
* @see static::$sPlaceholderRelPath
|
||||
* @var string
|
||||
@@ -92,7 +91,8 @@ class AjaxTab extends Tab
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function SetUrl(string $sUrl) {
|
||||
public function SetUrl(string $sUrl)
|
||||
{
|
||||
$this->sUrl = $sUrl;
|
||||
|
||||
return $this;
|
||||
@@ -101,7 +101,8 @@ class AjaxTab extends Tab
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function GetUrl(): string {
|
||||
public function GetUrl(): string
|
||||
{
|
||||
return $this->sUrl;
|
||||
}
|
||||
|
||||
@@ -112,7 +113,8 @@ class AjaxTab extends Tab
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function SetCache(bool $bCache) {
|
||||
public function SetCache(bool $bCache)
|
||||
{
|
||||
$this->bCache = $bCache;
|
||||
|
||||
return $this;
|
||||
@@ -123,7 +125,8 @@ class AjaxTab extends Tab
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function GetCache(): string {
|
||||
public function GetCache(): string
|
||||
{
|
||||
return $this->bCache ? 'true' : 'false';
|
||||
}
|
||||
|
||||
@@ -133,7 +136,8 @@ class AjaxTab extends Tab
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function SetPlaceholderRelPath(string $sPlaceholderRelPath) {
|
||||
public function SetPlaceholderRelPath(string $sPlaceholderRelPath)
|
||||
{
|
||||
$this->sPlaceholderRelPath = $sPlaceholderRelPath;
|
||||
|
||||
return $this;
|
||||
@@ -143,7 +147,8 @@ class AjaxTab extends Tab
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function GetPlaceholderRelPath(): string {
|
||||
public function GetPlaceholderRelPath(): string
|
||||
{
|
||||
return $this->sPlaceholderRelPath;
|
||||
}
|
||||
|
||||
@@ -152,7 +157,8 @@ class AjaxTab extends Tab
|
||||
* @return string
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function GetPlaceholderAbsPath(): string {
|
||||
public function GetPlaceholderAbsPath(): string
|
||||
{
|
||||
return utils::GetAbsoluteUrlAppRoot().$this->sPlaceholderRelPath;
|
||||
}
|
||||
|
||||
@@ -163,7 +169,8 @@ class AjaxTab extends Tab
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function GetParameters(): array {
|
||||
public function GetParameters(): array
|
||||
{
|
||||
$aParams = parent::GetParameters();
|
||||
|
||||
$aParams['sURL'] = $this->GetUrl();
|
||||
@@ -180,7 +187,8 @@ class AjaxTab extends Tab
|
||||
* @inheritDoc
|
||||
* @throws \Combodo\iTop\Application\UI\Base\UIException
|
||||
*/
|
||||
public function AddHtml(string $sHtml) {
|
||||
public function AddHtml(string $sHtml)
|
||||
{
|
||||
throw new UIException($this, Dict::Format('UIBlock:Error:AddBlockForbidden', $this->GetId()));
|
||||
}
|
||||
|
||||
@@ -188,14 +196,16 @@ class AjaxTab extends Tab
|
||||
* @inheritDoc
|
||||
* @throws \Combodo\iTop\Application\UI\Base\UIException
|
||||
*/
|
||||
public function AddSubBlock(?iUIBlock $oSubBlock) {
|
||||
public function AddSubBlock(?iUIBlock $oSubBlock)
|
||||
{
|
||||
throw new UIException($this, Dict::Format('UIBlock:Error:AddBlockForbidden', $this->GetId()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function GetSubBlocks(): array {
|
||||
public function GetSubBlocks(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\TabContainer\Tab;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlock;
|
||||
use Combodo\iTop\Application\WebPage\TabManager;
|
||||
use utils;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\TabContainer;
|
||||
|
||||
|
||||
use appUserPreferences;
|
||||
use Combodo\iTop\Application\UI\Base\iUIBlock;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\iUIContentBlock;
|
||||
@@ -45,7 +45,7 @@ class TabContainer extends UIContentBlock
|
||||
'node_modules/scrollmagic/scrollmagic/minified/ScrollMagic.min.js',
|
||||
'js/layouts/tab-container/tab-container.js',
|
||||
'js/layouts/tab-container/regular-tabs.js',
|
||||
'js/layouts/tab-container/scrollable-tabs.js'
|
||||
'js/layouts/tab-container/scrollable-tabs.js',
|
||||
];
|
||||
|
||||
// Specific constants
|
||||
@@ -58,7 +58,6 @@ class TabContainer extends UIContentBlock
|
||||
/** @var bool */
|
||||
public const DEFAULT_SCROLLABLE = false;
|
||||
|
||||
|
||||
/** @var string $sName */
|
||||
private $sName;
|
||||
/** @var string $sPrefix */
|
||||
@@ -125,7 +124,7 @@ class TabContainer extends UIContentBlock
|
||||
*/
|
||||
public function AddAjaxTab(string $sTabCode, string $sTitle, ?string $sPlaceholder = null, ?string $sDescription = null): Tab
|
||||
{
|
||||
if($sPlaceholder === null){
|
||||
if ($sPlaceholder === null) {
|
||||
$sPlaceholder = AjaxTab::DEFAULT_TAB_PLACEHOLDER;
|
||||
}
|
||||
$oTab = new AjaxTab($sTabCode, $sTitle, $sPlaceholder);
|
||||
@@ -184,7 +183,7 @@ class TabContainer extends UIContentBlock
|
||||
|
||||
return [
|
||||
'sBlockId' => $this->GetId(),
|
||||
'aTabs' => $aTabs
|
||||
'aTabs' => $aTabs,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -193,7 +192,8 @@ class TabContainer extends UIContentBlock
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function SetLayout($sLayout) {
|
||||
public function SetLayout($sLayout)
|
||||
{
|
||||
$this->sLayout = $sLayout;
|
||||
|
||||
return $this;
|
||||
@@ -202,7 +202,8 @@ class TabContainer extends UIContentBlock
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function GetLayout(): string {
|
||||
public function GetLayout(): string
|
||||
{
|
||||
return $this->sLayout;
|
||||
}
|
||||
|
||||
@@ -210,7 +211,8 @@ class TabContainer extends UIContentBlock
|
||||
* @param bool $bIsScrollable
|
||||
* @return $this
|
||||
*/
|
||||
public function SetIsScrollable($bIsScrollable) {
|
||||
public function SetIsScrollable($bIsScrollable)
|
||||
{
|
||||
$this->bIsScrollable = $bIsScrollable;
|
||||
|
||||
return $this;
|
||||
@@ -219,7 +221,8 @@ class TabContainer extends UIContentBlock
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function GetIsScrollable(): bool {
|
||||
public function GetIsScrollable(): bool
|
||||
{
|
||||
return $this->bIsScrollable;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\TopBar;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\Component\Breadcrumbs\Breadcrumbs;
|
||||
use Combodo\iTop\Application\UI\Base\Component\GlobalSearch\GlobalSearch;
|
||||
use Combodo\iTop\Application\UI\Base\Component\QuickCreate\QuickCreate;
|
||||
@@ -58,7 +58,10 @@ class TopBar extends UIBlock
|
||||
* @param \Combodo\iTop\Application\UI\Base\Component\Breadcrumbs\Breadcrumbs|null $oBreadcrumbs
|
||||
*/
|
||||
public function __construct(
|
||||
$sId = null, QuickCreate $oQuickCreate = null, GlobalSearch $oGlobalSearch = null, Breadcrumbs $oBreadcrumbs = null
|
||||
$sId = null,
|
||||
QuickCreate $oQuickCreate = null,
|
||||
GlobalSearch $oGlobalSearch = null,
|
||||
Breadcrumbs $oBreadcrumbs = null
|
||||
) {
|
||||
parent::__construct($sId);
|
||||
|
||||
@@ -213,4 +216,4 @@ class TopBar extends UIBlock
|
||||
|
||||
return $aSubBlocks;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -19,7 +20,6 @@
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout\TopBar;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\Component\Breadcrumbs\Breadcrumbs;
|
||||
use Combodo\iTop\Application\UI\Base\Component\GlobalSearch\GlobalSearchFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\QuickCreate\QuickCreateFactory;
|
||||
@@ -66,4 +66,4 @@ class TopBarFactory
|
||||
|
||||
return $oTopBar;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
|
||||
use Combodo\iTop\Application\UI\Base\iUIBlock;
|
||||
use Combodo\iTop\Application\UI\Base\UIBlock;
|
||||
@@ -31,7 +30,7 @@ class UIContentBlock extends UIBlock implements iUIContentBlock
|
||||
/** @var array */
|
||||
protected $aSubBlocks;
|
||||
/** @var array */
|
||||
protected $aDeferredBlocks;
|
||||
protected $aDeferredBlocks;
|
||||
/** @var bool If set to true, the content block will have a surrounding <div> no matter its options / CSS classes / ... */
|
||||
protected $bHasForcedDiv;
|
||||
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Layout;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\AbstractUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
|
||||
|
||||
@@ -86,4 +85,4 @@ class UIContentBlockUIBlockFactory extends AbstractUIBlockFactory
|
||||
|
||||
return $oCode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
@@ -17,7 +18,8 @@ use Combodo\iTop\Application\UI\Base\iUIBlock;
|
||||
* @internal
|
||||
* @since 3.0.0
|
||||
*/
|
||||
interface iUIContentBlock {
|
||||
interface iUIContentBlock
|
||||
{
|
||||
/**
|
||||
* Add raw HTML to the block
|
||||
*
|
||||
@@ -85,7 +87,6 @@ interface iUIContentBlock {
|
||||
*/
|
||||
public function SetSubBlocks(array $aSubBlocks);
|
||||
|
||||
|
||||
/**
|
||||
* Add $oDeferredBlock, replacing any block with the same ID
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user