You are here

function workflow_admin_ui_edit_form_submit in Workflow 7.2

Same name and namespace in other branches
  1. 6.2 workflow_admin_ui/workflow_admin_ui.module \workflow_admin_ui_edit_form_submit()
  2. 6 workflow_admin_ui/workflow_admin_ui.module \workflow_admin_ui_edit_form_submit()
  3. 7 workflow_admin_ui/workflow_admin_ui.pages.inc \workflow_admin_ui_edit_form_submit()

Submit handler for the workflow editing form.

@todo: this is only valid for Node API, not for Field API. Field API has 'Field settings'.

See also

workflow_edit_form()

1 string reference to 'workflow_admin_ui_edit_form_submit'
workflow_admin_ui_edit_form in workflow_admin_ui/workflow_admin_ui.page.workflow.inc
Menu callback. Edit a workflow's properties.

File

workflow_admin_ui/workflow_admin_ui.page.workflow.inc, line 239
Provides an Admin UI page for the Workflow Properties.

Code

function workflow_admin_ui_edit_form_submit($form, &$form_state) {
  $workflow = $form_state['values']['workflow'];
  $insert = !empty($workflow->is_new);
  $workflow->name = trim($form_state['values']['name']);
  $workflow->label = trim($form_state['values']['label']);

  // For workflow_field, all is in the field settings.
  // All other settings are only for workflow_node.
  if (module_exists('workflownode')) {
    $workflow->tab_roles = array_filter($form_state['values']['tab_roles']);
    $workflow->options = array(
      'name_as_title' => $form_state['values']['name_as_title'],
      'fieldset' => $form_state['values']['fieldset'],
      'options' => $form_state['values']['options'],
      'schedule' => $form_state['values']['schedule'],
      'schedule_timezone' => $form_state['values']['schedule_timezone'],
      'comment_log_node' => $form_state['values']['comment_log_node'],
      'comment_log_tab' => $form_state['values']['comment_log_tab'],
      'watchdog_log' => $form_state['values']['watchdog_log'],
      'history_tab_show' => $form_state['values']['history_tab_show'],
    );
  }
  $workflow
    ->save();
  if ($insert) {
    $args = array(
      '%name' => $workflow
        ->getName(),
      '@url' => url(WORKFLOW_ADMIN_UI_PATH . "/edit/{$workflow->wid}"),
    );
    watchdog('workflow', 'Created workflow %name', $args);
    drupal_set_message(t('The workflow %name was created. Please maintain the states and transitions.', $args), 'status');
  }
  else {
    drupal_set_message(t('The workflow was updated.'));
  }

  // This redirect is needed, when changing the workflow name, with name in URL.
  // Also for cloning a workflow.
  $form_state['redirect'] = WORKFLOW_ADMIN_UI_PATH . "/manage/{$workflow->wid}";
}