Commit c7969568 authored by Phil Hughes's avatar Phil Hughes

Store tree list preference in localStorage

Fixed clear search button not clearing
parent 9fd5a78d
...@@ -5,6 +5,8 @@ import Icon from '~/vue_shared/components/icon.vue'; ...@@ -5,6 +5,8 @@ import Icon from '~/vue_shared/components/icon.vue';
import FileRow from '~/vue_shared/components/file_row.vue'; import FileRow from '~/vue_shared/components/file_row.vue';
import FileRowStats from './file_row_stats.vue'; import FileRowStats from './file_row_stats.vue';
const treeListStorageKey = 'mr_diff_tree_list';
export default { export default {
directives: { directives: {
Tooltip, Tooltip,
...@@ -14,9 +16,11 @@ export default { ...@@ -14,9 +16,11 @@ export default {
FileRow, FileRow,
}, },
data() { data() {
const treeListStored = localStorage.getItem(treeListStorageKey);
return { return {
search: '', search: '',
renderTreeList: true, renderTreeList: treeListStored !== null ? treeListStored === 'true' : true,
focusSearch: false, focusSearch: false,
}; };
}, },
...@@ -42,13 +46,20 @@ export default { ...@@ -42,13 +46,20 @@ export default {
...mapActions('diffs', ['toggleTreeOpen', 'scrollToFile']), ...mapActions('diffs', ['toggleTreeOpen', 'scrollToFile']),
clearSearch() { clearSearch() {
this.search = ''; this.search = '';
this.toggleFocusSearch(false)
}, },
toggleRenderTreeList(toggle) { toggleRenderTreeList(toggle) {
this.renderTreeList = toggle; this.renderTreeList = toggle;
localStorage.setItem(treeListStorageKey, this.renderTreeList);
}, },
toggleFocusSearch(toggle) { toggleFocusSearch(toggle) {
this.focusSearch = toggle; this.focusSearch = toggle;
}, },
blurSearch() {
if (this.search.trim() === '') {
this.toggleFocusSearch(false);
}
},
}, },
FileRowStats, FileRowStats,
}; };
...@@ -68,13 +79,13 @@ export default { ...@@ -68,13 +79,13 @@ export default {
type="search" type="search"
class="form-control" class="form-control"
@focus="toggleFocusSearch(true)" @focus="toggleFocusSearch(true)"
@blur="toggleFocusSearch(false)" @blur="blurSearch"
/> />
<button <button
v-show="search" v-show="search"
:aria-label="__('Clear search')" :aria-label="__('Clear search')"
type="button" type="button"
class="position-absolute tree-list-icon tree-list-clear-icon border-0 p-0" class="position-absolute bg-transparent tree-list-icon tree-list-clear-icon border-0 p-0"
@click="clearSearch" @click="clearSearch"
> >
<icon <icon
...@@ -88,8 +99,8 @@ export default { ...@@ -88,8 +99,8 @@ export default {
> >
<button <button
v-tooltip.hover v-tooltip.hover
:aria-label="__('Switch to file list')" :aria-label="__('File view')"
:title="__('Switch to file list')" :title="__('File view')"
:class="{ :class="{
active: !renderTreeList active: !renderTreeList
}" }"
...@@ -103,8 +114,8 @@ export default { ...@@ -103,8 +114,8 @@ export default {
</button> </button>
<button <button
v-tooltip.hover v-tooltip.hover
:aria-label="__('Switch to tree list')" :aria-label="__('Tree view')"
:title="__('Switch to tree list')" :title="__('Tree view')"
:class="{ :class="{
active: renderTreeList active: renderTreeList
}" }"
......
...@@ -2783,6 +2783,9 @@ msgstr "" ...@@ -2783,6 +2783,9 @@ msgstr ""
msgid "File templates" msgid "File templates"
msgstr "" msgstr ""
msgid "File view"
msgstr ""
msgid "Files" msgid "Files"
msgstr "" msgstr ""
...@@ -5823,12 +5826,6 @@ msgstr "" ...@@ -5823,12 +5826,6 @@ msgstr ""
msgid "Switch branch/tag" msgid "Switch branch/tag"
msgstr "" msgstr ""
msgid "Switch to file list"
msgstr ""
msgid "Switch to tree list"
msgstr ""
msgid "System Hooks" msgid "System Hooks"
msgstr "" msgstr ""
...@@ -6510,6 +6507,9 @@ msgstr "" ...@@ -6510,6 +6507,9 @@ msgstr ""
msgid "Track time with quick actions" msgid "Track time with quick actions"
msgstr "" msgstr ""
msgid "Tree view"
msgstr ""
msgid "Trending" msgid "Trending"
msgstr "" msgstr ""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment