mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-20 09:08:42 +02:00
Add UIBlocks to twig (CollapsibleSection, FieldBadge, Panel)
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (C) 2010-2020 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Base\Component\FieldBadge;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Base\AbstractUIBlockFactory;
|
||||
use ormStyle;
|
||||
|
||||
class FieldBadgeUIBlockFactory extends AbstractUIBlockFactory
|
||||
{
|
||||
public const UI_BLOCK_CLASS_NAME = "Combodo\\iTop\\Application\\UI\\Base\\Component\\FieldBadge\\FieldBadge";
|
||||
public const TWIG_TAG_NAME = 'UIFieldBadge';
|
||||
|
||||
/**
|
||||
* @param string $sValue
|
||||
* @param \ormStyle|null $oStyle
|
||||
*
|
||||
* @return \Combodo\iTop\Application\UI\Base\Component\FieldBadge\FieldBadge
|
||||
*/
|
||||
public static function MakeForField(string $sValue, ?ormStyle $oStyle)
|
||||
{
|
||||
$oBadge = null;
|
||||
if ($oStyle) {
|
||||
$sStyleClass = $oStyle->GetStyleClass();
|
||||
$sPrimaryColor = $oStyle->GetMainColor();
|
||||
$sComplementaryColor = $oStyle->GetComplementaryColor();
|
||||
if (!is_null($sPrimaryColor) && !is_null($sComplementaryColor)) {
|
||||
$oBadge = new FieldBadge(null, $sStyleClass.' ibo-field-badge');
|
||||
$sDecorationClasses = $oStyle->GetDecorationClasses();
|
||||
if (!is_null($sDecorationClasses)) {
|
||||
$oBadge->AddHtml("<i class=\"$sDecorationClasses\"></i> ");
|
||||
}
|
||||
$oBadge->AddHtml("<span>$sValue</span>");
|
||||
// Add custom style
|
||||
// TODO 3.0 To be removed when compilation supports generated CSS
|
||||
$oBadge->AddHtml(<<<HTML
|
||||
<style>
|
||||
.$sStyleClass {
|
||||
color: $sComplementaryColor;
|
||||
background-color: $sPrimaryColor;
|
||||
}
|
||||
</style>
|
||||
HTML
|
||||
);
|
||||
}
|
||||
}
|
||||
if (!$oBadge) {
|
||||
$oBadge = new FieldBadge();
|
||||
$oBadge->AddHtml("<span>$sValue</span>");
|
||||
}
|
||||
|
||||
return $oBadge;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user