summaryrefslogtreecommitdiffstats
path: root/mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/controllers/nf-ng-canvas-global-menu-controller.js
diff options
context:
space:
mode:
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.js501
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;
+ };
+}));