Index: modules/dblog/dblog.admin.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/dblog/dblog.admin.inc,v retrieving revision 1.22 diff -u -r1.22 dblog.admin.inc --- modules/dblog/dblog.admin.inc 6 Jun 2009 10:27:42 -0000 1.22 +++ modules/dblog/dblog.admin.inc 22 Jun 2009 22:50:33 -0000 @@ -205,6 +205,7 @@ $where = $args = array(); foreach ($_SESSION['dblog_overview_filter'] as $key => $filter) { $filter_where = array(); + $filter = (array)$filter; foreach ($filter as $value) { $filter_where[] = $filters[$key]['where']; $args[] = $value; @@ -226,24 +227,16 @@ * List dblog administration filters that can be applied. */ function dblog_filters() { - $filters = array(); - - foreach (_dblog_get_message_types() as $type) { - $types[$type] = $type; - } - - if (!empty($types)) { - $filters['type'] = array( - 'title' => t('Type'), - 'where' => "w.type = ':s'", - 'options' => $types, - ); - } - - $filters['severity'] = array( - 'title' => t('Severity'), - 'where' => 'w.severity = :d', - 'options' => watchdog_severity_levels(), + $filters = array( + 'type' => array( + 'where' => "w.type = ':s'" + ), + 'severity' => array( + 'where' => 'w.severity = :d' + ), + 'name' => array( + 'where' => "u.name = ':s'" + ) ); return $filters; @@ -284,14 +277,37 @@ '#collapsible' => TRUE, '#collapsed' => empty($session), ); - foreach ($filters as $key => $filter) { - $form['filters']['status'][$key] = array( - '#title' => $filter['title'], + + foreach (_dblog_get_message_types() as $type) { + $types[$type] = $type; + } + + if (!empty($types)) { + $form['filters']['status']['type'] = array( + '#title' => t('Type'), '#type' => 'select', '#multiple' => TRUE, '#size' => 8, - '#options' => $filter['options'], + '#options' => $types, ); + } + $form['filters']['status']['severity'] = array( + '#title' => t('Severity'), + '#type' => 'select', + '#multiple' => TRUE, + '#size' => 8, + '#options' => watchdog_severity_levels(), + ); + $form['filters']['status']['name'] = array( + '#title' => t('User'), + '#type' => 'textfield', + '#size' => 30, + '#maxlength' => 60, + '#autocomplete_path' => 'user/autocomplete', + '#weight' => -1, + ); + + foreach ($filters as $key => $filter) { if (!empty($_SESSION['dblog_overview_filter'][$key])) { $form['filters']['status'][$key]['#default_value'] = $_SESSION['dblog_overview_filter'][$key]; } @@ -315,7 +331,7 @@ * Validate result from dblog administration filter form. */ function dblog_filter_form_validate($form, &$form_state) { - if ($form_state['values']['op'] == t('Filter') && empty($form_state['values']['type']) && empty($form_state['values']['severity'])) { + if ($form_state['values']['op'] == t('Filter') && empty($form_state['values']['type']) && empty($form_state['values']['severity']) && empty($form_state['values']['name'])) { form_set_error('type', t('You must select something to filter by.')); } }