{% extends "admin/layout.html" %} {% block title %}QR Code Settings – Admin{% endblock %} {% block body %}

{% trans %}QR Code Generator Settings{% endtrans %}

{% trans %}Configure the public QR code generator page, feature flags, and view usage stats.{% endtrans %}

{% with messages = get_flashed_messages(with_categories=true) %}{% for cat, msg in messages %}{% endfor %}{% endwith %}

{% trans %}Total QR Codes{% endtrans %}

{{ total_codes }}

{% trans %}Total Scans Recorded{% endtrans %}

{{ total_scans }}

{% trans %}Dynamic QR Codes{% endtrans %}

{{ dynamic_codes }}

{% trans %}General{% endtrans %}

{% trans %}Set up a CNAME pointing to this server. Leave blank to use the current server URL. Existing codes are unaffected.{% endtrans %}

{% trans %}0 = disabled. Only enable for screen-displayed QR codes — printed QR codes will permanently stop working once the TTL expires.{% endtrans %}

{% trans %}Added to bottom-right corner of all free QR images. Leave blank to disable.{% endtrans %}

{% trans %}Upload a logo to stamp in the corner. Optional text label shown beside it.{% endtrans %}

{% if qr_settings.get('qr_watermark_logo_path') %}
WM {% trans %}Current logo{% endtrans %}
{% endif %}

{% trans %}Enabled QR Code Types{% endtrans %}

{% set qr_types_list = [ ('qr_type_url', 'URL'), ('qr_type_pdf', 'PDF'), ('qr_type_multi_url', 'Multi-URL'), ('qr_type_vcard', 'Contact / vCard'), ('qr_type_text', 'Plain Text'), ('qr_type_app', 'App Links'), ('qr_type_sms', 'SMS'), ('qr_type_email', 'Email'), ('qr_type_phone', 'Phone'), ] %} {% for key, label in qr_types_list %}
{% endfor %}
{% trans %}View Public Page{% endtrans %}

{% trans %}Watermark Logo (for Logo mode){% endtrans %}

{% if qr_settings.get('qr_watermark_logo_path') %}
WM Logo {% trans %}Logo uploaded{% endtrans %}
{% endif %}

{% trans %}Logo Library{% endtrans %}

{% trans %}Logos uploaded here appear as preset choices on the QR generator page.{% endtrans %}

{% set logo_presets = qr_settings.get('qr_logo_presets', []) %} {% if logo_presets %}
{% for logo in logo_presets %}
{{ logo.get('name','') }} {{ logo.get('name','') }}
{% endfor %}
{% else %}

{% trans %}No logos uploaded yet.{% endtrans %}

{% endif %}

{% trans %}Frame Library{% endtrans %}

{% trans %}Upload transparent PNG frames. They are composited over the QR code as overlays.{% endtrans %}

{% set frame_presets = qr_settings.get('qr_frame_presets', []) %} {% if frame_presets %}
{% for frame in frame_presets %}
{{ frame.get('name','') }}
{{ frame.get('name','') }}
{% endfor %}
{% else %}

{% trans %}No frames uploaded yet.{% endtrans %}

{% endif %}

{% trans %}QR Template Library{% endtrans %}

{% trans %}Templates appear on the generator page as one-click presets users can apply and further customise.{% endtrans %}

{% set qr_tpls = qr_settings.get('qr_templates', []) %} {% set logo_map = {} %} {% for lp in qr_settings.get('qr_logo_presets', []) %}{% set _ = logo_map.update({lp.id: lp.name}) %}{% endfor %} {% if qr_tpls %}
{% for tpl in qr_tpls %}
{{ tpl.get('dot_style','square') }}

{{ tpl.get('name','Template') }}

EC: {{ tpl.get('error_correction','M') }} · Corner: {{ tpl.get('corner_style','square') }} {% if tpl.get('logo_id') %} · Logo: {{ logo_map.get(tpl.get('logo_id',''), tpl.get('logo_id','')) }}{% endif %}

{% endfor %}
{% else %}

{% trans %}No templates created yet.{% endtrans %}

{% endif %}

{% trans %}Create New Template{% endtrans %}

{% trans %}Upload a logo only for this template. PNG/SVG with transparency recommended.{% endtrans %}

{% trans %}Live Preview{% endtrans %}

{% trans %}Preview loads…{% endtrans %}

{% trans %}Plan-level QR Controls{% endtrans %}

{% trans %}Per-plan limits for dynamic QR codes, analytics history, watermark removal, CSV export, and API access are configured in the{% endtrans %} {% trans %}Subscription Plans{% endtrans %} {% trans %}page under the "QR Code Features" section of each plan's edit form.{% endtrans %}

{% endblock %}