exchange

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

generic_upload.typ (1787B)


      1 // Generic note 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: File upload with note
     65   text(size: 11pt, weight: "bold")[File upload with note:]
     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       [Note:], [#get("NOTE_TEXT")],
     76       [Filename:], [#get("FILE").at("FILENAME")],
     77     )
     78     #v(0.5em)
     79   ]
     80 }
     81 
     82 // Example usage:
     83 #form((
     84   "NOTE_TEXT": "This is a great customer.",
     85   "FILE" : ( "FILENAME":"test.txt", "CONTENTS":"..."),
     86   "FILE_NUMBER": 42,
     87 ))