From fbfaa3a4bca7daad3e6201ac40a3f21e3eda70fc Mon Sep 17 00:00:00 2001
From: Dries <dries@buytaert.net>
Date: Tue, 8 Jan 2013 11:51:03 -0500
Subject: [PATCH] - Issue #1877338 by plopesc: convert language admin form to
 new #type 'table'.

---
 core/modules/language/language.admin.inc | 44 +++---------------------
 core/modules/language/language.module    |  4 ---
 2 files changed, 5 insertions(+), 43 deletions(-)

diff --git a/core/modules/language/language.admin.inc b/core/modules/language/language.admin.inc
index 11c6e62d3ca1..afac71c78b94 100644
--- a/core/modules/language/language.admin.inc
+++ b/core/modules/language/language.admin.inc
@@ -19,17 +19,20 @@ function language_admin_overview_form($form, &$form_state) {
   $form['languages'] = array(
     '#languages' => $languages,
     '#language_default' => $default,
-    '#tree' => TRUE,
+    '#type' => 'table',
     '#header' => array(
       t('Name'),
       t('Default'),
       t('Weight'),
       t('Operations'),
     ),
-    '#theme' => 'language_admin_overview_form_table',
+    '#tabledrag' => array(
+      array('order', 'sibling', 'language-order-weight'),
+    ),
   );
 
   foreach ($languages as $langcode => $language) {
+    $form['languages'][$langcode]['#attributes']['class'][] = 'draggable';
     $form['languages'][$langcode]['#weight'] = $language->weight;
     $title = check_plain($language->name);
     $description = '';
@@ -98,43 +101,6 @@ function language_admin_overview_form($form, &$form_state) {
   return $form;
 }
 
-/**
- * Returns HTML for the language overview form.
- *
- * @param $variables
- *   An associative array containing:
- *   - form: A render element representing the form.
- *
- * @ingroup themeable
- */
-function theme_language_admin_overview_form_table($variables) {
-  $form = $variables['form'];
-
-  $rows = array();
-  foreach (element_children($form, TRUE) as $langcode) {
-    $element = &$form[$langcode];
-    $row = array(
-      'class' => array('draggable'),
-    );
-    foreach (element_children($element, TRUE) as $column) {
-      $cell = &$element[$column];
-      $row['data'][] = drupal_render($cell);
-    }
-    $rows[] = $row;
-  }
-
-  $output = theme('table', array(
-    'header' => $form['#header'],
-    'rows' => $rows,
-    'attributes' => array('id' => 'language-order'),
-  ));
-  $output .= drupal_render_children($form);
-
-  drupal_add_tabledrag('language-order', 'order', 'sibling', 'language-order-weight');
-
-  return $output;
-}
-
 /**
  * Process language overview form submissions, updating existing languages.
  */
diff --git a/core/modules/language/language.module b/core/modules/language/language.module
index 50c7724c6600..c2356bee416a 100644
--- a/core/modules/language/language.module
+++ b/core/modules/language/language.module
@@ -188,10 +188,6 @@ function language_permission() {
  */
 function language_theme() {
   return array(
-    'language_admin_overview_form_table' => array(
-      'render element' => 'form',
-      'file' => 'language.admin.inc',
-    ),
     'language_negotiation_configure_form' => array(
       'render element' => 'form',
     ),
-- 
GitLab