Skip to content

Add base hour view for oncall schedule grid

David O'Regan requested to merge 262860-draw-rotation-to-grid-hour into master

What does this MR do?

A tiny MVC for #262860 (closed) where we allow the schedule grid positions to be calculated and drawn dynamically and supporting specs for which are currently hooked up to mock data i.e. mocks/mock_rotation.json.

This merge now allows the grid to show a single day represented from 1 - 24 hours, allowing rotation assignee's to be displayed on a hourly basis.

Note

This merge does introduce some duplicate code, this however is done in an effort to keep a clear separation of concerns between different grid types. We will look at a generic abstraction in one of the next merges!

🇺🇦 This feature is behind the feature flag oncall_schedules_mvc and the minimal license is GitLab Premium 👀

To check Enable the feature flag:

  • Navigate to Operations => On-call Schedules or direct link is your_project/-/oncall_schedules e.g. http://127.0.0.1:3000/gitlab-org/gitlab-shell/-/oncall_schedules.
  • Click "Add schedule on empty state"
  • Add a base schedule
  • You will see a new grid pre-populated with a set of fake rotations
  • Each rotation will have a selection of assignee's drawn against the schedule/rotation data
  • Each rotation assignee can be hovered over to confirm their start / end time
  • These rotation items will dynamically resize depending on the screen size
  • To verify the calculations you can either edit the startsAt / endsAt value for any shift participant inside ee/spec/frontend/oncall_schedule/mocks/mock_rotation.json or update the initialDate param inside ee/app/assets/javascripts/oncall_schedules/components/schedule/utils.js. This will let you see different variations for timeframe items and shifts.

This merge is part 3/6:

What Merge
Add base rotation / schedule grid !51330 (merged)
Allow overlapping rotations be contain a single name / avatar instead of multiple(UX review happens here) !51330 (merged)
Allow for base hour view in schedule grid 🤘
Replace fake data with @client GraphQL and resolvers as per: https://gitlab.com/gitlab-org/gitlab/-/blob/ff82d9ca3f73c5e6f817a778882a8b0bd500aff6/doc/development/fe_guide/graphql.md TBA
Abstract any shared code between days / weeks components and logic TBA
Replace fake data with actual backend code TBA

Based on 9573c577, merge number 4 is even more important and I would have included it as part of this merge but this was already big enough, though I am open to debate on this.

Screenshots (strongly suggested)

Weeks Dropdown Day
Screenshot_2021-01-19_at_17.03.09 Screenshot_2021-01-19_at_17.03.12 Screenshot_2021-01-19_at_17.03.15

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team

Related to #262860 (closed)

Edited by David O'Regan

Merge request reports