Integrate new vue+vuex code base with new API and remove old haml code

With https://gitlab.com/gitlab-org/gitlab-ce/issues/50101, we created a vue and vuex code base for the job show page. We now need to integrate it with the new API and deprecate the HAML+old JS code.

TODO:

TODO's

  • Create main Job app

    • Delete old header component, use ci_header directly
    • Remove mediator
    • Remove service
    • Remove loading icon from sidebar
    • Update sidebar HTML to match haml
  • Job Log

    • Handle Scroll behavior
      • Automatically scrolls to bottom after trace is loaded
      • Scroll down button shows animation while automatic scroll is active
      • While log is not complete, if user hasn't scrolled, keep scrolling to the bottom every time we receive more log
      • Stop scrolling down automatically after user has scrolled once
    • Top bar needs affix
    • Scroll down animation svg is not working in vue because the icon is not the same and classes are now dynamic.
  • Make scroll behavior reusable in master so we can use it here: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21931

  • Handle component's adjustments to match the API https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21930

  • Empty states illustrations path need to be updated on BE to work with Vue

  • Missing has_trace check: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21950

  • Sidebar collapse behavior

  • Fetch stages from pipeline.path

  • Fetch stages content from pipeline.path/stage.json?stage=$STAGENAME&retried=1

  • Stuck block

  • Erased block

  • Environments block

  • Runners block

Edited by Filipa Lacerda