SetCurrentTab('UI:NotificationsMenu:Actions:'.$sClassToDisplay); $sNbOfActionClassesTitle = ''; if (count($aActionClasses) == 1) { // Preserve old style $sNbOfActionClassesTitle = Dict::S('UI:NotificationsMenu:AvailableActions'); } $iBlock = 0; foreach($aActionClasses as $sActionClass) { if (count($aActionClasses) > 1) { // New style $sNbOfActionClassesTitle = MetaModel::GetName($sActionClass); } $oFilter = new DBObjectSearch($sActionClass); $oFilter->AddCondition('finalclass', $sActionClass); // derived classes will be further processed $aParams = array('panel_title' => $sNbOfActionClassesTitle); $sBlockId = 'block_'.utils::Sanitize($sClassToDisplay, '', utils::ENUM_SANITIZATION_FILTER_ELEMENT_IDENTIFIER).'_'.$iBlock; $oBlock = new DisplayBlock($oFilter, 'list', false, $aParams); $oBlock->Display($oP, $sBlockId, $aParams); $iBlock++; } } // Main program // $oP = new iTopWebPage(Dict::S('Menu:NotificationsMenu+')); $oP->SetBreadCrumbEntry('ui-tool-notifications', Dict::S('Menu:NotificationsMenu'), Dict::S('Menu:NotificationsMenu+'), '', 'fas fa-bell', iTopWebPage::ENUM_BREADCRUMB_ENTRY_ICON_TYPE_CSS_CLASSES); $oPageContentLayout = PageContentFactory::MakeStandardEmpty(); $oP->SetContentLayout($oPageContentLayout); $sAlertTitle = Dict::S('UI:NotificationsMenu:Title'); $sAlertContent = Dict::S('UI:NotificationsMenu:HelpContent'); $oConfigurationHelp = new CollapsibleSection($sAlertTitle, [HtmlFactory::MakeHtmlContent($sAlertContent)]); $oConfigurationHelp ->SetOpenedByDefault(true) ->EnableSaveCollapsibleState('notifications__home'); $oPageContentLayout->AddMainBlock($oConfigurationHelp); /************************************* * Triggers tab ************************************/ $oP->AddTabContainer('Tabs_0'); $oP->SetCurrentTabContainer('Tabs_0'); $oP->SetCurrentTab('UI:NotificationsMenu:Triggers'); $oFilter = new DBObjectSearch('Trigger'); $aParams = array('panel_title' => Dict::S('UI:NotificationsMenu:AvailableTriggers')); $oBlock = new DisplayBlock($oFilter, 'list', false, $aParams); $oBlock->Display($oP, 'block_0', $aParams); /************************************* * Actions tabs ************************************/ DisplayActionsTab($oP, 'ActionEmail'); DisplayActionsTab($oP, 'ActionWebhook'); DisplayActionsTab($oP, 'Action', ['ActionEmail', 'ActionWebhook']); /************************************* * End reset ************************************/ $oP->SetCurrentTab(''); $oP->SetCurrentTabContainer(''); $oP->output();