mirror of
https://github.com/ansible/awx.git
synced 2026-03-10 05:59:28 -02:30
AC-1292 Host container on inventory edit page now automatically resizes and adjusts rows per page.
This commit is contained in:
@@ -475,7 +475,7 @@ function InventoriesEdit($scope, $location, $routeParams, $compile, $log, $rootS
|
|||||||
GetSyncStatusMsg, InjectHosts, HostsReload, GroupsEdit, GroupsDelete, Breadcrumbs, LoadBreadCrumbs, Empty, Rest, ProcessErrors,
|
GetSyncStatusMsg, InjectHosts, HostsReload, GroupsEdit, GroupsDelete, Breadcrumbs, LoadBreadCrumbs, Empty, Rest, ProcessErrors,
|
||||||
InventoryUpdate, Alert, ToggleChildren, ViewUpdateStatus, GroupsCancelUpdate, Find, EditInventoryProperties, HostsEdit,
|
InventoryUpdate, Alert, ToggleChildren, ViewUpdateStatus, GroupsCancelUpdate, Find, EditInventoryProperties, HostsEdit,
|
||||||
HostsDelete, ToggleHostEnabled, CopyMoveGroup, CopyMoveHost, Stream, GetBasePath, ShowJobSummary, ApplyEllipsis, WatchInventoryWindowResize,
|
HostsDelete, ToggleHostEnabled, CopyMoveGroup, CopyMoveHost, Stream, GetBasePath, ShowJobSummary, ApplyEllipsis, WatchInventoryWindowResize,
|
||||||
HelpDialog, InventoryGroupsHelp, Store, ViewJob) {
|
HelpDialog, InventoryGroupsHelp, Store, ViewJob, SetContainerHeights) {
|
||||||
|
|
||||||
ClearScope();
|
ClearScope();
|
||||||
|
|
||||||
@@ -564,6 +564,9 @@ function InventoriesEdit($scope, $location, $routeParams, $compile, $log, $rootS
|
|||||||
$scope.selected_group_id = null;
|
$scope.selected_group_id = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Resize the containers based on viewport width/height
|
||||||
|
SetContainerHeights({ scope: $scope, reloadHosts: false });
|
||||||
|
|
||||||
// Add hosts view
|
// Add hosts view
|
||||||
$scope.show_failures = false;
|
$scope.show_failures = false;
|
||||||
InjectHosts({
|
InjectHosts({
|
||||||
@@ -590,7 +593,7 @@ function InventoriesEdit($scope, $location, $routeParams, $compile, $log, $rootS
|
|||||||
ApplyEllipsis('#groups_table .group-name a');
|
ApplyEllipsis('#groups_table .group-name a');
|
||||||
ApplyEllipsis('#hosts_table .host-name a');
|
ApplyEllipsis('#hosts_table .host-name a');
|
||||||
}, 2500); //give the window time to display
|
}, 2500); //give the window time to display
|
||||||
WatchInventoryWindowResize();
|
WatchInventoryWindowResize({ scope: $scope });
|
||||||
|
|
||||||
inventoryAutoHelp = Store('inventoryAutoHelp');
|
inventoryAutoHelp = Store('inventoryAutoHelp');
|
||||||
if (inventoryAutoHelp !== 'off' && $scope.autoShowGroupHelp) {
|
if (inventoryAutoHelp !== 'off' && $scope.autoShowGroupHelp) {
|
||||||
@@ -859,5 +862,5 @@ InventoriesEdit.$inject = ['$scope', '$location', '$routeParams', '$compile', '$
|
|||||||
'LoadBreadCrumbs', 'Empty', 'Rest', 'ProcessErrors', 'InventoryUpdate', 'Alert', 'ToggleChildren', 'ViewUpdateStatus', 'GroupsCancelUpdate',
|
'LoadBreadCrumbs', 'Empty', 'Rest', 'ProcessErrors', 'InventoryUpdate', 'Alert', 'ToggleChildren', 'ViewUpdateStatus', 'GroupsCancelUpdate',
|
||||||
'Find', 'EditInventoryProperties', 'HostsEdit', 'HostsDelete', 'ToggleHostEnabled', 'CopyMoveGroup', 'CopyMoveHost',
|
'Find', 'EditInventoryProperties', 'HostsEdit', 'HostsDelete', 'ToggleHostEnabled', 'CopyMoveGroup', 'CopyMoveHost',
|
||||||
'Stream', 'GetBasePath', 'ShowJobSummary', 'ApplyEllipsis', 'WatchInventoryWindowResize', 'HelpDialog', 'InventoryGroupsHelp', 'Store',
|
'Stream', 'GetBasePath', 'ShowJobSummary', 'ApplyEllipsis', 'WatchInventoryWindowResize', 'HelpDialog', 'InventoryGroupsHelp', 'Store',
|
||||||
'ViewJob'
|
'ViewJob', 'SetContainerHeights'
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -615,11 +615,11 @@ function($compile, SchedulerInit, Rest, Wait, SetSchedulesInnerDialogSize, Sched
|
|||||||
|
|
||||||
.factory('GroupsEdit', ['$rootScope', '$location', '$log', '$routeParams', '$compile', 'Rest', 'Alert', 'GroupForm', 'GenerateForm',
|
.factory('GroupsEdit', ['$rootScope', '$location', '$log', '$routeParams', '$compile', 'Rest', 'Alert', 'GroupForm', 'GenerateForm',
|
||||||
'Prompt', 'ProcessErrors', 'GetBasePath', 'SetNodeName', 'ParseTypeChange', 'GetSourceTypeOptions', 'InventoryUpdate',
|
'Prompt', 'ProcessErrors', 'GetBasePath', 'SetNodeName', 'ParseTypeChange', 'GetSourceTypeOptions', 'InventoryUpdate',
|
||||||
'LookUpInit', 'Empty', 'Wait', 'GetChoices', 'UpdateGroup', 'SourceChange', 'Find','WatchInventoryWindowResize',
|
'LookUpInit', 'Empty', 'Wait', 'GetChoices', 'UpdateGroup', 'SourceChange', 'Find',
|
||||||
'ParseVariableString', 'ToJSON', 'GroupsScheduleListInit', 'SourceForm', 'SetSchedulesInnerDialogSize', 'BuildTree',
|
'ParseVariableString', 'ToJSON', 'GroupsScheduleListInit', 'SourceForm', 'SetSchedulesInnerDialogSize', 'BuildTree',
|
||||||
function ($rootScope, $location, $log, $routeParams, $compile, Rest, Alert, GroupForm, GenerateForm, Prompt, ProcessErrors,
|
function ($rootScope, $location, $log, $routeParams, $compile, Rest, Alert, GroupForm, GenerateForm, Prompt, ProcessErrors,
|
||||||
GetBasePath, SetNodeName, ParseTypeChange, GetSourceTypeOptions, InventoryUpdate, LookUpInit, Empty, Wait,
|
GetBasePath, SetNodeName, ParseTypeChange, GetSourceTypeOptions, InventoryUpdate, LookUpInit, Empty, Wait,
|
||||||
GetChoices, UpdateGroup, SourceChange, Find, WatchInventoryWindowResize, ParseVariableString, ToJSON, GroupsScheduleListInit,
|
GetChoices, UpdateGroup, SourceChange, Find, ParseVariableString, ToJSON, GroupsScheduleListInit,
|
||||||
SourceForm, SetSchedulesInnerDialogSize, BuildTree) {
|
SourceForm, SetSchedulesInnerDialogSize, BuildTree) {
|
||||||
return function (params) {
|
return function (params) {
|
||||||
|
|
||||||
@@ -1044,7 +1044,7 @@ function($compile, SchedulerInit, Rest, Wait, SetSchedulesInnerDialogSize, Sched
|
|||||||
} else {
|
} else {
|
||||||
Wait('stop');
|
Wait('stop');
|
||||||
}
|
}
|
||||||
WatchInventoryWindowResize();
|
//WatchInventoryWindowResize();
|
||||||
parent_scope.removeAddTreeRefreshed();
|
parent_scope.removeAddTreeRefreshed();
|
||||||
if (modal_scope.searchCleanUp) {
|
if (modal_scope.searchCleanUp) {
|
||||||
modal_scope.searchCleanup();
|
modal_scope.searchCleanup();
|
||||||
@@ -1178,9 +1178,9 @@ function($compile, SchedulerInit, Rest, Wait, SetSchedulesInnerDialogSize, Sched
|
|||||||
//if (modal_scope.searchCleanup) {
|
//if (modal_scope.searchCleanup) {
|
||||||
// modal_scope.searchCleanup();
|
// modal_scope.searchCleanup();
|
||||||
//}
|
//}
|
||||||
if (base === 'inventories') {
|
//if (base === 'inventories') {
|
||||||
WatchInventoryWindowResize();
|
// WatchInventoryWindowResize();
|
||||||
}
|
//}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Save
|
// Save
|
||||||
@@ -1469,9 +1469,9 @@ function($compile, SchedulerInit, Rest, Wait, SetSchedulesInnerDialogSize, Sched
|
|||||||
])
|
])
|
||||||
|
|
||||||
.factory('ShowUpdateStatus', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'GenerateForm',
|
.factory('ShowUpdateStatus', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'GenerateForm',
|
||||||
'Prompt', 'ProcessErrors', 'GetBasePath', 'FormatDate', 'InventoryStatusForm', 'Wait', 'Empty', 'WatchInventoryWindowResize',
|
'Prompt', 'ProcessErrors', 'GetBasePath', 'FormatDate', 'InventoryStatusForm', 'Wait',
|
||||||
function ($rootScope, $location, $log, $routeParams, Rest, Alert, GenerateForm, Prompt, ProcessErrors, GetBasePath,
|
function ($rootScope, $location, $log, $routeParams, Rest, Alert, GenerateForm, Prompt, ProcessErrors, GetBasePath,
|
||||||
FormatDate, InventoryStatusForm, Wait, Empty, WatchInventoryWindowResize) {
|
FormatDate, InventoryStatusForm, Wait) {
|
||||||
return function (params) {
|
return function (params) {
|
||||||
|
|
||||||
var group_name = params.group_name,
|
var group_name = params.group_name,
|
||||||
@@ -1563,7 +1563,7 @@ function($compile, SchedulerInit, Rest, Wait, SetSchedulesInnerDialogSize, Sched
|
|||||||
});
|
});
|
||||||
$('#status-modal-dialog').dialog('destroy');
|
$('#status-modal-dialog').dialog('destroy');
|
||||||
$('#inventory-modal-container').empty();
|
$('#inventory-modal-container').empty();
|
||||||
WatchInventoryWindowResize();
|
//WatchInventoryWindowResize();
|
||||||
},
|
},
|
||||||
open: function () {
|
open: function () {
|
||||||
Wait('stop');
|
Wait('stop');
|
||||||
|
|||||||
@@ -161,16 +161,15 @@ angular.module('HostsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', 'H
|
|||||||
}])
|
}])
|
||||||
|
|
||||||
.factory('HostsReload', [ '$routeParams', 'Empty', 'InventoryHosts', 'GetBasePath', 'SearchInit', 'PaginateInit', 'Wait',
|
.factory('HostsReload', [ '$routeParams', 'Empty', 'InventoryHosts', 'GetBasePath', 'SearchInit', 'PaginateInit', 'Wait',
|
||||||
'SetHostStatus', 'SetStatus', 'ApplyEllipsis',
|
'SetHostStatus', 'SetStatus', 'ApplyEllipsis', 'SetContainerHeights', 'GetHostContainerRows',
|
||||||
function($routeParams, Empty, InventoryHosts, GetBasePath, SearchInit, PaginateInit, Wait, SetHostStatus, SetStatus,
|
function($routeParams, Empty, InventoryHosts, GetBasePath, SearchInit, PaginateInit, Wait, SetHostStatus, SetStatus,
|
||||||
ApplyEllipsis) {
|
ApplyEllipsis, SetContainerHeights) {
|
||||||
return function(params) {
|
return function(params) {
|
||||||
|
|
||||||
var scope = params.scope,
|
var scope = params.scope,
|
||||||
group_id = params.group_id,
|
group_id = params.group_id,
|
||||||
inventory_id = params.inventory_id,
|
inventory_id = params.inventory_id,
|
||||||
list = InventoryHosts,
|
list = InventoryHosts,
|
||||||
|
|
||||||
url = ( !Empty(group_id) ) ? GetBasePath('groups') + group_id + '/all_hosts/' :
|
url = ( !Empty(group_id) ) ? GetBasePath('groups') + group_id + '/all_hosts/' :
|
||||||
GetBasePath('inventory') + inventory_id + '/hosts/';
|
GetBasePath('inventory') + inventory_id + '/hosts/';
|
||||||
|
|
||||||
@@ -191,6 +190,9 @@ function($routeParams, Empty, InventoryHosts, GetBasePath, SearchInit, PaginateI
|
|||||||
scope.$emit('HostReloadComplete');
|
scope.$emit('HostReloadComplete');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Size containers based on viewport
|
||||||
|
SetContainerHeights({ scope: scope, reloadHosts: false });
|
||||||
|
|
||||||
SearchInit({ scope: scope, set: 'hosts', list: list, url: url });
|
SearchInit({ scope: scope, set: 'hosts', list: list, url: url });
|
||||||
PaginateInit({ scope: scope, list: list, url: url });
|
PaginateInit({ scope: scope, list: list, url: url });
|
||||||
|
|
||||||
@@ -334,10 +336,10 @@ function($rootScope, $location, $log, $routeParams, Rest, Alert, HostList, Gener
|
|||||||
|
|
||||||
|
|
||||||
.factory('HostsCreate', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'HostForm', 'GenerateForm',
|
.factory('HostsCreate', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'HostForm', 'GenerateForm',
|
||||||
'Prompt', 'ProcessErrors', 'GetBasePath', 'HostsReload', 'ParseTypeChange', 'Wait', 'WatchInventoryWindowResize',
|
'Prompt', 'ProcessErrors', 'GetBasePath', 'HostsReload', 'ParseTypeChange', 'Wait',
|
||||||
'ToJSON',
|
'ToJSON',
|
||||||
function($rootScope, $location, $log, $routeParams, Rest, Alert, HostForm, GenerateForm, Prompt, ProcessErrors,
|
function($rootScope, $location, $log, $routeParams, Rest, Alert, HostForm, GenerateForm, Prompt, ProcessErrors,
|
||||||
GetBasePath, HostsReload, ParseTypeChange, Wait, WatchInventoryWindowResize, ToJSON) {
|
GetBasePath, HostsReload, ParseTypeChange, Wait, ToJSON) {
|
||||||
return function(params) {
|
return function(params) {
|
||||||
|
|
||||||
var parent_scope = params.scope,
|
var parent_scope = params.scope,
|
||||||
@@ -388,7 +390,7 @@ function($rootScope, $location, $log, $routeParams, Rest, Alert, HostForm, Gener
|
|||||||
inventory_id: parent_scope.inventory_id
|
inventory_id: parent_scope.inventory_id
|
||||||
});
|
});
|
||||||
|
|
||||||
WatchInventoryWindowResize();
|
//WatchInventoryWindowResize();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Save
|
// Save
|
||||||
@@ -426,7 +428,7 @@ function($rootScope, $location, $log, $routeParams, Rest, Alert, HostForm, Gener
|
|||||||
};
|
};
|
||||||
|
|
||||||
scope.cancelModal = function() {
|
scope.cancelModal = function() {
|
||||||
WatchInventoryWindowResize();
|
// WatchInventoryWindowResize();
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -435,9 +437,9 @@ function($rootScope, $location, $log, $routeParams, Rest, Alert, HostForm, Gener
|
|||||||
|
|
||||||
.factory('HostsEdit', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'HostForm', 'GenerateForm',
|
.factory('HostsEdit', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'HostForm', 'GenerateForm',
|
||||||
'Prompt', 'ProcessErrors', 'GetBasePath', 'HostsReload', 'ParseTypeChange', 'Wait', 'Find', 'SetStatus', 'ApplyEllipsis',
|
'Prompt', 'ProcessErrors', 'GetBasePath', 'HostsReload', 'ParseTypeChange', 'Wait', 'Find', 'SetStatus', 'ApplyEllipsis',
|
||||||
'WatchInventoryWindowResize', 'ToJSON', 'ParseVariableString', 'CreateDialog', 'TextareaResize', 'Empty',
|
'ToJSON', 'ParseVariableString', 'CreateDialog', 'TextareaResize', 'Empty',
|
||||||
function($rootScope, $location, $log, $routeParams, Rest, Alert, HostForm, GenerateForm, Prompt, ProcessErrors,
|
function($rootScope, $location, $log, $routeParams, Rest, Alert, HostForm, GenerateForm, Prompt, ProcessErrors,
|
||||||
GetBasePath, HostsReload, ParseTypeChange, Wait, Find, SetStatus, ApplyEllipsis, WatchInventoryWindowResize, ToJSON,
|
GetBasePath, HostsReload, ParseTypeChange, Wait, Find, SetStatus, ApplyEllipsis, ToJSON,
|
||||||
ParseVariableString, CreateDialog, TextareaResize, Empty) {
|
ParseVariableString, CreateDialog, TextareaResize, Empty) {
|
||||||
return function(params) {
|
return function(params) {
|
||||||
|
|
||||||
@@ -488,7 +490,6 @@ function($rootScope, $location, $log, $routeParams, Rest, Alert, HostForm, Gener
|
|||||||
Wait('stop');
|
Wait('stop');
|
||||||
scope.codeMirror.destroy();
|
scope.codeMirror.destroy();
|
||||||
$('#host-modal-dialog').empty();
|
$('#host-modal-dialog').empty();
|
||||||
WatchInventoryWindowResize();
|
|
||||||
},
|
},
|
||||||
onResizeStop: function() {
|
onResizeStop: function() {
|
||||||
TextareaResize({
|
TextareaResize({
|
||||||
@@ -638,7 +639,7 @@ function($rootScope, $location, $log, $routeParams, Rest, Alert, HostForm, Gener
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Restore ellipsis response to window resize
|
// Restore ellipsis response to window resize
|
||||||
WatchInventoryWindowResize();
|
//WatchInventoryWindowResize();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Save changes to the parent
|
// Save changes to the parent
|
||||||
|
|||||||
@@ -21,26 +21,49 @@ angular.module('InventoryHelper', ['RestServices', 'Utilities', 'OrganizationLis
|
|||||||
};
|
};
|
||||||
}])
|
}])
|
||||||
|
|
||||||
.factory('SetContainerHeights', [ 'GetGroupContainerHeight', function(GetGroupContainerHeight) {
|
.factory('GetHostContainerRows', [ function() {
|
||||||
return function() {
|
return function() {
|
||||||
var height;
|
var height = $('#hosts-container .well').height() - $('#hosts-constainer .well .row').height() - $('#hosts_table thead').height();
|
||||||
|
return Math.floor(height / 27) - 1;
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
|
||||||
|
.factory('SetContainerHeights', [ 'GetGroupContainerHeight', 'GetHostContainerRows', function(GetGroupContainerHeight, GetHostContainerRows) {
|
||||||
|
return function(params) {
|
||||||
|
var scope = (params && params.scope) ? params.scope : null,
|
||||||
|
reloadHosts = (params && params.reloadHosts) ? true : false,
|
||||||
|
height, rows;
|
||||||
if ($(window).width() > 1210) {
|
if ($(window).width() > 1210) {
|
||||||
height = GetGroupContainerHeight();
|
height = GetGroupContainerHeight();
|
||||||
$('#groups-container .list-table-container').height(height);
|
$('#groups-container .list-table-container').height(height);
|
||||||
|
$('#hosts-container .well').height( $('#groups-container').height() - 49 );
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$('#groups-container .list-table-container').height('auto');
|
$('#groups-container .list-table-container').height('auto');
|
||||||
|
$('#hosts-container .well').height('auto');
|
||||||
}
|
}
|
||||||
$('#groups-container .list-table-container').mCustomScrollbar("update");
|
$('#groups-container .list-table-container').mCustomScrollbar("update");
|
||||||
$('#hosts-container .well').height( $('#groups-container').height() - 39 );
|
|
||||||
|
if (reloadHosts) {
|
||||||
|
// we need ro recalc the the page size
|
||||||
|
if ($(window).width() > 1210) {
|
||||||
|
rows = GetHostContainerRows();
|
||||||
|
scope.host_page_size = rows;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// on small screens we go back to the default
|
||||||
|
scope.host_page_size = 20;
|
||||||
|
}
|
||||||
|
scope.changePageSize('hosts', 'host');
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}])
|
}])
|
||||||
|
|
||||||
.factory('WatchInventoryWindowResize', ['ApplyEllipsis', 'SetContainerHeights',
|
.factory('WatchInventoryWindowResize', ['ApplyEllipsis', 'SetContainerHeights',
|
||||||
function (ApplyEllipsis, SetContainerHeights) {
|
function (ApplyEllipsis, SetContainerHeights) {
|
||||||
return function () {
|
return function (params) {
|
||||||
// Call to set or restore window resize
|
// Call to set or restore window resize
|
||||||
SetContainerHeights();
|
var scope = params.scope;
|
||||||
$(window).resize(_.debounce(function() {
|
$(window).resize(_.debounce(function() {
|
||||||
// Hack to stop group-name div slipping to a new line
|
// Hack to stop group-name div slipping to a new line
|
||||||
$('#groups_table .name-column').each(function () {
|
$('#groups_table .name-column').each(function () {
|
||||||
@@ -53,7 +76,7 @@ angular.module('InventoryHelper', ['RestServices', 'Utilities', 'OrganizationLis
|
|||||||
});
|
});
|
||||||
ApplyEllipsis('#groups_table .group-name a');
|
ApplyEllipsis('#groups_table .group-name a');
|
||||||
ApplyEllipsis('#hosts_table .host-name a');
|
ApplyEllipsis('#hosts_table .host-name a');
|
||||||
SetContainerHeights();
|
SetContainerHeights({ scope: scope, reloadHosts: true });
|
||||||
}, 500));
|
}, 500));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1342,6 +1342,9 @@ input[type="checkbox"].checkbox-no-label {
|
|||||||
position: relative;
|
position: relative;
|
||||||
top: -15px;
|
top: -15px;
|
||||||
}
|
}
|
||||||
|
.well {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#inventories_table i[class*="icon-job-"],
|
#inventories_table i[class*="icon-job-"],
|
||||||
|
|||||||
Reference in New Issue
Block a user