diff options
Diffstat (limited to 'mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/controllers/nf-ng-canvas-global-menu-controller.js')
-rw-r--r-- | mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/controllers/nf-ng-canvas-global-menu-controller.js | 501 |
1 files changed, 501 insertions, 0 deletions
diff --git a/mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/controllers/nf-ng-canvas-global-menu-controller.js b/mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/controllers/nf-ng-canvas-global-menu-controller.js new file mode 100644 index 0000000..b22f40a --- /dev/null +++ b/mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/controllers/nf-ng-canvas-global-menu-controller.js @@ -0,0 +1,501 @@ +/* + * 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. + * + * Modifications to the original nifi code for the ONAP project are made + * available under the Apache License, Version 2.0 + */ + +/* global define, module, require, exports */ + +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + define(['jquery', + 'nf.Common', + 'nf.QueueListing', + 'nf.Shell', + 'nf.PolicyManagement', + 'nf.ClusterSummary', + 'nf.ErrorHandler', + 'nf.Settings', + 'nf.CanvasUtils'], + function ($, nfCommon, nfQueueListing, nfShell, nfPolicyManagement, nfClusterSummary, nfErrorHandler, nfSettings, nfCanvasUtils) { + return (nf.ng.Canvas.GlobalMenuCtrl = factory($, nfCommon, nfQueueListing, nfShell, nfPolicyManagement, nfClusterSummary, 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.PolicyManagement'), + require('nf.ClusterSummary'), + 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.PolicyManagement, + root.nf.ClusterSummary, + root.nf.ErrorHandler, + root.nf.Settings, + root.nf.CanvasUtils); + } +}(this, function ($, nfCommon, nfQueueListing, nfShell, nfPolicyManagement, nfClusterSummary, 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 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 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'); + } + } + }; + + /** + * The import model menu item controller. + */ + this.importModel = { + + /** + * The import model menu item's shell controller. + */ + shell: { + + /** + * Launch the import model shell. + */ + launch: function () { + $("#model-type").val("-"); + nfShell.showContent('#import-model'); + } + } + }; + + /** + * The import component specificaton menu item controller. + */ + this.importComponent = { + + /** + * The import component specification menu item's shell controller. + */ + shell: { + + /** + * Launch the import component shell. + */ + launch: function () { + nfShell.showContent('#import-component'); + } + } + }; + + /** + * The import data format menu item controller. + */ + this.importDataFormat = { + + /** + * The import data format menu item's shell controller. + */ + shell: { + + /** + * Launch the import data format shell. + */ + launch: function () { + nfShell.showContent('#import-data-format'); + } + } + }; + } + + GlobalMenuCtrl.prototype = { + constructor: GlobalMenuCtrl, + + /** + * Initialize the global menu controls. + */ + init: function () { + this.about.init(); + } + } + + var globalMenuCtrl = new GlobalMenuCtrl(); + return globalMenuCtrl; + }; +})); |