? .DS_Store
? translation_overview.patch
Index: translation_overview.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/translation_overview/translation_overview.module,v
retrieving revision 1.5
diff -u -p -r1.5 translation_overview.module
--- translation_overview.module	25 Sep 2008 20:10:38 -0000	1.5
+++ translation_overview.module	8 Oct 2008 00:45:33 -0000
@@ -126,10 +126,12 @@ function translation_overview_menu_alter
 function translation_overview_form_alter(&$form, $form_state, $form_id) {
   switch ($form_id) {
     case 'locale_languages_delete_form':
+      $form['#submit'][] = 'translation_overview_schema_remove_submit';
+      break;
+
     case 'locale_languages_predefined_form':
     case 'locale_languages_custom_form':
-      $form['#submit'][] = 'translation_overview_update_schema_submit';
-      $form['#translation_overview_oldschema'] = drupal_get_schema('translation_overview_priority');
+      $form['#submit'][] = 'translation_overview_schema_add_submit';
       break;
   }
 }
@@ -354,7 +356,36 @@ function theme_translation_overview_tran
   return $output;
 }
 
-function translation_overview_update_schema_submit($form, &$form_state) {
-  // TODO need to make changes to the schema adding and dropping columns.
-  dvm($form);
+/**
+ * Alter the schema when new languages are added.
+ */
+function translation_overview_schema_add_submit($form, &$form_state) {
+  $fieldname = db_escape_table($form_state['values']['langcode']);
+  if (!db_column_exists('translation_overview_priority', $fieldname)) {
+    $ret = array();
+    $field = array(
+      'type' => 'int',
+      'size' => 'tiny',
+      'unsigned' => TRUE,
+      'not null' => TRUE,
+      'default' => TRANSLATION_OVERVIEW_NORMAL,
+    );
+    $keys = array(
+      'indexes' => array($fieldname => array($fieldname))
+    );
+    db_add_field($ret, 'translation_overview_priority', $fieldname, $field, $keys);
+    watchdog('translation_overview', 'Added a column for %langcode to the translation_overview_priority table.', array('%langcode' => $form_state['values']['langcode']));
+  }
+}
+
+/**
+ * Alter the schema when languages are removed.
+ */
+function translation_overview_schema_remove_submit($form, &$form_state) {
+  $fieldname = db_escape_table($form_state['values']['langcode']);
+  if (db_column_exists('translation_overview_priority', $fieldname)) {
+    db_drop_index($ret, 'translation_overview_priority', $fieldname);
+    db_drop_field($ret, 'translation_overview_priority', $fieldname);
+    watchdog('translation_overview', 'Dropped the %langcode column from the translation_overview_priority table.', array('%langcode' => $form_state['values']['langcode']));
+  }
 }
