diff --git a/entity_translation.admin.inc b/entity_translation.admin.inc index 5bfac53..255a733 100644 --- a/entity_translation.admin.inc +++ b/entity_translation.admin.inc @@ -540,6 +540,13 @@ function entity_translation_translatable_form($form, &$form_state, $field_name) // We need to keep some information for later processing. $form_state['field'] = $field; + // Store the 'translatable' status on the client side to prevent outdated form + // submits from toggling translatability. + $form['translatable'] = array( + '#type' => 'hidden', + '#default_value' => $field['translatable'], + ); + return confirm_form($form, $title, '', $warning); } @@ -556,12 +563,14 @@ function entity_translation_translatable_form($form, &$form_state, $field_name) */ function entity_translation_translatable_form_submit($form, $form_state) { // This is the current state that we want to reverse. - $translatable = $form_state['field']['translatable']; + $translatable = $form_state['values']['translatable']; $field_name = $form_state['field']['field_name']; $field = field_info_field($field_name); if ($field['translatable'] !== $translatable) { // Field translatability has changed since form creation, abort. + $t_args = array('%field_name' => $field_name, '!translatable' => $translatable ? t('untranslatable') : t('translatable')); + drupal_set_message(t('The field %field_name is already !translatable. No change was performed.', $t_args), 'warning'); return; } diff --git a/entity_translation.module b/entity_translation.module