chore(docs/*, static/*, templates/*): reformat using ruff (#21)

mk-personal-profile
Christian Merten 2 weeks ago committed by GitHub
parent 1f7f33e446
commit aaa1324da9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -10,11 +10,11 @@ About
.. rst-class:: lead .. rst-class:: lead
.. attention:: .. attention::
Die Seite befindet sich noch im Aufbau. -- The page is still under construction. Die Seite befindet sich noch im Aufbau. -- The page is still under construction.
(Stand: 08.01.2025) (Stand: 08.01.2025)
- About the kompass project - About the kompass project
- About this documentation - About this documentation

@ -4,60 +4,60 @@
# https://www.sphinx-doc.org/en/master/usage/configuration.html # https://www.sphinx-doc.org/en/master/usage/configuration.html
from dataclasses import asdict from dataclasses import asdict
from sphinxawesome_theme import ThemeOptions
from sphinxawesome_theme import ThemeOptions
# -- Project information ------------------------------------------------------- # -- Project information -------------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = 'Kompass' project = "Kompass"
release = '2.0' release = "2.0"
author = 'The Kompass Team' author = "The Kompass Team"
copyright = f'2025, {author}' copyright = f"2025, {author}"
# -- General configuration ----------------------------------------------------- # -- General configuration -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
extensions = [] extensions = []
templates_path = ['_templates'] templates_path = ["_templates"]
exclude_patterns = [] exclude_patterns = []
language = 'de' language = "de"
# -- Options for HTML output --------------------------------------------------- # -- Options for HTML output ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
html_theme = 'sphinxawesome_theme' html_theme = "sphinxawesome_theme"
html_static_path = ['_static'] html_static_path = ["_static"]
# -- Sphinxawsome-theme options ------------------------------------------------ # -- Sphinxawsome-theme options ------------------------------------------------
# https://sphinxawesome.xyz/how-to/configure/ # https://sphinxawesome.xyz/how-to/configure/
html_logo = "_static/favicon.svg" html_logo = "_static/favicon.svg"
html_favicon = "_static/favicon.svg" html_favicon = "_static/favicon.svg"
html_sidebars = { html_sidebars = {
"about": ["sidebar_main_nav_links.html"], "about": ["sidebar_main_nav_links.html"],
# "changelog": ["sidebar_main_nav_links.html"], # "changelog": ["sidebar_main_nav_links.html"],
} }
# Code blocks color scheme # Code blocks color scheme
pygments_style = "emacs" pygments_style = "emacs"
pygments_style_dark = "emacs" pygments_style_dark = "emacs"
# Could be directly in html_theme_options, but this way it has type hints # Could be directly in html_theme_options, but this way it has type hints
# from sphinxawesome_theme # from sphinxawesome_theme
theme_options = ThemeOptions( theme_options = ThemeOptions(
show_prev_next=True, show_prev_next=True,
show_breadcrumbs=True, show_breadcrumbs=True,
main_nav_links={ main_nav_links={
"Docs": "index", "Docs": "index",
"About": "about", "About": "about",
# "Changelog": "changelog" # "Changelog": "changelog"
}, },
show_scrolltop=True, show_scrolltop=True,
) )
html_theme_options = asdict(theme_options) html_theme_options = asdict(theme_options)

@ -4,4 +4,4 @@
Architecture Architecture
================= =================
tbd tbd

@ -52,9 +52,9 @@ If you want to contribute to the documentation, please follow the steps below.
Online (latest release version): https://jdav-hd.de/static/docs/ Online (latest release version): https://jdav-hd.de/static/docs/
- This documentation is build `sphinx <https://www.sphinx-doc.org/>`_ and `awsome sphinx theme <https://sphinxawesome.xyz/>`_ the source code is located in ``docs/``. - This documentation is build `sphinx <https://www.sphinx-doc.org/>`_ and `awsome sphinx theme <https://sphinxawesome.xyz/>`_ the source code is located in ``docs/``.
- All documentation is written in `reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_ and uses the `sphinx directives <https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html>`_. - All documentation is written in `reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_ and uses the `sphinx directives <https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html>`_.
- The directives can vary due to the theme, see the `awesome sphinx theme documentation <https://sphinxawesome.xyz/demo/notes/>`_. - The directives can vary due to the theme, see the `awesome sphinx theme documentation <https://sphinxawesome.xyz/demo/notes/>`_.
- All technical documentation is written in english, user documentation is written in german. - All technical documentation is written in english, user documentation is written in german.
To read the documentation build it locally and view it in your browser: To read the documentation build it locally and view it in your browser:
@ -65,9 +65,9 @@ To read the documentation build it locally and view it in your browser:
make html make html
# MacOS (with firefox) # MacOS (with firefox)
open -a firefox $(pwd)/docs/build/html/index.html open -a firefox $(pwd)/docs/build/html/index.html
# Linux (I guess?!?) # Linux (I guess?!?)
firefox ${pwd}/docs/build/html/index.html firefox ${pwd}/docs/build/html/index.html
Code Code
---- ----
@ -75,11 +75,10 @@ Code
If you want to contribute code, please follow the inital setup steps in the :ref:`development_manual/setup` section. And dont forget to :ref:`document <development_manual/contributing/documentation>` your code properly and write tests. If you want to contribute code, please follow the inital setup steps in the :ref:`development_manual/setup` section. And dont forget to :ref:`document <development_manual/contributing/documentation>` your code properly and write tests.
.. note:: .. note::
Still open / to decide: Still open / to decide:
- linting - linting
- (auto) formatting - (auto) formatting
- reliable tests via ci/cd pipeline - reliable tests via ci/cd pipeline

@ -32,11 +32,9 @@ Documentation
Structure Structure
- :ref:`Nutzer Dokumentation <user_manual/index>` auf deutsch - :ref:`Nutzer Dokumentation <user_manual/index>` auf deutsch
- :ref:`Development Documentation <development_manual/index>` auf englisch - :ref:`Development Documentation <development_manual/index>` auf englisch
.. seealso:: .. seealso::
:ref:`Contributing #Documentation <development_manual/contributing/documentation>` :ref:`Contributing #Documentation <development_manual/contributing/documentation>`

@ -55,7 +55,7 @@ If you need to rebuild the container (e.g. after changing the ``requirements.txt
docker compose up --build docker compose up --build
5. Setup admin user: in a separate shell, while the docker container is running, execute 5. Setup admin user: in a separate shell, while the docker container is running, execute
.. code-block:: bash .. code-block:: bash
cd docker/development cd docker/development

@ -4,4 +4,4 @@
Testing Testing
================= =================
To run the tests, you can use the docker setup under ``docker/test``. To run the tests, you can use the docker setup under ``docker/test``.

@ -11,13 +11,13 @@ jdav Kompass
Der Kompass ist dein Kompass in der Jugendarbeit in deiner JDAV Sektion. Wenn du das Der Kompass ist dein Kompass in der Jugendarbeit in deiner JDAV Sektion. Wenn du das
erste mal hier bist, schau doch mal :ref:`user_manual/getstarted` an. erste mal hier bist, schau doch mal :ref:`user_manual/getstarted` an.
.. attention:: .. attention::
Die Dokumentation befindet sich noch im Aufbau. -- The documentation is still under construction. Die Dokumentation befindet sich noch im Aufbau. -- The documentation is still under construction.
(Stand: 08.01.2025) (Stand: 08.01.2025)
Nutzer Dokumentation Nutzer Dokumentation
-------------------- --------------------
- auf deutsch - auf deutsch
@ -29,7 +29,7 @@ Nutzer Dokumentation
user_manual/index user_manual/index
Development Documentation Development Documentation
------------------------- -------------------------
- auf englisch - auf englisch
@ -39,4 +39,3 @@ Development Documentation
:titlesonly: :titlesonly:
development_manual/index development_manual/index

@ -52,4 +52,3 @@ Im Nachhinein trägst du deine Ausgaben ein, lädst Belege hoch und reichst dein
.. _anlegen: https://jdav-hd.de/kompassmembers/freizeit/add/ .. _anlegen: https://jdav-hd.de/kompassmembers/freizeit/add/
.. _Teilnehmer\*innen: https://jdav-hd.de/kompassmembers/member/ .. _Teilnehmer\*innen: https://jdav-hd.de/kompassmembers/member/

@ -32,7 +32,7 @@ er auf den entsprechenden Eintrag, ändert das Geburtsdatum und klickt auf *Spei
Manche Einträge wiederum kannst du einsehen, aber nicht bearbeiten. Für mehr Details siehe :ref:`Teilnehmer\*innenverwaltung <user_manual/members>` Manche Einträge wiederum kannst du einsehen, aber nicht bearbeiten. Für mehr Details siehe :ref:`Teilnehmer\*innenverwaltung <user_manual/members>`
Probier doch einmal aus deinen eigenen Eintrag zu ändern. Sicherlich gibt es einige Probier doch einmal aus deinen eigenen Eintrag zu ändern. Sicherlich gibt es einige
Felder, die nicht ausgefüllt oder nicht mehr aktuell sind. Lade z.B. ein Bild von dir hoch, Felder, die nicht ausgefüllt oder nicht mehr aktuell sind. Lade z.B. ein Bild von dir hoch,
damit unsere Website schöner wird. damit unsere Website schöner wird.
Wie schicke ich eine E-Mail an meine Gruppe? Wie schicke ich eine E-Mail an meine Gruppe?

@ -39,7 +39,7 @@ Aufnahme von neuen Mitgliedern und die Pflege der Daten durch
Feedback Feedback
-------- --------
Wenn Du Feedback hast, schreibe uns gerne eine E-Mail an: `digitales@jdav-hd.de <mailto:digitales@jdav-hd.de?subject=Kompass Feedback>`_. Wenn Du Feedback hast, schreibe uns gerne eine E-Mail an: `digitales@jdav-hd.de <mailto:digitales@jdav-hd.de?subject=Kompass Feedback>`_.
Der Kompass lebt davon, dass er genau unsere Probleme löst und nicht nur ein weiteres Tool ist. Der Kompass lebt davon, dass er genau unsere Probleme löst und nicht nur ein weiteres Tool ist.
Feedback könnte sein: Feedback könnte sein:

@ -173,17 +173,17 @@
text-transform: uppercase; text-transform: uppercase;
vertical-align: middle; vertical-align: middle;
margin-bottom: 5px; margin-bottom: 5px;
@include for-mobile { @include for-mobile {
display: block; display: block;
width: 100%; width: 100%;
} }
&:hover, &:focus { &:hover, &:focus {
background-color: $button-hover-background-color; background-color: $button-hover-background-color;
color: $button-hover-text-color; color: $button-hover-text-color;
} }
&:active { &:active {
background-color: $button-active-background-color; background-color: $button-active-background-color;
color: $button-active-text-color; color: $button-active-text-color;

@ -161,4 +161,4 @@
background: nth(nth($color-stops, 1), 1); background: nth(nth($color-stops, 1), 1);
background: -webkit-linear-gradient(legacy-direction($direction), $color-stops); background: -webkit-linear-gradient(legacy-direction($direction), $color-stops);
background: linear-gradient($direction, $color-stops); background: linear-gradient($direction, $color-stops);
} }

@ -33,4 +33,3 @@ $icon-add: "\e603";
$icon-add3: "\e604"; $icon-add3: "\e604";
$icon-expand: "\e605"; $icon-expand: "\e605";
$icon-checkbox: "\e606"; $icon-checkbox: "\e606";

@ -40,4 +40,4 @@
<glyph unicode="&#xe61e;" glyph-name="reset" horiz-adv-x="1013" d="M1011.457 476.745c-56.408-0.485-112.778-0.784-169.149-1.269 9.482-97.062-22.511-197.371-96.838-271.586-131.966-131.929-345.801-131.929-477.692 0-131.929 131.817-131.929 345.689 0 477.618 112.554 112.591 284.652 128.607 414.714 49.016-44.088-43.566-95.942-95.158-95.942-95.158-37.331-39.646 0.635-65.927 25.759-66.077h329.562c12.618 0 22.772 10.191 22.809 22.809v326.874c1.531 30.798-32.292 59.432-65.554 26.132 0 0-55.81-55.213-94.56-93.664-198.080 144.771-477.244 128.345-656.174-50.547-197.856-197.856-197.856-518.645 0-716.464 197.819-197.782 518.608-197.782 716.427 0 107.664 107.589 156.195 251.614 146.638 392.316z" /> <glyph unicode="&#xe61e;" glyph-name="reset" horiz-adv-x="1013" d="M1011.457 476.745c-56.408-0.485-112.778-0.784-169.149-1.269 9.482-97.062-22.511-197.371-96.838-271.586-131.966-131.929-345.801-131.929-477.692 0-131.929 131.817-131.929 345.689 0 477.618 112.554 112.591 284.652 128.607 414.714 49.016-44.088-43.566-95.942-95.158-95.942-95.158-37.331-39.646 0.635-65.927 25.759-66.077h329.562c12.618 0 22.772 10.191 22.809 22.809v326.874c1.531 30.798-32.292 59.432-65.554 26.132 0 0-55.81-55.213-94.56-93.664-198.080 144.771-477.244 128.345-656.174-50.547-197.856-197.856-197.856-518.645 0-716.464 197.819-197.782 518.608-197.782 716.427 0 107.664 107.589 156.195 251.614 146.638 392.316z" />
<glyph unicode="&#xe900;" glyph-name="settings" d="M958.24 369.776l-36.504 39.208c0.040 0.344 0.032 0.68-0.008 1.192 0.784 8.744 1.304 17.552 1.648 26.368 0.080 2.544-0.024 5.264 0.024 7.808 0.072 6.76-0.024 13.296-0.328 19.824-0.128 2.856-0.28 5.512-0.464 8.352-0.152 4.36-0.376 8.664-0.704 13.216l36.608 38.936c17.464 18.6 49.168 43.296 39.464 66.808l-40.080 97.256c-9.704 23.536-49.552 18.6-75.032 19.488l-53.448 1.928c-4.040 4.832-8.392 9.424-12.576 14.088-0.16 0.176-0.352 0.448-0.552 0.696-1.488 1.56-2.744 3.256-4.248 4.792-2.264 2.464-4.872 4.816-7.208 7.216-3.384 3.408-6.752 6.872-10.224 10.168-5.696 5.48-11.704 10.648-17.624 15.776-0.24 0.248-0.624 0.456-0.832 0.624-0.32 0.312-0.608 0.664-0.928 0.984l-1.728 53.544c-0.784 25.352 4.2 65.272-19.176 75l-97.288 40.488c-23.408 9.744-48.272-21.976-66.816-39.28l-39.176-36.576c-8.784 0.88-17.504 1.336-26.232 1.672-2.44 0.096-4.896 0.048-7.504 0.032-5.624 0.048-11.296 0.216-17.080-0.008-7.304-0.232-14.608-0.688-21.888-1.32-0.936-0.048-1.872-0.048-2.608-0.112-0.52-0.104-0.912-0.024-1.44-0.128l-38.968 36.688c-18.568 17.368-43.296 49.168-66.808 39.48l-97.256-40.080c-23.536-9.696-18.56-49.64-19.496-75.048l-1.896-53.528c-0.584-0.44-1.168-1.048-1.712-1.584-6.392-5.328-12.664-10.832-18.76-16.56-2.248-2.208-4.416-4.432-6.616-6.664-4.328-4.216-8.672-8.568-12.824-13.040-2.128-2.32-4.088-4.672-6.16-7.040-2.816-3.056-5.568-6.072-8.264-9.296l-53.576-1.64c-25.352-0.792-65.272 4.192-75-19.192l-40.504-97.28c-9.736-23.416 21.936-48.192 39.24-66.736l36.584-39.184c-0.592-6.064-0.856-12.096-1.192-18.232 0.008-0.568-0.096-1.168-0.080-1.736-0.496-10.4-0.744-20.784-0.384-31.136 0.168-4.544 0.504-9.008 0.792-13.544 0.264-3.664 0.344-7.392 0.688-11.048-0.024-0.4 0.008-0.768 0.040-1.040l-36.656-39.072c-17.376-18.536-49.2-43.192-39.512-66.696l40.080-97.256c9.704-23.552 49.672-18.648 75.080-19.576l53.496-1.816c0.36-0.528 0.792-0.84 1.176-1.384 5.424-6.512 11.12-12.872 17.056-19.272 2.088-2.248 4.296-4.176 6.416-6.384 4.36-4.424 8.752-8.8 13.296-13.064 2.232-1.936 4.592-3.96 6.848-6.048 3.16-2.792 6.232-5.64 9.4-8.184l1.632-53.568c0.8-25.352-4.16-65.368 19.232-75.104l97.28-40.496c23.424-9.752 48.184 21.944 66.728 39.248l39.216 36.496c0.432-0.008 0.848 0.048 1.28 0.040 5.048-0.56 10.056-0.752 15.064-1.008 1.504-0.128 2.96-0.136 4.384-0.288 2.352-0.072 4.608-0.256 6.88-0.336 2.688-0.056 5.368 0.024 8.056 0.016 6.536-0.152 13.080-0.016 19.56 0.28 2.824 0.096 5.712 0.312 8.504 0.472 4.408 0.192 8.656 0.408 12.992 0.664l39.032-36.56c18.592-17.464 43.192-49.208 66.696-39.504l97.264 40.080c23.544 9.712 18.68 49.592 19.576 75.080l1.84 53.408c4.584 3.824 9 7.808 13.264 11.696 0.6 0.696 1.288 1.184 1.944 1.736 1.488 1.408 3.080 2.592 4.36 3.944 2.592 2.296 4.824 4.832 7.184 7.12 3.376 3.416 6.96 6.832 10.392 10.408 4.984 5.352 10 10.952 14.848 16.784 0.552 0.52 0.984 0.96 1.456 1.64 0.408 0.36 0.656 0.6 0.888 0.88l53.528 1.72c25.352 0.792 65.368-4.168 75.104 19.224l40.496 97.28c9.784 23.4-21.96 48.256-39.256 66.8zM726 448c0-118.184-95.816-214-214-214s-214 95.816-214 214 95.816 214 214 214 214-95.816 214-214z" /> <glyph unicode="&#xe900;" glyph-name="settings" d="M958.24 369.776l-36.504 39.208c0.040 0.344 0.032 0.68-0.008 1.192 0.784 8.744 1.304 17.552 1.648 26.368 0.080 2.544-0.024 5.264 0.024 7.808 0.072 6.76-0.024 13.296-0.328 19.824-0.128 2.856-0.28 5.512-0.464 8.352-0.152 4.36-0.376 8.664-0.704 13.216l36.608 38.936c17.464 18.6 49.168 43.296 39.464 66.808l-40.080 97.256c-9.704 23.536-49.552 18.6-75.032 19.488l-53.448 1.928c-4.040 4.832-8.392 9.424-12.576 14.088-0.16 0.176-0.352 0.448-0.552 0.696-1.488 1.56-2.744 3.256-4.248 4.792-2.264 2.464-4.872 4.816-7.208 7.216-3.384 3.408-6.752 6.872-10.224 10.168-5.696 5.48-11.704 10.648-17.624 15.776-0.24 0.248-0.624 0.456-0.832 0.624-0.32 0.312-0.608 0.664-0.928 0.984l-1.728 53.544c-0.784 25.352 4.2 65.272-19.176 75l-97.288 40.488c-23.408 9.744-48.272-21.976-66.816-39.28l-39.176-36.576c-8.784 0.88-17.504 1.336-26.232 1.672-2.44 0.096-4.896 0.048-7.504 0.032-5.624 0.048-11.296 0.216-17.080-0.008-7.304-0.232-14.608-0.688-21.888-1.32-0.936-0.048-1.872-0.048-2.608-0.112-0.52-0.104-0.912-0.024-1.44-0.128l-38.968 36.688c-18.568 17.368-43.296 49.168-66.808 39.48l-97.256-40.080c-23.536-9.696-18.56-49.64-19.496-75.048l-1.896-53.528c-0.584-0.44-1.168-1.048-1.712-1.584-6.392-5.328-12.664-10.832-18.76-16.56-2.248-2.208-4.416-4.432-6.616-6.664-4.328-4.216-8.672-8.568-12.824-13.040-2.128-2.32-4.088-4.672-6.16-7.040-2.816-3.056-5.568-6.072-8.264-9.296l-53.576-1.64c-25.352-0.792-65.272 4.192-75-19.192l-40.504-97.28c-9.736-23.416 21.936-48.192 39.24-66.736l36.584-39.184c-0.592-6.064-0.856-12.096-1.192-18.232 0.008-0.568-0.096-1.168-0.080-1.736-0.496-10.4-0.744-20.784-0.384-31.136 0.168-4.544 0.504-9.008 0.792-13.544 0.264-3.664 0.344-7.392 0.688-11.048-0.024-0.4 0.008-0.768 0.040-1.040l-36.656-39.072c-17.376-18.536-49.2-43.192-39.512-66.696l40.080-97.256c9.704-23.552 49.672-18.648 75.080-19.576l53.496-1.816c0.36-0.528 0.792-0.84 1.176-1.384 5.424-6.512 11.12-12.872 17.056-19.272 2.088-2.248 4.296-4.176 6.416-6.384 4.36-4.424 8.752-8.8 13.296-13.064 2.232-1.936 4.592-3.96 6.848-6.048 3.16-2.792 6.232-5.64 9.4-8.184l1.632-53.568c0.8-25.352-4.16-65.368 19.232-75.104l97.28-40.496c23.424-9.752 48.184 21.944 66.728 39.248l39.216 36.496c0.432-0.008 0.848 0.048 1.28 0.040 5.048-0.56 10.056-0.752 15.064-1.008 1.504-0.128 2.96-0.136 4.384-0.288 2.352-0.072 4.608-0.256 6.88-0.336 2.688-0.056 5.368 0.024 8.056 0.016 6.536-0.152 13.080-0.016 19.56 0.28 2.824 0.096 5.712 0.312 8.504 0.472 4.408 0.192 8.656 0.408 12.992 0.664l39.032-36.56c18.592-17.464 43.192-49.208 66.696-39.504l97.264 40.080c23.544 9.712 18.68 49.592 19.576 75.080l1.84 53.408c4.584 3.824 9 7.808 13.264 11.696 0.6 0.696 1.288 1.184 1.944 1.736 1.488 1.408 3.080 2.592 4.36 3.944 2.592 2.296 4.824 4.832 7.184 7.12 3.376 3.416 6.96 6.832 10.392 10.408 4.984 5.352 10 10.952 14.848 16.784 0.552 0.52 0.984 0.96 1.456 1.64 0.408 0.36 0.656 0.6 0.888 0.88l53.528 1.72c25.352 0.792 65.368-4.168 75.104 19.224l40.496 97.28c9.784 23.4-21.96 48.256-39.256 66.8zM726 448c0-118.184-95.816-214-214-214s-214 95.816-214 214 95.816 214 214 214 214-95.816 214-214z" />
<glyph unicode="&#xe901;" glyph-name="menu" d="M0 796.16c0 45.243 36.445 81.92 82.067 81.92h859.866c45.324 0 82.067-36.361 82.067-81.92 0-45.243-36.445-81.92-82.067-81.92h-859.866c-45.324 0-82.067 36.361-82.067 81.92v0zM0 468.48c0 45.243 36.445 81.92 82.067 81.92h859.866c45.324 0 82.067-36.361 82.067-81.92 0-45.243-36.445-81.92-82.067-81.92h-859.866c-45.324 0-82.067 36.361-82.067 81.92v0zM0 140.8c0 45.243 36.445 81.92 82.067 81.92h859.866c45.324 0 82.067-36.361 82.067-81.92 0-45.243-36.445-81.92-82.067-81.92h-859.866c-45.324 0-82.067 36.361-82.067 81.92v0z" /> <glyph unicode="&#xe901;" glyph-name="menu" d="M0 796.16c0 45.243 36.445 81.92 82.067 81.92h859.866c45.324 0 82.067-36.361 82.067-81.92 0-45.243-36.445-81.92-82.067-81.92h-859.866c-45.324 0-82.067 36.361-82.067 81.92v0zM0 468.48c0 45.243 36.445 81.92 82.067 81.92h859.866c45.324 0 82.067-36.361 82.067-81.92 0-45.243-36.445-81.92-82.067-81.92h-859.866c-45.324 0-82.067 36.361-82.067 81.92v0zM0 140.8c0 45.243 36.445 81.92 82.067 81.92h859.866c45.324 0 82.067-36.361 82.067-81.92 0-45.243-36.445-81.92-82.067-81.92h-859.866c-45.324 0-82.067 36.361-82.067 81.92v0z" />
</font></defs></svg> </font></defs></svg>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

@ -123,4 +123,3 @@
.icon-checkbox:before { .icon-checkbox:before {
content: "\e606"; content: "\e606";
} }

@ -52,4 +52,4 @@
display: none; display: none;
} }
} }
} }

@ -3,7 +3,7 @@
* Update these variable to create theme * Update these variable to create theme
*/ */
/* /*
* Colors * Colors
*/ */

@ -3,7 +3,7 @@
* Customizable variables * Customizable variables
* Update these variable to create theme * Update these variable to create theme
*/ */
/* /*
* Colors * Colors
*/ */
/* /*
@ -9759,17 +9759,17 @@ ul.actionlist li {
text-transform: uppercase; text-transform: uppercase;
vertical-align: middle; vertical-align: middle;
margin-bottom: 5px; margin-bottom: 5px;
@include for-mobile { @include for-mobile {
display: block; display: block;
width: 100%; width: 100%;
} }
&:hover, &:focus { &:hover, &:focus {
background-color: $button-hover-background-color; background-color: $button-hover-background-color;
color: $button-hover-text-color; color: $button-hover-text-color;
} }
&:active { &:active {
background-color: $button-active-background-color; background-color: $button-active-background-color;
color: $button-active-text-color; color: $button-active-text-color;

@ -1,2 +1,2 @@
@import "variables"; @import "variables";
@import "../../base"; @import "../../base";

File diff suppressed because one or more lines are too long

@ -1,2 +1,2 @@
@import "variables"; @import "variables";
@import "../../jquery-ui/jquery-ui.theme"; @import "../../jquery-ui/jquery-ui.theme";

File diff suppressed because one or more lines are too long

@ -1,2 +1,2 @@
@import "variables"; @import "variables";
@import "../../select2/layout"; @import "../../select2/layout";

File diff suppressed because one or more lines are too long

@ -3,7 +3,7 @@
* - Using the 'QRCode for Javascript library' * - Using the 'QRCode for Javascript library'
* - Fixed dataset of 'QRCode for Javascript library' for support full-spec. * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.
* - this library has no dependencies. * - this library has no dependencies.
* *
* @author davidshimjs * @author davidshimjs
* @see <a href="http://www.d-project.com/" target="_blank">http://www.d-project.com/</a> * @see <a href="http://www.d-project.com/" target="_blank">http://www.d-project.com/</a>
* @see <a href="http://jeromeetienne.github.com/jquery-qrcode/" target="_blank">http://jeromeetienne.github.com/jquery-qrcode/</a> * @see <a href="http://jeromeetienne.github.com/jquery-qrcode/" target="_blank">http://jeromeetienne.github.com/jquery-qrcode/</a>
@ -21,7 +21,7 @@ var QRCode;
// Licensed under the MIT license: // Licensed under the MIT license:
// http://www.opensource.org/licenses/mit-license.php // http://www.opensource.org/licenses/mit-license.php
// //
// The word "QR Code" is registered trademark of // The word "QR Code" is registered trademark of
// DENSO WAVE INCORPORATED // DENSO WAVE INCORPORATED
// http://www.denso-wave.com/qrcode/faqpatent-e.html // http://www.denso-wave.com/qrcode/faqpatent-e.html
// //
@ -150,28 +150,28 @@ var QRCode;
QRBitBuffer.prototype={get:function(index){var bufIndex=Math.floor(index/8);return((this.buffer[bufIndex]>>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i<length;i++){this.putBit(((num>>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);} QRBitBuffer.prototype={get:function(index){var bufIndex=Math.floor(index/8);return((this.buffer[bufIndex]>>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i<length;i++){this.putBit(((num>>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);}
if(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));} if(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));}
this.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]]; this.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];
function _isSupportCanvas() { function _isSupportCanvas() {
return typeof CanvasRenderingContext2D != "undefined"; return typeof CanvasRenderingContext2D != "undefined";
} }
// android 2.x doesn't support Data-URI spec // android 2.x doesn't support Data-URI spec
function _getAndroid() { function _getAndroid() {
var android = false; var android = false;
var sAgent = navigator.userAgent; var sAgent = navigator.userAgent;
if (/android/i.test(sAgent)) { // android if (/android/i.test(sAgent)) { // android
android = true; android = true;
var aMat = sAgent.toString().match(/android ([0-9]\.[0-9])/i); var aMat = sAgent.toString().match(/android ([0-9]\.[0-9])/i);
if (aMat && aMat[1]) { if (aMat && aMat[1]) {
android = parseFloat(aMat[1]); android = parseFloat(aMat[1]);
} }
} }
return android; return android;
} }
var svgDrawer = (function() { var svgDrawer = (function() {
var Drawing = function (el, htOption) { var Drawing = function (el, htOption) {
@ -227,10 +227,10 @@ var QRCode;
this._el = el; this._el = el;
this._htOption = htOption; this._htOption = htOption;
}; };
/** /**
* Draw the QRCode * Draw the QRCode
* *
* @param {QRCode} oQRCode * @param {QRCode} oQRCode
*/ */
Drawing.prototype.draw = function (oQRCode) { Drawing.prototype.draw = function (oQRCode) {
@ -240,50 +240,50 @@ var QRCode;
var nWidth = Math.floor(_htOption.width / nCount); var nWidth = Math.floor(_htOption.width / nCount);
var nHeight = Math.floor(_htOption.height / nCount); var nHeight = Math.floor(_htOption.height / nCount);
var aHTML = ['<table style="border:0;border-collapse:collapse;">']; var aHTML = ['<table style="border:0;border-collapse:collapse;">'];
for (var row = 0; row < nCount; row++) { for (var row = 0; row < nCount; row++) {
aHTML.push('<tr>'); aHTML.push('<tr>');
for (var col = 0; col < nCount; col++) { for (var col = 0; col < nCount; col++) {
aHTML.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:' + nWidth + 'px;height:' + nHeight + 'px;background-color:' + (oQRCode.isDark(row, col) ? _htOption.colorDark : _htOption.colorLight) + ';"></td>'); aHTML.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:' + nWidth + 'px;height:' + nHeight + 'px;background-color:' + (oQRCode.isDark(row, col) ? _htOption.colorDark : _htOption.colorLight) + ';"></td>');
} }
aHTML.push('</tr>'); aHTML.push('</tr>');
} }
aHTML.push('</table>'); aHTML.push('</table>');
_el.innerHTML = aHTML.join(''); _el.innerHTML = aHTML.join('');
// Fix the margin values as real size. // Fix the margin values as real size.
var elTable = _el.childNodes[0]; var elTable = _el.childNodes[0];
var nLeftMarginTable = (_htOption.width - elTable.offsetWidth) / 2; var nLeftMarginTable = (_htOption.width - elTable.offsetWidth) / 2;
var nTopMarginTable = (_htOption.height - elTable.offsetHeight) / 2; var nTopMarginTable = (_htOption.height - elTable.offsetHeight) / 2;
if (nLeftMarginTable > 0 && nTopMarginTable > 0) { if (nLeftMarginTable > 0 && nTopMarginTable > 0) {
elTable.style.margin = nTopMarginTable + "px " + nLeftMarginTable + "px"; elTable.style.margin = nTopMarginTable + "px " + nLeftMarginTable + "px";
} }
}; };
/** /**
* Clear the QRCode * Clear the QRCode
*/ */
Drawing.prototype.clear = function () { Drawing.prototype.clear = function () {
this._el.innerHTML = ''; this._el.innerHTML = '';
}; };
return Drawing; return Drawing;
})() : (function () { // Drawing in Canvas })() : (function () { // Drawing in Canvas
function _onMakeImage() { function _onMakeImage() {
this._elImage.src = this._elCanvas.toDataURL("image/png"); this._elImage.src = this._elCanvas.toDataURL("image/png");
this._elImage.style.display = "block"; this._elImage.style.display = "block";
this._elCanvas.style.display = "none"; this._elCanvas.style.display = "none";
} }
// Android 2.1 bug workaround // Android 2.1 bug workaround
// http://code.google.com/p/android/issues/detail?id=5141 // http://code.google.com/p/android/issues/detail?id=5141
if (this._android && this._android <= 2.1) { if (this._android && this._android <= 2.1) {
var factor = 1 / window.devicePixelRatio; var factor = 1 / window.devicePixelRatio;
var drawImage = CanvasRenderingContext2D.prototype.drawImage; var drawImage = CanvasRenderingContext2D.prototype.drawImage;
CanvasRenderingContext2D.prototype.drawImage = function (image, sx, sy, sw, sh, dx, dy, dw, dh) { CanvasRenderingContext2D.prototype.drawImage = function (image, sx, sy, sw, sh, dx, dy, dw, dh) {
if (("nodeName" in image) && /img/i.test(image.nodeName)) { if (("nodeName" in image) && /img/i.test(image.nodeName)) {
for (var i = arguments.length - 1; i >= 1; i--) { for (var i = arguments.length - 1; i >= 1; i--) {
@ -295,14 +295,14 @@ var QRCode;
arguments[3] *= factor; arguments[3] *= factor;
arguments[4] *= factor; arguments[4] *= factor;
} }
drawImage.apply(this, arguments); drawImage.apply(this, arguments);
}; };
} }
/** /**
* Check whether the user's browser supports Data URI or not * Check whether the user's browser supports Data URI or not
* *
* @private * @private
* @param {Function} fSuccess Occurs if it supports Data URI * @param {Function} fSuccess Occurs if it supports Data URI
* @param {Function} fFail Occurs if it doesn't support Data URI * @param {Function} fFail Occurs if it doesn't support Data URI
@ -341,18 +341,18 @@ var QRCode;
self._fFail.call(self); self._fFail.call(self);
} }
}; };
/** /**
* Drawing QRCode by using canvas * Drawing QRCode by using canvas
* *
* @constructor * @constructor
* @param {HTMLElement} el * @param {HTMLElement} el
* @param {Object} htOption QRCode Options * @param {Object} htOption QRCode Options
*/ */
var Drawing = function (el, htOption) { var Drawing = function (el, htOption) {
this._bIsPainted = false; this._bIsPainted = false;
this._android = _getAndroid(); this._android = _getAndroid();
this._htOption = htOption; this._htOption = htOption;
this._elCanvas = document.createElement("canvas"); this._elCanvas = document.createElement("canvas");
this._elCanvas.width = htOption.width; this._elCanvas.width = htOption.width;
@ -367,17 +367,17 @@ var QRCode;
this._el.appendChild(this._elImage); this._el.appendChild(this._elImage);
this._bSupportDataURI = null; this._bSupportDataURI = null;
}; };
/** /**
* Draw the QRCode * Draw the QRCode
* *
* @param {QRCode} oQRCode * @param {QRCode} oQRCode
*/ */
Drawing.prototype.draw = function (oQRCode) { Drawing.prototype.draw = function (oQRCode) {
var _elImage = this._elImage; var _elImage = this._elImage;
var _oContext = this._oContext; var _oContext = this._oContext;
var _htOption = this._htOption; var _htOption = this._htOption;
var nCount = oQRCode.getModuleCount(); var nCount = oQRCode.getModuleCount();
var nWidth = _htOption.width / nCount; var nWidth = _htOption.width / nCount;
var nHeight = _htOption.height / nCount; var nHeight = _htOption.height / nCount;
@ -386,7 +386,7 @@ var QRCode;
_elImage.style.display = "none"; _elImage.style.display = "none";
this.clear(); this.clear();
for (var row = 0; row < nCount; row++) { for (var row = 0; row < nCount; row++) {
for (var col = 0; col < nCount; col++) { for (var col = 0; col < nCount; col++) {
var bIsDark = oQRCode.isDark(row, col); var bIsDark = oQRCode.isDark(row, col);
@ -394,9 +394,9 @@ var QRCode;
var nTop = row * nHeight; var nTop = row * nHeight;
_oContext.strokeStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight; _oContext.strokeStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;
_oContext.lineWidth = 1; _oContext.lineWidth = 1;
_oContext.fillStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight; _oContext.fillStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;
_oContext.fillRect(nLeft, nTop, nWidth, nHeight); _oContext.fillRect(nLeft, nTop, nWidth, nHeight);
// 안티 앨리어싱 방지 처리 // 안티 앨리어싱 방지 처리
_oContext.strokeRect( _oContext.strokeRect(
Math.floor(nLeft) + 0.5, Math.floor(nLeft) + 0.5,
@ -404,7 +404,7 @@ var QRCode;
nRoundedWidth, nRoundedWidth,
nRoundedHeight nRoundedHeight
); );
_oContext.strokeRect( _oContext.strokeRect(
Math.ceil(nLeft) - 0.5, Math.ceil(nLeft) - 0.5,
Math.ceil(nTop) - 0.5, Math.ceil(nTop) - 0.5,
@ -413,10 +413,10 @@ var QRCode;
); );
} }
} }
this._bIsPainted = true; this._bIsPainted = true;
}; };
/** /**
* Make the image from Canvas if the browser supports Data URI. * Make the image from Canvas if the browser supports Data URI.
*/ */
@ -425,16 +425,16 @@ var QRCode;
_safeSetDataURI.call(this, _onMakeImage); _safeSetDataURI.call(this, _onMakeImage);
} }
}; };
/** /**
* Return whether the QRCode is painted or not * Return whether the QRCode is painted or not
* *
* @return {Boolean} * @return {Boolean}
*/ */
Drawing.prototype.isPainted = function () { Drawing.prototype.isPainted = function () {
return this._bIsPainted; return this._bIsPainted;
}; };
/** /**
* Clear the QRCode * Clear the QRCode
*/ */
@ -442,7 +442,7 @@ var QRCode;
this._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height); this._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height);
this._bIsPainted = false; this._bIsPainted = false;
}; };
/** /**
* @private * @private
* @param {Number} nNumber * @param {Number} nNumber
@ -451,28 +451,28 @@ var QRCode;
if (!nNumber) { if (!nNumber) {
return nNumber; return nNumber;
} }
return Math.floor(nNumber * 1000) / 1000; return Math.floor(nNumber * 1000) / 1000;
}; };
return Drawing; return Drawing;
})(); })();
/** /**
* Get the type by string length * Get the type by string length
* *
* @private * @private
* @param {String} sText * @param {String} sText
* @param {Number} nCorrectLevel * @param {Number} nCorrectLevel
* @return {Number} type * @return {Number} type
*/ */
function _getTypeNumber(sText, nCorrectLevel) { function _getTypeNumber(sText, nCorrectLevel) {
var nType = 1; var nType = 1;
var length = _getUTF8Length(sText); var length = _getUTF8Length(sText);
for (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) { for (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {
var nLimit = 0; var nLimit = 0;
switch (nCorrectLevel) { switch (nCorrectLevel) {
case QRErrorCorrectLevel.L : case QRErrorCorrectLevel.L :
nLimit = QRCodeLimitLength[i][0]; nLimit = QRCodeLimitLength[i][0];
@ -487,18 +487,18 @@ var QRCode;
nLimit = QRCodeLimitLength[i][3]; nLimit = QRCodeLimitLength[i][3];
break; break;
} }
if (length <= nLimit) { if (length <= nLimit) {
break; break;
} else { } else {
nType++; nType++;
} }
} }
if (nType > QRCodeLimitLength.length) { if (nType > QRCodeLimitLength.length) {
throw new Error("Too long data"); throw new Error("Too long data");
} }
return nType; return nType;
} }
@ -506,11 +506,11 @@ var QRCode;
var replacedText = encodeURI(sText).toString().replace(/\%[0-9a-fA-F]{2}/g, 'a'); var replacedText = encodeURI(sText).toString().replace(/\%[0-9a-fA-F]{2}/g, 'a');
return replacedText.length + (replacedText.length != sText ? 3 : 0); return replacedText.length + (replacedText.length != sText ? 3 : 0);
} }
/** /**
* @class QRCode * @class QRCode
* @constructor * @constructor
* @example * @example
* new QRCode(document.getElementById("test"), "http://jindo.dev.naver.com/collie"); * new QRCode(document.getElementById("test"), "http://jindo.dev.naver.com/collie");
* *
* @example * @example
@ -519,7 +519,7 @@ var QRCode;
* width : 128, * width : 128,
* height : 128 * height : 128
* }); * });
* *
* oQRCode.clear(); // Clear the QRCode. * oQRCode.clear(); // Clear the QRCode.
* oQRCode.makeCode("http://map.naver.com"); // Re-create the QRCode. * oQRCode.makeCode("http://map.naver.com"); // Re-create the QRCode.
* *
@ -530,31 +530,31 @@ var QRCode;
* @param {Number} [vOption.height=256] * @param {Number} [vOption.height=256]
* @param {String} [vOption.colorDark="#000000"] * @param {String} [vOption.colorDark="#000000"]
* @param {String} [vOption.colorLight="#ffffff"] * @param {String} [vOption.colorLight="#ffffff"]
* @param {QRCode.CorrectLevel} [vOption.correctLevel=QRCode.CorrectLevel.H] [L|M|Q|H] * @param {QRCode.CorrectLevel} [vOption.correctLevel=QRCode.CorrectLevel.H] [L|M|Q|H]
*/ */
QRCode = function (el, vOption) { QRCode = function (el, vOption) {
this._htOption = { this._htOption = {
width : 256, width : 256,
height : 256, height : 256,
typeNumber : 4, typeNumber : 4,
colorDark : "#000000", colorDark : "#000000",
colorLight : "#ffffff", colorLight : "#ffffff",
correctLevel : QRErrorCorrectLevel.H correctLevel : QRErrorCorrectLevel.H
}; };
if (typeof vOption === 'string') { if (typeof vOption === 'string') {
vOption = { vOption = {
text : vOption text : vOption
}; };
} }
// Overwrites options // Overwrites options
if (vOption) { if (vOption) {
for (var i in vOption) { for (var i in vOption) {
this._htOption[i] = vOption[i]; this._htOption[i] = vOption[i];
} }
} }
if (typeof el == "string") { if (typeof el == "string") {
el = document.getElementById(el); el = document.getElementById(el);
} }
@ -562,20 +562,20 @@ var QRCode;
if (this._htOption.useSVG) { if (this._htOption.useSVG) {
Drawing = svgDrawer; Drawing = svgDrawer;
} }
this._android = _getAndroid(); this._android = _getAndroid();
this._el = el; this._el = el;
this._oQRCode = null; this._oQRCode = null;
this._oDrawing = new Drawing(this._el, this._htOption); this._oDrawing = new Drawing(this._el, this._htOption);
if (this._htOption.text) { if (this._htOption.text) {
this.makeCode(this._htOption.text); this.makeCode(this._htOption.text);
} }
}; };
/** /**
* Make the QRCode * Make the QRCode
* *
* @param {String} sText link data * @param {String} sText link data
*/ */
QRCode.prototype.makeCode = function (sText) { QRCode.prototype.makeCode = function (sText) {
@ -583,15 +583,15 @@ var QRCode;
this._oQRCode.addData(sText); this._oQRCode.addData(sText);
this._oQRCode.make(); this._oQRCode.make();
this._el.title = sText; this._el.title = sText;
this._oDrawing.draw(this._oQRCode); this._oDrawing.draw(this._oQRCode);
this.makeImage(); this.makeImage();
}; };
/** /**
* Make the Image from Canvas element * Make the Image from Canvas element
* - It occurs automatically * - It occurs automatically
* - Android below 3 doesn't support Data-URI spec. * - Android below 3 doesn't support Data-URI spec.
* *
* @private * @private
*/ */
QRCode.prototype.makeImage = function () { QRCode.prototype.makeImage = function () {
@ -599,14 +599,14 @@ var QRCode;
this._oDrawing.makeImage(); this._oDrawing.makeImage();
} }
}; };
/** /**
* Clear the QRCode * Clear the QRCode
*/ */
QRCode.prototype.clear = function () { QRCode.prototype.clear = function () {
this._oDrawing.clear(); this._oDrawing.clear();
}; };
/** /**
* @name QRCode.CorrectLevel * @name QRCode.CorrectLevel
*/ */

