From 9e2aa1da80dc4f4c4a68c790d49f976de65c6ed9 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Mon, 3 Jun 2019 16:01:18 +0200 Subject: [PATCH] fix async table header not being sent with ajax requests --- frontend/src/services/html-helpers/html-helpers.js | 7 ++++--- frontend/src/utils/async-table/async-table.js | 9 +-------- templates/table/colonnade.hamlet | 2 +- templates/table/layout-wrapper.hamlet | 2 +- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/frontend/src/services/html-helpers/html-helpers.js b/frontend/src/services/html-helpers/html-helpers.js index 8e6137b6c..b8bf7771b 100644 --- a/frontend/src/services/html-helpers/html-helpers.js +++ b/frontend/src/services/html-helpers/html-helpers.js @@ -10,13 +10,14 @@ export class HtmlHelpers { return response.text() .then( (responseText) => { - const docFrag = document.createRange().createContextualFragment(responseText); + const element = document.createElement('div'); + element.innerHTML = responseText; let idPrefix = ''; if (!options.keepIds) { idPrefix = this._getIdPrefix(); - this._prefixIds(docFrag, idPrefix); + this._prefixIds(element, idPrefix); } - return Promise.resolve({ idPrefix, element: docFrag }); + return Promise.resolve({ idPrefix, element }); }, Promise.reject, ).catch(console.error); diff --git a/frontend/src/utils/async-table/async-table.js b/frontend/src/utils/async-table/async-table.js index 32e0abab4..dd6e532b9 100644 --- a/frontend/src/utils/async-table/async-table.js +++ b/frontend/src/utils/async-table/async-table.js @@ -347,7 +347,7 @@ export class AsyncTable { this._removeListeners(); this._element.classList.remove(ASYNC_TABLE_INITIALIZED_CLASS); // update table with new - this._updateWrapperContents(response); + this._element.innerHTML = response.element.innerHTML; this._app.utilRegistry.setupAll(this._element); @@ -359,13 +359,6 @@ export class AsyncTable { }).catch((err) => console.error(err) ).finally(() => this._element.classList.remove(ASYNC_TABLE_LOADING_CLASS)); } - - _updateWrapperContents(response) { - const newPage = document.createElement('div'); - newPage.appendChild(response.element); - const newWrapperContents = newPage.querySelector('#' + response.idPrefix + this._element.id); - this._element.innerHTML = newWrapperContents.innerHTML; - } } diff --git a/templates/table/colonnade.hamlet b/templates/table/colonnade.hamlet index 71938bc4a..9ccea4ef8 100644 --- a/templates/table/colonnade.hamlet +++ b/templates/table/colonnade.hamlet @@ -1,6 +1,6 @@ $newline never
- +
$maybe wHeaders' <- wHeaders diff --git a/templates/table/layout-wrapper.hamlet b/templates/table/layout-wrapper.hamlet index fc144c1ed..1092c126f 100644 --- a/templates/table/layout-wrapper.hamlet +++ b/templates/table/layout-wrapper.hamlet @@ -1,3 +1,3 @@ $newline never -
+
^{table}