aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-10-28 21:47:42 +0200
committerWojtek Kosior <koszko@koszko.org>2022-10-28 21:53:50 +0200
commit1dc7a15bc85a89100b9fcbc8f1f153e2e33a2c3d (patch)
tree0c7f998bf8445308fc9bbfdc2e11ec846788f167
parentff43da19c58c9524ff89e0b0dce62d889d5e21a2 (diff)
downloadhaketilo-hydrilla-1dc7a15bc85a89100b9fcbc8f1f153e2e33a2c3d.tar.gz
haketilo-hydrilla-1dc7a15bc85a89100b9fcbc8f1f153e2e33a2c3d.zip
[proxy] move common jinja templates into a subrepository
-rw-r--r--.gitmodules3
m---------src/hydrilla/common_jinja_templates0
-rw-r--r--src/hydrilla/common_jinja_templates/base.html.jinja305
-rw-r--r--src/hydrilla/common_jinja_templates/import/checkbox_tricks.html.jinja42
-rw-r--r--src/hydrilla/common_jinja_templates/include/checkbox_tricks_style.css.jinja45
-rw-r--r--src/hydrilla/common_jinja_templates/include/item_list_style.css.jinja57
6 files changed, 3 insertions, 449 deletions
diff --git a/.gitmodules b/.gitmodules
index 5e269b4..9fd361b 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -15,3 +15,6 @@
[submodule "hydrilla-source-package-example"]
path = tests/source-package-example
url = ../hydrilla-source-package-example/
+[submodule "hydrilla-common-html-jinja-templates"]
+ path = src/hydrilla/common_jinja_templates
+ url = ../hydrilla-common-html-jinja-templates/
diff --git a/src/hydrilla/common_jinja_templates b/src/hydrilla/common_jinja_templates
new file mode 160000
+Subproject a38750ae1e62af2320069264c30c8693a1a858b
diff --git a/src/hydrilla/common_jinja_templates/base.html.jinja b/src/hydrilla/common_jinja_templates/base.html.jinja
deleted file mode 100644
index c4d288b..0000000
--- a/src/hydrilla/common_jinja_templates/base.html.jinja
+++ /dev/null
@@ -1,305 +0,0 @@
-{#
-SPDX-License-Identifier: GPL-3.0-or-later OR CC-BY-SA-4.0
-
-Hydrilla&Haketilo reusable base page template.
-
-This file is part of Hydrilla&Haketilo.
-
-Copyright (C) 2022 Wojtek Kosior
-
-Dual licensed under
-* GNU General Public License v3.0 or later and
-* Creative Commons Attribution Share Alike 4.0 International.
-
-You can choose to use either of these licenses or both.
-
-
-I, Wojtek Kosior, thereby promise not to sue for violation of this
-file's licenses. Although I request that you do not make use of this
-code in a proprietary work, I am not going to enforce this in court.
-#}
-<!DOCTYPE html>
-
-{% macro button_row(buttons_data, common_fields={}) %}
- <div class="flex-row">
- {% for classes, text, extra_fields in buttons_data %}
- {% if not loop.first %}
- <div class="button-row-separator"></div>
- {% do classes.append('button-bordering-left') %}
- {% endif %}
-
- {% if not loop.last %}
- {% do classes.append('button-bordering-right') %}
- {% endif %}
-
- {% if 'disabled-button' in classes %}
- {% set disabled_attr = ' disabled=""' %}
- {% else %}
- {% set disabled_attr = '' %}
- {% endif %}
-
- <form method="POST" class="flex-row">
- {% for name, value in extra_fields.items() %}
- <input name="{{ name }}" value="{{ value }}" type="hidden">
- {% endfor %}
- {% for name, value in common_fields.items() %}
- <input name="{{ name }}" value="{{ value }}" type="hidden">
- {% endfor %}
-
- <button class="{{ classes|join(' ') }}"{{ disabled_attr }}>
- {{ text }}
- </button>
- </form>
- {% endfor %}
- </div>
-{% endmacro %}
-
-{% macro error_note(note_text) %}
- <aside class="error-note">
- {{ note_text }}
- </aside>
-{% endmacro %}
-
-{% macro label(label_text, label_name=none) %}
- {% set for_attr = label_name and (label_name + "_field") %}
- <label {{ {'for': for_attr, 'class': 'section-label'}|xmlattr }}>
- <span>{{ label_text }}</span>
- {% if caller is defined %}
- {{ caller() }}
- {% endif %}
- </label>
-{% endmacro %}
-
-{%
- macro form_field(
- field_name,
- required = true,
- sep_after = true,
- height = none,
- initial_value = none
- )
-%}
- <div class="flex-row">
- {%
- set attrs = {
- 'id': field_name + '_field',
- 'name': field_name,
- 'required': '' if required else none,
- 'rows': height
- }
- %}
-
- {% if height is none %}
- {% do attrs.update({'value': initial_value}) %}
- <input{{ attrs|xmlattr }}>
- {% else %}
- {% set value = initial_value|default('', true) %}
- <textarea{{ attrs|xmlattr }}>{{ value }}</textarea>
- {% endif %}
- </div>
-
- {% if sep_after %}
- <div class="horizontal-separator"></div>
- {% endif %}
-{% endmacro %}
-
-{% macro verbatim() %}
- <code><pre>{{ caller()|safe }}</pre></code>
-{% endmacro %}
-
-{% macro unordered_list() %}
- <ul>
- {{ caller() }}
- </ul>
-{% endmacro %}
-
-{% macro list_entry() %}
- <li class="has-colored-links">
- {{ caller() }}
- </li>
-{% endmacro %}
-
-{% macro doc_link(doc_url) %}
- <a class="doc-link" href="{{ doc_url }}" target="_blank"></a>
-{% endmacro %}
-
-<html>
- <head>
- {% block head %}
- {% if style_nonce is defined %}
- {% set style_attrs = {'nonce': style_nonce} %}
- {% endif %}
- <style{{ style_attrs|default({})|xmlattr }}>
- {% block style %}
- body {
- color: #444;
- margin: 0;
- }
-
- #main {
- max-width: 750px;
- margin: auto;
- padding: 0 5px;
- }
-
- a {
- text-decoration: inherit;
- color: inherit;
- }
-
- .has-colored-links a {
- color: #557b8e;
- }
-
- .small-print {
- font-size: 80%;
- color: #555;
- }
-
- .error-note {
- display: block;
- border-left: 5px solid #a33;
- padding: 10px;
- background-color: #fcc;
- }
-
- #main > .error-note:first-child {
- margin-top: 10px;
- }
-
- .block-with-bottom-margin, .section-label, .flex-row, aside, p {
- display: block;
- margin: 0 0 10px 0;
- }
-
- .section-label > span:first-child {
- font-style: italic;
- text-decoration: underline #ccc;
- }
-
- .flex-row {
- display: flex;
- padding: 0;
- }
-
- .flex-row > * {
- flex: 1 1 0;
- }
-
- .flex-row > .flex-row {
- margin: 0;
- }
-
- .button-row-separator {
- background-color: #888;
- flex: 0 0 2px;
- }
-
- div.horizontal-separator {
- display: block;
- background-color: #e3e3e3;
- height: 1px;
- margin: 0 0 10px 0;
- }
-
- textarea {
- resize: none;
- }
-
- .green-button, .red-button, .blue-button {
- border: none;
- border-radius: 2px;
- color: white;
- text-align: center;
- text-decoration: none;
- display: block;
- padding: 5px 10px;
- -moz-user-select: none;
- user-select: none;
- cursor: pointer;
- font: 400 0.9em sans-serif;
- }
-
- .green-button {
- background-color: #4caf50;
- }
-
- .red-button {
- background-color: #af504c;
- }
-
- .blue-button {
- background-color: #504caf;
- }
-
- .disabled-button {
- background-color: #aaa;
- cursor: default;
- }
-
- .button-bordering-right {
- border-radius: 2px 0 0 2px;
- }
-
- .button-bordering-left {
- border-radius: 0 2px 2px 0;
- }
-
- .button-bordering-left.button-bordering-right {
- border-radius: 0;
- }
-
- .doc-link {
- display: inline-block;
- width: 1.2em;
- height: 1em;
- }
-
- .doc-link::after {
- content: "?";
- position:absolute;
- display: inline-block;
- width:1.2em;
- height:1.2em;
- line-height: 1.2em;
- border: 2px solid #ffffff88;
- border-radius: 1em;
- transform: translate(1px, calc(-0.1em - 1px));
- background-color: #4caf50;
- color:white;
- text-align: center;
- font-style: normal;
- font-family: initial;
- font-size: 90%;
- font-weight:bold;
- }
-
- .doc-link:hover::after {
- color: #ffffffaa;
- border-color: #4caf50;
- }
-
- code > pre {
- overflow-x: auto;
- background-color: #f0f0f0;
- padding: 5px;
- border: 1px solid #e3e3e3;
- }
-
- .bold {
- font-weight: bold;
- }
-
- .hide {
- display: none !important;
- }
- {% endblock style %}
- </style>
- {% endblock head %}
- </head>
- <body>
- {% block body %}
- <div id="main">{% block main required %}{% endblock %}</div>
- {% endblock body %}
- </body>
-</html>
diff --git a/src/hydrilla/common_jinja_templates/import/checkbox_tricks.html.jinja b/src/hydrilla/common_jinja_templates/import/checkbox_tricks.html.jinja
deleted file mode 100644
index 4ad9ca1..0000000
--- a/src/hydrilla/common_jinja_templates/import/checkbox_tricks.html.jinja
+++ /dev/null
@@ -1,42 +0,0 @@
-{#
-SPDX-License-Identifier: GPL-3.0-or-later OR CC-BY-SA-4.0
-
-Proxy web UI reusable macros for checkbox-based dynamically displayed elements.
-
-This file is part of Hydrilla&Haketilo.
-
-Copyright (C) 2022 Wojtek Kosior
-
-Dual licensed under
-* GNU General Public License v3.0 or later and
-* Creative Commons Attribution Share Alike 4.0 International.
-
-You can choose to use either of these licenses or both.
-
-
-I, Wojtek Kosior, thereby promise not to sue for violation of this
-file's licenses. Although I request that you do not make use of this
-code in a proprietary work, I am not going to enforce this in court.
-#}
-
-{% macro hider_id(name) -%}
- {{ name }}_chbx
-{%- endmacro %}
-
-{% macro sibling_hider_but(button_text, name, initial_show=false) %}
- {% set attrs = {'type': 'checkbox', 'class': 'chbx-tricks-show-hide'} %}
- {% do attrs.update({'id': hider_id(name)}) %}
- {% do attrs.update({'checked': none if initial_show else ''}) %}
- <input {{ attrs|xmlattr }}>
- <label for="{{ hider_id(name) }}"
- class="green-button block-with-bottom-margin">
- {{ button_text }}
- </label>
-{% endmacro %}
-
-{% macro sibling_hider_radio(name, radio_id, initial_show=false) %}
- {% set attrs = {'type': 'radio', 'class': 'chbx-tricks-show'} %}
- {% do attrs.update({'name': name, 'id': radio_id}) %}
- {% do attrs.update({'checked': '' if initial_show else none}) %}
- <input {{ attrs|xmlattr }}>
-{% endmacro %}
diff --git a/src/hydrilla/common_jinja_templates/include/checkbox_tricks_style.css.jinja b/src/hydrilla/common_jinja_templates/include/checkbox_tricks_style.css.jinja
deleted file mode 100644
index a47a438..0000000
--- a/src/hydrilla/common_jinja_templates/include/checkbox_tricks_style.css.jinja
+++ /dev/null
@@ -1,45 +0,0 @@
-{#
-SPDX-License-Identifier: GPL-3.0-or-later OR CC-BY-SA-4.0
-
-Proxy web UI reusable stylesheet for checkbox-based dynamically displayed
-elements.
-
-This file is part of Hydrilla&Haketilo.
-
-Copyright (C) 2022 Wojtek Kosior
-
-Dual licensed under
-* GNU General Public License v3.0 or later and
-* Creative Commons Attribution Share Alike 4.0 International.
-
-You can choose to use either of these licenses or both.
-
-
-I, Wojtek Kosior, thereby promise not to sue for violation of this
-file's licenses. Although I request that you do not make use of this
-code in a proprietary work, I am not going to enforce this in court.
-#}
-
-input.chbx-tricks-show-hide, input.chbx-tricks-hide-show {
- display: none !important;
-}
-
-input.chbx-tricks-show-hide:checked+*+*,
-input.chbx-tricks-hide-show:not(:checked)+*+* {
- display: none !important;
-}
-
-input.chbx-tricks-hide-show:checked+*,
-input.chbx-tricks-show-hide:not(:checked)+* {
- display: none !important;
-}
-
-
-input.chbx-tricks-show, input.chbx-tricks-hide {
- display: none !important;
-}
-
-input.chbx-tricks-hide:checked+*,
-input.chbx-tricks-show:not(:checked)+* {
- display: none !important;
-}
diff --git a/src/hydrilla/common_jinja_templates/include/item_list_style.css.jinja b/src/hydrilla/common_jinja_templates/include/item_list_style.css.jinja
deleted file mode 100644
index 66fcf10..0000000
--- a/src/hydrilla/common_jinja_templates/include/item_list_style.css.jinja
+++ /dev/null
@@ -1,57 +0,0 @@
-{#
-SPDX-License-Identifier: GPL-3.0-or-later OR CC-BY-SA-4.0
-
-Proxy web UI reusable stylesheet for lists.
-
-This file is part of Hydrilla&Haketilo.
-
-Copyright (C) 2022 Wojtek Kosior
-
-Dual licensed under
-* GNU General Public License v3.0 or later and
-* Creative Commons Attribution Share Alike 4.0 International.
-
-You can choose to use either of these licenses or both.
-
-
-I, Wojtek Kosior, thereby promise not to sue for violation of this
-file's licenses. Although I request that you do not make use of this
-code in a proprietary work, I am not going to enforce this in court.
-#}
-ul.item-list {
- padding: 0;
-}
-
-ul.item-list > li {
- list-style-type: none;
- max-width: 100%;
- white-space: nowrap;
- margin: 0;
-}
-
-ul.item-list > li > :only-child {
- display: block;
- padding: 5px;
- overflow-x: auto;
- border-bottom: 2px solid #999;
-}
-
-ul.item-list > li.entry-line-dashed > :only-child {
- border-bottom-style: dashed
-}
-
-ul.item-list > li.entry-line-green > :only-child {
- border-color: #4caf50;
-}
-
-ul.item-list > li.entry-line-blue > :only-child {
- border-color: #504caf;
-}
-
-ul.item-list > li.entry-line-red > :only-child {
- border-color: #af504c;
-}
-
-ul.item-list > li.invisible-entry-line > :only-child {
- border-color: #fff;
-}