summaryrefslogtreecommitdiffstats
path: root/mod/designtool/designtool-web/src/main/webapp/js
diff options
context:
space:
mode:
Diffstat (limited to 'mod/designtool/designtool-web/src/main/webapp/js')
-rw-r--r--mod/designtool/designtool-web/src/main/webapp/js/jquery/dcae-mod.js167
-rw-r--r--mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/controllers/nf-ng-canvas-global-menu-controller.js501
-rw-r--r--mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/nf-settings.js23
3 files changed, 656 insertions, 35 deletions
diff --git a/mod/designtool/designtool-web/src/main/webapp/js/jquery/dcae-mod.js b/mod/designtool/designtool-web/src/main/webapp/js/jquery/dcae-mod.js
index 879739c..48c5d8e 100644
--- a/mod/designtool/designtool-web/src/main/webapp/js/jquery/dcae-mod.js
+++ b/mod/designtool/designtool-web/src/main/webapp/js/jquery/dcae-mod.js
@@ -19,7 +19,6 @@ limitations under the License.
console.log("loading dcae-mod");
var dt_id;
- var hostname;
/**
* @desc: on load of page, makes submit button disabled. Also makes an api call to get the host IP of the current instance
@@ -27,19 +26,7 @@ console.log("loading dcae-mod");
$(document).ready(function (){
if(dt_id == null){ $('#operate-submit-btn').prop('disabled', true); }
- //get hostname
- $.ajax({
- type: 'GET',
- url: '../nifi-api/flow/config',
- dataType: 'json',
- contentType: 'application/json',
- success: function(data){
- hostname= data.flowConfiguration.dcaeDistributorApiHostname;
-
- //function call: invokes api to refresh the list of Envs
- if(hostname){ getDistributionTargets(); }
- }
- });
+ getDistributionTargets();
});
/**
@@ -61,7 +48,7 @@ console.log("loading dcae-mod");
$.ajax({
type: 'GET',
- url: hostname+'/distribution-targets',
+ url: '/distributor/distribution-targets',
dataType: 'json',
contentType: 'application/json',
success: function(data){
@@ -97,7 +84,7 @@ console.log("loading dcae-mod");
$.ajax({
type: 'POST',
data: JSON.stringify(request),
- url: hostname+'/distribution-targets/'+dt_id+'/process-groups',
+ url: '/distributor/distribution-targets/'+dt_id+'/process-groups',
dataType: 'json',
contentType: 'application/json',
success: function(data){
@@ -133,3 +120,151 @@ console.log("loading dcae-mod");
* @desc: event handler for Close icon of Setting/ Distribution Env CRUD dialog : invokes api to refresh the list of Envs
*/
var onCloseSettings= function(){ getDistributionTargets(); };
+
+
+function uecvalue(n) {
+ return encodeURIComponent("" + $(n).val());
+}
+
+function esc(s) {
+ return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
+}
+
+function onBoard() {
+ $("#onboarding-in-progress").show();
+ var url = "/acumos-adapter/onboard.js?acumos=" + uecvalue("#furl");
+ if ($("#cat-menu").val() != "*") {
+ url += "&catalogId=" + uecvalue("#cat-menu");
+ if ($("#sol-menu").val() != "*") {
+ url += "&solutionId=" + uecvalue("#sol-menu");
+ if ($("#rev-menu").val() != "*") {
+ url += "&revisionId=" + uecvalue("#rev-menu");
+ }
+ }
+ }
+ var xhr = new XMLHttpRequest();
+ xhr.onerror = function() {
+ $("#onboarding-in-progress").hide();
+ alert("Onboarding failed");
+ }
+ xhr.onload = function() {
+ if (this.status < 400) {
+ $("#onboarding-in-progress").hide();
+ alert("Onboarding successful");
+ } else {
+ alert("Onboarding error: " + this.statusText);
+ }
+ }
+ xhr.open("POST", url);
+ xhr.send();
+}
+
+function chooseSolution() {
+ if ($("#sol-menu").val() == "*") {
+ _updatevis();
+ } else {
+ lookupItem("#ac-revs", "#rev-menu", "/acumos-adapter/listRevisions.js?acumos=" + uecvalue("#furl") + "&solutionId=" + uecvalue("#sol-menu"));
+ }
+}
+
+function chooseCatalog() {
+ if ($("#cat-menu").val() == "*") {
+ _updatevis();
+ } else {
+ lookupItem("#ac-sols", "#sol-menu", "/acumos-adapter/listSolutions.js?acumos=" + uecvalue("#furl") + "&catalogId=" + uecvalue("#cat-menu"));
+ }
+}
+
+function lookupCatalogs() {
+ $("#onboard").show();
+ lookupItem("#c-acumos", "#cat-menu", "/acumos-adapter/listCatalogs.js?acumos=" + uecvalue("#furl"));
+}
+
+function lookupItem(dblock, smenu, url) {
+ var xhr = new XMLHttpRequest();
+ var xmenu = $(smenu);
+ xmenu[0].options.length = 1;
+ xmenu.val("*");
+ xhr.onerror = function() {
+ alert("Error querying remote Acumos system");
+ $(dblock).hide();
+ }
+ xhr.onload = function() {
+ var xresp = JSON.parse(this.response);
+ var i;
+ for (i = 0; i < xresp.length; i++) {
+ var option = document.createElement("option");
+ option.text = esc(xresp[i].name);
+ option.value = xresp[i].id;
+ xmenu[0].add(option);
+ }
+ if (xresp.length == 0) {
+ $(dblock).hide();
+ } else {
+ $(dblock).show();
+ }
+ _updatevis();
+ };
+ xhr.open("GET", url);
+ xhr.send();
+}
+
+function setModelType() {
+ if ($("#model-type").val() == "mtAcumos") {
+ $("#furl").val("");
+ $("#mt-acumos").show();
+ }
+ _updatevis();
+}
+
+function _updatevis() {
+ if ($("#model-type").val() != "mtAcumos") {
+ $("#mt-acumos").hide();
+ $("#furl").val("");
+ }
+ if ($("#furl").val() == "") {
+ $("#c-acumos").hide();
+ $("#onboard").hide();
+ $("#cat-menu").val("*");
+ }
+ if ($("#cat-menu").val() == "*") {
+ $("#ac-sols").hide();
+ $("#sol-menu").val("");
+ }
+ if ($("#sol-menu").val() == "*") {
+ $("#ac-revs").hide();
+ $("#rev-menu").val("");
+ }
+}
+
+function onBoardComponent() {
+ _onBoardFile("#cspec", "/onboarding/components");
+}
+
+function onBoardDataFormat() {
+ _onBoardFile("#dfspec", "/onboarding/dataformats");
+}
+
+function _onBoardFile(source, url) {
+ reader = new FileReader();
+ reader.onerror = function() {
+ alert("Error reading file");
+ }
+ reader.onload = function(evt) {
+ xhr = new XMLHttpRequest();
+ xhr.onload = function() {
+ if (this.status >= 400) {
+ alert("File upload failed " + this.statusText);
+ } else {
+ alert("File upload complete");
+ }
+ }
+ xhr.onerror = function() {
+ alert("File upload failed");
+ }
+ xhr.open("POST", url);
+ xhr.overrideMimeType("application/json");
+ xhr.send(evt.target.result);
+ };
+ reader.readAsBinaryString($(source)[0].files[0]);
+}
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;
+ };
+}));
diff --git a/mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/nf-settings.js b/mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/nf-settings.js
index 8c61dac..bede3f1 100644
--- a/mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/nf-settings.js
+++ b/mod/designtool/designtool-web/src/main/webapp/js/nf/canvas/nf-settings.js
@@ -103,21 +103,6 @@
};
- var dcaeDistributorApiHostname;
-
- //get hostname
- $.ajax({
- type: 'GET',
- url: '../nifi-api/flow/config',
- dataType: 'json',
- contentType: 'application/json',
- success: function(data){
- dcaeDistributorApiHostname= data.flowConfiguration.dcaeDistributorApiHostname;
- console.log(dcaeDistributorApiHostname);
- }
- });
-
-
/**
* Gets the controller services table.
*
@@ -573,7 +558,7 @@
// add the new distribution environment
var addDistributionEnvironment= $.ajax({
type: 'POST',
- url: dcaeDistributorApiHostname+'/distribution-targets',
+ url: '/distributor/distribution-targets',
data: JSON.stringify(environmentEntity),
dataType: 'json',
contentType: 'application/json'
@@ -670,7 +655,7 @@
// updating distribution environment
var updateDistributionEnvironment = $.ajax({
type: 'PUT',
- url: dcaeDistributorApiHostname+'/distribution-targets/'+environmentEntity.id,
+ url: '/distributor/distribution-targets/'+environmentEntity.id,
data: JSON.stringify(requestEnvironmentEntity),
dataType: 'json',
contentType: 'application/json'
@@ -1824,7 +1809,7 @@
console.log(environmentEntity);
$.ajax({
type: 'DELETE',
- url: dcaeDistributorApiHostname+'/distribution-targets/'+environmentEntity.id,
+ url: '/distributor/distribution-targets/'+environmentEntity.id,
dataType: 'json'
}).done(function (response) {
console.log(response);
@@ -2023,7 +2008,7 @@
console.log("in loadDistributionEnvironments.. ");
return $.ajax({
type: 'GET',
- url: dcaeDistributorApiHostname+'/distribution-targets',
+ url: '/distributor/distribution-targets',
dataType: 'json'
}).done(function (response) {
console.log(response);