exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

accept-tos.typ (1797B)


      1 // Form to render ToS acceptance form.
      2 
      3 #let form(data) = {
      4   set page(
      5     paper: "a4",
      6     margin: (left: 2cm, right: 2cm, top: 2cm, bottom: 2.5cm),
      7     footer: context [
      8       #grid(
      9         columns: (1fr, 1fr),
     10         align: (left, right),
     11         text(size: 8pt)[
     12         ],
     13         text(size: 8pt)[
     14           Page #here().page() of #counter(page).final().first()
     15         ]
     16       )
     17     ]
     18   )
     19 
     20   set text(font: "Liberation Sans", size: 10pt)
     21   set par(justify: false, leading: 0.65em)
     22 
     23   // Helper function to get value or empty string
     24   let get(key, default: "") = {
     25     data.at(key, default: default)
     26   }
     27 
     28   // Helper function for checkbox
     29   let checkbox(checked) = {
     30     box(
     31       width: 3mm,
     32       height: 3mm,
     33       stroke: 0.5pt + black,
     34       inset: 0.3mm,
     35       if checked == true or checked == "true" {
     36         place(center + horizon, text(size: 8pt, sym.checkmark))
     37       }
     38     )
     39   }
     40 
     41   // Header
     42   align(center, text(size: 11pt, weight: "bold")[CONFIDENTIAL])
     43 
     44   v(0.5em)
     45 
     46   grid(
     47     columns: (50%, 50%),
     48     gutter: 1em,
     49     image("taler-logo.svg", width: 80%),
     50     align(right)[
     51       #table(
     52         columns: (1fr, 1fr),
     53         stroke: 0.5pt + black,
     54         inset: 5pt,
     55         align: (left, left),
     56         [AMLA File No.],
     57         [#get("FILE_NUMBER")]
     58       )
     59     ]
     60   )
     61 
     62   v(1em)
     63 
     64   // Section 1: Acceptance data
     65   text(size: 11pt, weight: "bold")[Accepted terms of service:]
     66 
     67   v(0.5em)
     68 
     69   block(breakable: false)[
     70     #v(0.5em)
     71     #table(
     72       columns: (35%, 65%),
     73       stroke: 0.5pt + black,
     74       inset: 5pt,
     75       [Version:], [#get("ACCEPTED_TERMS_OF_SERVICE")],
     76       [Downloaded:], [#checkbox(get("DOWNLOADED_TERMS_OF_SERVICE"))],
     77     )
     78     #v(0.5em)
     79   ]
     80 }
     81 
     82 // Example usage:
     83 #form((
     84   "ACCEPTED_TERMS_OF_SERVICE": "v1",
     85   "DOWNLOADED_TERMS_OF_SERVICE": true,
     86 ))