Skip to content

Explain when a signer has no visible signature field #8325

Description

@vitormattos

Context

Part of #8321.

A PDF digital signature does not need a visible signature on the page.

When a signer receives a request without a visible signature field, the LibreSign interface may look incomplete because there is no visible place to sign.

LibreSign should explain that this is expected and that the document can still be signed normally.

Expected behavior

When the current signer has no visible signature field, show a short informational message in the signing flow.

Suggested content:

No visible signature is required

Your digital signature will still be added to the PDF and can be validated after signing.

Use NcNoteCard with an informational style.

Do not add a dialog or require confirmation.

How to detect this state

The frontend already has the helper:

hasVisibleElementsForCurrentUser(document)

in:

src/services/visibleElementsService.ts

Reuse this helper.

It already checks the signRequestId values that belong to the current signer and matches them with the visible elements in the document.

Do not create another implementation to find the current signer or inspect visible elements.

The message should be shown when:

!hasVisibleElementsForCurrentUser(signStore.document)

and the current user is in a valid signing flow.

src/views/SignPDF/_partials/Sign.vue already imports this helper.

UI placement

Add the message to:

src/views/SignPDF/_partials/Sign.vue

This component already uses NcNoteCard.

Show the information before the main signing action, where the signer can see it before clicking Sign document.

Do not show the same message in more than one place.

Do not add a special message after signing.

Signing behavior

The message is informational only.

It must not:

  • disable or hide Sign document;
  • require another confirmation;
  • create a visible signature field;
  • choose a position on the PDF;
  • change the signing request;
  • change the digital signature;
  • suggest that a signature without a visible mark is weaker or invalid.

The normal signing flow must remain unchanged.

Tests

Update:

src/tests/views/SignPDF/Sign.spec.ts

The existing tests already use visible elements with signRequestId.

Add cases for:

  • current signer has a visible element: message is not shown;
  • current signer has no visible element: message is shown;
  • another signer has a visible element but the current signer does not: message is shown;
  • current signer has a visible element but another signer does not: message is not shown;
  • Sign document remains available when the message is shown.

Reuse the existing test fixtures and hasVisibleElementsForCurrentUser() behavior.

Do not duplicate the visible-element matching logic in the component tests.

Playwright

Add or update a signing Playwright test with no visible signature position.

Confirm that:

  1. the informational message is visible;
  2. Sign document remains available;
  3. the signer can complete the signature successfully.

Keep the existing Playwright coverage for signing with a visible position.

Reuse an existing signing workflow where possible instead of creating a complete new setup.

Out of scope

This issue does not change:

Good first issue

The logic needed to detect this state already exists.

The main work is:

  • reuse hasVisibleElementsForCurrentUser(signStore.document);
  • add one informational NcNoteCard to the existing signing view;
  • add focused component tests;
  • extend an existing Playwright signing flow.

Do not create new signer-detection or visible-element logic.

Please keep the change focused and reuse the current LibreSign and Nextcloud components.

Additional context

  • If you have questions, feel free to ask in this issue.
  • Give a ⭐️ star to this repository if you find LibreSign useful and would like to support the project.
  • You can also join our community: https://t.me/LibreSign

Done when

  • The existing hasVisibleElementsForCurrentUser() helper is reused.
  • The message is shown only when the current signer has no visible element.
  • NcNoteCard is used.
  • No new confirmation step is added.
  • Sign document remains available.
  • Signing behavior does not change.
  • Component tests cover visible and non-visible cases.
  • Playwright covers successful signing without a visible field.

Metadata

Metadata

Assignees

Labels

Fields

Priority

Medium

Start date

None yet

Target date

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions