Page MenuHomePhabricator

Create generic Error Page template
Closed, DeclinedPublic

Description

When loading the page, the error page should always be available in case the request for the page fails at the router level.

Right now, if when loading a route, the loading fails, the error page is not available

Design

We will create a page template for error pages.
The sizes are very much proportional to special page template.
and as always, we will make this modular.

Few examples using this template

Desktop layout

Note for designer - Illustration style guide
https://wikimedia.github.io/WikimediaUI-Style-Guide/visual-style_illustrations.html

Spec

https://zpl.io/25Ed0qo
https://zpl.io/29qvAZe

Buttons

Buttons, including all the states etc..., should adhere to the _mobile_ OOJS UI spec (e.g., 16px text, large buttons, ...): https://doc.wikimedia.org/oojs-ui/master/demos/#widgets-mediawiki-ltr. There are no breakpoint differences.

AC

  • Error page is bundled statically with index.js
    • Use static import on router/api.ts
  • Failures on the module loading or the getInitialProps loading should redirect to the error page with appropiate status code & message
  • Unknown urls should still render the error page with 404

Details

Event Timeline

Jhernandez added a subscriber: Niedzielski.

@Niedzielski We'll need to figure out how the router will know what the error route/page is, maybe redirects, and dynamic status codes.

Jhernandez updated the task description. (Show Details)Sep 28 2017, 6:28 PM

@Jhernandez, the status code property in the Route model is kind of a default status. That is, "if everything works out ok for this response, use this code." Maybe we can add the real status code to RouteResponse and allow any endpoint to return an error response (from the Router)? We may want to make this story depend on another story that actually checks HTTP status codes for each fetch.

What do you mean by real status code?

I've tried to keep the task description just about features, so we can create subtasks for technical work as needed 😃

Tech notes from sync:

  • status on a Route is the default status if everything goes well
  • newRouter could receive a redirect function that will change in server (uses response) and client (uses history
  • Handle errors connecting promises and creating an error page with 500
    • Both error page and not-found page should be bundled in the app
Jhernandez updated the task description. (Show Details)Oct 2 2017, 3:26 PM
Jhernandez added a project: Design.
Jhernandez added a subscriber: Nirzar.

Needs Design, ping @Nirzar. See design specs list in the description

Niedzielski changed the task status from Open to Stalled.Oct 31 2017, 7:21 PM

Reminder: @Nirzar, we need a design for two pages: not found page (404), internal shouldn't have happened but did server error (500, includes title and text of error).

Nirzar renamed this task from Error page should always be available to Create generic Error Page template.Nov 9 2017, 4:28 PM
Nirzar changed the task status from Stalled to Open.
Nirzar updated the task description. (Show Details)
Niedzielski removed Nirzar as the assignee of this task.Nov 9 2017, 4:36 PM
Niedzielski updated the task description. (Show Details)

Change 392093 had a related patch set uploaded (by Niedzielski; owner: Sniedzielski):
[marvin@master] Update: show 404 page when content cannot be found

https://gerrit.wikimedia.org/r/392093

Change 392093 merged by jenkins-bot:
[marvin@master] Update: show 404 page when routes don't match, 500 on error

https://gerrit.wikimedia.org/r/392093

Functionality merged, design implementation missing.

  1. Will "Wikipedia" (and the wordmark) be replaced with "Wikibooks", "Wiktionary", etc.?
  2. Will this be subject to i18n (example (jbo): "le se kansa lo 500: da pu naldrani i ko za'u re'u troci ba po'o")?
Aklapper closed this task as Declined.May 14 2019, 1:11 PM
Aklapper added a subscriber: Aklapper.

Declining open Marvin tasks as per T203749#4605708