Skip to content

Commit

Permalink
Track the package/extension relationships (#12977)
Browse files Browse the repository at this point in the history
* Track the package/extension relationships

* Include the package ID in the manage view

* Add all SQL schema changes

* Add package_id to allowed filter fields

* Check for empty install ID array, get the installed ID using 'onExtensionAfterInstall' event

* Update queries to set association for en-GB package

* Add data for install SQL
  • Loading branch information
Michael Babker authored and rdeutz committed Dec 7, 2016
1 parent 57e6a4e commit 1f74751
Show file tree
Hide file tree
Showing 14 changed files with 245 additions and 155 deletions.
@@ -0,0 +1,6 @@
ALTER TABLE `#__extensions` ADD COLUMN `package_id` int(11) NOT NULL DEFAULT 0 COMMENT 'Parent package ID for extensions installed as a package.' AFTER `extension_id`;

UPDATE `#__extensions` AS `e1`
INNER JOIN (SELECT `extension_id` FROM `#__extensions` WHERE `type` = 'package' AND `element` = 'pkg_en-GB') AS `e2`
SET `e1`.`package_id` = `e2`.`extension_id`
WHERE `e1`.`type`= 'language' AND `e1`.`element` = 'en-GB';
@@ -0,0 +1,6 @@
ALTER TABLE "#__extensions" ADD COLUMN "package_id" bigint DEFAULT 0 NOT NULL;

UPDATE "#__extensions"
SET "package_id" = sub.extension_id
FROM (SELECT "extension_id" FROM "#__extensions" WHERE "type" = 'package' AND "element" = 'pkg_en-GB') AS sub
WHERE "type"= 'language' AND "element" = 'en-GB';
@@ -0,0 +1,5 @@
ALTER TABLE [#__extensions] ADD [package_id] [bigint] NOT NULL DEFAULT 0;

UPDATE [#__extensions]
SET [package_id] = (SELECT [extension_id] FROM [#__extensions] WHERE [type] = 'package' AND [element] = 'pkg_en-GB')
WHERE [type]= 'language' AND [element] = 'en-GB';
Expand Up @@ -61,6 +61,8 @@
<option value="type_translated DESC">COM_INSTALLER_HEADING_TYPE_DESC</option>
<option value="folder_translated ASC">COM_INSTALLER_HEADING_FOLDER_ASC</option>
<option value="folder_translated DESC">COM_INSTALLER_HEADING_FOLDER_DESC</option>
<option value="package_id ASC">COM_INSTALLER_HEADING_PACKAGE_ID_ASC</option>
<option value="package_id DESC">COM_INSTALLER_HEADING_PACKAGE_ID_DESC</option>
<option value="extension_id ASC">JGRID_HEADING_ID_ASC</option>
<option value="extension_id DESC">JGRID_HEADING_ID_DESC</option>
</field>
Expand Down
1 change: 1 addition & 0 deletions administrator/components/com_installer/models/manage.php
Expand Up @@ -37,6 +37,7 @@ public function __construct($config = array())
'client', 'client_translated',
'type', 'type_translated',
'folder', 'folder_translated',
'package_id',
'extension_id',
);
}
Expand Down
Expand Up @@ -69,14 +69,17 @@
<th class="hidden-phone">
<?php echo JHtml::_('searchtools.sort', 'COM_INSTALLER_HEADING_FOLDER', 'folder_translated', $listDirn, $listOrder); ?>
</th>
<th class="hidden-phone">
<?php echo JHtml::_('searchtools.sort', 'COM_INSTALLER_HEADING_PACKAGE_ID', 'package_id', $listDirn, $listOrder); ?>
</th>
<th width="1%" class="nowrap hidden-phone">
<?php echo JHtml::_('searchtools.sort', 'COM_INSTALLER_HEADING_ID', 'extension_id', $listDirn, $listOrder); ?>
</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="10">
<td colspan="11">
<?php echo $this->pagination->getListFooter(); ?>
</td>
</tr>
Expand Down Expand Up @@ -121,6 +124,9 @@
<td class="hidden-phone">
<?php echo $item->folder_translated; ?>
</td>
<td class="hidden-phone">
<?php echo $item->package_id ?: '&#160;'; ?>
</td>
<td class="hidden-phone">
<?php echo $item->extension_id; ?>
</td>
Expand Down
3 changes: 3 additions & 0 deletions administrator/language/en-GB/en-GB.com_installer.ini
Expand Up @@ -53,6 +53,9 @@ COM_INSTALLER_HEADING_LOCATION_DESC="Location descending"
COM_INSTALLER_HEADING_NAME="Name"
COM_INSTALLER_HEADING_NAME_ASC="Name ascending"
COM_INSTALLER_HEADING_NAME_DESC="Name descending"
COM_INSTALLER_HEADING_PACKAGE_ID="Package ID"
COM_INSTALLER_HEADING_PACKAGE_ID_ASC="Package ID ascending"
COM_INSTALLER_HEADING_PACKAGE_ID_DESC="Package ID descending"
COM_INSTALLER_HEADING_TYPE="Type"
COM_INSTALLER_HEADING_TYPE_ASC="Type ascending"
COM_INSTALLER_HEADING_TYPE_DESC="Type descending"
Expand Down
1 change: 1 addition & 0 deletions administrator/language/en-GB/en-GB.lib_joomla.ini
Expand Up @@ -652,6 +652,7 @@ JLIB_INSTALLER_ERROR_NO_LANGUAGE_TAG="The package did not specify a language tag
JLIB_INSTALLER_ERROR_NOTFINDJOOMLAXMLSETUPFILE="JInstaller: :Install: Can't find Joomla XML setup file."
JLIB_INSTALLER_ERROR_NOTFINDXMLSETUPFILE="JInstaller: :Install: Can't find XML setup file."
JLIB_INSTALLER_ERROR_PACK_REFRESH_MANIFEST_CACHE="Package Refresh manifest cache: Failed to store package details."
JLIB_INSTALLER_ERROR_PACK_SETTING_PACKAGE_ID="Could not record the package ID for this package's extensions."
JLIB_INSTALLER_ERROR_PACK_UNINSTALL_INVALID_MANIFEST="Package Uninstall: Invalid manifest file."
JLIB_INSTALLER_ERROR_PACK_UNINSTALL_INVALID_NOTFOUND_MANIFEST="Package Uninstall: Manifest file invalid or not found: %s"
JLIB_INSTALLER_ERROR_PACK_UNINSTALL_LOAD_MANIFEST="Package Uninstall: Could not load manifest file."
Expand Down
Expand Up @@ -67,6 +67,9 @@
<th>
<?php echo JHtml::_('grid.sort', 'COM_INSTALLER_HEADING_FOLDER', 'folder', $listDirn, $listOrder); ?>
</th>
<th>
<?php echo JHtml::_('grid.sort', 'COM_INSTALLER_HEADING_PACKAGE_ID', 'package_id', $listDirn, $listOrder); ?>
</th>
<th class="nowrap id-col">
<?php echo JHtml::_('grid.sort', 'COM_INSTALLER_HEADING_ID', 'extension_id', $listDirn, $listOrder); ?>
</th>
Expand Down Expand Up @@ -111,6 +114,9 @@
<td class="center">
<?php echo @$item->folder != '' ? $item->folder : JText::_('COM_INSTALLER_TYPE_NONAPPLICABLE'); ?>
</td>
<td class="center">
<?php echo $item->package_id ?: JText::_('COM_INSTALLER_TYPE_NONAPPLICABLE'); ?>
</td>
<td>
<?php echo $item->extension_id ?>
</td>
Expand Down

0 comments on commit 1f74751

Please sign in to comment.