|
| 1 | +{% load ext_theme_tags %} |
| 2 | + |
1 | 3 | {% comment %}
|
2 | 4 | This template is used by the base template to provide a list of messages on
|
3 |
| - the top of the page. |
| 5 | + the top of the page. If the message has a pk it is a persisent or sticky |
| 6 | + message level. Otherwise, Django default level notifications are treated as |
| 7 | + temporary messages, using SUI toast messages instead of block elements in the |
| 8 | + page content pane. |
4 | 9 | {% endcomment %}
|
5 | 10 |
|
6 | 11 | {% if messages %}
|
7 | 12 | {% for message in messages %}
|
| 13 | + {# Message is sticky/persistent, show these like normal. #} |
8 | 14 | {% if message.pk %}
|
9 | 15 | <div class="ui message {{ message.tags }}"
|
10 | 16 | data-bind="message: {dismiss_url: '{% url "message_mark_read" message.pk %}'}">
|
11 | 17 | <i class="fa-duotone fa-circle-xmark close icon"></i>
|
12 |
| - <span>{{ message }}</span> |
| 18 | + {{ message }} |
13 | 19 | </div>
|
14 | 20 | {% else %}
|
15 |
| - <div class="ui message {{ message.tags }}" |
16 |
| - data-bind="message: {}"> |
17 |
| - <i class="fa-duotone fa-circle-xmark close icon"></i> |
18 |
| - <span>{{ message }}</span> |
19 |
| - </div> |
| 21 | + {# |
| 22 | + This is a little bit of a hack, as toasts are purely JS and don't |
| 23 | + require an underlying element. Django messages uses "tags" to specify |
| 24 | + info/success/error classes on the messages, which just happen to align |
| 25 | + with SUI classes too. |
| 26 | + #} |
| 27 | + {% spaceless %} |
| 28 | + <div style="display: none;" |
| 29 | + data-bind=" |
| 30 | +semanticui: { |
| 31 | + toast: { |
| 32 | + message: '{{ message|escapejs }}', |
| 33 | + showProgress: 'bottom', |
| 34 | + classProgress: 'primary', |
| 35 | + class: '{{ message.tags }}', |
| 36 | + displayTime: 7500, |
| 37 | + } |
| 38 | +}"> |
| 39 | + </div> |
| 40 | + {% endspaceless %} |
20 | 41 | {% endif %}
|
21 | 42 | {% endfor %}
|
22 | 43 | {% endif %}
|
0 commit comments