Skip to content

Commit 72cd085

Browse files
committed
Fix case where shows no content found for no data
1 parent b989106 commit 72cd085

3 files changed

Lines changed: 18 additions & 9 deletions

File tree

tests/test_invalid_html.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ def test_dynamic_table_does_not_render_header_fallback_without_rows(self):
9696

9797
rendered_html = self.doc.render(data)
9898

99-
assert "<th" not in rendered_html, "Header fallback should not render without rows"
99+
assert rendered_html.strip() == "No content found", "Empty tables should render only plain text"
100+
assert "<table" not in rendered_html, "Empty tables should not render any table markup"
100101
assert "Created At" not in rendered_html, "Hidden empty columns should not leak into output"
101102

102103
def test_dynamic_table_security(self):

tiptapy/templates/dynamicTable.html

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1+
{%- set visible_columns = [] -%}
2+
{%- set rows = node.attrs.content.rows if node.attrs.content and node.attrs.content.rows else [] -%}
3+
{%- if rows|length == 0 -%}
4+
No content found
5+
{%- else -%}
16
<table>
2-
{%- set visible_columns = [] -%}
37
{%- if node.attrs.columns and node.attrs.columns|length > 0 -%}
48
{%- for header, props in node.attrs.columns.items() -%}
59
{%- if props.visible -%}
610
{%- set _ = visible_columns.append((header, props)) -%}
711
{%- endif -%}
812
{%- endfor -%}
9-
{%- elif node.attrs.content and node.attrs.content.headers and node.attrs.content.rows and
10-
node.attrs.content.rows|length > 0 -%}
13+
{%- elif node.attrs.content and node.attrs.content.headers -%}
1114
{%- for header in node.attrs.content.headers -%}
1215
{%- set _ = visible_columns.append((header, {"originalName": header, "alias": None, "visible": True, "order":
1316
loop.index0, "width": None})) -%}
@@ -31,7 +34,7 @@
3134
</tr>
3235
</thead>
3336
<tbody>
34-
{%- for row in node.attrs.content.rows -%}
37+
{%- for row in rows -%}
3538
<tr>
3639
{%- for header, props in visible_columns|sort(attribute='1.order') -%}
3740
{%- if header in node.attrs.content.headers -%}
@@ -53,3 +56,4 @@
5356
{%- endfor -%}
5457
</tbody>
5558
</table>
59+
{%- endif -%}

tiptapy/templates/dynamic_table.html

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1+
{%- set visible_columns = [] -%}
2+
{%- set rows = node.attrs.content.rows if node.attrs.content and node.attrs.content.rows else [] -%}
3+
{%- if rows|length == 0 -%}
4+
No content found
5+
{%- else -%}
16
<table>
2-
{%- set visible_columns = [] -%}
37
{%- if node.attrs.columns and node.attrs.columns|length > 0 -%}
48
{%- for header, props in node.attrs.columns.items() -%}
59
{%- if props.visible -%}
610
{%- set _ = visible_columns.append((header, props)) -%}
711
{%- endif -%}
812
{%- endfor -%}
9-
{%- elif node.attrs.content and node.attrs.content.headers and node.attrs.content.rows and
10-
node.attrs.content.rows|length > 0 -%}
13+
{%- elif node.attrs.content and node.attrs.content.headers -%}
1114
{%- for header in node.attrs.content.headers -%}
1215
{%- set _ = visible_columns.append((header, {"originalName": header, "alias": None, "visible": True, "order":
1316
loop.index0, "width": None})) -%}
@@ -31,7 +34,7 @@
3134
</tr>
3235
</thead>
3336
<tbody>
34-
{%- for row in node.attrs.content.rows -%}
37+
{%- for row in rows -%}
3538
<tr>
3639
{%- for header, props in visible_columns|sort(attribute='1.order') -%}
3740
{%- if header in node.attrs.content.headers -%}
@@ -53,3 +56,4 @@
5356
{%- endfor -%}
5457
</tbody>
5558
</table>
59+
{%- endif -%}

0 commit comments

Comments
 (0)