You are here

function rules_admin_form_edit_save in Rules 6

Actually saves the element. Note that this handles also saving newly added elements.

3 string references to 'rules_admin_form_edit_save'
rules_admin_form_edit_action in rules_admin/rules_admin.rule_forms.inc
Returns the edit form for an action
rules_admin_form_edit_condition in rules_admin/rules_admin.rule_forms.inc
Returns the edit form for a condition
rules_admin_form_edit_op in rules_admin/rules_admin.rule_forms.inc
Returns the edit form of a logical operation

File

rules_admin/rules_admin.rule_forms.inc, line 628

Code

function rules_admin_form_edit_save($form, &$form_state) {
  $element =& $form_state['element'];

  //remove empty values
  $element = array_filter($element);
  if (isset($element['#id']) && $element['#id']) {

    //save edited element
    $element_ref =& $form_state['proxy']
      ->get_element($element['#id']);
    $element_ref = $element;
    unset($element_ref['#id']);
  }
  else {
    $parent_ref =& $form_state['proxy']
      ->get_element($form_state['parent_id']);

    //just add the element to the parent
    unset($element['#id']);
    $parent_ref = rules_configure($parent_ref, $element);
  }
  $form_state['proxy']
    ->save_changes();
  $form_state['redirect'] = RULES_ADMIN_RULE_PATH . '/' . $form_state['proxy']
    ->get_rule_name();
  unset($form_state['storage']);
}