Skip to content

Commit

Permalink
Merge pull request #121 from docusign/feature/updates-for-example-38
Browse files Browse the repository at this point in the history
Add formula tabs to responsive signing
  • Loading branch information
paigesrossi authored Oct 18, 2023
2 parents c2e34e8 + 51fbae1 commit f0f28a9
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 4 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<oauth2.version>2.5.6</oauth2.version>
<commonsio.version>2.11.0</commonsio.version>

<esignature.version>4.3.0</esignature.version>
<esignature.version>4.4.0</esignature.version>
<rooms.version>1.4.3</rooms.version>
<click.version> 1.4.0</click.version>
<monitor.version>1.3.0</monitor.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,20 @@
import com.docusign.esign.model.*;

import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;

public final class ResponsiveSigningService {
//ds-snippet-start:eSign38Step2
private static final String TRUE = "true";
private static final String FALSE = "false";
private static final int L1_PRICE = 5;
private static final int L2_PRICE = 150;
private static final int ANCHOR_OFFSET_Y = 10;
private static final int ANCHOR_OFFSET_X = 20;
private static final String DEFAULT_FONT = "helvetica";
private static final String DEFAULT_FONT_SIZE = "size11";
private static final String ANCHOR_UNITS = "pixels";
private static final String HTML_DOCUMENT_FILE_NAME = "templates/order-form.ftl";
public static EnvelopeDefinition makeEnvelope(
String signerEmail,
Expand All @@ -22,9 +32,9 @@ public static EnvelopeDefinition makeEnvelope(
WorkArguments args
) throws IOException {
String htmlDoc = EnvelopeHelpers.createHtmlFromTemplateFile(HTML_DOCUMENT_FILE_NAME, "args", args);
htmlDoc = htmlDoc.replace("/sn1/", "<ds-signature data-ds-role=\"Signer\"/>")
.replace("/l1q/", " <input data-ds-type=\"number\"/>")
.replace("/l2q/", " <input data-ds-type=\"number\"/>");;
htmlDoc = htmlDoc
.replace("/l1q/", " <input data-ds-type=\"number\" name=\"l1q\" />")
.replace("/l2q/", " <input data-ds-type=\"number\" name=\"l2q\"/>");;

Signer signer = new Signer()
.email(signerEmail)
Expand All @@ -47,12 +57,53 @@ public static EnvelopeDefinition makeEnvelope(
.name("Lorem Ipsum")
.documentId("1")
.htmlDefinition(new DocumentHtmlDefinition().source(htmlDoc))));
signer.setTabs(createTabs());
envelope.setRecipients(EnvelopeHelpers.createRecipients(signer, cc));
envelope.setStatus(EnvelopeHelpers.ENVELOPE_STATUS_SENT);

return envelope;
}

private static Tabs createTabs() {
FormulaTab formulaForFirstNumber = createFormulaTab("/l1e/", "l1e", L1_PRICE, "l1q");
FormulaTab formulaForSecondNumber = createFormulaTab("/l2e/", "l2e", L2_PRICE, "l2q");
FormulaTab finalFormula = new FormulaTab()
.font(DEFAULT_FONT)
.bold(TRUE)
.fontSize(DEFAULT_FONT_SIZE)
.anchorString("/l3t/")
.anchorYOffset("-8")
.anchorUnits(ANCHOR_UNITS)
.anchorXOffset("105")
.tabLabel("l3t")
.formula("[l1e] + [l2e]")
.roundDecimalPlaces("0")
.required(TRUE)
.locked(TRUE)
.disableAutoSize(FALSE);

Tabs signerTabs = EnvelopeHelpers.createSingleSignerTab("/sn1/", ANCHOR_OFFSET_Y, ANCHOR_OFFSET_X);
signerTabs.formulaTabs(Arrays.asList(formulaForFirstNumber, formulaForSecondNumber, finalFormula));

return signerTabs;
}

private static FormulaTab createFormulaTab(String anchor, String label, int price, String numerical) {
return new FormulaTab()
.font(DEFAULT_FONT)
.fontSize(DEFAULT_FONT_SIZE)
.anchorString(anchor)
.anchorYOffset("-8")
.anchorUnits(ANCHOR_UNITS)
.anchorXOffset("105")
.tabLabel(label)
.formula(String.format("[%s] * {%d}", numerical, price))
.roundDecimalPlaces("0")
.required(TRUE)
.locked(TRUE)
.disableAutoSize(FALSE);
}

public static ViewUrl responsiveSigning(
EnvelopesApi envelopesApi,
String accountId,
Expand Down

0 comments on commit f0f28a9

Please sign in to comment.