Convert Admin "Users" view from HAML to Vue MVP implementation
### Proposal Migrate the admin/users **table** over to Vue using a serializer https://gitlab.com/gitlab-org/gitlab/-/issues/285103 to pass the data from HAML. See original implementation discussion https://gitlab.com/groups/gitlab-org/-/epics/4683#note_444163859. ### FAQs #### Why only convert the table for the MVP? - It's the **m**inimum iteration we need to unblock several ~feature issues and deliver user value: - ~"group::access" [making columns sortable](https://gitlab.com/gitlab-org/gitlab/-/issues/238181) - ~"group::access" [adding filter categories](https://gitlab.com/gitlab-org/gitlab/-/issues/238183) - ~"group::compliance" [show total group count for users](https://gitlab.com/gitlab-org/gitlab/-/issues/276215) #### Why not consume the data from a API? - We're planning on moving to GraphQL https://gitlab.com/gitlab-org/gitlab/-/issues/290276 - The admin users API doesn't have all the required fields https://gitlab.com/groups/gitlab-org/-/epics/4683#note_438427243. - [Add `blocked_pending_approval` to users API](https://gitlab.com/gitlab-org/gitlab/-/issues/276195) - [Add `deactivated` to admin users API ](https://gitlab.com/gitlab-org/gitlab/-/issues/276196) - Creating a users store will add extra complexity to the first iteration and will be done as a follow-up. #### What's next after we converted the table to Vue? - Migrate pagination to Vue https://gitlab.com/gitlab-org/gitlab/-/issues/285105 - Migrate to GraphQL https://gitlab.com/gitlab-org/gitlab/-/issues/290276 - Create admin users store (Note: This may not be required with GraphQL) - Migrate the admin actions to the store - edit - block - deactivate - delete - delete-with-contributions - Use the URL filter params to fetch the data from the API See the full implementation with next-ups discussed in https://gitlab.com/groups/gitlab-org/-/epics/4683#note_435131368.
epic