* feat: externalize storage config via environment variables (v1.5.0)
- Add storage_configured?, storage_service, storage_settings to ExternalConfig
- Show read-only banner and disable form when S3/GCS/Azure env vars are set
- Keep storage link visible in settings nav when externally configured
- Add 8 RSpec tests for storage config detection and settings
* fix: add server-side guard to reject storage form POST when env-configured
Addresses Devin Review feedback: the disabled fieldset was client-side only.
Now StorageSettingsController#create redirects with an alert when
ExternalConfig.storage_configured? is true.
* fix: use i18n key for storage read-only banner instead of hardcoded string
* fix: use conditional fieldset tags to avoid BetterHtml interpolation error
---------
Co-authored-by: Bob Develop <developbob50@gmail.com>
- Add Docuseal.personalized?(account) helper that returns true when
a custom logo is attached OR a brand name is configured
- Show 'Powered by DocuSeal' footer in the app layout when personalized
- Show 'Powered by DocuSeal' line in email attribution when personalized
- No footer shown in default (non-personalized) state
Co-authored-by: Bob Develop <developbob50@gmail.com>
* feat: add custom brand name + font feature (v1.2.0)
- Add BRAND_NAME_KEY, BRAND_NAME_FONT_KEY, BRAND_NAME_FONTS whitelist to AccountConfig
- Modify _title.html.erb to render custom brand name with configurable font
- Create _brand_name_form.html.erb partial with text input + font dropdown
- Add brand name form to personalization_settings/show.html.erb
- Add BRAND_NAME keys to PersonalizationSettingsController ALLOWED_KEYS
- Apply brand name header in mailer layout
- Add i18n translations (EN, ES, IT, FR, PT, DE, NL)
- Env override support via DOCUSEAL_CONFIG_BRAND_NAME / DOCUSEAL_CONFIG_BRAND_NAME_FONT
- When brand_name is unset, upstream DocuSeal text renders as before
- When set, configured text renders in chosen font (CSS font-family inline)
* fix: address review — correct font CSS fallback, system-ui quoting, server-side validation
- Add brand_font_css helper to AccountConfig for proper CSS output
- system-ui rendered unquoted; Inter uses sans-serif fallback; script fonts use cursive
- Add server-side validation rejecting fonts not in BRAND_NAME_FONTS whitelist
- Add invalid_font_selection i18n key
* fix: use Rails form helpers for BetterHtml compatibility in brand name and UI visibility forms
---------
Co-authored-by: Bob Develop <developbob50@gmail.com>
* Fix ESLint quote-props errors in signature_step.vue
* feat: add per-account custom logo support with env var fallback
- Add has_one_attached :logo to Account model
- Add Docuseal.custom_logo_url helper reading CUSTOM_LOGO_URL env var
- Create AccountLogoController with upload/delete actions
- Update shared/_logo.html.erb to render: account.logo > CUSTOM_LOGO_URL > default SVG
- Replace logo_form placeholder with actual upload form + preview + delete
- Add route for account_logo under /settings
- Add i18n translations for logo flash messages
* test: add Playwright tests for custom logo upload, delete, and env fallback
---------
Co-authored-by: mario.pander <developbob50@gmail.com>
Co-authored-by: David Pierre-Francois <david.pierre-francois@videotron.com>