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:
- the informational message is visible;
Sign document remains available;
- 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
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:
Use
NcNoteCardwith 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.tsReuse this helper.
It already checks the
signRequestIdvalues 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:
and the current user is in a valid signing flow.
src/views/SignPDF/_partials/Sign.vuealready imports this helper.UI placement
Add the message to:
src/views/SignPDF/_partials/Sign.vueThis 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:
Sign document;The normal signing flow must remain unchanged.
Tests
Update:
src/tests/views/SignPDF/Sign.spec.tsThe existing tests already use visible elements with
signRequestId.Add cases for:
Sign documentremains 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:
Sign documentremains available;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:
hasVisibleElementsForCurrentUser(signStore.document);NcNoteCardto the existing signing view;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
Done when
hasVisibleElementsForCurrentUser()helper is reused.NcNoteCardis used.Sign documentremains available.