Move Merge Options settings behavior to Vue

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Summary

This is a follow-up issue to issue #282520 (closed) (MR !51233 (merged)), which sets the checkbox behavior for the merge options settings of a project. It was decided to implement the behavior in vanilla JS because the form is still in HAML.

We can port the implementation to Vue and leave the HAML form to handle the save process.

This issue is only concerned with the Merge Options settings. You can view this by going to Settings > General > Merge requests

Merge Options

Risks

This change relates to enabling/disabling merged pipelines and merged trains for projects.

It is expected that there should be no changes in functionality, since this is more of a follow-up refactor for frontend.

Involved components

The javascript can be found in:

  • ee/app/assets/javascripts/pages/projects/edit/merge_options.js.

The HAML forms related to it are:

  • app/views/projects/_merge_request_merge_options_settings.html.haml
  • ee/app/views/projects/_merge_pipelines_settings.html.haml
  • ee/app/views/projects/_merge_trains_settings.html.haml

Rspec that tests the behavior:

  • ee/spec/features/projects/settings/user_manages_merge_trains_spec.rb
Edited by 🤖 GitLab Bot 🤖