Page MenuHomePhabricator

Paging for Special:Undelete
Open, MediumPublicFeature

Description

Author: mcdevitd

Description:
Currently a page with many deleted revisions (or less likely, a long deletion
log) like
http://en.wikipedia.org/wiki/Special:Undelete/Wikipedia:Esperanza/Coffee_lounge
or http://en.wikipedia.org/wiki/Special:Undelete/Encyclop%C3%A6dia_Dramatica,
always loads the entire page history at Special:Undelete. Instead, you should be
able to view a definable number of entries on one page, as with normal page
histories, Special:Contributions, and Special:Log, with links at the top:
"(Latest | Earliest) View (previous 50) (next 50) (20 | 50 | 100 | 250 | 500)."


Version: unspecified
Severity: enhancement
See Also:
T20687: Special:Undelete start page should list available recent items directly

Details

Reference
bz7996

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 9:28 PM
bzimport set Reference to bz7996.
bzimport added a subscriber: Unknown Object (MLST).

Speaking for Special:Undelete: If you were to undelete some revisions that are
shown on different pages, how would you do that? Constantly keeping already
selected values by sending them via POST all the time doesn't seem rather
practical. Is this making sense?

mcdevitd wrote:

You could always just select the option to view all the revisions at once as we
do currently, if you are planning on selecting revisions that would appear on
different pages otherwise.

ayg wrote:

(In reply to comment #1)

Speaking for Special:Undelete: If you were to undelete some revisions that are
shown on different pages, how would you do that? Constantly keeping already
selected values by sending them via POST all the time doesn't seem rather
practical.

It's what vBulletin does, and it works very nicely. Rather, I don't know if
they remember them in POST: quite possibly they keep in in memory server-side,
or cookies, or who knows what. But you can click checkboxes on different pages
of a thread, or different threads entirely, and then do something with all the
selected posts at once at your leisure. It seems like the best way to do
things, ultimately.

Perhaps using a radio restore point is better than the ugly selective restore hack. That's how it is in my revisiondelete branch (since there already is a way to selectively delete revs).

  • Bug 44410 has been marked as a duplicate of this bug. ***

Reposting here my ideas from T46410 (dupe of this):

The current undelete page can cause problems on pages with lots (thousands) of deleted revisions.

For example, deleting for merging histories, "accidentaly" delete a page, hide
a specific revision, etc:

  • If you attempt to load the Special:Undelete for that page, you may get a timeout, an OOM, or your browser crash/eat all your memory.
  • If it ever loads and you want to select lots of individual revisions to restore, you may hit the max_input_vars limit [1] (see T45911) and the selection won't be applied.

Pagination should probably be like page history.

Of course, pagination would be tricky for doing partial restoring, since on
pagination you will lost the previous marked checkboxes. But at least the
undelete page would load on pages with huge number of deleted revisions, and
one could select revisions to restore in smaller batches.


[1] http://www.php.net/manual/info.configuration.php#ini.max-input-vars

There is also a related problem with really long ones in that even if you go around the fact that the page never finishes rendering due to just trying to dump the ENTIRE history on it, and try to undelete one of these without the usual interface, it can also take a database down because it doesn't break it up any with the internal queries or whatever either. At least that's the impression I got from doing that on 1.16, where it would just hang for a couple of hours. Those were fun days.

With the recent update to add fuzzy title search to Special:Undelete an editor on the English Wikipedia has requested some form of pagination.

https://en.wikipedia.org/wiki/Wikipedia:Administrators%27_noticeboard#Testing_search_in_deleted_pages_archive

Is there some particular issue that is stopping this from being implemented? I recently had to undelete w:de:Wikipedia:Administratoren/Anfragen (at that moment circa 107,000 revisions) — the special page was not loading at all (a 5xx error with a DB timeout), I had to resolve to writing a script to restore it in batches of 500 via API. Also even when it loads for big pages it takes ages for it to be returned and then for the browser to render it, I have experienced this on undeleting w:es:Anexo:Estaciones de radio de México for example, which is under 20,000 revisions.

Is this a question of reüsing some existing components other Special pages use, or this one calls for some unique solution?

I don't think there is anything specifically preventing this from being implemented. It just requires developer time.

Aklapper changed the subtype of this task from "Task" to "Feature Request".Feb 4 2022, 12:24 PM

This has been improved, but not resolved, by T249977. Special:Undelete now loads up to 500 revisions, and displays a button to "Load more revisions". However it still doesn't have standard paging.