{%- macro alert(content, dismissible, style) -%}
{{ content }} {{ ui.button("×"|safe, on={"click": "this.parentNode.remove()"}) if dismissible }}
{%- endmacro %} {%- macro confirm_modal(content, title, id, form_id, cancel_label, confirm_label, href) -%} {%- if not form_id -%} {% set form_id = ui.util.id() %} {{ ui.form(method="POST", attrs={"id": form_id}, action=href) }} {%- endif %} {%- set close_button = ui.modal_close_handle(cancel_label or _("Close"), id=id) %} {%- set confirm_button = ui.button(confirm_label or _("Confirm"), attrs={"onclick": "const form = window['{form_id}']; (form.getAttribute('hx-post')||form.getAttribute('hx-get')) ? form.dispatchEvent(new Event('submit')) : form.submit(); ckan.sandbox().ui.getModal('{id}').close();".format(form_id=form_id, id=id)}) %} {%- call ui.util.call(ui.modal, title=title or _("Confirm"), id=id, footer=close_button ~ confirm_button, **kwargs) -%} {{ content }} {%- endcall %} {%- endmacro %} {%- macro modal(content, title, footer, dismissible, id) -%} {%- if title %} {{ ui.heading(title, level=2) }} {%- endif %}
{{ content }}
{%- if footer -%}
{{ footer }}
{%- endif %}
{%- endmacro %} {%- macro popover(content, title, id) -%}
{{ ui.heading(title, level=4) if title }}
{{ content }}
{%- endmacro %} {%- macro progress(content, value=0, max=100) -%}
{%- if content %}{{ content }}{% else %}{{ value }} / {{ max }}{% endif %}
{%- endmacro %} {%- macro spinner(content, style, size) -%} {%- endmacro %} {%- macro toast(content, title, style, dismissible) -%}
{{ content }}
{%- endmacro %} {%- macro tooltip(content, tooltip, position="bottom") -%} {{ content }} {%- endmacro %}