Skip to content

Migrate admin runner list from HAML to Vue

Background

In &4015 (closed) we describe and #299509 (closed) we will perform a series of improvements to the UX of the runner administration.

In parallel to the user facing improvements, we must also update the way the UI is built.

Description

The administration page in /admin/runners offers the main point of entry for admins to manager runners.

image

Currently this view is simple implementation in static HAML. Although improvements are possible using this HAML, this view should be ported to Vue using a GraphQL API for us to move ahead with the major improvements that would be created in #299509 (closed).

Implementation Plan

Step MR(s) Status
Introduce feature flag and port list of Runners !61241 (merged) workflowverification
Filtered search which supports bookmarking. !62018 (merged) workflowverification
Filtered search for runner tags !63990 (merged) workflowverification
Filtered search for NOT operators (moved to #333808 (closed)) NA workflowblocked depends on #331594
Filtered search for free text !63745 (merged) workflowverification
Migrate "Reset Registration" token feature. !63875 (merged) workflowverification
Add "projects count" and "jobs count". !64178 (merged) workflowverification
Implement pagination !62307 (merged) workflowverification
Add pause - action on the list for each runner !62707 (merged) workflowverification
Add delete - action on the list for each runner. !63176 (merged) workflowverification
Update specs (e.g. admin_runners_spec.rb) Moved to #330969 (closed)
Clean up feature flag and remove code 🏁 Moved to #330969 (closed)

Pending features

The migration to Vue of the runner's admin page is not done in a single step.

This is a list of tasks that should be done as follow up:

  • Have a confirmation modal before Pausing a runner. moved to #333798 (closed)
  • Runner href using webUrl from the GraphQL API moved to #333800 (closed)
  • Add an error state when runners cannot be loaded moved to #333807 (closed)
  • Respond to back button events (onpopstate) in the filtered search moved to #333804
  • Implement activeRunnersCount totals in GraphQL moved to #333806 (closed)
Edited by Miguel Rincon