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
|