feat: initial shared library extraction
Contains shared infrastructure for all coop services: - shared/ (factory, urls, user_loader, context, internal_api, jinja_setup) - models/ (User, Order, Calendar, Ticket, Product, Ghost CMS) - db/ (SQLAlchemy async session, base) - suma_browser/app/ (csrf, middleware, errors, authz, redis_cacher, payments, filters, utils) - suma_browser/templates/ (shared base layouts, macros, error pages) - static/ (CSS, JS, fonts, images) - alembic/ (database migrations) - config/ (app-config.yaml) - editor/ (Lexical editor Node.js build) - requirements.txt Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
59
suma_browser/templates/macros/links.html
Normal file
59
suma_browser/templates/macros/links.html
Normal file
@@ -0,0 +1,59 @@
|
||||
|
||||
|
||||
{% macro link(url, select, select_colours='', highlight=True, _class='', aclass='') %}
|
||||
{% set href=url|host%}
|
||||
<div class="relative nav-group {{_class}}">
|
||||
<a
|
||||
href="{{ href }}"
|
||||
hx-get="{{ href }}"
|
||||
hx-target="#main-panel"
|
||||
hx-select="{{select}}"
|
||||
hx-swap="outerHTML"
|
||||
hx-push-url="true"
|
||||
aria-selected="{{ 'true' if (request.path|host).startswith(href) else 'false' }}"
|
||||
{% if aclass %}
|
||||
class="{{aclass}}"
|
||||
{% elif select_colours %}
|
||||
class="whitespace-normal flex gap-2 px-3 py-2 rounded
|
||||
text-center break-words leading-snug
|
||||
bg-stone-200 text-black
|
||||
{{select_colours if highlight else ''}}
|
||||
"
|
||||
{% else %}
|
||||
class="w-full whitespace-normal flex items-center gap-2 font-bold text-2xl px-3 py-2"
|
||||
{% endif %}
|
||||
>
|
||||
{{ caller() }}
|
||||
</a>
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
|
||||
{% macro menu_row(id=False, oob=False) %}
|
||||
<div
|
||||
{% if id %}
|
||||
id="{{id}}"
|
||||
{% endif %}
|
||||
{% if oob %}
|
||||
hx-swap-oob="outerHTML"
|
||||
{% endif %}
|
||||
class="flex flex-col items-center md:flex-row justify-center md:justify-between w-full p-1 bg-{{menu_colour}}-{{(500-(level()*100))|string}}"
|
||||
>
|
||||
{{ caller() }}
|
||||
</div>
|
||||
{{level_up()}}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro desktop_nav() %}
|
||||
<nav class="hidden md:flex gap-4 text-sm ml-2 justify-end items-center flex-0">
|
||||
{{ caller() }}
|
||||
</nav>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro admin() %}
|
||||
<i class="fa fa-cog" aria-hidden="true"></i>
|
||||
<div>
|
||||
settings
|
||||
</div>
|
||||
|
||||
{% endmacro %}
|
||||
Reference in New Issue
Block a user