Page MenuHomePhabricator

Layout for Special:BlockList and Special:AutoblockList is messy
Open, Needs TriagePublic

Description

The tables on these pages make my eyes bleed:

Screen Shot 2017-04-20 at 4.54.15 PM.png (623×1 px, 250 KB)

Compare with the same table in XTools:

Screen Shot 2017-04-20 at 4.54.01 PM.png (390×616 px, 137 KB)

Let's make the MediaWiki interface suck less.

Event Timeline

Use wikitext tables, for one. :) They allow you to sort without having to implement something complicated by yourself.

Well, the sorting should be for all blocks or autoblocks, not for the current page you're looking at. But the current table system (whatever it is) does have some sorting thing built-in, for instance see Special:AbuseFilter.

Some ideas:

  • On Special:AutoblockList, we don't need to specify that each entry is an autoblock. So rename the "Target" column to "ID" ("Autoblock ID" will probably widen the column), and change each "Autoblock #1234" to just "#1234".
  • An "Unblock" link would be helpful, probably... Careful with the wording though, you're not lifting just the single autoblock, but the original block and all autoblocks created as a result.

Other than that I like ours more. It has more information, and my on-wiki gadgets work on the links and datestamps, etc. What's probably bothering you is that the text for each entry takes up multiple lines, but I don't see a way around that though without removing some info. The "Autoblocked because your IP address..." text comes right from the ipb_reason column of the ipb_blocks table, so we can't really trim that down.

Actually, for each autoblock we do have the parent block ID. With that we can get the original block message and account, and trim down the Reason column. I'd take it a step further and have a new column "Account". So for the first one in F7674595, it would have "AndrewTheLogoMaker" as the account and "Persistent addition of unsourced content" as the reason. That should free up a lot of real estate. Below the account name might be where you would put the "(unblock)" link, that makes it clear your unblocking the account, and not just the single autoblock.

Well, the sorting should be for all blocks or autoblocks, not for the current page you're looking at.

What's the issue with sorting just the visible records? I agree sorting everything might be more useful, but as the number of auto blocks go up in future, it could get slower.

The thing that makes my eyes bleed the most are the ugly arrows above the table and the "Expires" column. We should make those better.

What's the issue with sorting just the visible records? I agree sorting everything might be more useful, but as the number of auto blocks go up in future, it could get slower.

It shouldn't go that slow. I just think people would expect it to sort all data. We don't have to sort on every column either, just what we deem useful – maybe Timestamp, Blocking admin, and "Account" (new column). Do we know of any other Special pages with lots of data that use wikitext tables? Going that route, I think you might have to implement your pagination system.

The thing that makes my eyes bleed the most are the ugly arrows above the table and the "Expires" column. We should make those better.

I think the arrows are part of TablePager, which could probably use a facelift. The "Expires" is also bit messy but I'm not sure how far you can go without removing data. I like having it show the time remaining, at least at Special:BlockList. For autoblocks I don't find it quite as useful, personally, unless someone caught in the autoblock were to approach me with the ID.

Also I realized the screenshots above are for a non-admin. I've got and block/unblock links that further make things clunky:

Screen Shot 2017-04-21 at 11.34.50 AM.png (645×1 px, 222 KB)

I looked at the code and Special:AutoblockList is using BlockListPager, so customizing just Special:AutoblockList (changing/adding columns, showing "#1234" instead of "Autoblock #1234"), isn't possible without affecting Special:BlockList (there we want "Autoblock #1234"). This is not a huge class, so maybe it's OK to make an AutoblockListPager? Just copy/paste and make the necessary changes, which doesn't seem like it would be hard.

A few notes/comments/suggestions:

  • FWIW, here's the ticket when I was working on table style for Commons Datasets / Tabular Data pages :
  • Timestamp column
    • Can we put the date and time on different lines (starting by the date) ?
    • We can wrap the date with a div and white-space:nowrap; so the entire date is displayed in one line
  • Target column
    • I agree that repeating Autoblock seems redundant.
  • Expires column
    • Same, can we put the date, time, and time left on different lines (starting by the date) ?
    • Same, we can wrap the date with a div and white-space:nowrap; so the entire date is displayed in one line.
    • Actions (unblock / change block) could move to their own column, to the left/right of the table, with icon-only buttons?
  • Blocking admin and Block parameters
    • I feel like they could be merged in one column called Block displayed in two lines as follow:
      • anon. only, account creation disabled
      • By Username (talk | contribs | block)

On a general note, when the data is not required to be sortable or exportable, we can stay away from tables, and from displaying every type of data in a different cell. As it currently stands, I feel like we could explore a clean design solution that doesn't feature a table at all.

kaldari renamed this task from Investigation: Better layout for Special:BlockList and Special:AutoblockList to Layout for Special:BlockList and Special:AutoblockList is messy.May 2 2017, 11:34 PM
kaldari removed a project: Community-Tech.
kaldari updated the task description. (Show Details)

Per my comment on T346683, removing the username from ipb_address seems attractive from the perspective of traditional schema design, but it would prevent sorting by username. I would appreciate comments on whether or not we need a target sort key in the schema.

This comment was removed by tstarling.