static function dropdownExecutionTime($name, $options = array())
{
$p['value'] = '';
$p['max_time'] = 4 * DAY_TIMESTAMP;
$p['used'] = array();
if (is_array($options) && count($options)) {
foreach ($options as $key => $val) {
$p[$key] = $val;
}
}
// Display default value;
if (($key = array_search($p['value'], $p['used'])) !== false) {
unset($p['used'][$key]);
}
$possible_values = array();
for ($i = 10; $i < 60; $i += 10) {
if (!in_array($i * MINUTE_TIMESTAMP, $p['used'])) {
$possible_values[$i * MINUTE_TIMESTAMP] = sprintf(_n('+ %d minute', '+ %d minutes', $i), $i);
}
if (!in_array(-$i * MINUTE_TIMESTAMP, $p['used'])) {
if ($p['max_time'] >= $i * MINUTE_TIMESTAMP) {
$possible_values[-$i * MINUTE_TIMESTAMP] = sprintf(_n('- %d minute', '- %d minutes', $i), $i);
}
}
}
for ($i = 1; $i < 24; $i++) {
if (!in_array($i * HOUR_TIMESTAMP, $p['used'])) {
$possible_values[$i * HOUR_TIMESTAMP] = sprintf(_n('+ %d hour', '+ %d hours', $i), $i);
}
if (!in_array(-$i * HOUR_TIMESTAMP, $p['used'])) {
if ($p['max_time'] >= $i * HOUR_TIMESTAMP) {
$possible_values[-$i * HOUR_TIMESTAMP] = sprintf(_n('- %d hour', '- %d hours', $i), $i);
}
}
}
for ($i = 1; $i < 30; $i++) {
if (!in_array($i * DAY_TIMESTAMP, $p['used'])) {
$possible_values[$i * DAY_TIMESTAMP] = sprintf(_n('+ %d day', '+ %d days', $i), $i);
}
if (!in_array(-$i * DAY_TIMESTAMP, $p['used'])) {
if ($p['max_time'] >= $i * DAY_TIMESTAMP) {
$possible_values[-$i * DAY_TIMESTAMP] = sprintf(_n('- %d day', '- %d days', $i), $i);
}
}
}
if (!in_array(0, $p['used'])) {
$possible_values[0] = __('Time to resolve');
}
ksort($possible_values);
Dropdown::showFromArray($name, $possible_values, array('value' => $p['value']));
}