[ADD] js_type parameter to allow JS modules to be loaded

This commit is contained in:
Peter Pfeufer 2024-11-22 15:01:32 +01:00
parent ef7c8be7b5
commit 2822775fb8
No known key found for this signature in database
2 changed files with 22 additions and 9 deletions

View File

@ -14,8 +14,10 @@ class ThemeHook:
js: List[dict],
css_template: Optional[str] = None,
js_template: Optional[str] = None,
js_type: Optional[str] = None,
html_tags: Optional[Union[dict, str]] = None,
header_padding: Optional[str] = "4em"):
header_padding: Optional[str] = "4em"
):
"""
:param name: Theme python name
:type name: str
@ -29,11 +31,14 @@ class ThemeHook:
:type css_template: Optional[str], optional
:param js_template: _description_, defaults to None
:type js_template: Optional[str], optional
:param js_type: The type of the JS (e.g.: 'module'), defaults to None
:type js_type: Optional[str], optional
:param html_tags: Attributes added to the `<html>` tag, defaults to None
:type html_tags: Optional[dict|str], optional
:param header_padding: Top padding, defaults to "4em"
:type header_padding: Optional[str], optional
"""
self.name = name
self.description = description
@ -45,11 +50,15 @@ class ThemeHook:
self.css_template = css_template
self.js_template = js_template
# Define the JS type (e.g.: 'module')
self.js_type = js_type
self.html_tags = (
" ".join([f"{key}={value}" for key, value in html_tags.items()])
if isinstance(html_tags, dict)
else html_tags
)
self.header_padding = header_padding
def get_name(self):
return f"{self.__class__.__module__}.{self.__class__.__name__}"

View File

@ -4,7 +4,11 @@
{% include theme.js_template %}
{% else %}
{% for x in theme.js %}
{% if x.js_type %}
<script type="{{ x.js_type }}" src="{{ x.url }}" integrity="{{ x.integrity }}" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
{% else %}
<script src="{{ x.url }}" integrity="{{ x.integrity }}" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
{% endif %}
{% endfor %}
{% endif %}
<!-- allianceauth.theme.{{ theme.name }} JS Ends-->