Replace the Orbit empty state with the Off page

What does this MR do and why?

When no group has Orbit on, Your work > Orbit now shows the Off page from the v5 design instead of the old empty state. Owners select the top-level groups they own and turn on Orbit in one step. For trial groups, this starts the free trial with the offer from CustomersDot.

  • Groups that need sales show the reason and a Contact sales link. Members see that an Owner of their top-level group turns Orbit on.
  • When CustomersDot does not answer, the page says so and offers Try again.
  • The group Settings > Orbit trial banner also shows the offer from CustomersDot. During an active trial, it shows the credits of that trial instead. The old empty state, its query, and its events are removed.

Closes gitlab-org/orbit/knowledge-graph#1363 (closed)

Uses the OrbitTrial.offer field from !261362 (merged) (merged).

References

Screenshots or screen recordings

Before After
before-1440 after-1440
Before Happy path Bad path Disaster path
What each group row shows
Group Row Turn on runs
Can start a trial Checkbox, "100 free when turned on" orbitStartTrial (starts the trial and turns Orbit on)
Beta, promo add-on, active trial, or self-managed Checkbox orbitUpdate
Plan without Orbit, not eligible, or trial ended The reason and Contact sales —
CustomersDot did not answer "Couldn't load", and an alert with Try again —
  • One group that can turn on is selected for you. With several, you choose.
  • The page lists the first 10 top-level groups an Owner owns (the trial lookup limit). With more, it says to turn on the other groups from their Settings > Orbit. It also says to ask the Owner of any other group.
  • If a group fails, an alert names it and gives the reason. The groups that turned on go to the Overview.
  • Contact sales opens the sales page. The dashboard has no lead form, and the form takes one group per page.
  • The Off page shows the trial state in each row, so it does not show the dashboard alerts for an ended trial or a missing default group. Those alerts show on the Overview when a group is on.
What each recording covers
  • Happy path: a member, then an Owner of one eligible group. The offer (30 days, 100 credits) comes from a local CustomersDot on the production SHA. Turn on starts the real trial, and the Overview shows indexing.
  • Bad path: a not-eligible group and a Free group (Contact sales), then 2 of 3 groups selected where CustomersDot rejects one (injected, with the real server message).
  • Disaster path: CustomersDot answers 503 for the group (real), the groups query fails with 500, and the network drops during turn on. The last two faults are injected in the browser.
More screenshots
View Screenshot
Confirm, one group happy-modal
Confirm, two groups bad-modal-multi
Not eligible and Free bad-not-eligible
One group rejected bad-partial-failure
CustomersDot down disaster-cdot-down
Member happy-member
Settings > Orbit banner settings-banner
1024 after-1024
390 after-390-mobile
Dark after-1440-dark

How to set up and validate locally

  1. Use a GDK in SaaS mode (GITLAB_SIMULATE_SAAS=1) that points at a CustomersDot with https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/17398.
  2. Sign in as an Owner of a top-level group in the Orbit trial flow, where no group you belong to has Orbit on.
  3. Go to http://127.0.0.1:3000/dashboard/orbit, select the group, and select Turn on Orbit.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Jean-Gabriel Doyon

Merge request reports

Loading
Loading