Skip to content

Commit d299564

Browse files
Mark file as viewed in file tree
1 parent 48bfea6 commit d299564

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

templates/repo/diff/box.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
</div>
4747
</div>
4848
<script id="diff-data-script" type="module">
49-
const diffDataFiles = [{{range $i, $file := .Diff.Files}}{Name:"{{$file.Name}}",NameHash:"{{$file.NameHash}}",Type:{{$file.Type}},IsBin:{{$file.IsBin}},Addition:{{$file.Addition}},Deletion:{{$file.Deletion}}},{{end}}];
49+
const diffDataFiles = [{{range $i, $file := .Diff.Files}}{Name:"{{$file.Name}}",NameHash:"{{$file.NameHash}}",Type:{{$file.Type}},IsBin:{{$file.IsBin}},Addition:{{$file.Addition}},Deletion:{{$file.Deletion}},IsViewed:{{$file.IsViewed}}},{{end}}];
5050
const diffData = {
5151
isIncomplete: {{.Diff.IsIncomplete}},
5252
tooManyFilesMessage: "{{$.locale.Tr "repo.diff.too_many_files"}}",

web_src/js/components/DiffFileTreeItem.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
/>
1111
<a
1212
v-if="item.isFile"
13-
class="file gt-ellipsis"
13+
:class="['file', 'gt-ellipsis', item.file.IsViewed ? 'viewed' : 'not-viewed']"
1414
:href="item.isFile ? '#diff-' + item.file.NameHash : ''"
1515
>{{ item.name }}</a>
1616
<SvgIcon
@@ -148,4 +148,8 @@ a:hover {
148148
text-decoration: none;
149149
color: var(--color-text);
150150
}
151+
152+
a.file.viewed {
153+
color: var(--color-text-light-3) !important;
154+
}
151155
</style>

web_src/js/features/pull-view-file.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import {diffTreeStore} from '../modules/stores.js';
12
import {setFileFolding} from './file-fold.js';
23

34
const {csrfToken, pageData} = window.config;
@@ -53,9 +54,17 @@ export function initViewedCheckboxListenerFor() {
5354
const hasChangedLabel = form.parentNode.querySelector('.changed-since-last-review');
5455
hasChangedLabel?.remove();
5556

57+
const fileName = checkbox.getAttribute('name');
58+
59+
// check if the file is in our difftreestore and if we find it -> change the IsViewed status
60+
const fileInPageData = diffTreeStore().files?.find((x) => x.Name === fileName);
61+
if (fileInPageData) {
62+
fileInPageData.IsViewed = this.checked;
63+
}
64+
5665
// Unfortunately, actual forms cause too many problems, hence another approach is needed
5766
const files = {};
58-
files[checkbox.getAttribute('name')] = this.checked;
67+
files[fileName] = this.checked;
5968
const data = {files};
6069
const headCommitSHA = form.getAttribute('data-headcommit');
6170
if (headCommitSHA) data.headCommitSHA = headCommitSHA;

0 commit comments

Comments
 (0)