Merge remote-tracking branch 'origin/support/3.2' into develop

This commit is contained in:
Molkobain
2024-07-05 00:19:17 +02:00
65 changed files with 337 additions and 9799 deletions

View File

@@ -72,26 +72,14 @@ function DisplayActionsTab(iTopWebPage &$oP, string $sClassToDisplay, array $aCl
}
$oP->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);
$aParams = array('panel_title' => MetaModel::GetName($sActionClass));
$sBlockId = 'block_'.utils::Sanitize($sClassToDisplay, '', utils::ENUM_SANITIZATION_FILTER_ELEMENT_IDENTIFIER).'_'.$iBlock;
$oBlock = new DisplayBlock($oFilter, 'list', false, $aParams);

View File

@@ -4,6 +4,7 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
use Combodo\iTop\Application\Newsroom\iTopNewsroomProvider;
use Combodo\iTop\Application\UI\Base\Component\Button\ButtonUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\FieldSet\FieldSetUIBlockFactory;
use Combodo\iTop\Application\UI\Base\Component\Form\Form;
@@ -298,8 +299,12 @@ JS
}
$sPreferencesLink = ' - <a class=".newsroom-configuration-link" href="'.$sUrl.'"'.$sTarget.'>'.Dict::S('UI:Newsroom:ConfigurationLink').'</a>';
}
$sChecked = appUserPreferences::GetPref('newsroom_provider_'.$sProviderClass, true) ? ' checked="" ' : '';
$sNewsroomHtml .= '<div><input type="checkbox" id="newsroom_provider_'.$sProviderClass.'" value="on"'.$sChecked.'name="newsroom_provider_'.$sProviderClass.'"><label for="newsroom_provider_'.$sProviderClass.'">'.Dict::Format('UI:Newsroom:DisplayMessagesFor_Provider',
$sCheckedForHtml = appUserPreferences::GetPref('newsroom_provider_'.$sProviderClass, true) ? 'checked' : '';
// Forbid disabling internal newsroom provider
$sDisabledForHtml = $sProviderClass === iTopNewsroomProvider::class ? 'disabled' : '';
$sNewsroomHtml .= '<div><input type="checkbox" id="newsroom_provider_'.$sProviderClass.'" value="on" '.$sCheckedForHtml.' '.$sDisabledForHtml.' name="newsroom_provider_'.$sProviderClass.'"><label for="newsroom_provider_'.$sProviderClass.'">'.Dict::Format('UI:Newsroom:DisplayMessagesFor_Provider',
$oProvider->GetLabel()).'</label> '.$sPreferencesLink.'</div>';
}
}
@@ -872,6 +877,11 @@ try {
$bProvidersModified = false;
foreach ($aProviders as $cProvider)
{
// Forbid disabling internal newsroom provider
if ($cProvider === iTopNewsroomProvider::class) {
continue;
}
$oProvider = new $cProvider();
if ($oProvider->IsApplicable($oUser))
{