Added: nifi/site/trunk/docs/nifi-docs/js/application.js
URL: 
http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/js/application.js?rev=1811008&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/js/application.js (added)
+++ nifi/site/trunk/docs/nifi-docs/js/application.js Tue Oct  3 13:30:16 2017
@@ -0,0 +1,400 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* global top */
+
+$(document).ready(function () {
+
+    var isUndefined = function (obj) {
+        return typeof obj === 'undefined';
+    };
+
+    var isNull = function (obj) {
+        return obj === null;
+    };
+
+    var isDefinedAndNotNull = function (obj) {
+        return !isUndefined(obj) && !isNull(obj);
+    };
+
+    /**
+     * Get the filter text.
+     * 
+     * @returns {unresolved}
+     */
+    var getFilterText = function () {
+        var filter = '';
+        var ruleFilter = $('#component-filter');
+        if (!ruleFilter.hasClass('component-filter-list')) {
+            filter = ruleFilter.val();
+        }
+        return filter;
+    };
+
+    var applyComponentFilter = function (componentContainer) {
+        var matchingComponents = 0;
+        var componentLinks = $(componentContainer).find('a.component-link, 
a.document-link');
+
+        if (componentLinks.length === 0) {
+            return matchingComponents;
+        }
+
+        // get the filter text
+        var filter = getFilterText();
+        if (filter !== '') {
+            var filterExp = new RegExp(filter, 'i');
+
+            // update the displayed rule count
+            $.each(componentLinks, function (_, componentLink) {
+                var a = $(componentLink);
+                var li = a.closest('li.component-item');
+
+                // get the rule text for matching
+                var componentName = a.text();
+
+                // see if any of the text from this rule matches
+                var componentMatches = componentName.search(filterExp) >= 0;
+
+                // handle whether the rule matches
+                if (componentMatches === true) {
+                    li.show();
+                    matchingComponents++;
+                } else {
+                    // hide the rule
+                    li.hide();
+                }
+            });
+        } else {
+            // ensure every rule is visible
+            componentLinks.closest('li.component-item').show();
+
+            // set the number of displayed rules
+            matchingComponents = componentLinks.length;
+        }
+
+        // show whether there are status if appropriate
+        var noMatching = componentContainer.find('span.no-matching');
+        if (matchingComponents === 0) {
+            noMatching.show();
+        } else {
+            noMatching.hide();
+        }
+
+        return matchingComponents;
+    };
+
+    var applyFilter = function () {
+        var matchingGeneral = applyComponentFilter($('#general-links'));
+        var matchingProcessors = applyComponentFilter($('#processor-links'));
+        var matchingControllerServices = 
applyComponentFilter($('#controller-service-links'));
+        var matchingReportingTasks = 
applyComponentFilter($('#reporting-task-links'));
+        var matchingDeveloper = applyComponentFilter($('#developer-links'));
+
+        // update the rule count
+        $('#displayed-components').text(matchingGeneral + matchingProcessors + 
matchingControllerServices + matchingReportingTasks + matchingDeveloper);
+    };
+
+    var selectComponent = function (selectedExtension, selectedBundleGroup, 
selectedBundleArtifact, selectedArtifactVersion) {
+        var componentLinks = $('a.component-link');
+
+        // consider each link
+        $.each(componentLinks, function () {
+            var componentLink = $(this);
+            var item = componentLink.closest('li.component-item');
+            var extension = item.find('span.extension-class').text();
+            var group = item.find('span.bundle-group').text();
+            var artifact = item.find('span.bundle-artifact').text();
+            var version = item.find('span.bundle-version').text();
+
+            if (extension === selectedExtension && group === 
selectedBundleGroup
+                && artifact === selectedBundleArtifact && version === 
selectedArtifactVersion) {
+
+                // remove all selected styles
+                $('li.component-item').removeClass('selected');
+
+                // select this links item
+                item.addClass('selected');
+
+                // set the header
+                $('#selected-component').text(componentLink.text());
+
+                // stop iteration
+                return false;
+            }
+        });
+    };
+
+    var selectDocument = function (documentName) {
+        var documentLinks = $('a.document-link');
+
+        // consider each link
+        $.each(documentLinks, function () {
+            var documentLink = $(this);
+            if (documentName === $.trim(documentLink.text())) {
+                // remove all selected styles
+                $('li.component-item').removeClass('selected');
+
+                // select this links item
+                documentLink.closest('li.component-item').addClass('selected');
+
+                // set the header
+                $('#selected-component').text(documentLink.text());
+
+                // stop iteration
+                return false;
+            }
+        });
+    };
+
+    // 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({
+                type: 'GET',
+                url: '../nifi-api/flow/banners',
+                dataType: 'json'
+            }).then(function (response) {
+                // ensure the banners response is specified
+                if (isDefinedAndNotNull(response.banners)) {
+                    if (isDefinedAndNotNull(response.banners.headerText) && 
response.banners.headerText !== '') {
+                        // update the header text
+                        var bannerHeader = 
$('#banner-header').text(response.banners.headerText).show();
+                        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();
+                        bannerFooterHeight = bannerFooter.height();
+                    }
+                }
+
+                deferred.resolve();
+            }, function () {
+                deferred.reject();
+            });
+        } else {
+            deferred.resolve();
+        }
+    }).promise();
+
+    // get the about details
+    var about = $.ajax({
+        type: 'GET',
+        url: '../nifi-api/flow/about',
+        dataType: 'json'
+    }).done(function (response) {
+        var aboutDetails = response.about;
+
+        // set the document title and the about title
+        $('#nf-version').text(aboutDetails.version);
+    });
+
+    // once the banners have loaded, function with remainder of the page
+    $.when(banners, about).always(function () {
+        // define the function for filtering the list
+        $('#component-filter').keyup(function () {
+            applyFilter();
+        }).focus(function () {
+            if ($(this).hasClass('component-filter-list')) {
+                $(this).removeClass('component-filter-list').val('');
+            }
+        }).blur(function () {
+            if ($(this).val() === '') {
+                $(this).addClass('component-filter-list').val('Filter');
+            }
+        }).addClass('component-filter-list').val('Filter');
+
+        // 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);
+
+        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 () {
+            // 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 bundleAndComponent = '';
+            var href = $(this).contents().get(0).location.href;
+
+            // see if the href ends in index.htm[l]
+            var indexOfIndexHtml = href.indexOf('index.htm');
+            if (indexOfIndexHtml >= 0) {
+                href = href.substring(0, indexOfIndexHtml);
+            }
+
+            // remove the trailing separator
+            if (href.length > 0) {
+                var indexOfSeparator = href.lastIndexOf('/');
+                if (indexOfSeparator === href.length - 1) {
+                    href = href.substring(0, indexOfSeparator);
+                }
+            }
+
+            // remove the beginning bits
+            if (href.length > 0) {
+                var path = 'nifi-docs/components';
+                var indexOfPath = href.indexOf(path);
+                if (indexOfPath >= 0) {
+                    var indexOfBundle = indexOfPath + path.length + 1;
+                    if (indexOfBundle < href.length) {
+                        bundleAndComponent = href.substr(indexOfBundle);
+                    }
+                }
+            }
+
+            // if we could extract the bundle coordinates
+            if (bundleAndComponent !== '') {
+                var bundleTokens = bundleAndComponent.split('/');
+                if (bundleTokens.length === 4) {
+                    selectComponent(bundleTokens[3], bundleTokens[0], 
bundleTokens[1], bundleTokens[2]);
+                }
+            }
+        });
+        
+        // listen for on the rest api and user guide and developer guide and 
admin guide and overview
+        $('a.document-link').on('click', function() {
+            selectDocument($(this).text());
+        });
+
+        // get the initial selection
+        var initialLink = $('a.document-link:first');
+        var initialSelectionType = $.trim($('#initial-selection-type').text());
+
+        if (initialSelectionType !== '') {
+            var initialSelectionBundleGroup = 
$.trim($('#initial-selection-bundle-group').text());
+            var initialSelectionBundleArtifact = 
$.trim($('#initial-selection-bundle-artifact').text());
+            var initialSelectionBundleVersion = 
$.trim($('#initial-selection-bundle-version').text());
+
+            $('a.component-link').each(function () {
+                var componentLink = $(this);
+                var item = componentLink.closest('li.component-item');
+                var extension = item.find('span.extension-class').text();
+                var group = item.find('span.bundle-group').text();
+                var artifact = item.find('span.bundle-artifact').text();
+                var version = item.find('span.bundle-version').text();
+
+                if (extension === initialSelectionType && group === 
initialSelectionBundleGroup
+                        && artifact === initialSelectionBundleArtifact && 
version === initialSelectionBundleVersion) {
+                    initialLink = componentLink;
+                    return false;
+                }
+            });
+        }
+
+        // click the first link
+        initialLink[0].click();
+    });
+});

Added: nifi/site/trunk/docs/nifi-docs/rest-api/images/bgNifiLogo.png
URL: 
http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/rest-api/images/bgNifiLogo.png?rev=1811008&view=auto
==============================================================================
Binary file - no diff available.

Propchange: nifi/site/trunk/docs/nifi-docs/rest-api/images/bgNifiLogo.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: nifi/site/trunk/docs/nifi-docs/rest-api/images/nifi16.ico
URL: 
http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/rest-api/images/nifi16.ico?rev=1811008&view=auto
==============================================================================
Binary file - no diff available.

Propchange: nifi/site/trunk/docs/nifi-docs/rest-api/images/nifi16.ico
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream


Reply via email to