**How?**
Previously the files_decorator inserted parent folders inefficiently.
It started at the first part and ensured each was inserted.
Since the file entries are given to use in alphabetical order, we can
start at the last part of the blob's parents. If this exists, we can
short circuit and be done inserting parents.
**What else?**
- Improve performance of decorateData. The object spread operator is
not needed because the object is brand new.
New `Api.projectMergeRequests` allows:
- to query for all MRs on a project without specifying `mergeRequestId`
- to filter the returned MRs using parameters from
https://bit.ly/2H7We4V
The new API request is used for fetching information about MRs
associated with a particular branch in Web IDE to have IdeSidebar
behave consistently in both scenarios:
- getting to a branch from and MR (where we already have info about
relevant MR), or
- getting to a branch somehow differently directly
For cases where there are several merge requests that the current branch
is associated with, mark the most recent one as 'current'
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/49663
This fixes a bug where the file templates would not be cleared
after changing the template type.
Previously the templates would get pushed into the array
creating a list of templates for the different types.
This changes that by clearing the templates array
when the template type gets changed.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/52487
This file tree displays all the diff files in a tree like format
Each file is taken and converted into a tree with folders
Each folder can be toggled open & closed
Clicking a file will scroll to the diff file & highlight with a glow affect
Searching the tree list will search only files & return a list of the
files without any folders
Each file row contains an icon to show changed, new file or deleted
Each row will also contain the added & removed lines count
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/14249
**Why?**
- This is needed for the Web Terminal feature.
https://gitlab.com/gitlab-org/gitlab-ee/issues/5426
**Notes:**
- Introduces a `pane` Vuex module.
- Some views should not be kept alive (i.e. job details).
This is why a `keepAlive` flag was introduced for views.