| /* |
| * 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 define, module, require, exports */ |
| |
| (function (root, factory) { |
| if (typeof define === 'function' && define.amd) { |
| define(['jquery', |
| 'nf.Common', |
| 'nf.QueueListing', |
| 'nf.Shell', |
| 'nf.ParameterContexts', |
| 'nf.PolicyManagement', |
| 'nf.ClusterSummary', |
| 'nf.StatusHistory', |
| 'nf.ErrorHandler', |
| 'nf.Settings', |
| 'nf.CanvasUtils'], |
| function ($, nfCommon, nfQueueListing, nfShell, nfParameterContexts, nfPolicyManagement, nfClusterSummary, nfStatusHistory, nfErrorHandler, nfSettings, nfCanvasUtils) { |
| return (nf.ng.Canvas.GlobalMenuCtrl = factory($, nfCommon, nfQueueListing, nfShell, nfPolicyManagement, nfClusterSummary, nfStatusHistory, nfErrorHandler, nfSettings, nfCanvasUtils)); |
| }); |
| } else if (typeof exports === 'object' && typeof module === 'object') { |
| module.exports = (nf.ng.Canvas.GlobalMenuCtrl = |
| factory(require('jquery'), |
| require('nf.Common'), |
| require('nf.QueueListing'), |
| require('nf.Shell'), |
| require('nf.ParameterContexts'), |
| require('nf.PolicyManagement'), |
| require('nf.ClusterSummary'), |
| require('nf.StatusHistory'), |
| require('nf.ErrorHandler'), |
| require('nf.Settings'), |
| require('nf.CanvasUtils'))); |
| } else { |
| nf.ng.Canvas.GlobalMenuCtrl = factory(root.$, |
| root.nf.Common, |
| root.nf.QueueListing, |
| root.nf.Shell, |
| root.nf.ParameterContexts, |
| root.nf.PolicyManagement, |
| root.nf.ClusterSummary, |
| root.nf.StatusHistory, |
| root.nf.ErrorHandler, |
| root.nf.Settings, |
| root.nf.CanvasUtils); |
| } |
| }(this, function ($, nfCommon, nfQueueListing, nfShell, nfParameterContexts, nfPolicyManagement, nfClusterSummary, nfStatusHistory, nfErrorHandler, nfSettings, nfCanvasUtils) { |
| 'use strict'; |
| |
| return function (serviceProvider) { |
| 'use strict'; |
| |
| var config = { |
| urls: { |
| helpDocument: '../nifi-docs/documentation', |
| controllerAbout: '../nifi-api/flow/about' |
| } |
| }; |
| |
| function GlobalMenuCtrl(serviceProvider) { |
| |
| /** |
| * The summary menu item controller. |
| */ |
| this.summary = { |
| |
| /** |
| * The summary menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the summary shell. |
| */ |
| launch: function () { |
| nfShell.showPage('summary'); |
| } |
| } |
| }; |
| |
| /** |
| * The counters menu item controller. |
| */ |
| this.counters = { |
| |
| /** |
| * The counters menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the counters shell. |
| */ |
| launch: function () { |
| if (nfCommon.canAccessCounters()) { |
| nfShell.showPage('counters'); |
| } |
| } |
| } |
| }; |
| |
| /** |
| * The bulletin board menu item controller. |
| */ |
| this.bulletinBoard = { |
| |
| /** |
| * The bulletin board menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the bulletin board shell. |
| */ |
| launch: function () { |
| nfShell.showPage('bulletin-board'); |
| } |
| } |
| }; |
| |
| /** |
| * The data provenance menu item controller. |
| */ |
| this.dataProvenance = { |
| |
| /** |
| * The data provenance menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the data provenance shell. |
| */ |
| launch: function () { |
| if (nfCommon.canAccessProvenance()) { |
| nfShell.showPage('provenance'); |
| } |
| } |
| } |
| }; |
| |
| /** |
| * The controller settings menu item controller. |
| */ |
| this.controllerSettings = { |
| |
| /** |
| * The controller settings menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the settings shell. |
| */ |
| launch: function () { |
| nfSettings.showSettings(); |
| } |
| } |
| }; |
| |
| /** |
| * The parameter contexts menu item controller. |
| */ |
| this.parameterContexts = { |
| |
| /** |
| * The parameter contexts menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the parameter contexts shell. |
| */ |
| launch: function () { |
| nfParameterContexts.showParameterContexts(); |
| } |
| } |
| }; |
| |
| /** |
| * The cluster menu item controller. |
| */ |
| this.cluster = { |
| |
| /** |
| * Determines if the cluster menu item is enabled. |
| * |
| * @returns {*|boolean} |
| */ |
| visible: function () { |
| return nfClusterSummary.isConnectedToCluster(); |
| }, |
| |
| /** |
| * The cluster menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the cluster shell. |
| */ |
| launch: function () { |
| if (nfCommon.canAccessController()) { |
| nfShell.showPage('cluster'); |
| } |
| } |
| } |
| }; |
| |
| /** |
| * The flow config history menu item controller. |
| */ |
| this.flowConfigHistory = { |
| |
| /** |
| * The flow config history menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the history shell. |
| */ |
| launch: function () { |
| nfShell.showPage('history'); |
| } |
| } |
| }; |
| |
| |
| /** |
| * The node status history menu item controller. |
| */ |
| this.nodeStatusHistory = { |
| |
| /** |
| * The node status history menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the history shell. |
| */ |
| launch: function () { |
| nfStatusHistory.showNodeChart(); |
| } |
| } |
| }; |
| |
| /** |
| * The users menu item controller. |
| */ |
| this.users = { |
| |
| /** |
| * The users menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the users shell. |
| */ |
| launch: function () { |
| if (nfCommon.canAccessTenants()) { |
| nfShell.showPage('users'); |
| } |
| } |
| } |
| }; |
| |
| /** |
| * The policies menu item controller. |
| */ |
| this.policies = { |
| |
| /** |
| * The policies menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the policies shell. |
| */ |
| launch: function () { |
| if (nfCommon.canModifyPolicies() && nfCommon.canAccessTenants()) { |
| nfPolicyManagement.showGlobalPolicies(); |
| } |
| } |
| } |
| }; |
| |
| /** |
| * The templates menu item controller. |
| */ |
| this.templates = { |
| |
| /** |
| * The templates menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the templates shell. |
| */ |
| launch: function () { |
| nfShell.showPage('templates?' + $.param({ |
| groupId: nfCanvasUtils.getGroupId() |
| })); |
| } |
| } |
| }; |
| |
| /** |
| * The help menu item controller. |
| */ |
| this.help = { |
| |
| /** |
| * The help menu item's shell controller. |
| */ |
| shell: { |
| |
| /** |
| * Launch the help documentation shell. |
| */ |
| launch: function () { |
| nfShell.showPage(config.urls.helpDocument); |
| } |
| } |
| }; |
| |
| /** |
| * The about menu item controller. |
| */ |
| this.about = { |
| |
| /** |
| * Initialize the about details. |
| */ |
| init: function () { |
| // get the about details |
| $.ajax({ |
| type: 'GET', |
| url: config.urls.controllerAbout, |
| dataType: 'json' |
| }).done(function (response) { |
| var aboutDetails = response.about; |
| // set the document title and the about title |
| document.title = aboutDetails.title; |
| $('#nf-version').text(aboutDetails.version); |
| var showVersionDetail = false; |
| if (aboutDetails.buildTag && aboutDetails.buildTag !== 'HEAD') { |
| $('#nf-about-build-tag').text(aboutDetails.buildTag); |
| $('#nf-version-detail-tag').show(); |
| showVersionDetail = true; |
| } |
| if (aboutDetails.buildRevision) { |
| $('#nf-about-build-revision').text(aboutDetails.buildRevision); |
| $('#nf-about-build-branch').text(aboutDetails.buildBranch); |
| $('#nf-version-detail-commit').show(); |
| showVersionDetail = true |
| } |
| if (aboutDetails.buildTimestamp) { |
| $('#nf-about-build-timestamp').text(aboutDetails.buildTimestamp); |
| $('#nf-version-detail-timestamp').show(); |
| showVersionDetail = true; |
| } |
| if (showVersionDetail) { |
| $('#nf-version-detail').show(); |
| } |
| |
| // store the content viewer url if available |
| if (!nfCommon.isBlank(aboutDetails.contentViewerUrl)) { |
| $('#nifi-content-viewer-url').text(aboutDetails.contentViewerUrl); |
| nfQueueListing.initFlowFileDetailsDialog(); |
| } |
| }).fail(nfErrorHandler.handleAjaxError); |
| |
| this.modal.init(); |
| }, |
| |
| /** |
| * The about menu item's modal controller. |
| */ |
| modal: { |
| |
| /** |
| * Gets the modal element. |
| * |
| * @returns {*|jQuery|HTMLElement} |
| */ |
| getElement: function () { |
| return $('#nf-about'); |
| }, |
| |
| /** |
| * Initialize the modal. |
| */ |
| init: function () { |
| var aboutModal = this; |
| |
| var resizeAbout = function () { |
| var dialog = $(this); |
| var top = $('#nf-about-pic-container').height() + $('.dialog-header').height() + 10; //10 for padding-top |
| dialog.find('.dialog-content').css('top', top); |
| }; |
| |
| this.getElement().modal({ |
| scrollableContentStyle: 'scrollable', |
| headerText: 'About Apache NiFi', |
| handler: { |
| resize: resizeAbout |
| }, |
| buttons: [{ |
| buttonText: 'Ok', |
| color: { |
| base: '#728E9B', |
| hover: '#004849', |
| text: '#ffffff' |
| }, |
| handler: { |
| click: function () { |
| aboutModal.hide(); |
| } |
| } |
| }] |
| }); |
| }, |
| |
| /** |
| * Updates the modal config. |
| * |
| * @param {string} name The name of the property to update. |
| * @param {object|array} config The config for the `name`. |
| */ |
| update: function (name, config) { |
| this.getElement().modal(name, config); |
| }, |
| |
| /** |
| * Show the modal |
| */ |
| show: function () { |
| this.getElement().modal('show'); |
| }, |
| |
| /** |
| * Hide the modal |
| */ |
| hide: function () { |
| this.getElement().modal('hide'); |
| } |
| } |
| } |
| } |
| |
| GlobalMenuCtrl.prototype = { |
| constructor: GlobalMenuCtrl, |
| |
| /** |
| * Initialize the global menu controls. |
| */ |
| init: function () { |
| this.about.init(); |
| } |
| }; |
| |
| var globalMenuCtrl = new GlobalMenuCtrl(); |
| return globalMenuCtrl; |
| }; |
| })); |