From 4ece6b76ff7461ee3dc1f0fd2c55826a22ccef50 Mon Sep 17 00:00:00 2001
From: Tim Steiner <tsteiner2@unl.edu>
Date: Mon, 23 Apr 2012 19:59:27 +0000
Subject: [PATCH] [gh-295] The "Remove" checkbox in the site alias list no
 longer works.

git-svn-id: file:///tmp/wdn_thm_drupal/trunk@1576 20a16fea-79d4-4915-8869-1ea9d5ebf173
---
 sites/all/modules/unl/unl.module            |  6 ++++-
 sites/all/modules/unl/unl_site_creation.php | 28 +++++++++++++++------
 2 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/sites/all/modules/unl/unl.module b/sites/all/modules/unl/unl.module
index 777bb0aa..a9d3bd5a 100644
--- a/sites/all/modules/unl/unl.module
+++ b/sites/all/modules/unl/unl.module
@@ -853,7 +853,11 @@ function unl_theme() {
   return array(
     'unl_site_details' => array(
       'variables' => array('site_path' => NULL, 'uri' => NULL, 'db_prefix' => NULL),
-      'file' => "unl_site_creation.php",
+      'file' => 'unl_site_creation.php',
+    ),
+    'unl_table' => array(
+      'render element' => 'form',
+      'file' => 'unl_site_creation.php',
     ),
   );
 }
diff --git a/sites/all/modules/unl/unl_site_creation.php b/sites/all/modules/unl/unl_site_creation.php
index 9761d636..a4fc7b82 100644
--- a/sites/all/modules/unl/unl_site_creation.php
+++ b/sites/all/modules/unl/unl_site_creation.php
@@ -496,15 +496,13 @@ function unl_site_alias_list($form, &$form_state) {
 
   foreach ($sites as $site) {
     $options[$site->site_alias_id] = array(
-      'site_uri' => $site->uri,
-      'alias_uri' => $site->base_uri . $site->path,
-      'installed' => _unl_get_install_status_text($site->installed),
+      'site_uri' => array('#prefix' => $site->uri),
+      'alias_uri' => array('#prefix' => $site->base_uri . $site->path),
+      'installed' => array('#prefix' => _unl_get_install_status_text($site->installed)),
       'remove' => array(
-        'data' => array(
           '#type' => 'checkbox',
           '#parents' => array('aliases', $site->site_alias_id, 'remove'),
           '#default_value' => 0,
-        ),
       ),
     );
   }
@@ -514,9 +512,9 @@ function unl_site_alias_list($form, &$form_state) {
     '#title' => t('Existing Site Aliases'),
   );
   $form['unl_site_aliases']['alias_list'] = array(
-    '#theme' => 'table',
+    '#theme' => 'unl_table',
     '#header' => $header,
-    '#rows' => $options,
+    'rows' => $options,
     '#empty' => t('No aliases available.'),
   );
   $form['unl_site_aliases']['submit'] = array(
@@ -874,6 +872,22 @@ function unl_user_audit_submit($form, &$form_state) {
   $form_state['rebuild'] = TRUE;
 }
 
+/**
+ * Similar to the table theme, but the #rows attribute is populated by the contents
+ * of the 'rows' instead.  This allows form processing to be applied to table cells.
+ * @param array $variables
+ */
+function theme_unl_table($variables) {
+  $form = $variables['form'];
+  foreach (element_children($form['rows']) as $row_index) {
+    foreach (element_children($form['rows'][$row_index]) as $column_index) {
+      $form['#rows'][$row_index][$column_index] = drupal_render($form['rows'][$row_index][$column_index]);
+    }
+  }
+   
+  return theme('table', $form);
+}
+
 /**
  * Callback for URI admin/sites/unl/feed
  */
-- 
GitLab