diff --git a/administrator/components/com_installer/src/Controller/ManageController.php b/administrator/components/com_installer/src/Controller/ManageController.php index f305381a30f8f..9ebb2c1856b1c 100644 --- a/administrator/components/com_installer/src/Controller/ManageController.php +++ b/administrator/components/com_installer/src/Controller/ManageController.php @@ -153,7 +153,7 @@ public function refresh() } /** - * Load the changelog for a given extension. + * Load the changelog for a given extension. Outputs HTML encoded in JSON. * * @return void * @@ -175,4 +175,26 @@ public function loadChangelog() echo (new JsonResponse($output)); } + + /** + * Load the changelog for a given extension. Outputs HTML. + * + * @return void + * + * @since __DEPLOY_VERSION__ + */ + public function loadChangelogRaw() + { + /** @var ManageModel $model */ + $model = $this->getModel('manage'); + + $eid = $this->input->get('eid', 0, 'int'); + $source = $this->input->get('source', 'manage', 'string'); + + if (!$eid) { + return; + } + + echo $model->loadChangelog($eid, $source); + } } diff --git a/administrator/components/com_installer/tmpl/manage/default.php b/administrator/components/com_installer/tmpl/manage/default.php index ff13700e212d6..ecbd3234d23ec 100644 --- a/administrator/components/com_installer/tmpl/manage/default.php +++ b/administrator/components/com_installer/tmpl/manage/default.php @@ -17,9 +17,9 @@ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->document->getWebAssetManager(); -$wa->useScript('com_installer.changelog') - ->useScript('table.columns') - ->useScript('multiselect'); +$wa->useScript('table.columns') + ->useScript('multiselect') + ->useScript('joomla.dialog-autocreate'); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); @@ -118,20 +118,18 @@ version)) : ?> - changelogurl)) : ?> - - version?> - - extension_id, - [ - 'title' => Text::sprintf('COM_INSTALLER_CHANGELOG_TITLE', $item->name, $item->version), - ], - '' - ); + changelogurl)) : + $popupOptions = [ + 'popupType' => 'ajax', + 'textHeader' => Text::sprintf('COM_INSTALLER_CHANGELOG_TITLE', $item->name, $item->version), + 'src' => Route::_('index.php?option=com_installer&task=manage.loadChangelogRaw&eid=' . $item->extension_id . '&source=manage&format=raw', false), + 'width' => '800px', + 'height' => 'fit-content', + ]; ?> + version; ?> diff --git a/administrator/components/com_installer/tmpl/update/default.php b/administrator/components/com_installer/tmpl/update/default.php index 8739374e6d6da..c5c5b4ef18618 100644 --- a/administrator/components/com_installer/tmpl/update/default.php +++ b/administrator/components/com_installer/tmpl/update/default.php @@ -19,7 +19,7 @@ $wa = $this->document->getWebAssetManager(); $wa->useScript('multiselect') ->useScript('table.columns') - ->useScript('com_installer.changelog'); + ->useScript('joomla.dialog-autocreate'); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); @@ -117,20 +117,18 @@ version; ?> - changelogurl)) : ?> - - - - extension_id, - [ - 'title' => Text::sprintf('COM_INSTALLER_CHANGELOG_TITLE', $item->name, $item->version), - ], - '' - ); + changelogurl)) : + $popupOptions = [ + 'popupType' => 'ajax', + 'textHeader' => Text::sprintf('COM_INSTALLER_CHANGELOG_TITLE', $item->name, $item->version), + 'src' => Route::_('index.php?option=com_installer&task=manage.loadChangelogRaw&eid=' . $item->extension_id . '&source=update&format=raw', false), + 'width' => '800px', + 'height' => 'fit-content', + ]; ?> + diff --git a/build/media_source/com_installer/joomla.asset.json b/build/media_source/com_installer/joomla.asset.json index 11bc62d387616..3ca54fcb2b578 100644 --- a/build/media_source/com_installer/joomla.asset.json +++ b/build/media_source/com_installer/joomla.asset.json @@ -14,7 +14,9 @@ ], "attributes": { "type": "module" - } + }, + "deprecated": true, + "deprecatedMsg": "Use joomla.dialog asset for changelog popup" }, { "name": "com_installer.installer",