If a user selects a message prefix, then the system should fetch the status of all messages with that prefix and display their status in the same format as the Special:MessageGroupStats currently shows for messages groups. This information will have to be computed on the fly.
The EntitySearch class can be used to identify all the messages that have that prefix. To determine the status, we would have to hit the database like MessageCollection class does to identify reviewed or translated messages.
Some other notes / thoughts on the implementation:
- We should also enforce some limit to ensure we don't allow too slow queries to overload the server.
- A short duration cache of the results may or or may not be useful to reduce load in case a lot of people are looking at the same thing at the same time (someone sharing a link to this stats page for example)
- We may also need to refactor some code in MessageGroupStats to avoid code duplication when calculating the stats. This needs to be evaluated how much can be re-used sensibly.
- One (possibly ugly, though) idea is to pass a fake group that includes just the keys provided, and run that query without storing results in the DB