Repository: nifi
Updated Branches:
  refs/heads/master 97366d61b -> 7db728d21


NIFI-906: This closes #600. Make NiFi docs responsible

- Switched from absolute layout to responsible using flex-box.
- Added toggle switch to control component listing pane visibility.

Signed-off-by: joewitt <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/7db728d2
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/7db728d2
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/7db728d2

Branch: refs/heads/master
Commit: 7db728d2199cfadf77d1b2388944a57e03fce602
Parents: 97366d6
Author: Koji Kawamura <[email protected]>
Authored: Fri Jul 1 10:34:14 2016 +0900
Committer: joewitt <[email protected]>
Committed: Wed Jul 13 10:40:53 2016 -0400

----------------------------------------------------------------------
 .../main/webapp/WEB-INF/jsp/documentation.jsp   | 181 ++++++++++---------
 .../src/main/webapp/css/component-usage.css     |   2 -
 .../nifi-web-docs/src/main/webapp/css/main.css  | 101 +++++------
 .../src/main/webapp/js/application.js           | 131 ++++++++++----
 4 files changed, 244 insertions(+), 171 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/7db728d2/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp
index 256c385..3b7ae88 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp
@@ -19,6 +19,7 @@
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml";>
     <head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
         <link rel="shortcut icon" href="../nifi/images/nifi16.ico"/>
         <title>NiFi Documentation</title>
@@ -29,104 +30,110 @@
     </head>
     <body id="documentation-body">
         <div id="banner-header" class="main-banner-header"></div>
-        <div id="banner-footer" class="main-banner-footer"></div>
         <span id="initial-selection" style="display: none;"><%= 
request.getParameter("select") == null ? "" : 
org.apache.nifi.util.EscapeUtils.escapeHtml(request.getParameter("select")) 
%></span>
         <div id="documentation-header" class="documentation-header">
-            <div id="nf-title">NiFi Documentation</div>
-            <div id="nf-version"></div>
-            <div id="selected-component"></div>
-            <div class="clear"></div>
-        </div>
-        <div id="component-listing" class="component-listing">
-            <div class="section">
-                <div class="header">General</div>
-                <div id="general-links" class="component-links">
-                    <ul>
-                        <li class="component-item"><a class="component-link 
overview" href="html/overview.html" target="component-usage">Overview</a></li>
-                        <li class="component-item"><a class="component-link 
getting-started" href="html/getting-started.html" 
target="component-usage">Getting Started</a></li>
-                        <li class="component-item"><a class="component-link 
user-guide" href="html/user-guide.html" target="component-usage">User 
Guide</a></li>
-                        <li class="component-item"><a class="component-link 
expression-language-guide" href="html/expression-language-guide.html" 
target="component-usage">Expression Language Guide</a></li>
-                        <li class="component-item"><a class="component-link 
admin-guide" href="html/administration-guide.html" 
target="component-usage">Admin Guide</a></li>
-                    </ul>
-                    <span class="no-matching no-components hidden">No matching 
guides</span>
-                </div>
+            <div id="component-list-toggle-link">-</div>
+            <div id="header-contents">
+                <div id="nf-title">NiFi Documentation</div>
+                <div id="nf-version"></div>
+                <div id="selected-component"></div>
             </div>
-            <div class="section">
-                <div class="header">Processors</div>
-                <div id="processor-links" class="component-links">
-                    <c:choose>
-                        <c:when test="${not empty processors}">
+        </div>
+        <div id="component-root-container">
+            <div id="component-listing-container">
+                <div id="component-listing" class="component-listing">
+                    <div class="section">
+                        <div class="header">General</div>
+                        <div id="general-links" class="component-links">
                             <ul>
