Skip to content

fix: clarify custom message settings UX - #22

Merged
vitormattos merged 56 commits into
mainfrom
fix/survey-message-settings-ux
Sep 23, 2026
Merged

vitormattos merged 56 commits into
mainfrom
fix/survey-message-settings-ux

Conversation

@vitormattos

@vitormattos vitormattos commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

Summary

Improves the LimeSurvey settings UX around Telegram text messages.

The current form always shows the parse mode and message template even when Send message is disabled. This makes it easy to edit a template and assume it will be sent, while the plugin silently skips the text message unless the checkbox is enabled.

This change:

  • renames the checkbox to Send a custom message;
  • adds help text explaining that it controls whether a Telegram message is sent;
  • renames Parse mode to Message format;
  • renames Default Text to Message template;
  • shows Message format and Message template only when Send a custom message is enabled;
  • keeps PDF and CSV attachments independent from the text message;
  • improves the PDF/CSV labels;
  • intentionally groups the settings as connection/test controls, custom message controls, then attachment controls;
  • updates the README flow to match the UI;
  • updates screenshot automation for the new interaction;
  • adds backend unit coverage and browser-level coverage for the conditional UI.

Why

While configuring a real survey, it was possible to fill in a custom template without noticing that the separate SendMessage checkbox was still disabled. PDF and CSV attachments were delivered, but the text message was not. The UI should make this dependency explicit instead of requiring users to infer it.

Expected UX

The settings order is intentional:

  1. enable/connection settings;
  2. test connection;
  3. custom message toggle;
  4. message format and template, only when the toggle is enabled;
  5. PDF and CSV attachment options.

When Send a custom message is off:

  • message format is hidden;
  • message template is hidden;
  • PDF/CSV options remain available.

When it is enabled:

  • message format appears;
  • message template appears and can be edited.

Testability

The UI behavior is no longer embedded only as an inline block inside the plugin class.

  • MessageSettingsUiBuilder owns the generated browser script and has unit coverage.
  • LSTelegramNotifyPluginTest covers labels, settings values, and the intentional settings order.
  • screenshot browser automation verifies the real LimeSurvey UI starts with the dependent fields hidden and reveals them after enabling Send a custom message.
  • Node tests cover the browser-flow orchestration.
  • the documentation screenshot is regenerated from the same real LimeSurvey flow used by CI.

This gives us both backend/unit validation and frontend/browser validation for the behavior that caused the original UX issue.

vitormattos and others added 30 commits September 23, 2026 11:49
@vitormattos
vitormattos merged commit a249b63 into main Sep 23, 2026
13 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant