$opts->add( 'offset', '' );
$opts->add( 'dir', '' );
$opts->add( 'offender', '' );
+ $opts->add( 'subtype', '' );
// Set values
$opts->fetchValuesFromRequest( $this->getRequest() );
null,
LogEventsList::USE_CHECKBOXES
);
+
+ $action = '';
+ // Allow to filter the log by actions
+ $type = $opts->getValue( 'type' );
+ if ( $type !== '' ) {
+ $actions = $this->getConfig()->get( 'ActionFilteredLogs' );
+ if ( isset( $actions[$type] ) ) {
+ // log type can be filtered by actions
+ $loglist->setAllowedActions( array_keys( $actions[$type] ) );
+ $action = $opts->getValue( 'subtype' );
+ if ( $action !== '' && isset( $actions[$type][$action] ) ) {
+ // add condition to query
+ $extraConds['log_action'] = $actions[$type][$action];
+ } else {
+ // no action or invalid action
+ $action = '';
+ }
+ }
+ }
+
$pager = new LogPager(
$loglist,
$opts->getValue( 'type' ),
$pager->getYear(),
$pager->getMonth(),
$pager->getFilterParams(),
- $opts->getValue( 'tagfilter' )
+ $opts->getValue( 'tagfilter' ),
+ $action
);
# Insert list