diff --git a/api-ref/ext/rest_parameters.py b/api-ref/ext/rest_parameters.py
index 2c8a1a2324..7c5134cb5e 100644
--- a/api-ref/ext/rest_parameters.py
+++ b/api-ref/ext/rest_parameters.py
@@ -65,6 +65,17 @@ class rest_method(nodes.Part, nodes.Element):
pass
+class rest_expand_all(nodes.Part, nodes.Element):
+ pass
+
+
+class RestExpandAllDirective(Directive):
+ has_content = True
+
+ def run(self):
+ return [rest_expand_all()]
+
+
class RestMethodDirective(Directive):
# this enables content in the directive
@@ -295,6 +306,22 @@ def rest_method_html(self, node):
raise nodes.SkipNode
+def rest_expand_all_html(self, node):
+ tmpl = """
+
"""
+
+ self.body.append(tmpl % node)
+ raise nodes.SkipNode
+
+
def resolve_rest_references(app, doctree):
for node in doctree.traverse():
if isinstance(node, rest_method):
@@ -330,8 +357,11 @@ def resolve_rest_references(app, doctree):
def setup(app):
app.add_node(rest_method,
html=(rest_method_html, None))
+ app.add_node(rest_expand_all,
+ html=(rest_expand_all_html, None))
app.add_directive('rest_parameters', RestParametersDirective)
app.add_directive('rest_method', RestMethodDirective)
+ app.add_directive('rest_expand_all', RestExpandAllDirective)
app.add_stylesheet('bootstrap.min.css')
app.add_stylesheet('api-site.css')
app.add_javascript('bootstrap.min.js')
diff --git a/api-ref/source/_static/api-site.js b/api-ref/source/_static/api-site.js
index 7a02999cbb..6d99fb34c1 100644
--- a/api-ref/source/_static/api-site.js
+++ b/api-ref/source/_static/api-site.js
@@ -19,6 +19,21 @@
processButton(this, 'close');
});
+ var expandAllActive = true;
+ // Expand the world
+ $('#expand-all').click(function () {
+ if (expandAllActive) {
+ expandAllActive = false;
+ $('.api-detail').collapse('show');
+ $('#expand-all').attr('data-toggle', '');
+ $(this).text('Hide All');
+ } else {
+ expandAllActive = true;
+ $('.api-detail').collapse('hide');
+ $('#expand-all').attr('data-toggle', 'collapse');
+ $(this).text('Show All');
+ }});
+
// Wire up the search button
$('#search-btn').on('click', function(e) {
searchPage();
@@ -92,4 +107,4 @@
.toggleClass('btn-info')
.toggleClass('btn-default');
}
-})();
\ No newline at end of file
+})();
diff --git a/api-ref/source/index.rst b/api-ref/source/index.rst
index 0bb59c50e2..40a2b67545 100644
--- a/api-ref/source/index.rst
+++ b/api-ref/source/index.rst
@@ -3,6 +3,9 @@
=============
Compute API
=============
+
+.. rest_expand_all::
+
.. include:: versions.inc
.. include:: servers.inc
.. include:: servers-multiple-create.inc