-                            <c:forEach var="entry" items="${processors}">
-                                <li class="component-item"><a 
class="component-link" href="components/${entry.value}/index.html" 
target="component-usage">${entry.key}</a></li>
-                            </c:forEach>
+                                <li class="component-item"><a 
class="component-link overview" href="html/overview.html" 
target="component-usage">Overview</a></li>
+                                <li class="component-item"><a 
class="component-link getting-started" href="html/getting-started.html" 
target="component-usage">Getting Started</a></li>
+                                <li class="component-item"><a 
class="component-link user-guide" href="html/user-guide.html" 
target="component-usage">User Guide</a></li>
+                                <li class="component-item"><a 
class="component-link expression-language-guide" 
href="html/expression-language-guide.html" target="component-usage">Expression 
Language Guide</a></li>
+                                <li class="component-item"><a 
class="component-link admin-guide" href="html/administration-guide.html" 
target="component-usage">Admin Guide</a></li>
                             </ul>
-                            <span class="no-matching no-components hidden">No 
matching processors</span>
-                        </c:when>
-                        <c:otherwise>
-                            <span class="no-components">No processor 
documentation found</span>
-                        </c:otherwise>
-                    </c:choose>
-                </div>
-            </div>
-            <div class="section">
-                <div class="header">Controller Services</div>
-                <div id="controller-service-links" class="component-links">
-                    <c:choose>
-                        <c:when test="${not empty controllerServices}">
+                            <span class="no-matching no-components hidden">No 
matching guides</span>
+                        </div>
+                    </div>
+                    <div class="section">
+                        <div class="header">Processors</div>
+                        <div id="processor-links" class="component-links">
+                            <c:choose>
+                                <c:when test="${not empty processors}">
+                                    <ul>
+                                    <c:forEach var="entry" 
items="${processors}">
+                                        <li class="component-item"><a 
class="component-link" href="components/${entry.value}/index.html" 
target="component-usage">${entry.key}</a></li>
+                                    </c:forEach>
+                                    </ul>
+                                    <span class="no-matching no-components 
hidden">No matching processors</span>
+                                </c:when>
+                                <c:otherwise>
+                                    <span class="no-components">No processor 
documentation found</span>
+                                </c:otherwise>
+                            </c:choose>
+                        </div>
+                    </div>
+                    <div class="section">
+                        <div class="header">Controller Services</div>
+                        <div id="controller-service-links" 
class="component-links">
+                            <c:choose>
+                                <c:when test="${not empty controllerServices}">
+                                    <ul>
+                                    <c:forEach var="entry" 
items="${controllerServices}">
+                                        <li class="component-item"><a 
class="component-link" href="components/${entry.value}/index.html" 
target="component-usage">${entry.key}</a></li>
+                                    </c:forEach>
+                                    </ul>
+                                    <span class="no-matching no-components 
hidden">No matching controller services</span>
+                                </c:when>
+                                <c:otherwise>
+                                    <span class="no-components">No controller 
service documentation found</span>
+                                </c:otherwise>
+                            </c:choose>
+                        </div>
+                    </div>
+                    <div class="section">
+                        <div class="header">Reporting Tasks</div>
+                        <div id="reporting-task-links" class="component-links">
+                            <c:choose>
+                                <c:when test="${not empty reportingTasks}">
+                                    <ul>
+                                    <c:forEach var="entry" 
items="${reportingTasks}">
+                                        <li class="component-item"><a 
class="component-link" href="components/${entry.value}/index.html" 
target="component-usage">${entry.key}</a></li>
+                                    </c:forEach>
+                                    </ul>
+                                    <span class="no-matching no-components 
hidden">No matching reporting tasks</span>
+                                </c:when>
+                                <c:otherwise>
+                                    <span class="no-components">No reporting 
task documentation found</span>
+                                </c:otherwise>
+                            </c:choose>
+                        </div>
+                    </div>
+                    <div class="section">
+                        <div class="header">Developer</div>
+                        <div id="developer-links" class="component-links">
                             <ul>
