From 1dc7a15bc85a89100b9fcbc8f1f153e2e33a2c3d Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Fri, 28 Oct 2022 21:47:42 +0200 Subject: [proxy] move common jinja templates into a subrepository --- .gitmodules | 3 + src/hydrilla/common_jinja_templates | 1 + .../common_jinja_templates/base.html.jinja | 305 --------------------- .../import/checkbox_tricks.html.jinja | 42 --- .../include/checkbox_tricks_style.css.jinja | 45 --- .../include/item_list_style.css.jinja | 57 ---- 6 files changed, 4 insertions(+), 449 deletions(-) create mode 160000 src/hydrilla/common_jinja_templates delete mode 100644 src/hydrilla/common_jinja_templates/base.html.jinja delete mode 100644 src/hydrilla/common_jinja_templates/import/checkbox_tricks.html.jinja delete mode 100644 src/hydrilla/common_jinja_templates/include/checkbox_tricks_style.css.jinja delete mode 100644 src/hydrilla/common_jinja_templates/include/item_list_style.css.jinja 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 index 0000000..a38750a --- /dev/null +++ b/src/hydrilla/common_jinja_templates @@ -0,0 +1 @@ +Subproject commit a38750ae1e62af2320069264c30c8693a1a858b4 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. -#} - - -{% macro button_row(buttons_data, common_fields={}) %} -
- {% for classes, text, extra_fields in buttons_data %} - {% if not loop.first %} -
- {% 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 %} - -
- {% for name, value in extra_fields.items() %} - - {% endfor %} - {% for name, value in common_fields.items() %} - - {% endfor %} - - -
- {% endfor %} -
-{% endmacro %} - -{% macro error_note(note_text) %} - -{% endmacro %} - -{% macro label(label_text, label_name=none) %} - {% set for_attr = label_name and (label_name + "_field") %} - -{% endmacro %} - -{% - macro form_field( - field_name, - required = true, - sep_after = true, - height = none, - initial_value = none - ) -%} -
- {% - 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}) %} - - {% else %} - {% set value = initial_value|default('', true) %} - {{ value }} - {% endif %} -
- - {% if sep_after %} -
- {% endif %} -{% endmacro %} - -{% macro verbatim() %} -
{{ caller()|safe }}
-{% endmacro %} - -{% macro unordered_list() %} - -{% endmacro %} - -{% macro list_entry() %} - -{% endmacro %} - -{% macro doc_link(doc_url) %} - -{% endmacro %} - - - - {% block head %} - {% if style_nonce is defined %} - {% set style_attrs = {'nonce': style_nonce} %} - {% endif %} - - {% 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 %} - - {% endblock head %} - - - {% block body %} -
{% block main required %}{% endblock %}
- {% endblock body %} - - 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 ''}) %} - - -{% 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}) %} - -{% 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; -} -- cgit v1.2.3