http://git-wip-us.apache.org/repos/asf/nifi/blob/ff98d823/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-funnel.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-funnel.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-funnel.js index 555450e..d042286 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-funnel.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-funnel.js @@ -45,7 +45,7 @@ nf.Funnel = (function () { */ var select = function () { return funnelContainer.selectAll('g.funnel').data(funnelMap.values(), function (d) { - return d.component.id; + return d.id; }); }; @@ -63,7 +63,7 @@ nf.Funnel = (function () { var funnel = entered.append('g') .attr({ 'id': function (d) { - return 'id-' + d.component.id; + return 'id-' + d.id; }, 'class': 'funnel component' }) @@ -100,9 +100,9 @@ nf.Funnel = (function () { funnel.call(nf.Selectable.activate).call(nf.ContextMenu.activate); // only support dragging and connecting when appropriate - if (nf.Common.isDFM()) { - funnel.call(nf.Draggable.activate).call(nf.Connectable.activate); - } + funnel.filter(function (d) { + return d.accessPolicy.canWrite && d.accessPolicy.canRead; + }).call(nf.Draggable.activate).call(nf.Connectable.activate); return funnel; }; @@ -142,28 +142,27 @@ nf.Funnel = (function () { /** * Populates the graph with the specified funnels. * - * @argument {object | array} funnels The funnels to add + * @argument {object | array} funnelEntities The funnels to add * @argument {boolean} selectAll Whether or not to select the new contents */ - add: function (funnels, selectAll) { + add: function (funnelEntities, selectAll) { selectAll = nf.Common.isDefinedAndNotNull(selectAll) ? selectAll : false; - var add = function (funnel) { + var add = function (funnelEntity) { // add the funnel - funnelMap.set(funnel.id, { + funnelMap.set(funnelEntity.id, $.extend({ type: 'Funnel', - component: funnel, dimensions: dimensions - }); + }, funnelEntity)); }; // determine how to handle the specified funnel status - if ($.isArray(funnels)) { - $.each(funnels, function (_, funnel) { - add(funnel); + if ($.isArray(funnelEntities)) { + $.each(funnelEntities, function (_, funnelEntity) { + add(funnelEntity); }); } else { - add(funnels); + add(funnelEntities); } // apply the selection and handle all new processors @@ -211,7 +210,7 @@ nf.Funnel = (function () { url: funnel.uri, dataType: 'json' }).done(function (response) { - nf.Funnel.set(response.funnel); + nf.Funnel.set(response); }); } }, @@ -230,38 +229,31 @@ nf.Funnel = (function () { * will set each funnel. If it is not an array, it will * attempt to set the specified funnel. * - * @param {object | array} funnels + * @param {object | array} funnelEntities */ - set: function (funnels) { - var set = function (funnel) { - if (funnelMap.has(funnel.id)) { + set: function (funnelEntities) { + var set = function (funnelEntity) { + if (funnelMap.has(funnelEntity.id)) { // update the current entry - var funnelEntry = funnelMap.get(funnel.id); - funnelEntry.component = funnel; - + var funnelEntry = funnelMap.get(funnelEntity.id); + $.extend(funnelEntry, funnelEntity); + // update the connection in the UI - d3.select('#id-' + funnel.id).call(updateFunnels); + d3.select('#id-' + funnelEntity.id).call(updateFunnels); } }; // determine how to handle the specified funnel status - if ($.isArray(funnels)) { - $.each(funnels, function (_, funnel) { - set(funnel); + if ($.isArray(funnelEntities)) { + $.each(funnelEntities, function (_, funnelEntity) { + set(funnelEntity); }); } else { - set(funnels); + set(funnelEntities); } }, /** - * Returns the entity key when marshalling an entity of this type. - */ - getEntityKey: function (d) { - return 'funnel'; - }, - - /** * Removes the specified funnel. * * @param {array|string} funnels The funnel id
http://git-wip-us.apache.org/repos/asf/nifi/blob/ff98d823/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js index f3d0738..5bf3e9e 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js @@ -156,7 +156,7 @@ nf.GoTo = (function () { var addDestinationInputPort = function (container, connection) { // get the remote process group return getProcessGroup(connection.destination.groupId).done(function (response) { - var processGroup = response.processGroup; + var processGroup = response.component; // process group var downstreamComponent = $('<div class="destination-component"></div>').appendTo(container); @@ -263,7 +263,7 @@ nf.GoTo = (function () { var addSourceOutputPort = function (container, connection) { // get the remote process group return getProcessGroup(connection.source.groupId).done(function (response) { - var processGroup = response.processGroup; + var processGroup = response.component; // process group var sourceComponent = $('<div class="source-component"></div>').appendTo(container); @@ -364,7 +364,7 @@ nf.GoTo = (function () { // add the destination for each connection $.each(connections, function (_, connection) { // only show connections for which this selection is the source - if (connection.source.id === selectionData.component.id) { + if (connection.source.id === selectionData.id) { addConnection(connection); } }); @@ -403,7 +403,7 @@ nf.GoTo = (function () { // add the source for each connection $.each(connections, function (_, connection) { // only show connections for which this selection is the destination - if (connection.destination.id === selectionData.component.id) { + if (connection.destination.id === selectionData.id) { addConnection(connection); } }); @@ -442,7 +442,7 @@ nf.GoTo = (function () { // add the destination for each connection $.each(connections, function (_, connection) { // only show connections for which this selection is the source - if (connection.source.groupId === selectionData.component.id) { + if (connection.source.groupId === selectionData.id) { addConnection(connection); } }); @@ -481,7 +481,7 @@ nf.GoTo = (function () { // add the source for each connection $.each(connections, function (_, connection) { // only show connections for which this selection is the destination - if (connection.destination.groupId === selectionData.component.id) { + if (connection.destination.groupId === selectionData.id) { addConnection(connection); } }); @@ -520,7 +520,7 @@ nf.GoTo = (function () { // add the destination for each connection $.each(connections, function (_, connection) { // only show connections for which this selection is the source - if (connection.source.id === selectionData.component.id) { + if (connection.source.id === selectionData.id) { addConnection(connection); } }); @@ -562,7 +562,7 @@ nf.GoTo = (function () { // add the source for each connection $.each(connections, function (_, connection) { // only show connections for which this selection is the destination - if (connection.destination.id === selectionData.component.id) { + if (connection.destination.id === selectionData.id) { addConnection(connection); } }); @@ -604,7 +604,7 @@ nf.GoTo = (function () { // add the destination for each connection $.each(connections, function (_, connection) { // only show connections for which this selection is the source - if (connection.source.id === selectionData.component.id) { + if (connection.source.id === selectionData.id) { addConnection(connection); } }); @@ -643,7 +643,7 @@ nf.GoTo = (function () { // add the source for each connection $.each(connections, function (_, connection) { // only show connections for which this selection is the destination - if (connection.destination.id === selectionData.component.id) { + if (connection.destination.id === selectionData.id) { addConnection(connection); } }); @@ -679,7 +679,7 @@ nf.GoTo = (function () { // add the destination for each connection $.each(connections, function (_, connection) { // only show connections for which this selection is the source - if (connection.source.id === selectionData.component.id) { + if (connection.source.id === selectionData.id) { addConnection(connection); } }); @@ -715,7 +715,7 @@ nf.GoTo = (function () { // add the source for each connection $.each(connections, function (_, connection) { // only show connections for which this selection is the destination - if (connection.destination.id === selectionData.component.id) { + if (connection.destination.id === selectionData.id) { addConnection(connection); } }); http://git-wip-us.apache.org/repos/asf/nifi/blob/ff98d823/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js index 6e9ee36..5524ec4 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js @@ -43,7 +43,7 @@ nf.LabelConfiguration = (function () { // build the label entity var labelEntity = { 'revision': nf.Client.getRevision(), - 'label': { + 'component': { 'id': labelId, 'label': labelValue, 'style': { @@ -64,7 +64,7 @@ nf.LabelConfiguration = (function () { nf.Client.setRevision(response.revision); // get the label out of the response - nf.Label.set(response.label); + nf.Label.set(response); }).fail(nf.Common.handleAjaxError); // reset and hide the dialog @@ -139,7 +139,7 @@ nf.LabelConfiguration = (function () { } // store the label uri - labelId = selectionData.component.id; + labelId = selectionData.id; // populate the dialog $('#label-value').val(labelValue); http://git-wip-us.apache.org/repos/asf/nifi/blob/ff98d823/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label.js index 5629bbb..809b905 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label.js @@ -53,9 +53,7 @@ nf.Label = (function () { * Selects the labels elements against the current label map. */ var select = function () { - return labelContainer.selectAll('g.label').data(labelMap.values(), function (d) { - return d.component.id; - }); + return labelContainer.selectAll('g.label').data(labelMap.values()); }; /** @@ -72,12 +70,12 @@ nf.Label = (function () { var label = entered.append('g') .attr({ 'id': function (d) { - return 'id-' + d.component.id; + return 'id-' + d.id; }, 'class': 'label component' }) .classed('selected', selected) - .call(position); + .call(nf.CanvasUtils.position); // label border label.append('rect') @@ -110,31 +108,15 @@ nf.Label = (function () { label.call(nf.Selectable.activate).call(nf.ContextMenu.activate); // only support dragging when appropriate - if (nf.Common.isDFM()) { - label.call(nf.Draggable.activate); - } + label.filter(function (d) { + return d.accessPolicy.canWrite && d.accessPolicy.canRead; + }).call(nf.Draggable.activate); // call update to trigger some rendering label.call(updateLabels); }; /** - * Position the component accordingly. - * - * @param {selection} updated - */ - var position = function (updated) { - if (updated.empty()) { - return; - } - - // update the processors positioning - updated.attr('transform', function (d) { - return 'translate(' + d.component.position.x + ', ' + d.component.position.y + ')'; - }); - }; - - /** * Updates the labels in the specified selection. * * @param {selection} updated The labels to be updated @@ -150,9 +132,11 @@ nf.Label = (function () { // determine all unique colors labelMap.forEach(function (id, d) { - var color = d.component.style['background-color']; - if (nf.Common.isDefinedAndNotNull(color)) { - colors.add(nf.Common.substringAfterLast(color, '#')); + if (d.accessPolicy.canRead) { + var color = d.component.style['background-color']; + if (nf.Common.isDefinedAndNotNull(color)) { + colors.add(nf.Common.substringAfterLast(color, '#')); + } } }); nf.Canvas.defineLabelColors(colors.values()); @@ -163,9 +147,11 @@ nf.Label = (function () { 'stroke': function (d) { var color = nf.Label.defaultColor(); - // use the specified color if appropriate - if (nf.Common.isDefinedAndNotNull(d.component.style['background-color'])) { - color = d.component.style['background-color']; + if (d.accessPolicy.canRead) { + // use the specified color if appropriate + if (nf.Common.isDefinedAndNotNull(d.component.style['background-color'])) { + color = d.component.style['background-color']; + } } return color; @@ -184,9 +170,11 @@ nf.Label = (function () { 'fill': function (d) { var color = nf.Label.defaultColor(); - // use the specified color if appropriate - if (nf.Common.isDefinedAndNotNull(d.component.style['background-color'])) { - color = d.component.style['background-color']; + if (d.accessPolicy.canRead) { + // use the specified color if appropriate + if (nf.Common.isDefinedAndNotNull(d.component.style['background-color'])) { + color = d.component.style['background-color']; + } } // get just the color code part @@ -206,68 +194,71 @@ nf.Label = (function () { updated.each(function (d) { var updatedLabel = d3.select(this); - // update the label - var label = updatedLabel.select('text.label-value'); + if (d.accessPolicy.canRead) { + // update the label + var label = updatedLabel.select('text.label-value'); - // udpate the font size - label.attr('font-size', function () { - var fontSize = '12px'; + // udpate the font size + label.attr('font-size', function () { + var fontSize = '12px'; - // use the specified color if appropriate - if (nf.Common.isDefinedAndNotNull(d.component.style['font-size'])) { - fontSize = d.component.style['font-size']; - } + // use the specified color if appropriate + if (nf.Common.isDefinedAndNotNull(d.component.style['font-size'])) { + fontSize = d.component.style['font-size']; + } - return fontSize; - }); + return fontSize; + }); - // remove the previous label value - label.selectAll('tspan').remove(); + // remove the previous label value + label.selectAll('tspan').remove(); - // parse the lines in this label - var lines = []; - if (nf.Common.isDefinedAndNotNull(d.component.label)) { - lines = d.component.label.split('\n'); - } else { - lines.push(''); - } + // parse the lines in this label + var lines = []; + if (nf.Common.isDefinedAndNotNull(d.component.label)) { + lines = d.component.label.split('\n'); + } else { + lines.push(''); + } - // add label value - $.each(lines, function (i, line) { - label.append('tspan') - .attr('x', '0.4em') - .attr('dy', '1.2em') - .text(function () { - return line; - }); - }); - - // ----------- - // labelpoints - // ----------- - - if (nf.Common.isDFM()) { - var pointData = [ - {x: d.dimensions.width, y: d.dimensions.height} - ]; - var points = updatedLabel.selectAll('rect.labelpoint').data(pointData); - - // create a point for the end - points.enter().append('rect') - .attr({ - 'class': 'labelpoint', - 'width': 10, - 'height': 10 - }) - .call(labelPointDrag); - - // update the midpoints - points.attr('transform', function (p) { - return 'translate(' + (p.x - 10) + ', ' + (p.y - 10) + ')'; + // add label value + $.each(lines, function (i, line) { + label.append('tspan') + .attr('x', '0.4em') + .attr('dy', '1.2em') + .text(function () { + return line; + }); }); - // remove old items - points.exit().remove(); + + // ----------- + // labelpoints + // ----------- + + if (d.accessPolicy.canWrite) { + var pointData = [ + {x: d.dimensions.width, y: d.dimensions.height} + ]; + var points = updatedLabel.selectAll('rect.labelpoint').data(pointData); + + // create a point for the end + points.enter().append('rect') + .attr({ + 'class': 'labelpoint', + 'width': 10, + 'height': 10 + }) + .call(labelPointDrag); + + // update the midpoints + points.attr('transform', function (p) { + return 'translate(' + (p.x - 10) + ', ' + (p.y - 10) + ')'; + }); + + // remove old items + points.exit().remove(); + } } }); }; @@ -334,24 +325,27 @@ nf.Label = (function () { // only save the updated bends if necessary if (different) { - var revision = nf.Client.getRevision(); + var labelEntity = { + 'revision': nf.Client.getRevision(), + 'component': { + 'id': labelData.id, + 'width': labelData.dimensions.width, + 'height': labelData.dimensions.height + } + } $.ajax({ type: 'PUT', url: labelData.component.uri, - data: { - 'version': revision.version, - 'clientId': revision.clientId, - 'width': labelData.dimensions.width, - 'height': labelData.dimensions.height - }, - dataType: 'json' + data: JSON.stringify(labelEntity), + dataType: 'json', + contentType: 'application/json' }).done(function (response) { // update the revision nf.Client.setRevision(response.revision); // request was successful, update the entry - nf.Label.set(response.label); + nf.Label.set(response); }).fail(function () { // determine the previous width var width = dimensions.width; @@ -384,43 +378,26 @@ nf.Label = (function () { /** * Populates the graph with the specified labels. * - * @argument {object | array} labels The labels to add + * @argument {object | array} labelEntities The labels to add * @argument {boolean} selectAll Whether or not to select the new contents */ - add: function (labels, selectAll) { + add: function (labelEntities, selectAll) { selectAll = nf.Common.isDefinedAndNotNull(selectAll) ? selectAll : false; - var add = function (label) { - // determine the width - var width = dimensions.width; - if (nf.Common.isDefinedAndNotNull(label.width)) { - width = label.width; - } - - // determine the height - var height = dimensions.height; - if (nf.Common.isDefinedAndNotNull(label.height)) { - height = label.height; - } - + var add = function (labelEntity) { // add the label - labelMap.set(label.id, { - type: 'Label', - component: label, - dimensions: { - width: width, - height: height - } - }); + labelMap.set(labelEntity.id, $.extend({ + type: 'Label' + }, labelEntity)); }; // determine how to handle the specified label status - if ($.isArray(labels)) { - $.each(labels, function (_, label) { - add(label); + if ($.isArray(labelEntities)) { + $.each(labelEntities, function (_, labelEntity) { + add(labelEntity); }); } else { - add(labels); + add(labelEntities); } // apply the selection and handle all new labels @@ -468,7 +445,7 @@ nf.Label = (function () { url: label.uri, dataType: 'json' }).done(function (response) { - nf.Label.set(response.label); + nf.Label.set(response); }); } }, @@ -479,7 +456,7 @@ nf.Label = (function () { * @param {string} id The id */ position: function (id) { - d3.select('#id-' + id).call(position); + d3.select('#id-' + id).call(nf.CanvasUtils.position); }, /** @@ -487,54 +464,31 @@ nf.Label = (function () { * will set each label. If it is not an array, it will * attempt to set the specified label. * - * @param {object | array} labels + * @param {object | array} labelEntities */ - set: function (labels) { - var set = function (label) { - if (labelMap.has(label.id)) { - // determine the width - var width = dimensions.width; - if (nf.Common.isDefinedAndNotNull(label.width)) { - width = label.width; - } - - // determine the height - var height = dimensions.height; - if (nf.Common.isDefinedAndNotNull(label.height)) { - height = label.height; - } - + set: function (labelEntities) { + var set = function (labelEntity) { + if (labelMap.has(labelEntity.id)) { // update the current entry - var labelEntry = labelMap.get(label.id); - labelEntry.component = label; - labelEntry.dimensions = { - width: width, - height: height - }; + var labelEntry = labelMap.get(labelEntity.id); + $.extend(labelEntry, labelEntity); // update the connection in the UI - d3.select('#id-' + label.id).call(updateLabels); + d3.select('#id-' + labelEntry.id).call(updateLabels); } }; // determine how to handle the specified label status - if ($.isArray(labels)) { - $.each(labels, function (_, label) { + if ($.isArray(labelEntities)) { + $.each(labelEntities, function (_, label) { set(label); }); } else { - set(labels); + set(labelEntities); } }, /** - * Returns the entity key when marshalling an entity of this type. - */ - getEntityKey: function (d) { - return 'label'; - }, - - /** * Removes the specified label. * * @param {array|string} labels The label id(s) http://git-wip-us.apache.org/repos/asf/nifi/blob/ff98d823/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js index 41278b8..a972e8e 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js @@ -55,12 +55,10 @@ nf.PortConfiguration = (function () { // build the port entity var portEntity = { - 'revision': nf.Client.getRevision() + 'revision': nf.Client.getRevision(), + 'component': port }; - // use bracket notation to set the key based on the type - portEntity[nf[portData.type].getEntityKey(portData)] = port; - // update the selected component $.ajax({ type: 'PUT', @@ -72,15 +70,8 @@ nf.PortConfiguration = (function () { // update the revision nf.Client.setRevision(response.revision); - var port; - if (nf.Common.isDefinedAndNotNull(response.inputPort)) { - port = response.inputPort; - } else { - port = response.outputPort; - } - // refresh the port component - nf.Port.set(port); + nf.Port.set(response); // close the details panel $('#port-configuration').modal('hide'); @@ -166,7 +157,7 @@ nf.PortConfiguration = (function () { } // populate the port settings - $('#port-id').text(selectionData.component.id); + $('#port-id').text(selectionData.id); $('#port-name').val(selectionData.component.name); $('#port-enabled').removeClass('checkbox-unchecked checkbox-checked').addClass(portEnableStyle); $('#port-concurrent-tasks').val(selectionData.component.concurrentlySchedulableTaskCount); http://git-wip-us.apache.org/repos/asf/nifi/blob/ff98d823/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js index c520044..1134fc1 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js @@ -55,7 +55,7 @@ nf.PortDetails = (function () { // populate the port settings nf.Common.populateField('read-only-port-name', selectionData.component.name); - nf.Common.populateField('read-only-port-id', selectionData.component.id); + nf.Common.populateField('read-only-port-id', selectionData.id); nf.Common.populateField('read-only-port-comments', selectionData.component.comments); // show the details http://git-wip-us.apache.org/repos/asf/nifi/blob/ff98d823/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port.js index 7b69c8b..74c7a77 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port.js @@ -51,9 +51,7 @@ nf.Port = (function () { * Selects the port elements against the current port map. */ var select = function () { - return portContainer.selectAll('g.input-port, g.output-port').data(portMap.values(), function (d) { - return d.component.id; - }); + return portContainer.selectAll('g.input-port, g.output-port').data(portMap.values()); }; /** @@ -70,10 +68,10 @@ nf.Port = (function () { var port = entered.append('g') .attr({ 'id': function (d) { - return 'id-' + d.component.id; + return 'id-' + d.id; }, 'class': function (d) { - if (d.component.type === 'INPUT_PORT') { + if (d.portType === 'INPUT_PORT') { return 'input-port component'; } else { return 'output-port component'; @@ -142,7 +140,7 @@ nf.Port = (function () { .call(nf.CanvasUtils.disableImageHref) .attr({ 'xlink:href': function (d) { - if (d.component.type === 'INPUT_PORT') { + if (d.portTtype === 'INPUT_PORT') { return 'images/iconInputPort.png'; } else { return 'images/iconOutputPort.png'; @@ -151,7 +149,7 @@ nf.Port = (function () { 'width': 46, 'height': 31, 'x': function (d) { - if (d.component.type === 'INPUT_PORT') { + if (d.portType === 'INPUT_PORT') { return 0; } else { return 114; @@ -164,7 +162,7 @@ nf.Port = (function () { port.append('text') .attr({ 'x': function (d) { - if (d.component.type === 'INPUT_PORT') { + if (d.portType === 'INPUT_PORT') { return 52; } else { return 5; @@ -183,9 +181,9 @@ nf.Port = (function () { port.call(nf.Selectable.activate).call(nf.ContextMenu.activate); // only activate dragging and connecting if appropriate - if (nf.Common.isDFM()) { - port.call(nf.Draggable.activate).call(nf.Connectable.activate); - } + port.filter(function (d) { + return d.accessPolicy.canWrite && d.accessPolicy.canRead; + }).call(nf.Draggable.activate).call(nf.Connectable.activate); // call update to trigger some rendering port.call(updatePorts); @@ -201,7 +199,7 @@ nf.Port = (function () { return; } - updated.each(function () { + updated.each(function (portData) { var port = d3.select(this); var details = port.select('g.port-details'); @@ -246,7 +244,7 @@ nf.Port = (function () { 'width': 16, 'height': 16, 'x': function (d) { - if (d.component.type === 'INPUT_PORT') { + if (d.portType === 'INPUT_PORT') { return 33; } else { return 107; @@ -279,83 +277,87 @@ nf.Port = (function () { }); } - // update the run status - details.select('image.port-run-status-icon') - .attr('xlink:href', function (d) { - var img = ''; - if (d.component.state === 'DISABLED') { - img = 'images/iconDisable.png'; - } else if (!nf.Common.isEmpty(d.component.validationErrors)) { - img = 'images/iconAlert.png'; - } else if (d.component.state === 'RUNNING') { - img = 'images/iconRun.png'; - } else if (d.component.state === 'STOPPED') { - img = 'images/iconStop.png'; - } - return img; - }) - .each(function (d) { - // remove the existing tip if necessary - var tip = d3.select('#run-status-tip-' + d.component.id); - if (!tip.empty()) { - tip.remove(); - } - - // if there are validation errors generate a tooltip - if (!nf.Common.isEmpty(d.component.validationErrors)) { - tip = d3.select('#port-tooltips').append('div') - .attr('id', function () { - return 'run-status-tip-' + d.component.id; - }) - .attr('class', 'tooltip nifi-tooltip') - .html(function () { - var list = nf.Common.formatUnorderedList(d.component.validationErrors); - if (list === null || list.length === 0) { - return ''; - } else { - return $('<div></div>').append(list).html(); - } - }); - - // add the tooltip - nf.CanvasUtils.canvasTooltip(tip, d3.select(this)); - } - }); - - // update the port name - port.select('text.port-name') - .each(function (d) { - var portName = d3.select(this); - var name = d.component.name; - var words = name.split(/\s+/); - - // reset the port name to handle any previous state - portName.text(null).selectAll('tspan, title').remove(); - - // handle based on the number of tokens in the port name - if (words.length === 1) { - // apply ellipsis to the port name as necessary - nf.CanvasUtils.ellipsis(portName, name); - } else { - nf.CanvasUtils.multilineEllipsis(portName, 2, name); - } - }).append('title').text(function (d) { - return d.component.name; - }); + if (portData.accessPolicy.canRead) { + // update the run status + details.select('image.port-run-status-icon') + .attr('xlink:href', function (d) { + var img = ''; + if (d.component.state === 'DISABLED') { + img = 'images/iconDisable.png'; + } else if (!nf.Common.isEmpty(d.component.validationErrors)) { + img = 'images/iconAlert.png'; + } else if (d.component.state === 'RUNNING') { + img = 'images/iconRun.png'; + } else if (d.component.state === 'STOPPED') { + img = 'images/iconStop.png'; + } + return img; + }) + .each(function (d) { + // remove the existing tip if necessary + var tip = d3.select('#run-status-tip-' + d.id); + if (!tip.empty()) { + tip.remove(); + } + + // if there are validation errors generate a tooltip + if (!nf.Common.isEmpty(d.component.validationErrors)) { + tip = d3.select('#port-tooltips').append('div') + .attr('id', function () { + return 'run-status-tip-' + d.id; + }) + .attr('class', 'tooltip nifi-tooltip') + .html(function () { + var list = nf.Common.formatUnorderedList(d.component.validationErrors); + if (list === null || list.length === 0) { + return ''; + } else { + return $('<div></div>').append(list).html(); + } + }); + + // add the tooltip + nf.CanvasUtils.canvasTooltip(tip, d3.select(this)); + } + }); + + // update the port name + port.select('text.port-name') + .each(function (d) { + var portName = d3.select(this); + var name = d.component.name; + var words = name.split(/\s+/); + + // reset the port name to handle any previous state + portName.text(null).selectAll('tspan, title').remove(); + + // handle based on the number of tokens in the port name + if (words.length === 1) { + // apply ellipsis to the port name as necessary + nf.CanvasUtils.ellipsis(portName, name); + } else { + nf.CanvasUtils.multilineEllipsis(portName, 2, name); + } + }).append('title').text(function (d) { + return d.component.name; + }); + } // populate the stats port.call(updatePortStatus); } else { - // update the port name - port.select('text.port-name') - .text(function (d) { - var name = d.component.name; - if (name.length > PREVIEW_NAME_LENGTH) { - return name.substring(0, PREVIEW_NAME_LENGTH) + String.fromCharCode(8230); - } else { - return name; - } - }); + if (portData.accessPolicy.canRead) { + // update the port name + port.select('text.port-name') + .text(function (d) { + var name = d.component.name; + if (name.length > PREVIEW_NAME_LENGTH) { + return name.substring(0, PREVIEW_NAME_LENGTH) + String.fromCharCode(8230); + } else { + return name; + } + }); + } // remove tooltips if necessary port.call(removeTooltips); @@ -430,8 +432,8 @@ nf.Port = (function () { var removeTooltips = function (removed) { removed.each(function (d) { // remove any associated tooltips - $('#run-status-tip-' + d.component.id).remove(); - $('#bulletin-tip-' + d.component.id).remove(); + $('#run-status-tip-' + d.id).remove(); + $('#bulletin-tip-' + d.id).remove(); }); }; @@ -453,10 +455,10 @@ nf.Port = (function () { /** * Populates the graph with the specified ports. * - * @argument {object | array} ports The ports to add + * @argument {object | array} portNodes The ports to add * @argument {boolean} selectAll Whether or not to select the new contents */ - add: function (ports, selectAll) { + add: function (portEntities, selectAll) { selectAll = nf.Common.isDefinedAndNotNull(selectAll) ? selectAll : false; // determine the appropriate dimensions for this port @@ -465,25 +467,24 @@ nf.Port = (function () { dimensions = remotePortDimensions; } - var add = function (ports) { + var add = function (portEntity) { // add the port - portMap.set(ports.id, { + portMap.set(portEntity.id, $.extend({ type: 'Port', - component: ports, dimensions: dimensions, status: { activeThreadCount: 0 } - }); + }, portEntity)); }; // determine how to handle the specified port status - if ($.isArray(ports)) { - $.each(ports, function (_, port) { - add(port); + if ($.isArray(portEntities)) { + $.each(portEntities, function (_, portNode) { + add(portNode); }); } else { - add(ports); + add(portEntities); } // apply the selection and handle all new ports @@ -539,9 +540,9 @@ nf.Port = (function () { dataType: 'json' }).done(function (response) { if (nf.Common.isDefinedAndNotNull(response.inputPort)) { - nf.Port.set(response.inputPort); + nf.Port.set(response); } else { - nf.Port.set(response.outputPort); + nf.Port.set(response); } }); } @@ -561,27 +562,27 @@ nf.Port = (function () { * will set each port. If it is not an array, it will * attempt to set the specified port. * - * @param {object | array} ports + * @param {object | array} portEntities */ - set: function (ports) { - var set = function (port) { - if (portMap.has(port.id)) { + set: function (portEntities) { + var set = function (portEntity) { + if (portMap.has(portEntity.id)) { // update the current entry - var portEntry = portMap.get(port.id); - portEntry.component = port; + var portEntry = portMap.get(portEntity.id); + $.extend(portEntry, portEntity); // update the connection in the UI - d3.select('#id-' + port.id).call(updatePorts); + d3.select('#id-' + portEntry.id).call(updatePorts); } }; // determine how to handle the specified ports - if ($.isArray(ports)) { - $.each(ports, function (_, port) { + if ($.isArray(portEntities)) { + $.each(portEntities, function (_, port) { set(port); }); } else { - set(ports); + set(portEntities); } }, @@ -608,13 +609,6 @@ nf.Port = (function () { }, /** - * Returns the entity key when marshalling an entity of this type. - */ - getEntityKey: function (d) { - return d.component.type === 'INPUT_PORT' ? 'inputPort' : 'outputPort'; - }, - - /** * Removes the specified port. * * @param {string} ports The port id(s) http://git-wip-us.apache.org/repos/asf/nifi/blob/ff98d823/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js index b72deb2..3b6cd14 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js @@ -37,7 +37,7 @@ nf.ProcessGroupConfiguration = (function () { // build the entity var entity = { 'revision': nf.Client.getRevision(), - 'processGroup': { + 'component': { 'id': processGroupId, 'name': $('#process-group-name').val(), 'comments': $('#process-group-comments').val() @@ -52,12 +52,12 @@ nf.ProcessGroupConfiguration = (function () { dataType: 'json', contentType: 'application/json' }).done(function (response) { - if (nf.Common.isDefinedAndNotNull(response.processGroup)) { + if (nf.Common.isDefinedAndNotNull(response.component)) { // update the revision nf.Client.setRevision(response.revision); // refresh the process group - nf.ProcessGroup.set(response.processGroup); + nf.ProcessGroup.set(response); // close the details panel $('#process-group-configuration').modal('hide'); @@ -104,7 +104,7 @@ nf.ProcessGroupConfiguration = (function () { var selectionData = selection.datum(); // populate the process group settings - $('#process-group-id').text(selectionData.component.id); + $('#process-group-id').text(selectionData.id); $('#process-group-name').val(selectionData.component.name); $('#process-group-comments').val(selectionData.component.comments); http://git-wip-us.apache.org/repos/asf/nifi/blob/ff98d823/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js index 473ca9c..7796901 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js @@ -54,7 +54,7 @@ nf.ProcessGroupDetails = (function () { var selectionData = selection.datum(); // populate the port settings - nf.Common.populateField('read-only-process-group-id', selectionData.component.id); + nf.Common.populateField('read-only-process-group-id', selectionData.id); nf.Common.populateField('read-only-process-group-name', selectionData.component.name); nf.Common.populateField('read-only-process-group-comments', selectionData.component.comments);
