mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-21 01:28:47 +02:00
N°3767 - Impact analysis: Display filtering box on CIs list and groups (#473)
N°3767 - Impact analysis: Display filtering box on CIs list and groups
This commit is contained in:
@@ -16,8 +16,11 @@
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with iTop. If not, see <http://www.gnu.org/licenses/>
|
||||
use Combodo\iTop\Application\Helper\WebResourcesHelper;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
|
||||
use Combodo\iTop\Application\UI\Base\Component\MedallionIcon\MedallionIcon;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Panel\Panel;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlock;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory;
|
||||
use Combodo\iTop\Renderer\BlockRenderer;
|
||||
|
||||
/**
|
||||
@@ -1412,6 +1415,8 @@ class DisplayableGraph extends SimpleGraph
|
||||
/**
|
||||
* Display the graph inside the given page, with the "filter" drawer above it
|
||||
*
|
||||
* @deprecated 3.1.1 3.2.0 N°3767 Use \DisplayableGraph::DisplayFilterBox() and \DisplayableGraph::DisplayGraph() instead
|
||||
*
|
||||
* @param WebPage $oP
|
||||
* @param array $aResults
|
||||
* @param string $sRelation
|
||||
@@ -1425,10 +1430,35 @@ class DisplayableGraph extends SimpleGraph
|
||||
*
|
||||
* @throws \CoreException
|
||||
* @throws \DictExceptionMissingString
|
||||
*
|
||||
*/
|
||||
function Display(WebPage $oP, $aResults, $sRelation, ApplicationContext $oAppContext, $aExcludedObjects, $sObjClass, $iObjKey, $sContextKey, $aContextParams = array(), bool $bLazyLoading = false)
|
||||
{
|
||||
list($aExcludedByClass, $aAdditionalContexts) = $this->DisplayFiltering($sContextKey, $aContextParams, $aExcludedObjects, $oP, $aResults, $bLazyLoading);
|
||||
$oP->AddSubBlock($this->DisplayFilterBox($oP, $aResults, $bLazyLoading));
|
||||
$this->DisplayGraph($oP, $sRelation, $oAppContext, $aExcludedObjects, $sObjClass, $iObjKey, $sContextKey, $aContextParams, $bLazyLoading);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display only the graph inside the given page, with the parameters of filter box draw with DisplayFilterBox
|
||||
*
|
||||
* @param WebPage $oP
|
||||
* @param string $sRelation
|
||||
* @param ApplicationContext $oAppContext
|
||||
* @param array $aExcludedObjects
|
||||
* @param string $sObjClass
|
||||
* @param int $iObjKey
|
||||
* @param string $sContextKey
|
||||
* @param array $aContextParams
|
||||
* @param bool $bLazyLoading
|
||||
*
|
||||
* @throws \CoreException
|
||||
* @throws \DictExceptionMissingString
|
||||
*
|
||||
* @since 3.1.1 3.2.0 N°3767
|
||||
*/
|
||||
function DisplayGraph(WebPage $oP, $sRelation, ApplicationContext $oAppContext, $aExcludedObjects, $sObjClass, $iObjKey, $sContextKey, $aContextParams = array(), bool $bLazyLoading = false): void
|
||||
{
|
||||
list($aExcludedByClass, $aAdditionalContexts) = $this->GetFilteringData($sContextKey, $aContextParams, $aExcludedObjects);
|
||||
|
||||
$iGroupingThreshold = utils::ReadParam('g', 5);
|
||||
|
||||
@@ -1513,12 +1543,10 @@ class DisplayableGraph extends SimpleGraph
|
||||
$oP->add_ready_script(" $('#$sId').simple_graph(".json_encode($aParams).");");
|
||||
} else {
|
||||
$oP->add_script("function Load(){var aExcluded = []; $('input[name^=excluded]').each( function() {if (!$(this).prop('checked')) { aExcluded.push($(this).val()); }} ); var params= $.extend(".json_encode($aParams).", {excluded_classes: aExcluded}); $('#$sId').simple_graph(params);}");
|
||||
$oP->add_ready_script("$('#impacted_objects_lists').html('".utils::TextToHtml(Dict::S('Relation:impacts/NoFilteredData'))."');$('#impacted_groups').html('".utils::TextToHtml(Dict::S('Relation:impacts/NoFilteredData'))."');");
|
||||
|
||||
$oP->add_ready_script("$('#graph').html('".utils::TextToHtml(Dict::S('Relation:impacts/NoFilteredData'))."');$('#impacted_objects_lists').html('".utils::TextToHtml(Dict::S('Relation:impacts/NoFilteredData'))."');$('#impacted_groups').html('".utils::TextToHtml(Dict::S('Relation:impacts/NoFilteredData'))."');");
|
||||
}
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
catch (Exception $e) {
|
||||
$oP->add('<div>'.$e->getMessage().'</div>');
|
||||
}
|
||||
$oP->add_script(
|
||||
@@ -1563,23 +1591,41 @@ EOF
|
||||
* @throws \Twig\Error\LoaderError
|
||||
* @throws \Twig\Error\RuntimeError
|
||||
* @throws \Twig\Error\SyntaxError
|
||||
*
|
||||
* @deprecated 3.1.1 3.2.0 N°3767 Use \DisplayableGraph::DisplayFilterBox() and \DisplayableGraph::GetFilteringData() instead
|
||||
*/
|
||||
public function DisplayFiltering(string $sContextKey, array $aContextParams, array $aExcludedObjects, WebPage $oP, array $aResults, bool $bLazyLoading = false): array
|
||||
{
|
||||
$aContextDefs = static::GetContextDefinitions($sContextKey, true, $aContextParams);
|
||||
$aExcludedByClass = array();
|
||||
foreach ($aExcludedObjects as $oObj) {
|
||||
if (!array_key_exists(get_class($oObj), $aExcludedByClass)) {
|
||||
$aExcludedByClass[get_class($oObj)] = array();
|
||||
}
|
||||
$aExcludedByClass[get_class($oObj)][] = $oObj->GetKey();
|
||||
}
|
||||
$oP->Add($this->DisplayFilterBox($oP, $aResults, $bLazyLoading));
|
||||
|
||||
return $this->GetFilteringData($sContextKey, $aContextParams, $aExcludedObjects);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \WebPage $oP
|
||||
* @param array $aResults
|
||||
* @param bool $bLazyLoading
|
||||
*
|
||||
* @return UIContentBlock
|
||||
* @throws \CoreException
|
||||
* @throws \DictExceptionMissingString
|
||||
* @throws \ReflectionException
|
||||
* @throws \Twig\Error\LoaderError
|
||||
* @throws \Twig\Error\RuntimeError
|
||||
* @throws \Twig\Error\SyntaxError
|
||||
*
|
||||
* @since 3.1.1 3.2.0 N°3767
|
||||
*/
|
||||
public function DisplayFilterBox(WebPage $oP, array $aResults, bool $bLazyLoading = false): UIContentBlock
|
||||
{
|
||||
$sSftShort = Dict::S('UI:ElementsDisplayed');
|
||||
$oP->add("<div class=\"not-printable\">\n");
|
||||
$oBlock = UIContentBlockUIBlockFactory::MakeStandard(null, ['not-printable']);
|
||||
|
||||
$oUiSearchBlock = new Panel($sSftShort, [], Panel::ENUM_COLOR_SCHEME_CYAN, 'dh_flash');
|
||||
$oUiSearchBlock->SetCSSClasses(["ibo-search-form-panel", "display_block"]);
|
||||
$oUiSearchBlock->SetIsCollapsible(true);
|
||||
$oUiHtmlBlock = new Combodo\iTop\Application\UI\Base\Component\Html\Html(
|
||||
$oUiSearchBlock->SetCSSClasses(["ibo-search-form-panel", "display_block"])
|
||||
->SetIsCollapsible(true);
|
||||
|
||||
$oUiHtmlBlock = new Html(
|
||||
<<<EOF
|
||||
|
||||
<div id="ds_flash" class="search_box ibo-display-graph--search-box">
|
||||
@@ -1626,11 +1672,23 @@ EOF
|
||||
$oUiHtmlBlock->AddHtml("<button type=\"button\" id=\"ReloadMovieBtn\" class=\"ibo-button ibo-is-neutral ibo-is-regular\" onClick=\"$sOnCLick\">".Dict::S('UI:Button:Refresh')."</button></div></form>");
|
||||
}
|
||||
$oUiHtmlBlock->AddHtml("</div>\n");
|
||||
$oUiHtmlBlock->AddHtml("</div>\n"); // class="not-printable"
|
||||
|
||||
$oUiSearchBlock->AddSubBlock($oUiHtmlBlock);
|
||||
$oP->AddUiBlock($oUiSearchBlock);
|
||||
$oBlock->AddSubBlock($oUiSearchBlock);
|
||||
|
||||
return $oBlock;
|
||||
}
|
||||
|
||||
public function GetFilteringData(string $sContextKey, array $aContextParams, array $aExcludedObjects): array
|
||||
{
|
||||
$aContextDefs = static::GetContextDefinitions($sContextKey, true, $aContextParams);
|
||||
$aExcludedByClass = array();
|
||||
foreach ($aExcludedObjects as $oObj) {
|
||||
if (!array_key_exists(get_class($oObj), $aExcludedByClass)) {
|
||||
$aExcludedByClass[get_class($oObj)] = array();
|
||||
}
|
||||
$aExcludedByClass[get_class($oObj)][] = $oObj->GetKey();
|
||||
}
|
||||
$aAdditionalContexts = array();
|
||||
foreach ($aContextDefs as $sKey => $aDefinition) {
|
||||
$aAdditionalContexts[] = array('key' => $sKey, 'label' => Dict::S($aDefinition['dict']), 'oql' => $aDefinition['oql'], 'default' => (array_key_exists('default', $aDefinition) && ($aDefinition['default'] == 'yes')));
|
||||
|
||||
@@ -28,17 +28,18 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
Dict::Add('CS CZ', 'Czech', 'Čeština', array(
|
||||
'Relation:impacts/Description' => 'Prvky ovlivněné objektem',
|
||||
'Relation:impacts/DownStream' => 'Dopad na',
|
||||
'Relation:impacts/DownStream+' => 'Elements impacted by~~',
|
||||
'Relation:impacts/UpStream' => 'Závislost na',
|
||||
'Relation:impacts/UpStream+' => 'Elements impacting~~',
|
||||
'Relation:impacts/Description' => 'Prvky ovlivněné objektem',
|
||||
'Relation:impacts/DownStream' => 'Dopad na',
|
||||
'Relation:impacts/DownStream+' => 'Elements impacted by~~',
|
||||
'Relation:impacts/UpStream' => 'Závislost na',
|
||||
'Relation:impacts/UpStream+' => 'Elements impacting~~',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Prvky ovlivňující objekt',
|
||||
'Relation:depends on/DownStream' => 'Závislost na',
|
||||
'Relation:depends on/UpStream' => 'Dopad na',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag~~',
|
||||
'Relation:depends on/DownStream' => 'Závislost na',
|
||||
'Relation:depends on/UpStream' => 'Dopad na',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -21,17 +21,18 @@
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
Dict::Add('DA DA', 'Danish', 'Dansk', array(
|
||||
'Relation:impacts/Description' => 'Elementer berørt af ...',
|
||||
'Relation:impacts/DownStream' => 'Påvrikning ...',
|
||||
'Relation:impacts/DownStream+' => 'Elements impacted by~~',
|
||||
'Relation:impacts/UpStream' => 'Afhænger af ...',
|
||||
'Relation:impacts/UpStream+' => 'Elements impacting~~',
|
||||
'Relation:impacts/Description' => 'Elementer berørt af ...',
|
||||
'Relation:impacts/DownStream' => 'Påvrikning ...',
|
||||
'Relation:impacts/DownStream+' => 'Elements impacted by~~',
|
||||
'Relation:impacts/UpStream' => 'Afhænger af ...',
|
||||
'Relation:impacts/UpStream+' => 'Elements impacting~~',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Elementer, som afhænger af dette element',
|
||||
'Relation:depends on/DownStream' => 'Afhænger af ...',
|
||||
'Relation:depends on/UpStream' => 'Påvirker ...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag~~',
|
||||
'Relation:depends on/DownStream' => 'Afhænger af ...',
|
||||
'Relation:depends on/UpStream' => 'Påvirker ...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -23,18 +23,18 @@
|
||||
*
|
||||
*/
|
||||
Dict::Add('DE DE', 'German', 'Deutsch', array(
|
||||
'Relation:impacts/Description' => 'Elemente betroffen von',
|
||||
'Relation:impacts/DownStream' => 'Auswirkung ...',
|
||||
'Relation:impacts/DownStream+' => 'Elemente betroffen von',
|
||||
'Relation:impacts/UpStream' => 'Hängt ab von ...',
|
||||
'Relation:impacts/UpStream+' => 'Betroffene Elemente',
|
||||
'Relation:impacts/Description' => 'Elemente betroffen von',
|
||||
'Relation:impacts/DownStream' => 'Auswirkung ...',
|
||||
'Relation:impacts/DownStream+' => 'Elemente betroffen von',
|
||||
'Relation:impacts/UpStream' => 'Hängt ab von ...',
|
||||
'Relation:impacts/UpStream+' => 'Betroffene Elemente',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Elemente, von denen dieses Element abhängt.',
|
||||
'Relation:depends on/DownStream' => 'Hängt ab von ...',
|
||||
'Relation:depends on/UpStream' => 'Wirkt auf ...',
|
||||
'Relation:impacts/LoadData' => 'Daten laden',
|
||||
'Relation:impacts/FilteredData' => 'Daten sind über den Tab "Grafische Ansicht" gefiltert',
|
||||
'Relation:impacts/NoFilteredData' => 'Bitte wählen Sie Objekte im Tab "Grafische Ansicht"',
|
||||
'Relation:depends on/DownStream' => 'Hängt ab von ...',
|
||||
'Relation:depends on/UpStream' => 'Wirkt auf ...',
|
||||
'Relation:impacts/LoadData' => 'Daten laden',
|
||||
'Relation:impacts/FilteredData' => 'Daten sind über den Tab "Grafische Ansicht" gefiltert',
|
||||
'Relation:impacts/NoFilteredData' => 'Bitte wählen Sie Objekte ~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -27,17 +27,18 @@
|
||||
//
|
||||
|
||||
Dict::Add('EN US', 'English', 'English', array(
|
||||
'Relation:impacts/Description' => 'Elements impacted by',
|
||||
'Relation:impacts/DownStream' => 'Impacts...',
|
||||
'Relation:impacts/DownStream+' => 'Elements impacted by',
|
||||
'Relation:impacts/UpStream' => 'Depends on......',
|
||||
'Relation:impacts/UpStream+' => 'Elements impacting',
|
||||
'Relation:impacts/Description' => 'Elements impacted by',
|
||||
'Relation:impacts/DownStream' => 'Impacts...',
|
||||
'Relation:impacts/DownStream+' => 'Elements impacted by',
|
||||
'Relation:impacts/UpStream' => 'Depends on......',
|
||||
'Relation:impacts/UpStream+' => 'Elements impacting',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Elements impacting',
|
||||
'Relation:depends on/DownStream' => 'Depends on...',
|
||||
'Relation:depends on/UpStream' => 'Impacts...',
|
||||
'Relation:depends on/DownStream' => 'Depends on...',
|
||||
'Relation:depends on/UpStream' => 'Impacts...',
|
||||
'Relation:impacts/LoadData' => 'Load data',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -27,17 +27,18 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array(
|
||||
'Relation:impacts/Description' => 'Elementos Impactados por',
|
||||
'Relation:impacts/DownStream' => 'Impacto...',
|
||||
'Relation:impacts/DownStream+' => 'Elementos Impactados por',
|
||||
'Relation:impacts/UpStream' => 'Depende de...',
|
||||
'Relation:impacts/UpStream+' => 'Elementos de los cuales depende',
|
||||
'Relation:impacts/Description' => 'Elementos Impactados por',
|
||||
'Relation:impacts/DownStream' => 'Impacto...',
|
||||
'Relation:impacts/DownStream+' => 'Elementos Impactados por',
|
||||
'Relation:impacts/UpStream' => 'Depende de...',
|
||||
'Relation:impacts/UpStream+' => 'Elementos de los cuales depende',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Elementos de los cuales depende',
|
||||
'Relation:depends on/DownStream' => 'Depende de...',
|
||||
'Relation:depends on/UpStream' => 'Impactos...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag~~',
|
||||
'Relation:depends on/DownStream' => 'Depende de...',
|
||||
'Relation:depends on/UpStream' => 'Impactos...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -23,17 +23,18 @@
|
||||
// Class: Organization
|
||||
//
|
||||
Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'Relation:impacts/Description' => 'Eléments impactés par',
|
||||
'Relation:impacts/DownStream' => 'Impacte...',
|
||||
'Relation:impacts/DownStream+' => 'Eléments impactés par',
|
||||
'Relation:impacts/UpStream' => 'Dépend de...',
|
||||
'Relation:impacts/UpStream+' => 'Eléments dont dépend',
|
||||
'Relation:impacts/Description' => 'Eléments impactés par',
|
||||
'Relation:impacts/DownStream' => 'Impacte...',
|
||||
'Relation:impacts/DownStream+' => 'Eléments impactés par',
|
||||
'Relation:impacts/UpStream' => 'Dépend de...',
|
||||
'Relation:impacts/UpStream+' => 'Eléments dont dépend',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Eléments dont dépend',
|
||||
'Relation:depends on/DownStream' => 'Dépend de...',
|
||||
'Relation:depends on/UpStream' => 'Impacte...',
|
||||
'Relation:impacts/LoadData' => 'Charger les données',
|
||||
'Relation:impacts/NoFilteredData' => 'Veuillez sélectionner des objets dans l\'onglet Graph',
|
||||
'Relation:depends on/DownStream' => 'Dépend de...',
|
||||
'Relation:depends on/UpStream' => 'Impacte...',
|
||||
'Relation:impacts/LoadData' => 'Charger les données',
|
||||
'Relation:impacts/NoFilteredData' => 'Veuillez sélectionner des objets et lancer le chargement des données',
|
||||
'Relation:impacts/FilteredData' => 'Données filtrées',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -20,17 +20,18 @@
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
|
||||
'Relation:impacts/Description' => 'Konfigurációs elem működését befolyásolják',
|
||||
'Relation:impacts/DownStream' => 'Hatás',
|
||||
'Relation:impacts/DownStream+' => 'Konfigurációs elem működését befolyásolják',
|
||||
'Relation:impacts/UpStream' => 'Függőségek',
|
||||
'Relation:impacts/UpStream+' => 'Konfigurációs elemtől függnek',
|
||||
'Relation:impacts/Description' => 'Konfigurációs elem működését befolyásolják',
|
||||
'Relation:impacts/DownStream' => 'Hatás',
|
||||
'Relation:impacts/DownStream+' => 'Konfigurációs elem működését befolyásolják',
|
||||
'Relation:impacts/UpStream' => 'Függőségek',
|
||||
'Relation:impacts/UpStream+' => 'Konfigurációs elemtől függnek',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Konfigurációs elemtől függnek',
|
||||
'Relation:depends on/DownStream' => 'Függőségek',
|
||||
'Relation:depends on/UpStream' => 'Hatások',
|
||||
'Relation:impacts/LoadData' => 'Adat betöltés',
|
||||
'Relation:impacts/NoFilteredData' => 'kérjük, válassza ki az objektumokat a grafikus nézetben',
|
||||
'Relation:depends on/DownStream' => 'Függőségek',
|
||||
'Relation:depends on/UpStream' => 'Hatások',
|
||||
'Relation:impacts/LoadData' => 'Adat betöltés',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -20,17 +20,18 @@
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
Dict::Add('IT IT', 'Italian', 'Italiano', array(
|
||||
'Relation:impacts/Description' => 'Elementi impattati da...',
|
||||
'Relation:impacts/DownStream' => 'Impatto...',
|
||||
'Relation:impacts/DownStream+' => 'Elementi impattati da...',
|
||||
'Relation:impacts/UpStream' => 'Dipende da...',
|
||||
'Relation:impacts/UpStream+' => 'Elementi di questo elemento dipende da',
|
||||
'Relation:impacts/Description' => 'Elementi impattati da...',
|
||||
'Relation:impacts/DownStream' => 'Impatto...',
|
||||
'Relation:impacts/DownStream+' => 'Elementi impattati da...',
|
||||
'Relation:impacts/UpStream' => 'Dipende da...',
|
||||
'Relation:impacts/UpStream+' => 'Elementi di questo elemento dipende da',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Elementi di questo elemento dipende da',
|
||||
'Relation:depends on/DownStream' => 'Dipende da...',
|
||||
'Relation:depends on/UpStream' => 'Impatto...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag~~',
|
||||
'Relation:depends on/DownStream' => 'Dipende da...',
|
||||
'Relation:depends on/UpStream' => 'Impatto...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -20,17 +20,18 @@
|
||||
* @licence http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
Dict::Add('JA JP', 'Japanese', '日本語', array(
|
||||
'Relation:impacts/Description' => 'インパクトを受ける要素',
|
||||
'Relation:impacts/DownStream' => 'インパクト...',
|
||||
'Relation:impacts/DownStream+' => 'インパクトを受ける要素',
|
||||
'Relation:impacts/UpStream' => '依存...',
|
||||
'Relation:impacts/UpStream+' => 'この要素が依存している要素',
|
||||
'Relation:impacts/Description' => 'インパクトを受ける要素',
|
||||
'Relation:impacts/DownStream' => 'インパクト...',
|
||||
'Relation:impacts/DownStream+' => 'インパクトを受ける要素',
|
||||
'Relation:impacts/UpStream' => '依存...',
|
||||
'Relation:impacts/UpStream+' => 'この要素が依存している要素',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'この要素が依存している要素',
|
||||
'Relation:depends on/DownStream' => '依存...',
|
||||
'Relation:depends on/UpStream' => 'インパクト...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag~~',
|
||||
'Relation:depends on/DownStream' => '依存...',
|
||||
'Relation:depends on/UpStream' => 'インパクト...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -32,17 +32,18 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
|
||||
'Relation:impacts/Description' => 'Elementen met impact van',
|
||||
'Relation:impacts/DownStream' => 'Impact op...',
|
||||
'Relation:impacts/DownStream+' => 'Elementen geïmpacteerd door',
|
||||
'Relation:impacts/UpStream' => 'Is afhankelijk van...',
|
||||
'Relation:impacts/UpStream+' => 'Elementen met impact op',
|
||||
'Relation:impacts/Description' => 'Elementen met impact van',
|
||||
'Relation:impacts/DownStream' => 'Impact op...',
|
||||
'Relation:impacts/DownStream+' => 'Elementen geïmpacteerd door',
|
||||
'Relation:impacts/UpStream' => 'Is afhankelijk van...',
|
||||
'Relation:impacts/UpStream+' => 'Elementen met impact op',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Elementen afhankelijk van',
|
||||
'Relation:depends on/DownStream' => 'Is afhankelijk van...',
|
||||
'Relation:depends on/UpStream' => 'Impact op...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag~~',
|
||||
'Relation:depends on/DownStream' => 'Is afhankelijk van...',
|
||||
'Relation:depends on/UpStream' => 'Impact op...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -25,17 +25,18 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
Dict::Add('PL PL', 'Polish', 'Polski', array(
|
||||
'Relation:impacts/Description' => 'Elementy, na które ma wpływ',
|
||||
'Relation:impacts/DownStream' => 'Wpływa na...',
|
||||
'Relation:impacts/DownStream+' => 'Elementy, na które ma wpływ',
|
||||
'Relation:impacts/UpStream' => 'Zależy od......',
|
||||
'Relation:impacts/UpStream+' => 'Elementy wpływające',
|
||||
'Relation:impacts/Description' => 'Elementy, na które ma wpływ',
|
||||
'Relation:impacts/DownStream' => 'Wpływa na...',
|
||||
'Relation:impacts/DownStream+' => 'Elementy, na które ma wpływ',
|
||||
'Relation:impacts/UpStream' => 'Zależy od......',
|
||||
'Relation:impacts/UpStream+' => 'Elementy wpływające',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Elementy wpływające',
|
||||
'Relation:depends on/DownStream' => 'Zależy od...',
|
||||
'Relation:depends on/UpStream' => 'Wpływa na...',
|
||||
'Relation:impacts/LoadData' => 'Załaduj dane',
|
||||
'Relation:impacts/NoFilteredData' => 'proszę wybrać obiekty w widoku graficznym',
|
||||
'Relation:depends on/DownStream' => 'Zależy od...',
|
||||
'Relation:depends on/UpStream' => 'Wpływa na...',
|
||||
'Relation:impacts/LoadData' => 'Załaduj dane',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -26,17 +26,18 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Relation:impacts/Description' => 'Elementos impactados por',
|
||||
'Relation:impacts/DownStream' => 'Impacto...',
|
||||
'Relation:impacts/DownStream+' => 'Elementos impactados por',
|
||||
'Relation:impacts/UpStream' => 'Depende de...',
|
||||
'Relation:impacts/UpStream+' => 'Elementos estes, que dependem deste elemento',
|
||||
'Relation:impacts/Description' => 'Elementos impactados por',
|
||||
'Relation:impacts/DownStream' => 'Impacto...',
|
||||
'Relation:impacts/DownStream+' => 'Elementos impactados por',
|
||||
'Relation:impacts/UpStream' => 'Depende de...',
|
||||
'Relation:impacts/UpStream+' => 'Elementos estes, que dependem deste elemento',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Elementos estes, que dependem deste elemento',
|
||||
'Relation:depends on/DownStream' => 'Depende de...',
|
||||
'Relation:depends on/UpStream' => 'Impactos...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag~~',
|
||||
'Relation:depends on/DownStream' => 'Depende de...',
|
||||
'Relation:depends on/UpStream' => 'Impactos...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -13,17 +13,18 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
Dict::Add('RU RU', 'Russian', 'Русский', array(
|
||||
'Relation:impacts/Description' => 'Элементы, на которые влияет',
|
||||
'Relation:impacts/DownStream' => 'Влияет на...',
|
||||
'Relation:impacts/DownStream+' => 'Элементы, на которые влияет',
|
||||
'Relation:impacts/UpStream' => 'Зависит от...',
|
||||
'Relation:impacts/UpStream+' => 'Элементы, от которых зависит',
|
||||
'Relation:impacts/Description' => 'Элементы, на которые влияет',
|
||||
'Relation:impacts/DownStream' => 'Влияет на...',
|
||||
'Relation:impacts/DownStream+' => 'Элементы, на которые влияет',
|
||||
'Relation:impacts/UpStream' => 'Зависит от...',
|
||||
'Relation:impacts/UpStream+' => 'Элементы, от которых зависит',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Элементы, от которых зависит',
|
||||
'Relation:depends on/DownStream' => 'Зависит от...',
|
||||
'Relation:depends on/UpStream' => 'Влияет на...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag~~',
|
||||
'Relation:depends on/DownStream' => 'Зависит от...',
|
||||
'Relation:depends on/UpStream' => 'Влияет на...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -25,17 +25,18 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
|
||||
'Relation:impacts/Description' => 'Prvky zasiahnuté',
|
||||
'Relation:impacts/DownStream' => 'Impacts...~~',
|
||||
'Relation:impacts/DownStream+' => 'Elements impacted by~~',
|
||||
'Relation:impacts/UpStream' => 'Depends on......~~',
|
||||
'Relation:impacts/UpStream+' => 'Elements impacting~~',
|
||||
'Relation:impacts/Description' => 'Prvky zasiahnuté',
|
||||
'Relation:impacts/DownStream' => 'Impacts...~~',
|
||||
'Relation:impacts/DownStream+' => 'Elements impacted by~~',
|
||||
'Relation:impacts/UpStream' => 'Depends on......~~',
|
||||
'Relation:impacts/UpStream+' => 'Elements impacting~~',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Prvky, od ktorých závisí tento prvok',
|
||||
'Relation:depends on/DownStream' => 'Depends on...~~',
|
||||
'Relation:depends on/UpStream' => 'Impacts...~~',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag~~',
|
||||
'Relation:depends on/DownStream' => 'Depends on...~~',
|
||||
'Relation:depends on/UpStream' => 'Impacts...~~',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -27,17 +27,18 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
|
||||
'Relation:impacts/Description' => 'Etkilenen kalemler',
|
||||
'Relation:impacts/DownStream' => 'Etkiler...',
|
||||
'Relation:impacts/DownStream+' => 'Etkilenen kalemler',
|
||||
'Relation:impacts/UpStream' => 'Bağımlı olanlar...',
|
||||
'Relation:impacts/UpStream+' => 'Bu kaleme bağımlı olan kalemler',
|
||||
'Relation:impacts/Description' => 'Etkilenen kalemler',
|
||||
'Relation:impacts/DownStream' => 'Etkiler...',
|
||||
'Relation:impacts/DownStream+' => 'Etkilenen kalemler',
|
||||
'Relation:impacts/UpStream' => 'Bağımlı olanlar...',
|
||||
'Relation:impacts/UpStream+' => 'Bu kaleme bağımlı olan kalemler',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => 'Bu kaleme bağımlı olan kalemler',
|
||||
'Relation:depends on/DownStream' => 'Bağımlı olanlar...',
|
||||
'Relation:depends on/UpStream' => 'Etkiledikleri...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag~~',
|
||||
'Relation:depends on/DownStream' => 'Bağımlı olanlar...',
|
||||
'Relation:depends on/UpStream' => 'Etkiledikleri...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -25,17 +25,18 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
|
||||
'Relation:impacts/Description' => '被影响的元素',
|
||||
'Relation:impacts/DownStream' => '影响...',
|
||||
'Relation:impacts/DownStream+' => '被影响的元素',
|
||||
'Relation:impacts/UpStream' => '依赖于...',
|
||||
'Relation:impacts/UpStream+' => '此元素依赖的元素...',
|
||||
'Relation:impacts/Description' => '被影响的元素',
|
||||
'Relation:impacts/DownStream' => '影响...',
|
||||
'Relation:impacts/DownStream+' => '被影响的元素',
|
||||
'Relation:impacts/UpStream' => '依赖于...',
|
||||
'Relation:impacts/UpStream+' => '此元素依赖的元素...',
|
||||
// Legacy entries
|
||||
'Relation:depends on/Description' => '此元素依赖的元素...',
|
||||
'Relation:depends on/DownStream' => '依赖于...',
|
||||
'Relation:depends on/UpStream' => '影响...',
|
||||
'Relation:impacts/LoadData' => '加载数据',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects in Graphical view tag~~',
|
||||
'Relation:depends on/DownStream' => '依赖于...',
|
||||
'Relation:depends on/UpStream' => '影响...',
|
||||
'Relation:impacts/LoadData' => '加载数据',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
|
||||
|
||||
100
pages/UI.php
100
pages/UI.php
@@ -13,6 +13,7 @@ use Combodo\iTop\Application\UI\Base\Component\Form\Form;
|
||||
use Combodo\iTop\Application\UI\Base\Component\GlobalSearch\GlobalSearchHelper;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Title\Title;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Toolbar\ToolbarUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\PageContent\PageContentFactory;
|
||||
@@ -273,7 +274,6 @@ function DisplayNavigatorListTab($oP, $aResults, $sRelation, $sDirection, $oObj)
|
||||
$oP->SetCurrentTab('UI:RelationshipList');
|
||||
$oImpactedObject = UIContentBlockUIBlockFactory::MakeStandard("impacted_objects", ['ibo-is-visible']);
|
||||
$oP->AddSubBlock($oImpactedObject);
|
||||
$oImpactedObject->AddSubBlock(AlertUIBlockFactory::MakeForWarning(Dict::S("Relation:impacts/FilteredData"), '', "alert_filtered_list")->SetIsHidden(true));
|
||||
$oImpactedObjectList = UIContentBlockUIBlockFactory::MakeStandard("impacted_objects_lists", ['ibo-is-visible']);
|
||||
$oImpactedObject->AddSubBlock($oImpactedObjectList);
|
||||
$oImpactedObjectList->AddSubBlock(UIContentBlockUIBlockFactory::MakeStandard("impacted_objects_lists_placeholder", ['ibo-is-visible']));
|
||||
@@ -1406,64 +1406,62 @@ try
|
||||
$sDescription = MetaModel::GetRelationDescription($sRelation, $bDirDown).' '.$oObj->GetName();
|
||||
$oP->SetBreadCrumbEntry($sPageId, $sLabel, $sDescription);
|
||||
|
||||
if ($sRelation == 'depends on') {
|
||||
$sRelation = 'impacts';
|
||||
$sDirection = 'up';
|
||||
}
|
||||
if ($sDirection == 'up') {
|
||||
$oRelGraph = MetaModel::GetRelatedObjectsUp($sRelation, $aSourceObjects, $iMaxRecursionDepth);
|
||||
} else {
|
||||
$oRelGraph = MetaModel::GetRelatedObjectsDown($sRelation, $aSourceObjects, $iMaxRecursionDepth);
|
||||
}
|
||||
if ($sRelation == 'depends on') {
|
||||
$sRelation = 'impacts';
|
||||
$sDirection = 'up';
|
||||
}
|
||||
if ($sDirection == 'up') {
|
||||
$oRelGraph = MetaModel::GetRelatedObjectsUp($sRelation, $aSourceObjects, $iMaxRecursionDepth);
|
||||
} else {
|
||||
$oRelGraph = MetaModel::GetRelatedObjectsDown($sRelation, $aSourceObjects, $iMaxRecursionDepth);
|
||||
}
|
||||
|
||||
|
||||
$aResults = $oRelGraph->GetObjectsByClass();
|
||||
$oDisplayGraph = DisplayableGraph::FromRelationGraph($oRelGraph, $iGroupingThreshold, ($sDirection == 'down'));
|
||||
$oPanel = PanelUIBlockFactory::MakeForClass($sClass, MetaModel::GetRelationDescription($sRelation, $bDirDown).' '.$oObj->GetName());
|
||||
$sClassIcon = MetaModel::GetClassIcon($sClass, false);
|
||||
if (strlen($sClassIcon) > 0){
|
||||
$oPanel->SetIcon($sClassIcon);
|
||||
}
|
||||
$aResults = $oRelGraph->GetObjectsByClass();
|
||||
$oDisplayGraph = DisplayableGraph::FromRelationGraph($oRelGraph, $iGroupingThreshold, ($sDirection == 'down'));
|
||||
$sTitle = MetaModel::GetRelationDescription($sRelation, $bDirDown).' '.$oObj->GetName();
|
||||
$sClassIcon = MetaModel::GetClassIcon($sClass, false);
|
||||
|
||||
$oP->AddUiBlock($oPanel);
|
||||
$oP->AddTabContainer('Navigator', '', $oPanel);
|
||||
$oP->SetCurrentTabContainer('Navigator');
|
||||
$sFirstTab = MetaModel::GetConfig()->Get('impact_analysis_first_tab');
|
||||
$bLazyLoading = MetaModel::GetConfig()->Get('impact_analysis_lazy_loading');
|
||||
$sContextKey = "itop-config-mgmt/relation_context/$sClass/$sRelation/$sDirection";
|
||||
|
||||
$sFirstTab = MetaModel::GetConfig()->Get('impact_analysis_first_tab');
|
||||
$bLazyLoading = MetaModel::GetConfig()->Get('impact_analysis_lazy_loading');
|
||||
$sContextKey = "itop-config-mgmt/relation_context/$sClass/$sRelation/$sDirection";
|
||||
|
||||
// Check if the current object supports Attachments, similar to AttachmentPlugin::IsTargetObject
|
||||
$sClassForAttachment = null;
|
||||
$iIdForAttachment = null;
|
||||
if (class_exists('Attachment')) {
|
||||
$aAllowedClasses = MetaModel::GetModuleSetting('itop-attachments', 'allowed_classes', array('Ticket'));
|
||||
foreach ($aAllowedClasses as $sAllowedClass) {
|
||||
if ($oObj instanceof $sAllowedClass) {
|
||||
$iIdForAttachment = $id;
|
||||
$sClassForAttachment = $sClass;
|
||||
}
|
||||
// Check if the current object supports Attachments, similar to AttachmentPlugin::IsTargetObject
|
||||
$sClassForAttachment = null;
|
||||
$iIdForAttachment = null;
|
||||
if (class_exists('Attachment')) {
|
||||
$aAllowedClasses = MetaModel::GetModuleSetting('itop-attachments', 'allowed_classes', array('Ticket'));
|
||||
foreach ($aAllowedClasses as $sAllowedClass) {
|
||||
if ($oObj instanceof $sAllowedClass) {
|
||||
$iIdForAttachment = $id;
|
||||
$sClassForAttachment = $sClass;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Display the tabs
|
||||
if ($sFirstTab == 'list')
|
||||
{
|
||||
DisplayNavigatorListTab($oP, $aResults, $sRelation, $sDirection, $oObj);
|
||||
$oP->SetCurrentTab('UI:RelationshipGraph');
|
||||
$oDisplayGraph->Display($oP, $aResults, $sRelation, $oAppContext, array(), $sClassForAttachment, $iIdForAttachment, $sContextKey, array('this' => $oObj),$bLazyLoading);
|
||||
DisplayNavigatorGroupTab($oP);
|
||||
}
|
||||
else
|
||||
{
|
||||
$oP->SetCurrentTab('UI:RelationshipGraph');
|
||||
$oDisplayGraph->Display($oP, $aResults, $sRelation, $oAppContext, array(), $sClassForAttachment, $iIdForAttachment, $sContextKey, array('this' => $oObj),$bLazyLoading);
|
||||
DisplayNavigatorListTab($oP, $aResults, $sRelation, $sDirection, $oObj);
|
||||
DisplayNavigatorGroupTab($oP);
|
||||
}
|
||||
$oP->AddSubBlock($oDisplayGraph->DisplayFilterBox($oP, $aResults, $bLazyLoading));
|
||||
$oPanel = PanelUIBlockFactory::MakeForClass($sClass, $sTitle);
|
||||
$oPanel->SetIcon($sClassIcon);
|
||||
|
||||
$oP->SetCurrentTab('');
|
||||
break;
|
||||
$oP->AddSubBlock($oPanel);
|
||||
$oP->AddTabContainer('Navigator', '', $oPanel);
|
||||
$oP->SetCurrentTabContainer('Navigator');
|
||||
|
||||
// Display the tabs
|
||||
if ($sFirstTab == 'list') {
|
||||
DisplayNavigatorListTab($oP, $aResults, $sRelation, $sDirection, $oObj);
|
||||
$oP->SetCurrentTab('UI:RelationshipGraph');
|
||||
$oDisplayGraph->DisplayGraph($oP, $sRelation, $oAppContext, [], $sClassForAttachment, $iIdForAttachment, $sContextKey, array('this' => $oObj), $bLazyLoading);
|
||||
DisplayNavigatorGroupTab($oP);
|
||||
} else {
|
||||
$oP->SetCurrentTab('UI:RelationshipGraph');
|
||||
$oDisplayGraph->DisplayGraph($oP, $sRelation, $oAppContext, array(), $sClassForAttachment, $iIdForAttachment, $sContextKey, array('this' => $oObj), $bLazyLoading);
|
||||
DisplayNavigatorListTab($oP, $aResults, $sRelation, $sDirection, $oObj);
|
||||
DisplayNavigatorGroupTab($oP);
|
||||
}
|
||||
|
||||
$oP->SetCurrentTab('');
|
||||
break;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
@@ -1952,7 +1952,8 @@ EOF
|
||||
|
||||
$sContextKey = 'itop-tickets/relation_context/'.$sClass.'/'.$sRelation.'/'.$sDirection;
|
||||
$oAppContext = new ApplicationContext();
|
||||
$oGraph->Display($oPage, $aResults, $sRelation, $oAppContext, $aExcludedObjects, $sClass, $iId, $sContextKey, array('this' => $oTicket));
|
||||
$oPage->AddSubBlock($oGraph->DisplayFilterBox($oPage, $aResults));
|
||||
$oGraph->DisplayGraph($oPage, $sRelation, $oAppContext, $aExcludedObjects, $sClass, $iId, $sContextKey, array('this' => $oTicket));
|
||||
break;
|
||||
|
||||
case 'export_build':
|
||||
|
||||
Reference in New Issue
Block a user