? context-validation-952166-2.patch Index: context_ui/export_ui/context_export_ui.class.php =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/context/context_ui/export_ui/Attic/context_export_ui.class.php,v retrieving revision 1.1.2.5.2.1 diff -u -p -r1.1.2.5.2.1 context_export_ui.class.php --- context_ui/export_ui/context_export_ui.class.php 14 Sep 2010 17:41:20 -0000 1.1.2.5.2.1 +++ context_ui/export_ui/context_export_ui.class.php 24 Feb 2011 00:59:03 -0000 @@ -88,6 +88,11 @@ class context_export_ui extends ctools_e */ function context_ui_form(&$form, &$form_state) { $context = $form_state['item']; + if (!empty($form_state['input'])) { + // If there is already input, this is a form validation. Rebuild the context. + $context = context_ui_form_process($context, $form_state['input'], FALSE); + } + $form['#base'] = 'context_ui_form'; $form['#theme'] = 'context_ui_form'; @@ -195,11 +200,14 @@ function context_ui_form(&$form, &$form_ * The context object to modify. * @param $form * A form array with submitted values + * @param $submit + * A flag indicating if we are building a context on submit. If on + * submit, it will clear out conditions/reactions that are empty. * * @return * A context object */ -function context_ui_form_process($context, $form) { +function context_ui_form_process($context, $form, $submit = TRUE) { $context->name = isset($form['name']) ? $form['name'] : NULL; $context->description = isset($form['description']) ? $form['description'] : NULL; $context->tag = isset($form['tag']) ? $form['tag'] : NULL; @@ -216,7 +224,7 @@ function context_ui_form_process($contex if (isset($values['options'])) { $context->conditions[$condition]['options'] = $plugin->options_form_submit($values['options']); } - if (context_empty($context->conditions[$condition]['values'])) { + if (context_empty($context->conditions[$condition]['values']) && $submit) { unset($context->conditions[$condition]); } } @@ -229,7 +237,7 @@ function context_ui_form_process($contex if (isset($values)) { $context->reactions[$reaction] = $plugin->options_form_submit($values); } - if (context_empty($context->reactions[$reaction])) { + if (context_empty($context->reactions[$reaction]) && $submit) { unset($context->reactions[$reaction]); } }