diff --git a/ui/scripts/ui/widgets/listView.js b/ui/scripts/ui/widgets/listView.js index 2ea817a7b63..415169a0eac 100644 --- a/ui/scripts/ui/widgets/listView.js +++ b/ui/scripts/ui/widgets/listView.js @@ -1035,6 +1035,7 @@ var subselect = uiCustom ? listViewArgs.listView.subselect : null; if (!(data && data.length)) { + $listView.data('end-of-table', true); if (!$tbody.find('tr').size()) { return [ $('').addClass('empty last').append( @@ -1502,6 +1503,7 @@ var reorder = options.reorder; var multiSelect = options.multiSelect; var $tbody = $table.find('tbody'); + var $listView = $table.closest('.list-view'); if (!loadArgs) loadArgs = { page: 1, @@ -1512,11 +1514,16 @@ } }; + if (options.clearEndTable) { + $listView.data('page', 1); + $table.closest('.list-view').data('end-of-table', false); + } + if (!append) { if (!append) $table.find('tbody tr').remove(); } - var viewArgs = $table.closest('.list-view').data('view-args'); + var viewArgs = $listView.data('view-args'); var uiCustom = viewArgs.listView ? viewArgs.listView.uiCustom : false; setLoading($table, function(setLoadingArgs) { @@ -1539,12 +1546,6 @@ noSelect: uiCustom }); - if (args.data && - args.data.length < pageSize && - options.setEndTable) { - options.setEndTable(); - } - setTimeout(function() { $table.dataTable('refresh'); }); @@ -1686,16 +1687,13 @@ var $toolbar = $('
').addClass('toolbar').appendTo($listView); var $table = $('').appendTo($listView); var infScrollTimer; - var page = 1; var actions = listViewData.actions; var reorder = listViewData.reorder; var multiSelect = listViewData.multiSelect; var tableHeight = $table.height(); - var endTable = false; - var setEndTable = function() { - endTable = true; - } + $listView.data('end-of-table', false); + $listView.data('page', 1); var $switcher; if (args.sections) { @@ -1794,7 +1792,7 @@ listViewData.preFilter, listViewData.fields, false, { - page: page, + page: $listView.data('page'), filterBy: { kind: $listView.find('select[id=filterBy]').val(), search: { @@ -1808,7 +1806,6 @@ context: args.context, reorder: reorder, detailView: listViewData.detailView, - setEndTable: setEndTable, 'multiSelect': multiSelect, noActionCol: listViewData.noActionCol } @@ -1842,14 +1839,14 @@ var basicSearch = function() { $listView.removeData('advSearch'); - page = 1; + $listView.data('page', 1); loadBody( $table, listViewData.dataProvider, listViewData.preFilter, listViewData.fields, false, { - page: page, + page: $listView.data('page'), filterBy: { kind: $listView.find('select[id=filterBy]').val(), search: { @@ -1862,7 +1859,6 @@ context: $listView.data('view-args').context, reorder: listViewData.reorder, detailView: listViewData.detailView, - setEndTable: setEndTable, 'multiSelect': multiSelect, noActionCol: listViewData.noActionCol } @@ -1895,15 +1891,14 @@ //advanced search var advancedSearch = function(args) { $listView.data('advSearch', args.data); - - page = 1; + $listView.data('page', 1); loadBody( $table, listViewData.dataProvider, listViewData.preFilter, listViewData.fields, false, { - page: page, + page: $listView.data('page'), filterBy: { kind: $listView.find('select[id=filterBy]').val(), advSearch: args.data @@ -1913,7 +1908,6 @@ context: $listView.data('view-args').context, reorder: listViewData.reorder, detailView: listViewData.detailView, - setEndTable: setEndTable, 'multiSelect': multiSelect, noActionCol: listViewData.noActionCol } @@ -1979,8 +1973,8 @@ var loadMoreData = $listView.scrollTop() >= ($table.height() - $listView.height()) - $listView.height() / 4; var context = $listView.data('view-args').context; - if (loadMoreData && !endTable) { - page = page + 1; + if (loadMoreData && !$listView.data('end-of-table')) { + $listView.data('page', $listView.data('page') + 1); var filterBy = { kind: $listView.find('select[id=filterBy]').length > 0 ? $listView.find('select[id=filterBy]').val() : 'all' @@ -2000,12 +1994,11 @@ listViewData.preFilter, listViewData.fields, true, { context: context, - page: page, + page: $listView.data('page'), filterBy: filterBy }, actions, { reorder: listViewData.reorder, detailView: listViewData.detailView, - setEndTable: setEndTable, 'multiSelect': multiSelect, noActionCol: listViewData.noActionCol }); @@ -2272,6 +2265,7 @@ false, null, listViewArgs.actions, { + clearEndTable: true, multiSelect: listViewArgs.multiSelect, context: this.data('view-args').context, detailView: listViewArgs.detailView