TileRenderer: incorporate AddNewTile

This commit is contained in:
Thomas Gelf 2016-11-29 15:20:13 +01:00
parent decc788d2a
commit 991d9f9b05
2 changed files with 21 additions and 50 deletions

View file

@ -3,7 +3,9 @@
namespace Icinga\Module\Businessprocess\Renderer;
use Icinga\Module\Businessprocess\Html\Container;
use Icinga\Module\Businessprocess\Renderer\TileRenderer\AddNewTile;
use Icinga\Module\Businessprocess\Html\Element;
use Icinga\Module\Businessprocess\Html\Icon;
use Icinga\Module\Businessprocess\Html\Link;
use Icinga\Module\Businessprocess\Renderer\TileRenderer\NodeTile;
class TileRenderer extends Renderer
@ -31,7 +33,7 @@ class TileRenderer extends Renderer
}
if (! $this->isLocked()) {
$this->add(new AddNewTile($this));
$this->add($this->addNewNode());
}
$path = $this->getCurrentPath();
@ -72,4 +74,21 @@ class TileRenderer extends Renderer
return $howMany;
}
protected function addNewNode()
{
return Element::create(
'div',
array('class' => 'addnew')
)->add(
Link::create(
Icon::create('plus'),
$this->getUrl()->with('action', 'add'),
null,
array(
'title' => $this->translate('Add a new business process node')
)
)->addContent($this->translate('Add'))
);
}
}

View file

@ -1,48 +0,0 @@
<?php
namespace Icinga\Module\Businessprocess\Renderer\TileRenderer;
use Icinga\Module\Businessprocess\BusinessProcess;
use Icinga\Module\Businessprocess\Html\BaseElement;
use Icinga\Module\Businessprocess\Html\Icon;
use Icinga\Module\Businessprocess\Html\Link;
use Icinga\Module\Businessprocess\Renderer\Renderer;
use Icinga\Module\Businessprocess\Web\Url;
class AddNewTile extends BaseElement
{
protected $tag = 'div';
protected $node;
protected $defaultAttributes = array('class' => 'addnew');
public function __construct(Renderer $renderer)
{
$bp = $renderer->getBusinessProcess();
$path = $renderer->getCurrentPath();
$params = array(
'config' => $bp->getName()
);
// Workaround for array issues
$url = Url::fromPath('businessprocess/node/add');
$p = $url->getParams();
$p->mergeValues($params);
if (! empty($path)) {
$p->addValues('path', $path);
}
$this->add(
Link::create(
Icon::create('plus'),
$url,
null,
array(
'title' => $this->translate('Add a new business process node')
)
)->addContent($this->translate('Add'))
);
}
}