f7d2de355e
New static qr types: - App Link: Android intent:// links (with package + optional browser fallback) or a generic custom-scheme URI. iOS Universal Links need no special encoding (they're just plain https:// URLs). - Bluetooth: device name + MAC address. Purely informational, since unlike WIFI:/vCard there's no OS-native "scan to pair" convention. SVG export: already worked (format whitelist/dropdown existed since Fase 1), verified rather than reimplemented. Copy-to-clipboard button next to the download button on both qr list tables, using the Clipboard API against a fetched blob. Optional frame text label rendered below the qr code via GD after generation (raster formats only, no-op for svg/eps). Batch CSV upload (batch_qrcode.php): filename,link rows create dynamic qr codes with sane defaults, downloadable as a zip. Required refactoring Qrcode-intchil.php's generation path (previously always redirected/exited via failure()/success(), which can't run in a loop) into a private renderAndStore() that throws instead, shared by addQrcode() and the new addQrcodeBatch(). Qrcode.php's addQrcodeBatch() is a separate, deliberately duplicated implementation instead, since its generation logic is small enough that duplication carries less risk than refactoring the working external-API code path. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
38 lines
1.3 KiB
PHP
38 lines
1.3 KiB
PHP
<form class="form" action="static_qrcode.php?type=bluetooth" method="post" id="static_form" enctype="multipart/form-data">
|
|
<?php echo csrf_field(); ?>
|
|
<?php include BASE_PATH.'/forms/qrcode_options.php'; ?>
|
|
<!-- Input forms -->
|
|
<div class="col-sm-12 mb-2">
|
|
<small class="form-text text-muted mb-2">
|
|
There is no OS-native "scan to pair" standard for Bluetooth like there is for Wifi, so this
|
|
just encodes the device name and address for reference - whoever scans it still pairs
|
|
manually via their Bluetooth settings.
|
|
</small>
|
|
<div class="row">
|
|
|
|
<div class="col-6 col-md-3">
|
|
<div class="form-group">
|
|
<label>Device name *</label>
|
|
<input type="text" name="device_name" value="" placeholder="" class="form-control">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-6 col-md-3">
|
|
<div class="form-group">
|
|
<label>MAC address *</label>
|
|
<input type="text" name="mac_address" value="" placeholder="AA:BB:CC:DD:EE:FF" class="form-control">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-sm-12 mb-2">
|
|
<div class="row">
|
|
<div class="col-6 col-md-3">
|
|
<button type="submit" class="btn btn-primary">Submit</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</form>
|