From c7969568b707b100c349e344d34695bb538c35bf Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Wed, 17 Oct 2018 09:14:45 +0100 Subject: Store tree list preference in localStorage Fixed clear search button not clearing --- .../javascripts/diffs/components/tree_list.vue | 25 ++++++++++++++++------ locale/gitlab.pot | 12 +++++------ 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/app/assets/javascripts/diffs/components/tree_list.vue b/app/assets/javascripts/diffs/components/tree_list.vue index 84b5f45300a..1402cb510f7 100644 --- a/app/assets/javascripts/diffs/components/tree_list.vue +++ b/app/assets/javascripts/diffs/components/tree_list.vue @@ -5,6 +5,8 @@ import Icon from '~/vue_shared/components/icon.vue'; import FileRow from '~/vue_shared/components/file_row.vue'; import FileRowStats from './file_row_stats.vue'; +const treeListStorageKey = 'mr_diff_tree_list'; + export default { directives: { Tooltip, @@ -14,9 +16,11 @@ export default { FileRow, }, data() { + const treeListStored = localStorage.getItem(treeListStorageKey); + return { search: '', - renderTreeList: true, + renderTreeList: treeListStored !== null ? treeListStored === 'true' : true, focusSearch: false, }; }, @@ -42,13 +46,20 @@ export default { ...mapActions('diffs', ['toggleTreeOpen', 'scrollToFile']), clearSearch() { this.search = ''; + this.toggleFocusSearch(false) }, toggleRenderTreeList(toggle) { this.renderTreeList = toggle; + localStorage.setItem(treeListStorageKey, this.renderTreeList); }, toggleFocusSearch(toggle) { this.focusSearch = toggle; }, + blurSearch() { + if (this.search.trim() === '') { + this.toggleFocusSearch(false); + } + }, }, FileRowStats, }; @@ -68,13 +79,13 @@ export default { type="search" class="form-control" @focus="toggleFocusSearch(true)" - @blur="toggleFocusSearch(false)" + @blur="blurSearch" />