MDL-68612 core_table: Pending checks for dyanmic updates

This commit is contained in:
Andrew Nicols 2020-06-04 10:43:04 +08:00 committed by Jun Pataleta
parent 2edcba39a2
commit 444ae8c8f0
3 changed files with 19 additions and 4 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -21,10 +21,11 @@
* @copyright 2020 Simey Lameze <simey@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
import {fetch as fetchTableData} from 'core_table/local/dynamic/repository';
import * as Selectors from 'core_table/local/dynamic/selectors';
import Events from './local/dynamic/events';
import Pending from 'core/pending';
import {addIconToContainer} from 'core/loadingicon';
import {fetch as fetchTableData} from 'core_table/local/dynamic/repository';
let watching = false;
@ -69,6 +70,8 @@ export const refreshTableContent = (tableRoot, resetContent = false) => {
const filterset = getFiltersetFromTable(tableRoot);
addIconToContainer(tableRoot);
const pendingPromise = new Pending('core_table/dynamic:refreshTableContent');
return fetchTableData(
tableRoot.dataset.tableComponent,
tableRoot.dataset.tableHandler,
@ -97,6 +100,11 @@ export const refreshTableContent = (tableRoot, resetContent = false) => {
bubbles: true,
}));
return tableRoot;
})
.then(tableRoot => {
pendingPromise.resolve();
return tableRoot;
});
};
@ -113,6 +121,8 @@ export const updateTable = (tableRoot, {
} = {}, refreshContent = true) => {
checkTableIsDynamic(tableRoot);
const pendingPromise = new Pending('core_table/dynamic:updateTable');
// Update sort fields.
if (sortBy && sortOrder) {
const sortData = JSON.parse(tableRoot.dataset.tableSortData);
@ -152,8 +162,13 @@ export const updateTable = (tableRoot, {
// Refresh.
if (refreshContent) {
return refreshTableContent(tableRoot);
return refreshTableContent(tableRoot)
.then(tableRoot => {
pendingPromise.resolve();
return tableRoot;
});
} else {
pendingPromise.resolve();
return Promise.resolve(tableRoot);
}
};