• Mahmoud Aglan's avatar
    fix(expenses): let a phone photo of a receipt actually attach and display · 32e52a04
    Mahmoud Aglan authored
    Three things stood between the desk and an attached receipt:
    
    - The picker on the create form listed extensions (.jpg,.png,…), which on
      iOS greys out the camera roll; and both components validated
      mimes:jpg,jpeg,png,pdf,webp, so a HEIC photo — the iPhone default —
      was refused after the picker had accepted it. Both now accept image/*
      plus heic/heif, and validate the same set.
    - The attachment stream built Content-Disposition by hand with
      addslashes(). Receipt names here are Arabic, and an Arabic filename is
      not a legal header value: the inline preview came back broken and the
      download came back mangled. Symfony builds the header now, via
      Storage::response() for inline and download() for the save.
    - HEIC is an image no browser but Safari paints, so it falls back to the
      file card instead of a broken <img> (attachmentIsViewableImage()).
    
    Also: the create form advertised a 5MB ceiling while the real one is
    config('uploads.max_kb') (150MB), and its uploaded-file chip called
    getClientOriginalName() on whatever sat in the property.
    Co-Authored-By: 's avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    32e52a04
Name
Last commit
Last update
Screenshots Loading commit data...
app Loading commit data...
bootstrap Loading commit data...
config Loading commit data...
database Loading commit data...
docker Loading commit data...
docs Loading commit data...
docs-site Loading commit data...
flutter_shell Loading commit data...
gap-filling-plans Loading commit data...
lang Loading commit data...
marketing-site Loading commit data...
plans Loading commit data...
public Loading commit data...
reference/oc-sport Loading commit data...
resources Loading commit data...
routes Loading commit data...
scripts Loading commit data...
storage Loading commit data...
tests Loading commit data...
.dockerignore Loading commit data...
.editorconfig Loading commit data...
.env.example Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.npmrc Loading commit data...
Beanding Guide.txt Loading commit data...
CLAUDE.md Loading commit data...
Dockerfile Loading commit data...
README.md Loading commit data...
artisan Loading commit data...
captain-definition Loading commit data...
composer.json Loading commit data...
composer.lock Loading commit data...
deploy.sh Loading commit data...
elcaptain-sportsonly-db.md Loading commit data...
one-click-app.yml Loading commit data...
package-lock.json Loading commit data...
package.json Loading commit data...
phpunit.xml Loading commit data...
system info.txt Loading commit data...
vite.config.js Loading commit data...
نادى الشيخ زايد كشف بيانات اللاعبين (2).html Loading commit data...