Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-07-02 00:08:27 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-07-02 00:08:27 +0300
commit6252c30d1707dcd26f6404f861d27a94f0e1d74f (patch)
tree9c6030d1f8f9698667674e10034da44f57e2b66b /app/assets/javascripts/diffs
parent24d67ec55454fc6f4e8e80bf7c8dc5bc677e8514 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/diffs')
-rw-r--r--app/assets/javascripts/diffs/components/tree_list.vue18
1 files changed, 15 insertions, 3 deletions
diff --git a/app/assets/javascripts/diffs/components/tree_list.vue b/app/assets/javascripts/diffs/components/tree_list.vue
index 85e4199d1c1..ffbea854001 100644
--- a/app/assets/javascripts/diffs/components/tree_list.vue
+++ b/app/assets/javascripts/diffs/components/tree_list.vue
@@ -1,6 +1,7 @@
<script>
import { GlTooltipDirective, GlIcon } from '@gitlab/ui';
import { mapActions, mapGetters, mapState } from 'vuex';
+import micromatch from 'micromatch';
import { s__, sprintf } from '~/locale';
import FileTree from '~/vue_shared/components/file_tree.vue';
import DiffFileRow from './diff_file_row.vue';
@@ -28,14 +29,24 @@ export default {
...mapState('diffs', ['tree', 'renderTreeList', 'currentDiffFileId', 'viewedDiffFileIds']),
...mapGetters('diffs', ['allBlobs']),
filteredTreeList() {
- const search = this.search.toLowerCase().trim();
+ let search = this.search.toLowerCase().trim();
if (search === '') {
return this.renderTreeList ? this.tree : this.allBlobs;
}
+ const searchSplit = search.split(',').filter((t) => t);
+
+ if (searchSplit.length > 1) {
+ search = `(${searchSplit.map((s) => s.replace(/(^ +| +$)/g, '')).join('|')})`;
+ } else {
+ [search] = searchSplit;
+ }
+
return this.allBlobs.reduce((acc, folder) => {
- const tree = folder.tree.filter((f) => f.path.toLowerCase().indexOf(search) >= 0);
+ const tree = folder.tree.filter((f) =>
+ micromatch.contains(f.path, search, { nocase: true }),
+ );
if (tree.length) {
return acc.concat({
@@ -54,7 +65,7 @@ export default {
this.search = '';
},
},
- searchPlaceholder: sprintf(s__('MergeRequest|Search files (%{modifier_key}P)'), {
+ searchPlaceholder: sprintf(s__('MergeRequest|Search (e.g. *.vue) (%{modifier_key}P)'), {
modifier_key: /Mac/i.test(navigator.userAgent) ? '⌘' : 'Ctrl+',
}),
DiffFileRow,
@@ -74,6 +85,7 @@ export default {
type="search"
name="diff-tree-search"
class="form-control"
+ data-testid="diff-tree-search"
/>
<button
v-show="search"