You are here

function job_scheduler_trigger_edit_form in Job Scheduler 7.2

Edit form for a trigger.

1 string reference to 'job_scheduler_trigger_edit_form'
job_scheduler_trigger_menu in modules/job_scheduler_trigger/job_scheduler_trigger.module
Implements hook_menu().

File

modules/job_scheduler_trigger/job_scheduler_trigger.admin.inc, line 62
Job Scheduler Trigger admin pages.

Code

function job_scheduler_trigger_edit_form($form, &$form_state, $trigger) {
  if (!$trigger) {
    $trigger = (object) array(
      'trid' => NULL,
      'title' => t('New trigger'),
      'crontab' => '* * * * *',
      'status' => 0,
      'last' => 0,
    );
  }
  $form['trigger'] = array(
    '#tree' => TRUE,
  );
  $form['trigger']['trid'] = array(
    '#type' => 'value',
    '#value' => $trigger->trid,
  );
  $form['trigger']['title'] = array(
    '#title' => t('Title'),
    '#type' => 'textfield',
    '#default_value' => $trigger->title,
    '#required' => TRUE,
    '#description' => t('This is the name of the trigger that will be created when enabled.'),
  );
  $form['trigger']['crontab'] = array(
    '#type' => 'textfield',
    '#title' => t('Cron tab'),
    '#default_value' => $trigger->crontab,
    '#required' => TRUE,
    '#description' => t('Unix-style crontab line with: <i>minutes</i> <i>hours</i> <i>day-of-month</i> <i>month</i> <i>day-of-week</i>. Read <a href=@man-crontab>more about crontab</a>.', array(
      '@man-crontab' => url('http://linux.die.net/man/5/crontab'),
    )),
  );
  $form['trigger']['status'] = array(
    '#title' => t('Status'),
    '#type' => 'radios',
    '#options' => array(
      t('disabled'),
      t('enabled'),
    ),
    '#default_value' => $trigger->status,
    '#description' => t('When enabled, a trigger will be created with this crontab and jobs will be scheduled for it. Check everything is OK before enabling the trigger.'),
  );
  $form['trigger']['last'] = array(
    '#type' => 'item',
    '#title' => t('Last triggered'),
    '#markup' => format_date($trigger->last),
  );
  if ($trigger->trid && $trigger->crontab) {
    $next = job_scheduler_trigger_next_time($trigger->crontab);
    $form['trigger']['next'] = array(
      '#type' => 'item',
      '#title' => t('Next trigger'),
      '#markup' => $next ? format_date($next) : t('Never in the next year.'),
    );
  }
  $form['buttons']['update'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
  );
  if ($trigger->trid) {
    $form['buttons']['delete'] = array(
      '#type' => 'submit',
      '#value' => t('Delete'),
    );
  }
  return $form;
}