Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 28 additions & 11 deletions composer_manager.admin.inc
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,13 @@ function composer_manager_settings_form_validate($form, &$form_state) {
*/
function composer_manager_packages_page() {
$build = array();
$build['refresh_form'] = backdrop_get_form('composer_manager_rebuild_form');

$error = FALSE;

$header = array(
'package' => t('Package'),
'description' => t('Description'),
'version' => t('Installed Version'),
'requirement' => t('Version Required by Module'),
);
Expand All @@ -94,6 +97,8 @@ function composer_manager_packages_page() {

$rows = array();
foreach ($combined as $package_name) {
$requirement_level = 'direct';
$requirement = NULL;
$is_installed = isset($installed[$package_name]);

// If the package is installed but has no dependents and is not required by
Expand All @@ -110,7 +115,7 @@ function composer_manager_packages_page() {
$name = check_plain($package_name);
}
if ($is_installed && !empty($installed[$package_name]['description'])) {
$name .= '<div class="description">' . check_plain($installed[$package_name]['description']) . '</div>';
$description = '<div class="description">' . check_plain($installed[$package_name]['description']) . '</div>';
}

// Get the version required by the module.
Expand Down Expand Up @@ -148,8 +153,8 @@ function composer_manager_packages_page() {
// This package is a dependency of a package directly required by a
// module. Therefore we cannot detect the required version without using
// the Composer tool which is expensive and too slow for the web.
$requirement = t('N/A');
$requirement .= '<div class="description">' . t('Dependency for other packages') . '</div>';
// We'll note that this is an indirect requirement.
$requirement_level = "indirect";
}

// Get the version that is installed.
Expand All @@ -172,28 +177,39 @@ function composer_manager_packages_page() {
$class = array('ok');
}

$rows[$package_name] = array(
$rows[$requirement_level][$package_name] = array(
'class' => $class,
'data' => array(
'package' => $name,
'description' => $description,
'installed' => $installed_version,
'requirement' => $requirement,
),
);
if (!empty($requirement)) {
$rows[$requirement_level][$package_name]['data']['requirement'] = $requirement;
}
}

ksort($rows);
$build['packages'] = array(
$build['direct_packages'] = array(
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
'#caption' => t('Status of Packages Managed by Composer'),
'#rows' => $rows['direct'],
'#caption' => t('Primary packages managed by Composer'),
'#attributes' => array(
'class' => array('system-status-report'),
),
);
unset($header['requirement']);
$build['indirect_packages'] = array(
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows['indirect'],
'#caption' => t('Dependencies of primary packages'),
'#attributes' => array(
'class' => array('system-status-report'),
),
);

$build['refresh_form'] = backdrop_get_form('composer_manager_rebuild_form');

// Set status messages.
module_load_install('composer_manager');
Expand Down Expand Up @@ -224,7 +240,7 @@ function composer_manager_packages_page() {
* @ingroup forms
*/
function composer_manager_rebuild_form($form, &$form_state) {
$file_dir = composer_manager_file_dir();
$file_dir = composer_manager_file_dir(TRUE);

$form['submit'] = array(
'#type' => 'submit',
Expand All @@ -233,6 +249,7 @@ function composer_manager_rebuild_form($form, &$form_state) {
);

$form['#submit'] = array('composer_manager_rebuild_form_submit');
$form['#attached']['css'][] = backdrop_get_path('module', 'composer_manager') . '/css/composer_manager.admin.css';

return $form;
}
Expand Down
10 changes: 10 additions & 0 deletions composer_manager.install
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@
* Install, update, and uninstall functions for the Composer Manager module.
*/

/**
* Implements hook_install().
*/
function composer_manager_install() {
$config = config('composer_manager.settings');
$config->set('vendor_dir', backdrop_realpath($config->get('vendor_dir')));
$config->set('composer_dir', backdrop_realpath($config->get('composer_dir')));
$config->save();
}

/**
* Implements hook_enable().
*/
Expand Down
2 changes: 1 addition & 1 deletion composer_manager.module
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ function composer_manager_file_dir($ensure_write_permission = FALSE) {
module_load_include('inc', 'composer_manager', 'composer_manager.writer');

$dir_uri = config_get('composer_manager.settings', 'file_dir');
if ($ensure_write_permission) {
if ($ensure_write_permission || !backdrop_realpath($dir_uri)) {
composer_manager_prepare_directory($dir_uri);
}
if (!$realpath = backdrop_realpath($dir_uri)) {
Expand Down
2 changes: 1 addition & 1 deletion composer_manager.writer.inc
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ function composer_manager_prepare_directory($directory, $for_write = FALSE) {
return FALSE;
}
if (0 === strpos($directory, 'public://')) {
file_create_htaccess($directory, TRUE);
file_save_htaccess($directory, TRUE);
}
return TRUE;
}
Expand Down
6 changes: 3 additions & 3 deletions config/composer_manager.settings.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"_config_name": "composer_manager.settings",
"vendor_dir": "vendor",
"autobuild_file": 1,
"vendor_dir": "public://vendor",
"autobuild_packages": 0,
"file_dir": "public://composer",
"autobuild_packages": 1
"autobuild_file": 0
}
3 changes: 3 additions & 0 deletions css/composer_manager.admin.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.composer-manager-rebuild-form {
padding-block-start: 1rem;
}