');
+ stringCheckPanel.appendTo(wrapper);
// build the custom checkbox
isEmpty = $('
').css({
'color': '#fff',
@@ -116,7 +120,14 @@
}, function () {
$(this).css('background', '#E3E8EB');
}).on('click', scope.cancel);
- $('
').css({
+ 'position': 'relative',
+ 'top': '10px',
+ 'left': '20px',
+ 'width': '212px',
+ 'clear': 'both',
+ 'float': 'right'
+ }).append(ok).append(cancel).append('
').appendTo(wrapper);
// position and focus
scope.position(args.position);
@@ -154,8 +165,8 @@
this.position = function (position) {
wrapper.css({
- 'top': position.top - 5,
- 'left': position.left - 5
+ 'top': position.top - 27,
+ 'left': position.left - 20
});
};
@@ -299,8 +310,8 @@
// create the editor
editor = $('
').addClass(editorClass).appendTo(wrapper).nfeditor({
languageId: languageId,
- width: args.position.width,
- minWidth: 175,
+ width: (args.position.width < 212) ? 212 : args.position.width,
+ minWidth: 212,
minHeight: 100,
resizable: true,
sensitive: sensitive,
@@ -314,10 +325,11 @@
// create the button panel
var stringCheckPanel = $('
');
+ stringCheckPanel.appendTo(wrapper);
// build the custom checkbox
isEmpty = $('
').appendTo(stringCheckPanel);
- $('
Empty').appendTo(stringCheckPanel);
+ $('
Set empty string').appendTo(stringCheckPanel);
var ok = $('
Ok
').css({
'color': '#fff',
@@ -338,11 +350,13 @@
$(this).css('background', '#E3E8EB');
}).on('click', scope.cancel);
$('
').css({
- 'position': 'absolute',
- 'bottom': '0',
- 'left': '0',
- 'right': '0'
- }).append(stringCheckPanel).append(ok).append(cancel).append('
').appendTo(wrapper);
+ 'position': 'relative',
+ 'top': '10px',
+ 'left': '20px',
+ 'width': '212px',
+ 'clear': 'both',
+ 'float': 'right'
+ }).append(ok).append(cancel).append('
').appendTo(wrapper);
// position and focus
scope.position(args.position);
@@ -364,13 +378,13 @@
this.show = function () {
wrapper.show();
- editor.nfeditor('setSize', args.position.width, null).nfeditor('refresh');
+ editor.nfeditor('refresh');
};
this.position = function (position) {
wrapper.css({
- 'top': position.top - 5,
- 'left': position.left - 5
+ 'top': position.top - 22,
+ 'left': position.left - 20
});
};
@@ -433,7 +447,7 @@
// if the field hasn't been modified return the previous value... this
// is important because sensitive properties contain the text 'sensitive
- // value set' which is cleared when the value is edited. we do not
+ // value set' which is cleared when the value is edited. we do not
// want to actually use this value
if (editor.nfeditor('isModified') === false) {
return previousValue;
@@ -487,7 +501,7 @@
wrapper = $('
').css({
'z-index': 1999,
'position': 'absolute',
- 'padding': '5px',
+ 'padding': '10px 20px',
'overflow': 'hidden',
'border-radius': '2px',
'box-shadow': 'rgba(0, 0, 0, 0.247059) 0px 2px 5px',
@@ -557,12 +571,13 @@
promptForNewControllerService(gridContainer, args.grid, args.item, propertyDescriptor.identifiesControllerService, configurationOptions);
}
}
- }).width(position.width - 16).appendTo(wrapper);
+ }).css({
+ 'margin-top': '10px',
+ 'margin-bottom': '10px',
+ 'width': ((position.width - 16) < 212) ? 212 : (position.width - 16) + 'px'}).appendTo(wrapper);
// add buttons for handling user input
- $('
Cancel
').css({
- 'margin': '0 0 0 5px',
- 'float': 'left',
+ var cancel = $('
Cancel
').css({
'color': '#004849',
'background': '#E3E8EB'
}).hover(
@@ -570,10 +585,8 @@
$(this).css('background', '#C7D2D7');
}, function () {
$(this).css('background', '#E3E8EB');
- }).on('click', scope.cancel).appendTo(wrapper);
- $('
Ok
').css({
- 'margin': '0 0 0 5px',
- 'float': 'left',
+ }).on('click', scope.cancel);
+ var ok = $('
Ok
').css({
'color': '#fff',
'background': '#728E9B'
}).hover(
@@ -581,7 +594,16 @@
$(this).css('background', '#004849');
}, function () {
$(this).css('background', '#728E9B');
- }).on('click', scope.save).appendTo(wrapper);
+ }).on('click', scope.save);
+
+ $('
').css({
+ 'position': 'relative',
+ 'top': '10px',
+ 'left': '20px',
+ 'width': '212px',
+ 'clear': 'both',
+ 'float': 'right'
+ }).append(ok).append(cancel).appendTo(wrapper);
// position and focus
scope.position(position);
@@ -605,8 +627,8 @@
this.position = function (position) {
wrapper.css({
- 'top': position.top - 5,
- 'left': position.left - 5
+ 'top': position.top - 24,
+ 'left': position.left - 20
});
};
@@ -1715,11 +1737,11 @@
return this.each(function () {
var propertyTableContainer = $(this);
var options = propertyTableContainer.data('options');
-
+
if (nf.Common.isDefinedAndNotNull(options)) {
// clear the property table container
clear(propertyTableContainer);
-
+
// clear any existing new property dialogs
if (nf.Common.isDefinedAndNotNull(options.dialogContainer)) {
$('#new-property-dialog').modal("hide");
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/controllers/nf-ng-canvas-operate-controller.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/controllers/nf-ng-canvas-operate-controller.js
index d6c2831efc..9ae29009ea 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/controllers/nf-ng-canvas-operate-controller.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/controllers/nf-ng-canvas-operate-controller.js
@@ -302,6 +302,8 @@ nf.ng.Canvas.OperateCtrl = function () {
dialogContent: nf.Common.escapeHtml(xhr.responseText)
});
}
+ }).always(function(){
+ nf.Birdseye.refresh();
});
}
});
diff --git a/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-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js
index e2a256b0b5..e5ae99e14f 100644
--- a/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-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js
@@ -516,10 +516,12 @@ nf.CanvasUtils = (function () {
});
// update the tooltip background
- selection.select('rect.bulletin-background').classed('has-bulletins', true);
+ selection.select('text.bulletin-icon').style("visibility", "visible");
+ selection.select('rect.bulletin-background').style("visibility", "visible");
} else {
// update the tooltip background
- selection.select('rect.bulletin-background').classed('has-bulletins', false);
+ selection.select('text.bulletin-icon').style("visibility", "hidden");
+ selection.select('rect.bulletin-background').style("visibility", "hidden");
}
},
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-component-state.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-component-state.js
index ce659d7849..c92942b505 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-component-state.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-component-state.js
@@ -90,9 +90,20 @@ nf.ComponentState = (function () {
var sort = function (sortDetails, data) {
// defines a function for sorting
var comparer = function (a, b) {
- var aString = nf.Common.isDefinedAndNotNull(a[sortDetails.columnId]) ? a[sortDetails.columnId] : '';
- var bString = nf.Common.isDefinedAndNotNull(b[sortDetails.columnId]) ? b[sortDetails.columnId] : '';
- return aString === bString ? 0 : aString > bString ? 1 : -1;
+ if(a.permissions.canRead && b.permissions.canRead) {
+ var aString = nf.Common.isDefinedAndNotNull(a.component[sortDetails.columnId]) ? a.component[sortDetails.columnId] : '';
+ var bString = nf.Common.isDefinedAndNotNull(b.component[sortDetails.columnId]) ? b.component[sortDetails.columnId] : '';
+ return aString === bString ? 0 : aString > bString ? 1 : -1;
+ } else {
+ if (!a.permissions.canRead && !b.permissions.canRead){
+ return 0;
+ }
+ if(a.permissions.canRead){
+ return 1;
+ } else {
+ return -1;
+ }
+ }
};
// perform the sort
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-services.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-services.js
index 5dc275e7de..e77ab19931 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-services.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-services.js
@@ -471,34 +471,45 @@ nf.ControllerServices = (function () {
var sort = function (sortDetails, data) {
// defines a function for sorting
var comparer = function (a, b) {
- if (sortDetails.columnId === 'moreDetails') {
- var aBulletins = 0;
- if (!nf.Common.isEmpty(a.bulletins)) {
- aBulletins = a.bulletins.length;
+ if(a.permissions.canRead && b.permissions.canRead) {
+ if (sortDetails.columnId === 'moreDetails') {
+ var aBulletins = 0;
+ if (!nf.Common.isEmpty(a.bulletins)) {
+ aBulletins = a.bulletins.length;
+ }
+ var bBulletins = 0;
+ if (!nf.Common.isEmpty(b.bulletins)) {
+ bBulletins = b.bulletins.length;
+ }
+ return aBulletins - bBulletins;
+ } else if (sortDetails.columnId === 'type') {
+ var aType = nf.Common.isDefinedAndNotNull(a.component[sortDetails.columnId]) ? nf.Common.substringAfterLast(a.component[sortDetails.columnId], '.') : '';
+ var bType = nf.Common.isDefinedAndNotNull(b.component[sortDetails.columnId]) ? nf.Common.substringAfterLast(b.component[sortDetails.columnId], '.') : '';
+ return aType === bType ? 0 : aType > bType ? 1 : -1;
+ } else if (sortDetails.columnId === 'state') {
+ var aState = 'Invalid';
+ if (nf.Common.isEmpty(a.component.validationErrors)) {
+ aState = nf.Common.isDefinedAndNotNull(a.component[sortDetails.columnId]) ? a.component[sortDetails.columnId] : '';
+ }
+ var bState = 'Invalid';
+ if (nf.Common.isEmpty(b.component.validationErrors)) {
+ bState = nf.Common.isDefinedAndNotNull(b.component[sortDetails.columnId]) ? b.component[sortDetails.columnId] : '';
+ }
+ return aState === bState ? 0 : aState > bState ? 1 : -1;
+ } else {
+ var aString = nf.Common.isDefinedAndNotNull(a.component[sortDetails.columnId]) ? a.component[sortDetails.columnId] : '';
+ var bString = nf.Common.isDefinedAndNotNull(b.component[sortDetails.columnId]) ? b.component[sortDetails.columnId] : '';
+ return aString === bString ? 0 : aString > bString ? 1 : -1;
}
- var bBulletins = 0;
- if (!nf.Common.isEmpty(b.bulletins)) {
- bBulletins = b.bulletins.length;
- }
- return aBulletins - bBulletins;
- } else if (sortDetails.columnId === 'type') {
- var aType = nf.Common.isDefinedAndNotNull(a[sortDetails.columnId]) ? nf.Common.substringAfterLast(a[sortDetails.columnId], '.') : '';
- var bType = nf.Common.isDefinedAndNotNull(b[sortDetails.columnId]) ? nf.Common.substringAfterLast(b[sortDetails.columnId], '.') : '';
- return aType === bType ? 0 : aType > bType ? 1 : -1;
- } else if (sortDetails.columnId === 'state') {
- var aState = 'Invalid';
- if (nf.Common.isEmpty(a.validationErrors)) {
- aState = nf.Common.isDefinedAndNotNull(a[sortDetails.columnId]) ? a[sortDetails.columnId] : '';
- }
- var bState = 'Invalid';
- if (nf.Common.isEmpty(b.validationErrors)) {
- bState = nf.Common.isDefinedAndNotNull(b[sortDetails.columnId]) ? b[sortDetails.columnId] : '';
- }
- return aState === bState ? 0 : aState > bState ? 1 : -1;
} else {
- var aString = nf.Common.isDefinedAndNotNull(a[sortDetails.columnId]) ? a[sortDetails.columnId] : '';
- var bString = nf.Common.isDefinedAndNotNull(b[sortDetails.columnId]) ? b[sortDetails.columnId] : '';
- return aString === bString ? 0 : aString > bString ? 1 : -1;
+ if (!a.permissions.canRead && !b.permissions.canRead){
+ return 0;
+ }
+ if(a.permissions.canRead){
+ return 1;
+ } else {
+ return -1;
+ }
}
};
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-draggable.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-draggable.js
index 6ff095905c..f6ae344dae 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-draggable.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-draggable.js
@@ -202,6 +202,8 @@ nf.Draggable = (function () {
connections.forEach(function (connectionId) {
nf.Connection.refresh(connectionId);
});
+ }).always(function(){
+ nf.Birdseye.refresh();
});
};
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-policy-management.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-policy-management.js
index c207e80ecd..5415cdae99 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-policy-management.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-policy-management.js
@@ -477,9 +477,20 @@ nf.PolicyManagement = (function () {
var sort = function (sortDetails, data) {
// defines a function for sorting
var comparer = function (a, b) {
- var aString = nf.Common.isDefinedAndNotNull(a[sortDetails.columnId]) ? a[sortDetails.columnId] : '';
- var bString = nf.Common.isDefinedAndNotNull(b[sortDetails.columnId]) ? b[sortDetails.columnId] : '';
- return aString === bString ? 0 : aString > bString ? 1 : -1;
+ if(a.permissions.canRead && b.permissions.canRead) {
+ var aString = nf.Common.isDefinedAndNotNull(a.component[sortDetails.columnId]) ? a.component[sortDetails.columnId] : '';
+ var bString = nf.Common.isDefinedAndNotNull(b.component[sortDetails.columnId]) ? b.component[sortDetails.columnId] : '';
+ return aString === bString ? 0 : aString > bString ? 1 : -1;
+ } else {
+ if (!a.permissions.canRead && !b.permissions.canRead){
+ return 0;
+ }
+ if(a.permissions.canRead){
+ return 1;
+ } else {
+ return -1;
+ }
+ }
};
// perform the sort
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
index 2c29e99e0f..74f1ea6148 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
@@ -204,34 +204,45 @@ nf.Settings = (function () {
var sort = function (sortDetails, data) {
// defines a function for sorting
var comparer = function (a, b) {
- if (sortDetails.columnId === 'moreDetails') {
- var aBulletins = 0;
- if (!nf.Common.isEmpty(a.bulletins)) {
- aBulletins = a.bulletins.length;
+ if(a.permissions.canRead && b.permissions.canRead) {
+ if (sortDetails.columnId === 'moreDetails') {
+ var aBulletins = 0;
+ if (!nf.Common.isEmpty(a.bulletins)) {
+ aBulletins = a.bulletins.length;
+ }
+ var bBulletins = 0;
+ if (!nf.Common.isEmpty(b.bulletins)) {
+ bBulletins = b.bulletins.length;
+ }
+ return aBulletins - bBulletins;
+ } else if (sortDetails.columnId === 'type') {
+ var aType = nf.Common.isDefinedAndNotNull(a.component[sortDetails.columnId]) ? nf.Common.substringAfterLast(a.component[sortDetails.columnId], '.') : '';
+ var bType = nf.Common.isDefinedAndNotNull(b.component[sortDetails.columnId]) ? nf.Common.substringAfterLast(b.component[sortDetails.columnId], '.') : '';
+ return aType === bType ? 0 : aType > bType ? 1 : -1;
+ } else if (sortDetails.columnId === 'state') {
+ var aState = 'Invalid';
+ if (nf.Common.isEmpty(a.component.validationErrors)) {
+ aState = nf.Common.isDefinedAndNotNull(a.component[sortDetails.columnId]) ? a.component[sortDetails.columnId] : '';
+ }
+ var bState = 'Invalid';
+ if (nf.Common.isEmpty(b.component.validationErrors)) {
+ bState = nf.Common.isDefinedAndNotNull(b.component[sortDetails.columnId]) ? b.component[sortDetails.columnId] : '';
+ }
+ return aState === bState ? 0 : aState > bState ? 1 : -1;
+ } else {
+ var aString = nf.Common.isDefinedAndNotNull(a.component[sortDetails.columnId]) ? a.component[sortDetails.columnId] : '';
+ var bString = nf.Common.isDefinedAndNotNull(b.component[sortDetails.columnId]) ? b.component[sortDetails.columnId] : '';
+ return aString === bString ? 0 : aString > bString ? 1 : -1;
}
- var bBulletins = 0;
- if (!nf.Common.isEmpty(b.bulletins)) {
- bBulletins = b.bulletins.length;
- }
- return aBulletins - bBulletins;
- } else if (sortDetails.columnId === 'type') {
- var aType = nf.Common.isDefinedAndNotNull(a[sortDetails.columnId]) ? nf.Common.substringAfterLast(a[sortDetails.columnId], '.') : '';
- var bType = nf.Common.isDefinedAndNotNull(b[sortDetails.columnId]) ? nf.Common.substringAfterLast(b[sortDetails.columnId], '.') : '';
- return aType === bType ? 0 : aType > bType ? 1 : -1;
- } else if (sortDetails.columnId === 'state') {
- var aState = 'Invalid';
- if (nf.Common.isEmpty(a.validationErrors)) {
- aState = nf.Common.isDefinedAndNotNull(a[sortDetails.columnId]) ? a[sortDetails.columnId] : '';
- }
- var bState = 'Invalid';
- if (nf.Common.isEmpty(b.validationErrors)) {
- bState = nf.Common.isDefinedAndNotNull(b[sortDetails.columnId]) ? b[sortDetails.columnId] : '';
- }
- return aState === bState ? 0 : aState > bState ? 1 : -1;
} else {
- var aString = nf.Common.isDefinedAndNotNull(a[sortDetails.columnId]) ? a[sortDetails.columnId] : '';
- var bString = nf.Common.isDefinedAndNotNull(b[sortDetails.columnId]) ? b[sortDetails.columnId] : '';
- return aString === bString ? 0 : aString > bString ? 1 : -1;
+ if (!a.permissions.canRead && !b.permissions.canRead){
+ return 0;
+ }
+ if(a.permissions.canRead){
+ return 1;
+ } else {
+ return -1;
+ }
}
};
@@ -707,7 +718,7 @@ nf.Settings = (function () {
reportingTasksGrid.setSortColumn('name', true);
reportingTasksGrid.onSort.subscribe(function (e, args) {
sort({
- columnId: args.sortCol.field,
+ columnId: args.sortCol.id,
sortAsc: args.sortAsc
}, reportingTasksData);
});
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js
index 5d3890b8b5..fb36d35543 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js
@@ -151,6 +151,14 @@ nf.Shell = (function () {
// register a new close handler
$('#shell-dialog').modal('setCloseHandler', function () {
+ // close any open combos
+ var combos = $('.combo');
+ for (var i = 0, len = combos.length; i < len; i++) {
+ if ($(combos[i]).is(':visible')){
+ $(combos[i]).combo('close');
+ }
+ }
+
deferred.resolve();
// detach the content and add it back to the parent
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js
index 0b588654c2..e81e332495 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js
@@ -42,14 +42,25 @@ nf.TemplatesTable = (function () {
var sort = function (sortDetails, data) {
// defines a function for sorting
var comparer = function (a, b) {
- if (sortDetails.columnId === 'timestamp') {
- var aDate = nf.Common.parseDateTime(a[sortDetails.columnId]);
- var bDate = nf.Common.parseDateTime(b[sortDetails.columnId]);
- return aDate.getTime() - bDate.getTime();
+ if(a.permissions.canRead && b.permissions.canRead) {
+ if (sortDetails.columnId === 'timestamp') {
+ var aDate = nf.Common.parseDateTime(a.template[sortDetails.columnId]);
+ var bDate = nf.Common.parseDateTime(b.template[sortDetails.columnId]);
+ return aDate.getTime() - bDate.getTime();
+ } else {
+ var aString = nf.Common.isDefinedAndNotNull(a.template[sortDetails.columnId]) ? a.template[sortDetails.columnId] : '';
+ var bString = nf.Common.isDefinedAndNotNull(b.template[sortDetails.columnId]) ? b.template[sortDetails.columnId] : '';
+ return aString === bString ? 0 : aString > bString ? 1 : -1;
+ }
} else {
- var aString = nf.Common.isDefinedAndNotNull(a.template[sortDetails.columnId]) ? a.template[sortDetails.columnId] : '';
- var bString = nf.Common.isDefinedAndNotNull(b.template[sortDetails.columnId]) ? b.template[sortDetails.columnId] : '';
- return aString === bString ? 0 : aString > bString ? 1 : -1;
+ if (!a.permissions.canRead && !b.permissions.canRead){
+ return 0;
+ }
+ if(a.permissions.canRead){
+ return 1;
+ } else {
+ return -1;
+ }
}
};
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js
index 7f1195de16..0d4a1b08a5 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js
@@ -628,9 +628,20 @@ nf.UsersTable = (function () {
var sort = function (sortDetails, data) {
// defines a function for sorting
var comparer = function (a, b) {
- var aString = nf.Common.isDefinedAndNotNull(a.component[sortDetails.columnId]) ? a.component[sortDetails.columnId] : '';
- var bString = nf.Common.isDefinedAndNotNull(b.component[sortDetails.columnId]) ? b.component[sortDetails.columnId] : '';
- return aString === bString ? 0 : aString > bString ? 1 : -1;
+ if(a.permissions.canRead && b.permissions.canRead) {
+ var aString = nf.Common.isDefinedAndNotNull(a.component[sortDetails.columnId]) ? a.component[sortDetails.columnId] : '';
+ var bString = nf.Common.isDefinedAndNotNull(b.component[sortDetails.columnId]) ? b.component[sortDetails.columnId] : '';
+ return aString === bString ? 0 : aString > bString ? 1 : -1;
+ } else {
+ if (!a.permissions.canRead && !b.permissions.canRead){
+ return 0;
+ }
+ if(a.permissions.canRead){
+ return 1;
+ } else {
+ return -1;
+ }
+ }
};
// perform the sort