mirror of
https://github.com/Combodo/iTop.git
synced 2026-03-01 07:04:16 +01:00
N°3833 Fix DashletBadge in Ajax causing JS error
* switch dashlet_badge widget init from js_template to js_on_ready_template * add phpdoc on UIBlock::DEFAULT_JS_FILES_REL_PATH * remove old code in \AjaxPage::output (after the return statement) that is already handled with the new Twig rendering
This commit is contained in:
@@ -16,7 +16,7 @@ class DashletBadge extends DashletContainer
|
||||
|
||||
public const BLOCK_CODE = 'ibo-dashlet-badge';
|
||||
public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/components/dashlet/dashlet-badge';
|
||||
public const DEFAULT_JS_TEMPLATE_REL_PATH = 'base/components/dashlet/dashlet-badge';
|
||||
public const DEFAULT_JS_ON_READY_TEMPLATE_REL_PATH = 'base/components/dashlet/dashlet-badge';
|
||||
public const DEFAULT_JS_FILES_REL_PATH = [
|
||||
'js/components/dashlet/dashlet-badge.js',
|
||||
];
|
||||
|
||||
@@ -43,7 +43,11 @@ abstract class UIBlock implements iUIBlock
|
||||
public const DEFAULT_GLOBAL_TEMPLATE_REL_PATH = null;
|
||||
/** @var string|null */
|
||||
public const DEFAULT_HTML_TEMPLATE_REL_PATH = null;
|
||||
/** @var array */
|
||||
/**
|
||||
* @var array list of external JS file paths to include in the page. Paths are relative to APPROOT
|
||||
* **Warning** : if you need to call a JS var defined in one of this file, then this calling code MUST be in {@see DEFAULT_JS_ON_READY_TEMPLATE_REL_PATH}
|
||||
* and not in {@see DEFAULT_JS_TEMPLATE_REL_PATH} ! Indeed the later is output before external files loading.
|
||||
*/
|
||||
public const DEFAULT_JS_FILES_REL_PATH = [];
|
||||
/** @var string|null */
|
||||
public const DEFAULT_JS_TEMPLATE_REL_PATH = null;
|
||||
|
||||
@@ -237,19 +237,6 @@ EOF
|
||||
echo "\n</script>\n";
|
||||
}
|
||||
|
||||
//echo $this->s_deferred_content;
|
||||
if (count($this->a_scripts) > 0) {
|
||||
echo "<script type=\"text/javascript\">\n";
|
||||
echo implode("\n", $this->a_scripts);
|
||||
echo "\n</script>\n";
|
||||
}
|
||||
if (count($this->a_linked_scripts) > 0) {
|
||||
echo "<script type=\"text/javascript\">\n";
|
||||
foreach ($this->a_linked_scripts as $sScriptUrl) {
|
||||
echo '$.getScript('.json_encode($sScriptUrl).");\n";
|
||||
}
|
||||
echo "\n</script>\n";
|
||||
}
|
||||
if (!empty($this->s_deferred_content)) {
|
||||
echo "<script type=\"text/javascript\">\n";
|
||||
echo "\$('body').append('".addslashes(str_replace("\n", '', $this->s_deferred_content))."');\n";
|
||||
@@ -260,14 +247,6 @@ EOF
|
||||
echo $this->m_aReadyScripts; // Ready Scripts are output as simple scripts
|
||||
echo "\n</script>\n";
|
||||
}
|
||||
if (count($this->a_linked_stylesheets) > 0) {
|
||||
echo "<script type=\"text/javascript\">";
|
||||
foreach ($this->a_linked_stylesheets as $aStylesheet) {
|
||||
$sStylesheetUrl = $aStylesheet['link'];
|
||||
echo "if (!$('link[href=\"{$sStylesheetUrl}\"]').length) $('<link href=\"{$sStylesheetUrl}\" rel=\"stylesheet\">').appendTo('head');\n";
|
||||
}
|
||||
echo "\n</script>\n";
|
||||
}
|
||||
|
||||
if (trim($s_captured_output) != "") {
|
||||
echo self::FilterXSS($s_captured_output);
|
||||
|
||||
Reference in New Issue
Block a user