@ -111,7 +111,7 @@ Hier kannst du E-Mails an deine Gruppe oder an andere Menschen in der JDAV {% se
<div id="content-related"> <div id="content-related">
<div class="module" id="recent-actions-module"> <div class="module" id="recent-actions-module">
<div> <div>
<h2>Links</h2> <h2>Links</h2>
@ -154,7 +154,7 @@ Hier kannst du E-Mails an deine Gruppe oder an andere Menschen in der JDAV {% se
/* max-width: 800px; Optional: Adjust based on design */ /* max-width: 800px; Optional: Adjust based on design */
margin: auto; /* Centers the grid */ margin: auto; /* Centers the grid */
} }
.icon-item { .icon-item {
text-decoration: none; text-decoration: none;
text-align: center; text-align: center;
@ -163,7 +163,7 @@ Hier kannst du E-Mails an deine Gruppe oder an andere Menschen in der JDAV {% se
border-radius: 4px; border-radius: 4px;
transition: all 0.3s ease; transition: all 0.3s ease;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
@ -171,34 +171,34 @@ Hier kannst du E-Mails an deine Gruppe oder an andere Menschen in der JDAV {% se
/*height: 100%; Forces uniform height */ /*height: 100%; Forces uniform height */
/*min-height: 150px; Ensures all boxes have at least this height */ /*min-height: 150px; Ensures all boxes have at least this height */
} }
.icon-item img { .icon-item img {
width: 60px; width: 60px;
height: 60px; height: 60px;
object-fit: contain; object-fit: contain;
margin-bottom: 8px; margin-bottom: 8px;
} }
.icon-text { .icon-text {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
flex-grow: 1; /* Ensures text takes up available space */ flex-grow: 1; /* Ensures text takes up available space */
} }
.icon-title { .icon-title {
font-size: 14px; font-size: 14px;
font-weight: bold; font-weight: bold;
margin-bottom: 5px; margin-bottom: 5px;
} }
.icon-subtext { .icon-subtext {
font-size: 12px; font-size: 12px;
color: #666; color: #666;
} }
.icon-item:hover { .icon-item:hover {
transform: translateY(-3px); transform: translateY(-3px);
} }
</style> </style>

@ -13,4 +13,3 @@
{{block.super}} {{block.super}}
{% endblock %} {% endblock %}

@ -37,7 +37,7 @@
data-is-initial="{% if inline_admin_form.pk_field.field.value %}true{% else %}false{% endif %}" data-is-initial="{% if inline_admin_form.pk_field.field.value %}true{% else %}false{% endif %}"
{% endif %} {% endif %}
id="{{ inline_admin_formset.formset.prefix }}-{% if forloop.last and inline_admin_formset.has_add_permission %}empty{% else %}{{ inline_admin_form.form|form_index }}{% endif %}"> id="{{ inline_admin_formset.formset.prefix }}-{% if forloop.last and inline_admin_formset.has_add_permission %}empty{% else %}{{ inline_admin_form.form|form_index }}{% endif %}">
<h3 class="{% if not inline_opts.sortable_options or not inline_opts.sortable_options.disabled %} djn-drag-handler{% endif %}"> <h3 class="{% if not inline_opts.sortable_options or not inline_opts.sortable_options.disabled %} djn-drag-handler{% endif %}">
<b>{{ inline_admin_formset.opts.verbose_name|capfirst }}:</b>&nbsp;<span class="inline_label">{% if inline_admin_form.original %}{{ inline_admin_form.original }}{% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %} <a href="{% url inline_admin_form.model_admin.opts|admin_urlname:'change' inline_admin_form.original.pk|admin_urlquote %}" class="{% if inline_admin_formset.has_change_permission %}inlinechangelink{% else %}inlineviewlink{% endif %}">{% if inline_admin_formset.has_change_permission %}{% trans "Change" %}{% else %}{% trans "View" %}{% endif %}</a>{% endif %} <b>{{ inline_admin_formset.opts.verbose_name|capfirst }}:</b>&nbsp;<span class="inline_label">{% if inline_admin_form.original %}{{ inline_admin_form.original }}{% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %} <a href="{% url inline_admin_form.model_admin.opts|admin_urlname:'change' inline_admin_form.original.pk|admin_urlquote %}" class="{% if inline_admin_formset.has_change_permission %}inlinechangelink{% else %}inlineviewlink{% endif %}">{% if inline_admin_formset.has_change_permission %}{% trans "Change" %}{% else %}{% trans "View" %}{% endif %}</a>{% endif %}
{% else %}#{{ forloop.counter }}{% endif %}</span> {% else %}#{{ forloop.counter }}{% endif %}</span>

Loading…
Cancel
Save