-                            <c:forEach var="entry" 
items="${controllerServices}">
-                                <li class="component-item"><a 
class="component-link" href="components/${entry.value}/index.html" 
target="component-usage">${entry.key}</a></li>
-                            </c:forEach>
+                                <li class="component-item"><a 
class="component-link rest-api" href="rest-api/index.html" 
target="component-usage">Rest Api</a></li>
+                                <li class="component-item"><a 
class="component-link developer-guide" href="html/developer-guide.html" 
target="component-usage">Developer Guide</a></li>
+                                <li class="component-item"><a 
class="component-link developer-guide" href="html/nifi-in-depth.html" 
target="component-usage">Apache NiFi In Depth</a></li>
                             </ul>
-                            <span class="no-matching no-components hidden">No 
matching controller services</span>
-                        </c:when>
-                        <c:otherwise>
-                            <span class="no-components">No controller service 
documentation found</span>
-                        </c:otherwise>
-                    </c:choose>
+                            <span class="no-matching no-components hidden">No 
matching developer guides</span>
+                        </div>
+                    </div>
                 </div>
-            </div>
-            <div class="section">
-                <div class="header">Reporting Tasks</div>
-                <div id="reporting-task-links" class="component-links">
-                    <c:choose>
-                        <c:when test="${not empty reportingTasks}">
-                            <ul>
-                            <c:forEach var="entry" items="${reportingTasks}">
-                                <li class="component-item"><a 
class="component-link" href="components/${entry.value}/index.html" 
target="component-usage">${entry.key}</a></li>
-                            </c:forEach>
-                            </ul>
-                            <span class="no-matching no-components hidden">No 
matching reporting tasks</span>
-                        </c:when>
-                        <c:otherwise>
-                            <span class="no-components">No reporting task 
documentation found</span>
-                        </c:otherwise>
-                    </c:choose>
+                <div id="component-filter-controls">
+                    <div id="component-filter-container">
+                        <input type="text" id="component-filter"/>
+                    </div>
+                    <div id="component-filter-stats">
+                        Displaying&nbsp;<span 
id="displayed-components">${totalComponents}</span>&nbsp;of&nbsp;${totalComponents}
+                    </div>
                 </div>
             </div>
-            <div class="section">
-                <div class="header">Developer</div>
-                <div id="developer-links" class="component-links">
-                    <ul>
-                        <li class="component-item"><a class="component-link 
rest-api" href="rest-api/index.html" target="component-usage">Rest Api</a></li>
-                        <li class="component-item"><a class="component-link 
developer-guide" href="html/developer-guide.html" 
target="component-usage">Developer Guide</a></li>
-                        <li class="component-item"><a class="component-link 
developer-guide" href="html/nifi-in-depth.html" target="component-usage">Apache 
NiFi In Depth</a></li>
-                    </ul>
-                    <span class="no-matching no-components hidden">No matching 
developer guides</span>
-                </div>
+            <div id="component-usage-container">
+                <iframe id="component-usage" name="component-usage" 
frameborder="0" class="component-usage"></iframe>
             </div>
         </div>
-        <div id="component-filter-controls">
-            <div id="component-filter-container">
-                <input type="text" id="component-filter"/>
-            </div>
-            <div id="component-filter-stats">
-                Displaying&nbsp;<span 
id="displayed-components">${totalComponents}</span>&nbsp;of&nbsp;${totalComponents}
-            </div>
-        </div>
-        <div id="component-usage-container">
-            <iframe id="component-usage" name="component-usage" 
frameborder="0" class="component-usage"></iframe>
-        </div>
+        <div id="banner-footer" class="main-banner-footer"></div>
     </body>
 </html>

http://git-wip-us.apache.org/repos/asf/nifi/blob/7db728d2/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/component-usage.css
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/component-usage.css
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/component-usage.css
index 19f6dff..83574a0 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/component-usage.css
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/component-usage.css
@@ -23,7 +23,6 @@ html, html a {
 }
 
 body {
-    width: 62.5em;
     margin: 0 auto;
     display: block;
     font-family: "Open Sans","DejaVu Sans",sans-serif;
@@ -114,7 +113,6 @@ table tr:last-child td:last-child {
 }
 
 td#allowable-values, td#default-value, td#name, td#value {
-       white-space:nowrap;
 }
 
 /* links */

