/
ParentSelector.php
103 lines (89 loc) · 3.56 KB
/
ParentSelector.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
namespace Icinga\Editor\UI;
/**
* Assign Parents to host
*
* @package IcingaEditor
* @subpackage WebUI
* @author Vitex <vitex@hippy.cz>
* @copyright 2012 Vitex@hippy.cz (G)
*/
class ParentSelector extends \Ease\Container
{
public $myKeyColumn = 'host_name';
/**
* Editor k přidávání členů skupiny
*
* @param IEHost $host
*/
public function __construct($host)
{
parent::__construct();
$fieldName = $host->getmyKeyColumn();
$initialContent = new \Ease\TWB\Panel(_('Host Parents'));
$addparentForm = $initialContent->addItem(new \Ease\TWB\Form('addparent'));
$addparentForm->addItem(new \Ease\TWB\FormGroup(_('IP or Hostname'),
new \Ease\Html\InputTextTag('newparent')));
$addparentForm->addItem(new \Ease\Html\InputHiddenTag($fieldName,
$host->getId()));
$addparentForm->addItem(new \Ease\TWB\SubmitButton(_('Add parent'),
'success'));
$initialContent->setTagCss(['width' => '100%']);
if (is_null($host->getMyKey())) {
$initialContent->addItem(_('Save record first'));
} else {
$allParents = $host->getListing();
unset($allParents[$host->getID()]); //AntiLoop
foreach ($allParents as $parentID => $parentInfo) {
if ($parentInfo['register'] != 1) {
unset($allParents[$parentID]);
}
}
$parentsAssigned = [];
foreach ($host->getDataValue('parents') as $parentAssigned) {
$parentID = \Ease\Shared::db()->queryToValue('SELECT `'.$host->myKeyColumn.'` FROM '.$host->myTable.' WHERE `'.$host->nameColumn.'` = \''.addSlashes($parentAssigned).'\'');
$parentsAssigned[$parentID][$host->nameColumn] = $parentAssigned;
$parentsAssigned[$parentID][$host->myKeyColumn] = $parentID;
unset($allParents[$parentID]);
}
if (count($allParents)) {
foreach ($allParents as $parentID => $parentInfo) {
$initialContent->addItem($this->parentButton($parentInfo,
'plus', $host));
}
}
if (count($parentsAssigned)) {
$initialContent->addItem('</br>');
foreach ($parentsAssigned as $parentID => $parentInfo) {
$initialContent->addItem($this->parentButton($parentInfo,
'remove', $host));
}
}
}
$this->addItem($initialContent);
}
function &parentButton($parentInfo, $op, $host)
{
$pName = $parentInfo['host_name'];
$parentID = $parentInfo['host_id'];
if ($op == 'plus') {
$operation = 'add';
$opCaption = _('Aassign parents');
$type = 'default';
} else {
$operation = 'del';
$opCaption = _('Remove parents');
$type = 'success';
}
$parentMenu = new \Ease\TWB\ButtonDropdown(
$pName, $type, 'xs',
[
new \Ease\Html\ATag('?'.$operation.'=parents&name='.$parentInfo[$host->nameColumn].'&member='.$parentID.'&'.$host->myKeyColumn.'='.$host->getId(),
\Ease\TWB\Part::GlyphIcon($op).' '.$opCaption),
new \Ease\Html\ATag('host.php?host_id='.$parentID,
\Ease\TWB\Part::GlyphIcon('wrench').' '._('Editor'))
]
);
return $parentMenu;
}
}