diff --git a/core/dbobject.class.php b/core/dbobject.class.php
index 18b67e7703..7a850dba10 100644
--- a/core/dbobject.class.php
+++ b/core/dbobject.class.php
@@ -2319,16 +2319,17 @@ abstract class DBObject implements iDisplay
}
/**
+ * @param array $aUniquenessRuleProperties uniqueness rule properties
+ *
+ * @param string $sUniquenessRuleId uniqueness rule ID
+ * @return \DBSearch
+ * @throws \OQLException
+ * @throws \CoreException
+ *
* @internal
*
- * @param string $sUniquenessRuleId uniqueness rule ID
- * @param array $aUniquenessRuleProperties uniqueness rule properties
- *
- * @return \DBSearch
- * @throws \CoreException
- * @throws \OQLException
- * @since 2.6.0 N°659 uniqueness constraint
- * @api
+ * @since 2.6.0 N°659 uniqueness constraint
+ * @since 2.7.11 3.1.2 3.2.0 N°4314 Fix Uniqueness rules not working with Silo
*/
protected function GetSearchForUniquenessRule($sUniquenessRuleId, $aUniquenessRuleProperties)
{
diff --git a/dictionaries/ui/pages/notifications-center/en.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/en.dictionary.itop.notifications-center.php
index 07e0068372..a6310f10d8 100644
--- a/dictionaries/ui/pages/notifications-center/en.dictionary.itop.notifications-center.php
+++ b/dictionaries/ui/pages/notifications-center/en.dictionary.itop.notifications-center.php
@@ -20,8 +20,6 @@
Dict::Add('EN US', 'English', 'English', array(
'UI:NotificationsCenter:Page:Title' => 'Notifications center',
'UI:NotificationsCenter:Panel:Title' => 'Notifications center',
- 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage your notifications subscriptions. For more granularity, you can also manage individual subscriptions using the advanced mode.',
- 'UI:NotificationsCenter:Panel:Advanced:SubTitle' => 'Manage your notifications subscriptions individually. To manage your subscriptions by type, use the standard mode.',
'UI:NotificationsCenter:Panel:Table:Channels' => 'Channels.',
'UI:NotificationsCenter:Unsubscribe:Success' => 'You have been successfully unsubscribed from the selected notifications.',
'UI:NotificationsCenter:Unsubscribe:Error' => 'An error occurred while unsubscribing from the selected notifications.',
diff --git a/sources/Application/TwigBase/Controller/Controller.php b/sources/Application/TwigBase/Controller/Controller.php
index 465eb3c04b..6c10ec86bb 100644
--- a/sources/Application/TwigBase/Controller/Controller.php
+++ b/sources/Application/TwigBase/Controller/Controller.php
@@ -583,6 +583,7 @@ abstract class Controller extends AbstractController
* @api
*
* @param string $sScript Script path to link
+ * @since 3.2.0 $sScript must be absolute URI
*/
public function AddLinkedScript($sScript)
{
@@ -595,6 +596,7 @@ abstract class Controller extends AbstractController
* @api
*
* @param string $sStylesheet Stylesheet path to link
+ * @since 3.2.0 $sScript must be absolute URI
*/
public function AddLinkedStylesheet($sStylesheet)
{
@@ -769,12 +771,23 @@ abstract class Controller extends AbstractController
private function AddLinkedScriptToPage($sLinkedScript)
{
- $this->m_oPage->add_linked_script($sLinkedScript);
+ // iTop 3.1 and older compatibility, if not an URI we don't know if its relative to app root or module root
+ if (strpos($sLinkedScript, "://") === false) {
+ $this->m_oPage->add_linked_script($sLinkedScript);
+ return;
+ }
+
+ $this->m_oPage->LinkScriptFromURI($sLinkedScript);
}
private function AddLinkedStylesheetToPage($sLinkedStylesheet)
{
- $this->m_oPage->add_linked_stylesheet($sLinkedStylesheet);
+ // iTop 3.1 and older compatibility, if not an URI we don't know if its relative to app root or module root
+ if (strpos($sLinkedStylesheet, "://") === false) {
+ $this->m_oPage->add_linked_stylesheet($sLinkedStylesheet);
+ }
+
+ $this->m_oPage->LinkStylesheetFromURI($sLinkedStylesheet);
}
private function AddStyleToPage($sStyle)