http://git-wip-us.apache.org/repos/asf/nifi/blob/7db728d2/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/main.css
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/main.css
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/main.css
index 918eb7a..b67a6e7 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/main.css
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/main.css
@@ -32,32 +32,26 @@
 
 div.main-banner-header {
     display: none;
-    z-index: 100;
     font-weight: bold;
     font-size: 1em;
     text-align: center;
     line-height: 15px;
     color: #7e7e7e;
     margin: 0px auto;
-    width: 900px;
-    height: 17px;
+    width: 100%;
+    height: 1em;
     background-color: #fff;
-    z-index: 100;
     background-image: url(../images/bgHeader.png);
+    background-position: center;
+    background-repeat: no-repeat;
 }
 
 div.main-banner-footer {
     display: none;
-    position: absolute;
-    left: 0px;
-    right: 0px;
-    bottom: 0px;
-    height: 15px;
     color: #fff;
     text-align: center;
     font-weight: bold;
     font-size: 1em;
-    line-height: 15px;
     overflow: visible;
     background-color: #9eb9c7;
     background-image: url(../images/bgBannerFoot.png);
@@ -68,52 +62,72 @@ div.main-banner-footer {
 /* documentation */
 
 div.documentation-header {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    height: 45px;
     border-bottom: 1px solid #d1dee5;
     color: #365c6a;
     font-size: 13px;
+    display: flex;
+}
+
+#component-list-toggle-link {
+    padding: 4px;
+    font-size: 14px;
+    font-weight: bold;
+    color: #264c58;
+    cursor: pointer;
+    width: 12px;
+    text-align: center;
+    align-self: flex-end;
+}
+
+#header-contents {
+    display: flex;
+    flex-wrap: wrap;
 }
 
 #nf-title {
-    float: left;
-    height: 50px;
-    padding: 5px;
     font-size: 20px;
-    margin-top: 10px;
+    margin: 5px 5px 0px 5px;
 }
 
 #nf-version {
-    float: left;
     font-size: 14px;
-    margin-left: 10px;
-    margin-top: 21px;
     font-style: italic;
     color: #aaa;
+    margin: 11px 5px 0px 5px;
+    flex-grow: 1;
 }
 
 #selected-component {
-    float: right;
-    height: 50px;
-    padding: 5px;
-    margin-top: 10px;
     font-size: 20px;
+    margin: 5px 5px 0px 5px;
+}
+
+/* content flex-box containers */
+
+#component-root-container {
+    display: flex;
+    flex-wrap: wrap;
+    align-items: stretch;
+    width: 100%;
+}
+
+#component-listing-container {
+    flex-grow: 1;
+    min-width: 312px;
+    padding: 0px 4px 0px 4px;
+}
+
+#component-usage-container {
+    flex-grow: 4;
+    min-width: 300px;
+    padding: 0px 4px 0px 4px;
 }
 
 /* component listing */
 
 div.component-listing {
-    width: 300px;
-    position: absolute;
-    top: 46px;
-    left: 0;
-    bottom: 40px;
     overflow: auto;
     font-size: 16px;
-    padding: 4px;
 }
 
 div.component-listing div.section {
@@ -161,25 +175,17 @@ div.component-links span.no-components {
 /* component filter control */
 
 #component-filter-controls {
-    width: 308px;
-    height: 40px;
-    position: absolute;
-    bottom: 0;
-    left: 0;
 }
 
 #component-filter-container {
-    height: 24px;
     margin-left: 2px;
-    margin-top: 1px;
 }
 
 #component-filter {
-    padding: 1px;
     font-size: 12px;
     height: 18px;
     line-height: 20px;
