NIFI-325: - Code clean up. - Ensuring the fill color action is available in toolbar and context menu under the same conditions. - Only applying the new color if different.
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/4239797b Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/4239797b Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/4239797b Branch: refs/heads/NIFI-250 Commit: 4239797b9f26f3e7be5746b55d5cac9cb7128172 Parents: dde5fd5 Author: Matt Gilman <[email protected]> Authored: Tue Feb 17 11:44:15 2015 -0500 Committer: Matt Gilman <[email protected]> Committed: Tue Feb 17 11:44:15 2015 -0500 ---------------------------------------------------------------------- .../src/main/webapp/js/nf/canvas/nf-actions.js | 16 ++--- .../webapp/js/nf/canvas/nf-canvas-header.js | 62 +++++++++++--------- .../webapp/js/nf/canvas/nf-canvas-toolbar.js | 15 +---- .../main/webapp/js/nf/canvas/nf-canvas-utils.js | 21 +++++++ .../main/webapp/js/nf/canvas/nf-context-menu.js | 7 +-- 5 files changed, 62 insertions(+), 59 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4239797b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js index 6624d52..f2dc9b3 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js @@ -843,17 +843,11 @@ nf.Actions = (function () { * @param {type} selection The selection */ fillColor: function (selection) { - var selectedProcessors = selection.filter(function(d) { - return nf.CanvasUtils.isProcessor(d3.select(this)); - }); - var selectedLabels = selection.filter(function(d) { - return nf.CanvasUtils.isLabel(d3.select(this)); - }); - - var allProcessors = selectedProcessors.size() === selection.size(); - var allLabels = selectedLabels.size() === selection.size(); - - if (allProcessors || allLabels) { + if (nf.CanvasUtils.isColorable(selection)) { + // we know that the entire selection is processors or labels... this + // checks if the first item is a processor... if true, all processors + var allProcessors = nf.CanvasUtils.isProcessor(selection); + var color; if (allProcessors) { color = nf.Processor.defaultColor(); http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4239797b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-header.js ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-header.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-header.js index 5daf415..335b145 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-header.js +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-header.js @@ -182,34 +182,37 @@ nf.CanvasHeader = (function () { // get the color and update the styles var color = $('#fill-color').minicolors('value'); - // update the style for the specified component - $.ajax({ - type: 'PUT', - url: selectedData.component.uri, - data: { - 'version': revision.version, - 'clientId': revision.clientId, - 'style[background-color]': color - }, - dataType: 'json' - }).done(function (response) { - // update the revision - nf.Client.setRevision(response.revision); - - // update the processor - if (nf.CanvasUtils.isProcessor(selected)) { - nf.Processor.set(response.processor); - } else { - nf.Label.set(response.label); - } - }).fail(function (xhr, status, error) { - if (xhr.status === 400 || xhr.status === 404 || xhr.status === 409) { - nf.Dialog.showOkDialog({ - dialogContent: nf.Common.escapeHtml(xhr.responseText), - overlayBackground: true - }); - } - }); + // ensure the color actually changed + if (color !== selectedData.component.style['background-color']) { + // update the style for the specified component + $.ajax({ + type: 'PUT', + url: selectedData.component.uri, + data: { + 'version': revision.version, + 'clientId': revision.clientId, + 'style[background-color]': color + }, + dataType: 'json' + }).done(function (response) { + // update the revision + nf.Client.setRevision(response.revision); + + // update the processor + if (nf.CanvasUtils.isProcessor(selected)) { + nf.Processor.set(response.processor); + } else { + nf.Label.set(response.label); + } + }).fail(function (xhr, status, error) { + if (xhr.status === 400 || xhr.status === 404 || xhr.status === 409) { + nf.Dialog.showOkDialog({ + dialogContent: nf.Common.escapeHtml(xhr.responseText), + overlayBackground: true + }); + } + }); + } }); // close the dialog @@ -255,12 +258,13 @@ nf.CanvasHeader = (function () { var hex = $('#fill-color-value').val(); // only update the fill color when its a valid hex color string + // #[six hex characters|three hex characters] case insensitive if (/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex)) { $('#fill-color').minicolors('value', hex); } }; - // initialize the fill color value + // apply fill color from field on blur and enter press $('#fill-color-value').on('blur', updateColor).on('keyup', function(e) { var code = e.keyCode ? e.keyCode : e.which; if (code === $.ui.keyCode.ENTER) { http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4239797b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbar.js ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbar.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbar.js index 1031c6c..e2ec53e 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbar.js +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbar.js @@ -141,19 +141,8 @@ nf.CanvasToolbar = (function () { actions['group'].disable(); } - // determine if the current selection is entirely processors or labels - var selectedProcessors = selection.filter(function(d) { - return nf.CanvasUtils.isProcessor(d3.select(this)); - }); - var selectedLabels = selection.filter(function(d) { - return nf.CanvasUtils.isLabel(d3.select(this)); - }); - - var allProcessors = selectedProcessors.size() === selection.size(); - var allLabels = selectedLabels.size() === selection.size(); - - // if there are any colorable components enable the button - if (allProcessors || allLabels) { + // if there are any colorable components enable the fill button + if (nf.CanvasUtils.isColorable(selection)) { actions['fill'].enable(); } else { actions['fill'].disable(); http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4239797b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js index c9211b2..796ffdf 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js @@ -475,6 +475,27 @@ nf.CanvasUtils = (function () { }, /** + * Determines if the specified selection is colorable (in a single action). + * + * @param {selection} selection The selection + * @returns {boolean} + */ + isColorable: function(selection) { + // determine if the current selection is entirely processors or labels + var selectedProcessors = selection.filter(function(d) { + return nf.CanvasUtils.isProcessor(d3.select(this)); + }); + var selectedLabels = selection.filter(function(d) { + return nf.CanvasUtils.isLabel(d3.select(this)); + }); + + var allProcessors = selectedProcessors.size() === selection.size(); + var allLabels = selectedLabels.size() === selection.size(); + + return allProcessors || allLabels; + }, + + /** * Determines if the specified selection is a connection. * * @argument {selection} selection The selection http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4239797b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js index dfb8d7a..d9b63cd 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js @@ -179,12 +179,7 @@ nf.ContextMenu = (function () { * @param {selection} selection The selection */ var isColorable = function (selection) { - // ensure the correct number of components are selected - if (selection.size() !== 1) { - return false; - } - - return nf.Common.isDFM() && (nf.CanvasUtils.isProcessor(selection) || nf.CanvasUtils.isLabel(selection)); + return nf.Common.isDFM() && nf.CanvasUtils.isColorable(selection); }; /**
