Skip to content

feat(inquirer gui): 37088 output tab link#804

Open
korotkovao wants to merge 11 commits intoSAP:masterfrom
korotkovao:feat/inquirer-gui/37088-output-tab-link
Open

feat(inquirer gui): 37088 output tab link#804
korotkovao wants to merge 11 commits intoSAP:masterfrom
korotkovao:feat/inquirer-gui/37088-output-tab-link

Conversation

@korotkovao
Copy link
Copy Markdown
Contributor

Summary

Adds an OutputTabLink component to Form.vue that renders a clickable link below a
question's validation error message when the error text is truncated to 2 lines. The error message is CSS-clamped to 2 lines, and whether it overflows depends on the container width — the link appears or disappears dynamically as the wizard panel is resized. This allows users to open the output tab to see the full error message.

Closes tool-suite issue #37088

Changes

New component: OutputTabLink.vue

  • Renders a styled hyperlink that emits show-output-tab-link when clicked
  • Accepts an optional linkMessage prop for a customizable label (falls back to "View details in the output tab.")

Form.vue

  • Integrates OutputTabLink after the additional messages section
  • Two display modes controlled by question.showOutputTabLink:
    • 'validationMessageOverflow' — link appears automatically when the error text is clamped to 2 lines and overflows
    • function — consumer-controlled via updateShowOutputTabLink() RPC callback, returning boolean | { show: boolean; linkMessage?: string }
  • Overflow detection uses a ResizeObserver on the form container, re-evaluating on width changes only (avoids false triggers from dropdown open/close)
  • _registerErrorTextRef tracks error text <span> DOM refs; temporarily removes -webkit-line-clamp to compare full scroll height vs clamped height
  • Overflow state re-evaluated after setInvalid / setLinkMsg and when answers change

QuestionList.vue

  • Replaces setTimeout(..., 0) with requestAnimationFrame(...) for the Vuetify dropdown resize workaround

Test setup

  • Adds ResizeObserver polyfill for jsdom (__tests__/setup.js)

Testing

  1. Open the Fiori Application Generator
  2. Trigger a long validation error (e.g. an OData service connection error)
  3. When the error text is truncated to 2 lines, a "View details in the output tab." link appears below it
  4. Clicking the link opens the output channel with the full error log
  5. Resizing the wizard panel re-evaluates overflow — the link appears/disappears as expected

Add 'View Details in the Output Tab' link below error text when it overflows
two lines. The link is driven by guiOptions.showOutputTabLink.command and uses
a ResizeObserver to show/hide based on actual DOM overflow (scrollHeight vs
clientHeight). Inverted underline: underlined at rest, no underline on hover.

#37088
Revert changes not related to the output tab link feature:
- Restore original img tag for validation link icons (was changed to v-html/span)
- Remove decodeSvgIcon() method
- Remove shouldShowValidationLink() extraction (back to inline v-if)
- Restore original CSS for .question-hint, .question-link, .validation-link-icon

Only output tab link additions remain in Form.vue.
…upport

- Move showOutputTabLink check from guiOptions to top-level question property
- Support 'validationMessageOverflow' mode and function binding mode
- Add updateShowOutputTabLink method for RPC-based function evaluation
- Make OutputTabLink and additionalMessages render independently
- Add ResizeObserver mock for jsdom test environment
Reorder the OutputTabLink component to render after the additional
messages section instead of before it, ensuring the 'View details
in the output tab' link always appears at the end of all messages.
- Form.vue: only trigger error-text overflow recalculation when container
  width changes, not on height changes (which occur when dropdown opens)
- QuestionList.vue: use requestAnimationFrame instead of setTimeout for
  the Vuetify dialog menu position fix (vuetifyjs/vuetify#17126)
@korotkovao korotkovao changed the title Feat/inquirer gui/37088 output tab link feat(inquirer gui): 37088 output tab link Apr 14, 2026
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