-    width: 299px;
+    width: 98%;
     float: left;
 }
 
@@ -195,20 +201,13 @@ input.component-filter-list {
     clear: left; 
     line-height: normal;
     margin-left: 7px;
-    margin-top: 2px;
 }
 
 /* component usage */
 
-#component-usage-container {
-    position: absolute;
-    top: 46px;
-    right: 0px;
-    bottom: 0px;
-    left: 312px;
-    overflow: hidden;
-}
-
 #component-usage {
     overflow: auto;
+    width: 100%;
+    height: 100%;
+    position: absolute;
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi/blob/7db728d2/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/js/application.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/js/application.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/js/application.js
index f22477f..d0e3c57 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/js/application.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/js/application.js
@@ -131,6 +131,8 @@ $(document).ready(function () {
     };
 
     // get the banners if we're not in the shell
+    var bannerHeaderHeight = 0;
+    var bannerFooterHeight = 0;
     var banners = $.Deferred(function (deferred) {
         if (top === window) {
             $.ajax({
@@ -143,32 +145,13 @@ $(document).ready(function () {
                     if (isDefinedAndNotNull(response.banners.headerText) && 
response.banners.headerText !== '') {
                         // update the header text
                         var bannerHeader = 
$('#banner-header').text(response.banners.headerText).show();
-
-                        // show the banner
-                        var updateTop = function (elementId) {
-                            var element = $('#' + elementId);
-                            element.css('top', 
(parseInt(bannerHeader.css('height')) + parseInt(element.css('top'))) + 'px');
-                        };
-
-                        // update the position of elements affected by top 
banners
-                        updateTop('documentation-header');
-                        updateTop('component-listing');
-                        updateTop('component-usage-container');
+                        bannerHeaderHeight = bannerHeader.height();
                     }
 
                     if (isDefinedAndNotNull(response.banners.footerText) && 
response.banners.footerText !== '') {
                         // update the footer text and show it
                         var bannerFooter = 
$('#banner-footer').text(response.banners.footerText).show();
-
-                        var updateBottom = function (elementId) {
-                            var element = $('#' + elementId);
-                            element.css('bottom', 
parseInt(bannerFooter.css('height')) + parseInt(element.css('bottom')) + 'px');
-                        };
-
-                        // update the position of elements affected by bottom 
banners
-                        updateBottom('component-filter-controls');
-                        updateBottom('component-listing');
-                        updateBottom('component-usage-container');
+                        bannerFooterHeight = bannerFooter.height();
                     }
                 }
 
@@ -208,25 +191,111 @@ $(document).ready(function () {
             }
         }).addClass('component-filter-list').val('Filter');
 
-        // get the component usage container to install the window listener
-        var componentUsageContainer = $('#component-usage-container');
+        // get the component containers to install the window listener
+        var documentationHeader = $('#documentation-header');
+        var componentRootContainer = $('#component-root-container');
+        var componentListingContainer = $('#component-listing-container', 
componentRootContainer);
+        var componentListing = $('#component-listing', 
componentListingContainer);
+        var componentFilterControls = $('#component-filter-controls', 
componentRootContainer);
+        var componentUsageContainer = $('#component-usage-container', 
componentUsageContainer);
+        var componentUsage = $('#component-usage', componentUsageContainer);
 
-        // size the iframe accordingly
-        var componentUsage = $('#component-usage').css({
-            width: componentUsageContainer.width(),
-            height: componentUsageContainer.height()
-        });
+        var componentListingContainerPaddingX = 0;
+        componentListingContainerPaddingX += 
parseInt(componentListingContainer.css("padding-right"), 10);
+        componentListingContainerPaddingX += 
parseInt(componentListingContainer.css("padding-left"), 10);
+
+        var componentListingContainerPaddingY = 0;
+        componentListingContainerPaddingY += 
parseInt(componentListingContainer.css("padding-top"), 10);
+        componentListingContainerPaddingY += 
parseInt(componentListingContainer.css("padding-bottom"), 10);
+
+        var componentUsageContainerPaddingX = 0;
+        componentUsageContainerPaddingX += 
parseInt(componentUsageContainer.css("padding-right"), 10);
+        componentUsageContainerPaddingX += 
parseInt(componentUsageContainer.css("padding-left"), 10);
+
+        var componentUsageContainerPaddingY = 0;
+        componentUsageContainerPaddingY += 
parseInt(componentUsageContainer.css("padding-top"), 10);
+        componentUsageContainerPaddingY += 
parseInt(componentUsageContainer.css("padding-bottom"), 10);
+
+        var componentListingContainerMinWidth = 
parseInt(componentListingContainer.css("min-width"), 10) + 
componentListingContainerPaddingX;
+        var componentUsageContainerMinWidth = 
parseInt(componentUsageContainer.css("min-width"), 10) + 
componentUsageContainerPaddingX;
+        var smallDisplayBoundary = componentListingContainerMinWidth + 
componentUsageContainerMinWidth;
+
+        var cssComponentListingNormal = { backgroundColor: "#ffffff" };
+        var cssComponentListingSmall = { backgroundColor: "#fbfbfb" };
 
         // add a window resize listener
         $(window).resize(function () {
-            componentUsage.css({
-                width: componentUsageContainer.width(),
-                height: componentUsageContainer.height()
+            // This -1 is the border-top of #component-usage-container
+            var baseHeight = window.innerHeight - 1;
+            baseHeight -= bannerHeaderHeight;
+            baseHeight -= bannerFooterHeight;
+            baseHeight -= documentationHeader.height();
+
+            // resize component list accordingly
+            if (smallDisplayBoundary > window.innerWidth) {
+                // screen is not wide enough to display content usage
+                // within the same row.
+                componentListingContainer.css(cssComponentListingSmall);
+                componentListingContainer.css({
+                    borderBottom: "1px solid #ddddd8"
+                });
+                componentListing.css({
+                    height: "200px"
+                });
+                // resize the iframe accordingly
+                var componentUsageHeight = baseHeight;
+                if (componentListingContainer.is(":visible")) {
+                    componentUsageHeight -= componentListingContainer.height();
+                    componentUsageHeight -= 1; // border-bottom
+                }
+                componentUsageHeight -= componentListingContainerPaddingY;
+                componentUsageHeight -= componentUsageContainerPaddingY;
+                componentUsage.css({
+                    width: componentUsageContainer.width(),
+                    height: componentUsageHeight
+                });
+                componentUsageContainer.css({
+                    height: componentUsage.height()
+                });
+            } else {
+                componentListingContainer.css(cssComponentListingNormal);
+
+                var componentListingHeight = baseHeight;
+                componentListingHeight -= componentFilterControls.height();
+                componentListingHeight -= componentListingContainerPaddingY;
+                componentListing.css({
+                    height: componentListingHeight
+                });
+
+                // resize the iframe accordingly
+                componentUsage.css({
+                    width: componentUsageContainer.width(),
+                    height: baseHeight - componentUsageContainerPaddingY
+                });
+                componentUsageContainer.css({
+                    height: componentUsage.height()
+                });
+                componentListingContainer.css({
+                    borderBottom: "0px"
+                });
+            }
+        });
+
+
+        var toggleComponentListing = $('#component-list-toggle-link');
+        toggleComponentListing.click(function(){
+            componentListingContainer.toggle(0, function(){
+                toggleComponentListing.text($(this).is(":visible") ? "-" : 
"+");
+                $(window).resize();
             });
         });
 
         // listen for loading of the iframe to update the title
         $('#component-usage').on('load', function () {
+
+            // resize window accordingly.
+            $(window).resize();
+
             var componentName = '';
             var href = $(this).contents().get(0).location.href;
 

Reply via email to