Skip to content

Commit 154d061

Browse files
Merge pull request #9 from ekonstantinidis/collapsible-endpoints
Style collapsible endpoints(accordions)
2 parents 235bd76 + 20968ea commit 154d061

File tree

2 files changed

+77
-37
lines changed

2 files changed

+77
-37
lines changed

rest_framework_docs/static/less/style.less

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
/* @group Colours */
22

3+
@ThemeAlt: #c9c9c9;
4+
35
@BgColor: #FEFEFE;
6+
@AccordionBgColor: #ecf0f1;
47

58
@GetColor: #18bc9c;
69
@PostColor: #f39c12;
@@ -34,30 +37,53 @@ body {
3437

3538
.endpoint {
3639
padding: 5px 20px;
37-
margin: 20px 0;
40+
margin: 0;
3841
background-color: #ecf0f1;
3942

40-
.title {
41-
font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
42-
word-wrap: break-word;
43+
&:hover {
44+
background-color: darken(@AccordionBgColor, 5%);
45+
46+
.panel-heading {
47+
background-color: darken(@AccordionBgColor, 5%);
48+
}
4349
}
4450

45-
.methods {
46-
margin-bottom: 0;
51+
.panel-heading {
52+
padding: 5px;
53+
cursor: pointer;
54+
55+
.title {
56+
margin-top: 6px;
57+
font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
58+
word-wrap: break-word;
59+
60+
.fa {
61+
color: darken(@AccordionBgColor, 15%);
62+
}
63+
}
64+
65+
.methods {
66+
margin-bottom: 0;
4767

48-
.method {
49-
padding: 4px 8px;
50-
margin-top: 10.5px;
51-
color: #FFF;
68+
.method {
69+
padding: 4px 8px;
70+
color: #FFF;
5271

53-
&.get { background-color: @GetColor; }
54-
&.post { background-color: @PostColor; }
55-
&.patch { background-color: @PutColor; }
56-
&.put { background-color: @PatchColor; }
57-
&.delete { background-color: @DeleteColor; }
58-
&.options { background-color: @OptionsColor; }
72+
&.get { background-color: @GetColor; }
73+
&.post { background-color: @PostColor; }
74+
&.patch { background-color: @PutColor; }
75+
&.put { background-color: @PatchColor; }
76+
&.delete { background-color: @DeleteColor; }
77+
&.options { background-color: @OptionsColor; }
78+
}
5979
}
6080
}
81+
82+
.panel-body {
83+
padding: 0;
84+
}
85+
86+
> .panel-heading +.panel-collapse > .panel-body { border: 0; }
6187
}
6288

6389
/* @end Endpoint */

rest_framework_docs/templates/rest_framework_docs/home.html

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,35 +20,49 @@
2020
{% for group in endpoints_grouped %}
2121
<h1 id="{{ group.grouper|lower }}">{{group.grouper}}</h1>
2222

23+
<div class="panel-group" role="tablist">
24+
2325
{% for endpoint in group.list %}
24-
<div class="endpoint">
25-
<div class="row">
26-
<div class="col-md-7">
27-
<h4 class="title">{{ endpoint.path }}</h4>
26+
27+
<div class="panel panel-default endpoint">
28+
29+
<div class="panel-heading" role="tab" data-toggle="collapse" data-target="#{{ endpoint.path|slugify }}">
30+
<div class="row">
31+
<div class="col-md-7">
32+
<h4 class="panel-title title">
33+
<i class="fa fa-link"></i> {{ endpoint.path }}
34+
</h4>
35+
</div>
36+
37+
<div class="col-md-5 text-right">
38+
<ul class="list-inline methods">
39+
{% for method in endpoint.allowed_methods %}
40+
<li class="method {{ method|lower }}">{{ method }}</li>
41+
{% endfor %}
42+
</ul>
43+
</div>
2844
</div>
29-
<div class="col-md-5 text-right">
30-
<ul class="list-inline methods">
31-
{% for method in endpoint.allowed_methods %}
32-
<li class="method {{ method|lower }}">{{ method }}</li>
45+
</div>
46+
47+
<div id="{{ endpoint.path|slugify }}" class="panel-collapse collapse" role="tabpanel">
48+
<div class="panel-body">
49+
{% if endpoint.fields %}
50+
<p>Fields:</p>
51+
<ul class="list fields">
52+
{% for field in endpoint.fields %}
53+
<li class="field">{{ field.name }}: {{ field.type }}</li>
3354
{% endfor %}
34-
</ul>
55+
</ul>
56+
{% else %}
57+
<p>No fields.</p>
58+
{% endif %}
3559
</div>
3660
</div>
37-
38-
{% if endpoint.fields %}
39-
<p>Fields:</p>
40-
<ul class="list fields">
41-
{% for field in endpoint.fields %}
42-
<li class="field">{{ field.name }}: {{ field.type }}</li>
43-
{% endfor %}
44-
</ul>
45-
{% else %}
46-
<p>No fields.</p>
47-
{% endif %}
48-
4961
</div>
5062
{% endfor %}
5163

64+
</div>
65+
5266
{% endfor %}
5367

5468
{% endblock %}

0 commit comments

Comments
 (0)