Skip to content

Commit 9138d68

Browse files
committed
Change diff mode selection to radio button
Visually, this is more in line with the rest of the design. It also clears some vertical space which can be used by the monaco editor.
1 parent 270da02 commit 9138d68

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

webapp/src/Twig/TwigExtension.php

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -940,10 +940,6 @@ protected function parseSourceDiff(string $difftext): string
940940
public function showDiff(string $id, SubmissionFile $newFile, SubmissionFile $oldFile): string
941941
{
942942
$editor = <<<HTML
943-
<div class="form-check form-switch">
944-
<input class="form-check-input" type="checkbox" id="__EDITOR__SBS">
945-
<label class="form-check-label" for="__EDITOR__SBS">Use side-by-side diff viewer</label>
946-
</div>
947943
<div class="editor" id="__EDITOR__"></div>
948944
<script>
949945
$(function() {
@@ -960,12 +956,14 @@ public function showDiff(string $id, SubmissionFile $newFile, SubmissionFile $ol
960956
);
961957
962958
const sideBySide = isDiffSideBySide()
963-
sideBySideSwitch = $("#__EDITOR__SBS");
964-
sideBySideSwitch.prop('checked', sideBySide);
965-
sideBySideSwitch.change(function(e) {
966-
setDiffSideBySide(e.target.checked);
959+
const diffSelect = $("#diffselect-__EDITOR__");
960+
diffSelect.find("input[value='side-by-side']").prop('checked', sideBySide);
961+
diffSelect.find("input[value='inline']").prop('checked', !sideBySide);
962+
diffSelect.find("input[type='radio']").change(function(e) {
963+
const sbs = e.target.value === 'side-by-side';
964+
setDiffSideBySide(sbs);
967965
diffEditor.updateOptions({
968-
renderSideBySide: e.target.checked,
966+
renderSideBySide: sbs,
969967
});
970968
});
971969

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
{%- for filePair in oldFileStats.changedfiles %}
4444
<div class="tab-pane fade {% if loop.first %}show active{% endif %}" id="diff-{{ filePair.1.submitfileid }}"
4545
role="tabpanel">
46+
{% set diff_id = "diff" ~ filePair.1.submitfileid %}
4647
<div class="mb-1">
4748
<a class="btn btn-secondary btn-sm"
4849
href="{{ path('jury_submission_source', {submission: submission.submitid, fetch: filePair.1.rank}) }}">
@@ -54,8 +55,15 @@
5455
<i class="fas fa-pencil-alt"></i> Edit
5556
</a>
5657
{% endif %}
58+
<div id="diffselect-{{ diff_id }}" class="btn-group">
59+
<a href="#" role="button" class="btn btn-secondary btn-sm pe-none" aria-disabled="true"><i class="fas fa-code-branch"></i></a>
60+
<input type="radio" class="btn-check" name="{{ diff_id }}-mode" id="{{ diff_id }}-side-by-side" value="side-by-side" autocomplete="off">
61+
<label class="btn btn-outline-secondary btn-sm" for="{{ diff_id }}-side-by-side">side-by-side</label>
62+
<input type="radio" class="btn-check" name="{{ diff_id }}-mode" id="{{ diff_id }}-inline" value="inline" autocomplete="off">
63+
<label class="btn btn-outline-secondary btn-sm" for="{{ diff_id }}-inline">inline</label>
64+
</div>
5765
</div>
58-
{{ showDiff("diff" ~ filePair.1.submitfileid, filePair.0, filePair.1) }}
66+
{{ showDiff(diff_id, filePair.0, filePair.1) }}
5967
</div>
6068
{%- endfor %}
6169
{%- for file in oldFileStats.unchangedfiles %}

0 commit comments

Comments
 (0)