Skip to content

Commit e7cffba

Browse files
authored
Merge pull request #2172 from strictdoc-project/#_document_node_validation_messages
Add UI for nodes/fields validation messages in document view
2 parents de461f5 + 0ecaada commit e7cffba

File tree

7 files changed

+151
-0
lines changed

7 files changed

+151
-0
lines changed

strictdoc/export/html/_static/element.css

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1225,6 +1225,7 @@ a.tree_item,
12251225
padding-left: calc(var(--base-rhythm) * 2);
12261226
font-size: var(--font-size-sm);
12271227
line-height: 1.2;
1228+
padding-bottom: var(--base-gap);
12281229
}
12291230

12301231
.toc li {
@@ -1548,3 +1549,99 @@ sdoc-tabs.in_aside_panel sdoc-tab:hover {
15481549
sdoc-tabs.in_aside_panel sdoc-tab[active] {
15491550
background-color: var(--color-bg-main);
15501551
}
1552+
1553+
/* document_issues */
1554+
1555+
.document_issues-banner {
1556+
display: flex;
1557+
flex-direction: column;
1558+
position: relative;
1559+
margin-bottom: var(--base-gap);
1560+
font-size: var(--font-size-sm);
1561+
}
1562+
1563+
.document_issues-toggler {
1564+
text-align: right;
1565+
}
1566+
1567+
.document_issues-banner_details {
1568+
display: block;
1569+
overflow: hidden;
1570+
color: var(--color-danger);
1571+
border: 1px solid;
1572+
border-radius: var(--requirement-border-radius);
1573+
}
1574+
1575+
.document_issues-banner_summary {
1576+
font-weight: 600;
1577+
position: relative;
1578+
color: var(--color-danger);
1579+
padding-inline: calc(2 * var(--base-rhythm));
1580+
padding-block: var(--base-rhythm);
1581+
cursor: pointer;
1582+
user-select: none;
1583+
display: flex;
1584+
}
1585+
1586+
.document_issues-banner_summary::before {
1587+
content: '▸';
1588+
margin-right: var(--base-rhythm);
1589+
}
1590+
1591+
[open] > .document_issues-banner_summary::before {
1592+
content: '▾';
1593+
}
1594+
1595+
.document_issues-banner_summary::after {
1596+
content: '';
1597+
position: absolute;
1598+
inset: 0;
1599+
background-color: currentColor;
1600+
opacity: 0.1;
1601+
}
1602+
1603+
.document_issues-banner_content {
1604+
position: relative;
1605+
color: var(--color-fg-contrast);
1606+
padding-inline: calc(2 * var(--base-rhythm));
1607+
padding-block: calc(1 * var(--base-rhythm));
1608+
}
1609+
1610+
.document_issues-banner ul {
1611+
margin: 0;
1612+
padding-inline-start: 20px;
1613+
}
1614+
1615+
.field_issue {
1616+
grid-column: 1 / -1;
1617+
position: relative;
1618+
color: var(--color-danger);
1619+
padding: var(--base-rhythm);
1620+
font-size: var(--font-size-sm);
1621+
line-height: 1.5;
1622+
}
1623+
1624+
.field_issue-ribbon {
1625+
position: relative;
1626+
padding: calc(.5 * var(--base-rhythm)) var(--base-rhythm);
1627+
border-radius: calc(.5 * var(--base-rhythm));
1628+
border: 2px solid;
1629+
}
1630+
1631+
.field_issue-ribbon::before {
1632+
position: absolute;
1633+
content: '';
1634+
bottom: 100%;
1635+
left: var(--base-rhythm);
1636+
width: 0;
1637+
height: 0;
1638+
border-left: 6px solid transparent;
1639+
border-right: 6px solid transparent;
1640+
border-bottom: 6px solid currentColor;
1641+
}
1642+
1643+
.field_issue-ribbon::after {
1644+
content: '';
1645+
position: absolute;
1646+
inset: 0;
1647+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{% set issues_number = 2 %}
2+
3+
<div class="document_issues-banner">
4+
<details class="document_issues-banner_details">
5+
<summary class="document_issues-banner_summary">
6+
<div class="document_issues-banner_title">Document has
7+
{% if issues_number is defined and issues_number != "0" and issues_number != 0 %}
8+
{{ issues_number }}
9+
{% endif %}
10+
issues
11+
</div>
12+
</summary>
13+
<div class="document_issues-banner_content">
14+
<ul class="simple">
15+
<li>
16+
<a href="#field_issue_ID">Some issue</a>
17+
</li>
18+
<li>
19+
<a href="#field_issue_ID">Other issue</a>
20+
</li>
21+
</ul>
22+
</div>
23+
</details>
24+
{# todo JS: #}
25+
<a href="#" class="document_issues-toggler"><b>Hide</b> issues in the document ▾</a>
26+
</div>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{# For use: insert after field #}
2+
{#
3+
{% with issue_field_name = 'field_name' %}
4+
{% include "components/issue/index.jinja" %}
5+
{% endwith %}
6+
#}
7+
8+
<div id="field_issue_ID" class="field_issue">
9+
<div class="field_issue-ribbon">
10+
<b>Warning:</b> '{{ issue_field_name }}' field has issue: description in details
11+
</div>
12+
</div>

strictdoc/export/html/templates/components/node_field/document_meta/index.jinja

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@
1717
{%- include "components/field/index.jinja" -%}
1818
{%- endwith -%}
1919
</sdoc-meta-field>
20+
{# FIXME: Task #1229 / Uncomment example when validation logic is implemented: #}
21+
{#
22+
{% with issue_field_name = 'meta' %}
23+
{% include "components/issue/index.jinja" %}
24+
{% endwith %}
25+
#}
2026
{%- endif -%}
2127

2228
{% set document_date_ = view_object.render_document_date() %}

strictdoc/export/html/templates/components/requirement/index.jinja

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@
2121
{% set title_number = true %}
2222
{% set truncated_statement = false %}
2323
{% include "components/node_field/title/index.jinja" %}
24+
{# FIXME: Task #1229 / Uncomment example when validation logic is implemented: #}
25+
{#
26+
{% with issue_field_name = 'title' %}
27+
{% include "components/issue/index.jinja" %}
28+
{% endwith %}
29+
#}
2430
<sdoc-scope class="requirement_fields_group-secondary">
2531
{% include "components/node_field/meta/index.jinja" %}
2632
</sdoc-scope>

strictdoc/export/html/templates/screens/document/document/frame_document_content.jinja.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
class="content"
44
data-controller="anchor_controller"
55
>
6+
{# FIXME: Task #1229 / Uncomment when validation logic is implemented: #}
7+
{# {% include "screens/document/document/frame_document_issues.jinja" %} #}
8+
69
{% include "screens/document/document/frame_document_config.jinja.html" %}
710

811
{%- for node in view_object.document_content_iterator() %}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{% include "components/issue/banner.jinja" %}

0 commit comments

Comments
 (0)