diff --git a/KTL.js b/KTL.js index 04fb2b1..4bf6843 100644 --- a/KTL.js +++ b/KTL.js @@ -18573,6 +18573,13 @@ function Ktl($, appInfo) { const viewStates = {}; + /** + * Adds hide/show controls to a view and restores dependent view features when it opens. + * + * @param {object} view Knack view being rendered. + * @param {object} keywords Parsed keywords for the view. + * @returns {void} + */ function hideShowView({ key: viewId }, keywords) { const kw = '_hsv'; if (!viewId || !keywords || !keywords[kw]) return; @@ -18703,9 +18710,14 @@ function Ktl($, appInfo) { } } else { hiddenSection.slideDown(delay, () => { - const viewHasSTH = ktl.core.checkIfViewHasKeyword(viewId, '_sth'); - if (viewHasSTH) { - ktl.views.stickTableHeader(viewId); + if (keywords._sth) { + const stickyHeaderParams = keywords._sth?.[0]?.params?.[0] || []; + const numOfRecords = stickyHeaderParams[0] || 10; + const viewHeight = stickyHeaderParams[1] || 800; + const rowCount = Knack.views[viewId]?.model?.data?.length || 0; + + if (rowCount >= numOfRecords) + ktl.views.stickTableHeader(viewId, viewHeight); } const signatureElements = viewElement.find('.kn-input-signature');