Migrate triggers setting table to Vue

Merged Miguel Rincon requested to merge 42742-move-triggers-table-to-vue into master

What does this MR do?

Fix for #250312 (closed). Prerequisite work of #42742

Migrate triggers settings table to Vue behind feature flag ci_pipeline_triggers_settings_vue_ui Rollout issue: #247486

So we can add more functionality to the triggers table we would like to move the table from HAML to Vue.

As a temporary measure, this change loads the data from a JSON string that gets added to the HTML of the page, instead of loading the data via AJAX.

This MR aims to have full feature parity with the current table, and only some minor differences should be noticed by the user.

Settings can be found at http://127.0.0.1:3000/root/autodevops/-/settings/ci_cd#js-pipeline-triggers

TODO

  • New Vue specs.
  • Try to run the feature tests against new UI.

Technical Choices

  • The data is send from the backend to the frontend via a json string in the <div data-triggers="..."/>
    • This is meant to be improved in the feature by having this data being loaded via AJAX.
  • A new feature flag ci_pipeline_triggers_settings_vue_ui is introduced.
  • Many strings in the old UI are not translated, new string were added to the namespace Pipelines|.

Screenshots

Changes to the UI should be minimal:

before after
Screen_Shot_2020-09-09_at_6.30.52_PM Screen_Shot_2020-09-09_at_6.34.08_PM

Also, there are changes in the invalid badge appearance:

before after
Screen_Shot_2020-09-11_at_9.40.52_AM Screen_Shot_2020-09-11_at_9.55.39_AM

This recording shows the 2 versions of the UI active at the same time (new UI at the bottom):

2020-09-09_18.21.52

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

touches #42742

Edited by Miguel Rincon