aboutsummaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--cgit.css8
-rwxr-xr-xtests/t0106-diff.sh5
-rw-r--r--ui-diff.c18
3 files changed, 26 insertions, 5 deletions
diff --git a/cgit.css b/cgit.css
index e52d424..7892eca 100644
--- a/cgit.css
+++ b/cgit.css
@@ -478,6 +478,14 @@ div#cgit div.cgit-panel {
margin-top: 1.5em;
}
+div#cgit form.diff-ctrls div.cgit-panel {
+ float: none;
+}
+
+div#cgit form.diff-ctrls {
+ float: right;
+}
+
div#cgit div.cgit-panel table {
border-collapse: collapse;
border: solid 1px var(--border-mid);
diff --git a/tests/t0106-diff.sh b/tests/t0106-diff.sh
index 0c167d4..e4751e9 100755
--- a/tests/t0106-diff.sh
+++ b/tests/t0106-diff.sh
@@ -32,6 +32,11 @@ test_expect_success 'ref picker: to: label present' '
grep "to:" tmp
'
+test_expect_success 'ref pickers live in a separate refs panel' '
+ grep "<b>diff refs</b>" tmp &&
+ grep "<b>diff options</b>" tmp
+'
+
test_expect_success 'ref picker: master branch listed' '
grep "master" tmp
'
diff --git a/ui-diff.c b/ui-diff.c
index ae4c9de..5ee3830 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -370,12 +370,11 @@ void cgit_print_diff_ctrls(void)
{
int i, curr;
- html("<div class='cgit-panel'>");
- html("<b>diff options</b>");
- html("<form method='get'>");
+ html("<form class='diff-ctrls' method='get'>");
/*
* Emit the same hidden fields as cgit_add_hidden_formfields(), except
- * id/id2, which are carried by the ref-picker selects below.
+ * id/id2, which are carried by the ref-picker selects below. One
+ * form wraps both panels so any submission carries all controls.
*/
if (!ctx.cfg.virtual_root) {
struct strbuf url = STRBUF_INIT;
@@ -391,6 +390,8 @@ void cgit_print_diff_ctrls(void)
if (ctx.qry.showmsg)
html_hidden("showmsg", "1");
+ html("<div class='cgit-panel'>");
+ html("<b>diff refs</b>");
html("<table>");
html("<tr><td colspan='2'/></tr>");
@@ -409,6 +410,13 @@ void cgit_print_diff_ctrls(void)
cgit_print_ref_select("id", new_ref);
html("</td></tr>");
}
+ html("</table>");
+ html("</div>");
+
+ html("<div class='cgit-panel'>");
+ html("<b>diff options</b>");
+ html("<table>");
+ html("<tr><td colspan='2'/></tr>");
html("<tr>");
html("<td class='label'>context:</td>");
@@ -443,8 +451,8 @@ void cgit_print_diff_ctrls(void)
html("<tr><td/><td class='ctrl'>");
html("<noscript><input type='submit' value='reload'/></noscript>");
html("</td></tr></table>");
- html("</form>");
html("</div>");
+ html("</form>");
}
void cgit_print_diff(const char *new_rev, const char *old_rev,