Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -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
*
Expand All @@ -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);
}
}
30 changes: 14 additions & 16 deletions administrator/components/com_installer/tmpl/manage/default.php
Original file line number Diff line number Diff line change
Expand Up @@ -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'));
Expand Down Expand Up @@ -118,20 +118,18 @@
</td>
<td class="d-none d-md-table-cell">
<?php if (!empty($item->version)) : ?>
<?php if (!empty($item->changelogurl)) : ?>
<a href="#changelogModal<?php echo $item->extension_id; ?>" class="changelogModal" data-js-extensionid="<?php echo $item->extension_id; ?>" data-js-view="manage" data-bs-toggle="modal">
<?php echo $item->version?>
</a>
<?php
echo HTMLHelper::_(
'bootstrap.renderModal',
'changelogModal' . $item->extension_id,
[
'title' => Text::sprintf('COM_INSTALLER_CHANGELOG_TITLE', $item->name, $item->version),
],
''
);
<?php if (!empty($item->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',
];
?>
<button type="button" class="btn btn-info btn-sm"
data-joomla-dialog="<?php echo $this->escape(json_encode($popupOptions, JSON_UNESCAPED_SLASHES)); ?>">
<?php echo $item->version; ?></button>
<?php else : ?>
<?php echo $item->version; ?>
<?php endif; ?>
Expand Down
26 changes: 12 additions & 14 deletions administrator/components/com_installer/tmpl/update/default.php
Original file line number Diff line number Diff line change
Expand Up @@ -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'));
Expand Down Expand Up @@ -117,20 +117,18 @@
<span class="badge bg-success"><?php echo $item->version; ?></span>
</td>
<td class="d-none d-md-table-cell text-center">
<?php if (!empty($item->changelogurl)) : ?>
<a href="#changelogModal<?php echo $item->extension_id; ?>" class="btn btn-info btn-sm changelogModal" data-js-extensionid="<?php echo $item->extension_id; ?>" data-js-view="update" data-bs-toggle="modal">
<?php echo Text::_('COM_INSTALLER_CHANGELOG'); ?>
</a>
<?php
echo HTMLHelper::_(
'bootstrap.renderModal',
'changelogModal' . $item->extension_id,
[
'title' => Text::sprintf('COM_INSTALLER_CHANGELOG_TITLE', $item->name, $item->version),
],
''
);
<?php if (!empty($item->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',
];
?>
<button type="button" class="btn btn-info btn-sm"
data-joomla-dialog="<?php echo $this->escape(json_encode($popupOptions, JSON_UNESCAPED_SLASHES)); ?>">
<?php echo Text::_('COM_INSTALLER_CHANGELOG'); ?></button>
<?php else :?>
<span>
<?php echo Text::_('COM_INSTALLER_TYPE_NONAPPLICABLE')?>
Expand Down
4 changes: 3 additions & 1 deletion build/media_source/com_installer/joomla.asset.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@
],
"attributes": {
"type": "module"
}
},
"deprecated": true,
"deprecatedMsg": "Use joomla.dialog asset for changelog popup"
},
{
"name": "com_installer.installer",
Expand Down