Skip to content

Commit 57fed82

Browse files
committed
Improve source diff viewer.
When viewing a submission from a team who previously submitted to the same problem, we originally displayed a short unified diff below the source. When we switched to Monaco, we did replace it view a Monaco diff editor which will display the full source (either inline or side by side). That caused us to display the source twice. Now, if there is a previous submission, we only display the diff editor. New files are still downloadable and editable.
1 parent 31344ad commit 57fed82

File tree

2 files changed

+48
-49
lines changed

2 files changed

+48
-49
lines changed

webapp/templates/jury/partials/submission_diff.html.twig

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
{% if files | length > 1 or oldFiles | length > 1 %}
2-
32
<table class="table table-sm table-striped file-diff-table">
43
<tr>
54
<th class="diff-add">Files added</th>
@@ -19,9 +18,9 @@
1918
</tr>
2019
</table>
2120
{% endif %}
21+
2222
<ul class="nav nav-tabs source-tab-nav">
2323
{%- for filePair in oldFileStats.changedfiles %}
24-
2524
<li class="nav-item">
2625
<a class="nav-link {% if loop.first %}active{% endif %}" data-bs-toggle="tab"
2726
href="#diff-{{ filePair.1.submitfileid }}" role="tab">{{ filePair.0.filename }}</a>
@@ -31,11 +30,22 @@
3130
</ul>
3231
<div class="tab-content source-tab">
3332
{%- for filePair in oldFileStats.changedfiles %}
33+
<div class="mb-1">
34+
<a class="btn btn-secondary btn-sm"
35+
href="{{ path('jury_submission_source', {submission: submission.submitid, fetch: filePair.1.rank}) }}">
36+
<i class="fas fa-download"></i> Download
37+
</a>
38+
{% if allowEdit %}
39+
<a class="btn btn-secondary btn-sm"
40+
href="{{ path('jury_submission_edit_source', {submission: submission.submitid, rank: filePair.1.rank}) }}">
41+
<i class="fas fa-pencil-alt"></i> Edit
42+
</a>
43+
{% endif %}
44+
</div>
3445

3546
<div class="tab-pane fade {% if loop.first %}show active{% endif %}" id="diff-{{ filePair.1.submitfileid }}"
3647
role="tabpanel">
3748
{{ showDiff("diff" ~ filePair.1.submitfileid, filePair.0, filePair.1) }}
3849
</div>
3950
{%- endfor %}
40-
4151
</div>

webapp/templates/jury/submission_source.html.twig

Lines changed: 35 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -25,71 +25,60 @@
2525
)
2626
{% endif %}
2727

28+
{% if oldSubmission %}
29+
and diff to previous submission
30+
<a href="{{ path('jury_submission', {submitId: oldSubmission.submitid}) }}">
31+
s{{ oldSubmission.submitid }}
32+
</a>
33+
{% endif %}
2834
</h1>
2935

3036
{%- if submission.entryPoint %}
31-
3237
<p><b>Entry point</b>: {{ submission.entryPoint }}</p>
3338
{%- endif %}
3439

35-
{%- if oldSubmission is not null %}
36-
37-
<p><a href="#diff">Go to diff to previous submission</a></p>
38-
{%- endif %}
39-
4040
{%- if submission.originalSubmission %}
41-
4241
<p><a href="#origdiff">Go to diff to original submission</a></p>
4342
{%- endif %}
4443

45-
<ul class="nav nav-tabs source-tab-nav">
46-
{%- for file in files %}
47-
48-
<li class="nav-item">
49-
<a class="nav-link {% if loop.first %}active{% endif %}" data-bs-toggle="tab"
50-
href="#source-{{ file.rank }}" role="tab">{{ file.filename }}</a>
51-
</li>
52-
{%- endfor %}
53-
54-
</ul>
55-
<div class="tab-content source-tab">
56-
{%- for file in files %}
57-
58-
<div class="tab-pane fade {% if loop.first %}show active{% endif %}" id="source-{{ file.rank }}"
59-
role="tabpanel">
60-
<div class="mb-1">
61-
<a class="btn btn-secondary btn-sm"
62-
href="{{ path('jury_submission_source', {submission: submission.submitid, fetch: file.rank}) }}">
63-
<i class="fas fa-download"></i> Download
64-
</a>
65-
{% if allowEdit %}
44+
{% if not oldSubmission %}
45+
<ul class="nav nav-tabs source-tab-nav">
46+
{%- for file in files %}
47+
<li class="nav-item">
48+
<a class="nav-link {% if loop.first %}active{% endif %}" data-bs-toggle="tab"
49+
href="#source-{{ file.rank }}" role="tab">{{ file.filename }}</a>
50+
</li>
51+
{%- endfor %}
52+
53+
</ul>
54+
<div class="tab-content source-tab">
55+
{%- for file in files %}
56+
<div class="tab-pane fade {% if loop.first %}show active{% endif %}" id="source-{{ file.rank }}"
57+
role="tabpanel">
58+
<div class="mb-1">
6659
<a class="btn btn-secondary btn-sm"
67-
href="{{ path('jury_submission_edit_source', {submission: submission.submitid, rank: file.rank}) }}">
68-
<i class="fas fa-pencil-alt"></i> Edit
60+
href="{{ path('jury_submission_source', {submission: submission.submitid, fetch: file.rank}) }}">
61+
<i class="fas fa-download"></i> Download
6962
</a>
70-
{% endif %}
63+
{% if allowEdit %}
64+
<a class="btn btn-secondary btn-sm"
65+
href="{{ path('jury_submission_edit_source', {submission: submission.submitid, rank: file.rank}) }}">
66+
<i class="fas fa-pencil-alt"></i> Edit
67+
</a>
68+
{% endif %}
69+
</div>
70+
71+
{{ file.sourcecode | codeEditor(file.rank, submission.language.editorLanguage) }}
7172
</div>
72-
73-
{{ file.sourcecode | codeEditor(file.rank, submission.language.editorLanguage) }}
74-
</div>
75-
{%- endfor %}
76-
77-
</div>
73+
{%- endfor %}
74+
</div>
75+
{% endif %}
7876

7977
{%- if oldSubmission is not null %}
80-
81-
<h2 id="diff" class="mt-3">
82-
Diff to submission
83-
<a href="{{ path('jury_submission', {submitId: oldSubmission.submitid}) }}">
84-
s{{ oldSubmission.submitid }}
85-
</a>
86-
</h2>
87-
8878
{%- include 'jury/partials/submission_diff.html.twig' with {oldSubmission: oldSubmission, oldFiles: oldFiles, oldFileStats: oldFileStats} %}
8979
{%- endif %}
9080

9181
{%- if originalSubmission is not null %}
92-
9382
<h2 id="origdiff" class="mt-3">
9483
Diff to original submission
9584
<a href="{{ path('jury_submission', {submitId: originalSubmission.submitid}) }}">

0 commit comments

Comments
 (0)