You are here

function workflow_admin_ui_transitions_form_submit in Workflow 7.2

Same name and namespace in other branches
  1. 7 workflow_admin_ui/workflow_admin_ui.pages.inc \workflow_admin_ui_transitions_form_submit()

Submit handler for the workflow editing form.

See also

workflow_edit_form()

File

workflow_admin_ui/workflow_admin_ui.page.transitions.inc, line 187
Provides an Admin UI page for the Workflow Transitions.

Code

function workflow_admin_ui_transitions_form_submit($form, &$form_state) {
  $workflow = $form['workflow']['#value'];
  $wid = $workflow->wid;
  if (isset($form_state['values']['transitions'])) {
    $transitions = $form_state['values']['transitions'];

    // Empty string is sometimes passed in instead of an array.
    if (!$transitions) {
      return;
    }
    foreach ($transitions as $from => $to_data) {
      foreach ($to_data as $to => $role_data) {
        $roles = array();
        foreach ($role_data as $role => $can_do) {
          if ($can_do) {
            $roles += array(
              $role => $role,
            );
          }
        }
        if (count($roles)) {
          $config_transition = $workflow
            ->createTransition($from, $to);
          $config_transition->roles = $roles;
          $config_transition
            ->save();
        }
        else {
          foreach ($workflow
            ->getTransitionsBySidTargetSid($from, $to, 'ALL') as $config_transition) {
            $config_transition
              ->delete();
          }
        }
      }
    }
  }
  drupal_set_message(t('The workflow was updated.'));

  // $form_state['redirect'] = WORKFLOW_ADMIN_UI_PATH;
}