Compare commits

...

3 Commits

6 changed files with 29 additions and 1 deletions

View File

@ -7,6 +7,7 @@ import (
"html/template" "html/template"
"image/png" "image/png"
"git.odit.services/lfk/document-server/templates"
"github.com/boombuler/barcode" "github.com/boombuler/barcode"
"github.com/boombuler/barcode/code128" "github.com/boombuler/barcode/code128"
"github.com/boombuler/barcode/ean" "github.com/boombuler/barcode/ean"
@ -79,10 +80,19 @@ func (t *DefaultTemplater) GenerateBarcode(code string, format string, prefix st
return base64.StdEncoding.EncodeToString(buf.Bytes()), nil return base64.StdEncoding.EncodeToString(buf.Bytes()), nil
} }
func (t *DefaultTemplater) SelectSponsorImage(id int) (string, error) {
sponsors := []string{
"vrbank",
"odit",
"sparkasse",
}
return templates.GetImage(sponsors[id%len(sponsors)]), nil
}
func (t *DefaultTemplater) StringToTemplate(templateString string) (*template.Template, error) { func (t *DefaultTemplater) StringToTemplate(templateString string) (*template.Template, error) {
return template.New("template").Funcs(template.FuncMap{ return template.New("template").Funcs(template.FuncMap{
"barcode": t.GenerateBarcode, "barcode": t.GenerateBarcode,
"sponsorLogo": func(id int) string { return "a" }, "sponsorLogo": t.SelectSponsorImage,
}).Parse(templateString) }).Parse(templateString)
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,6 +3,8 @@ package templates
import ( import (
_ "embed" _ "embed"
"fmt" "fmt"
"log"
"os"
) )
//go:embed card/en.html //go:embed card/en.html
@ -20,6 +22,9 @@ var ContractTemplateDe string
//go:embed images/sponsoringheader.base64 //go:embed images/sponsoringheader.base64
var ImageSponsoringHeaderBase64 string var ImageSponsoringHeaderBase64 string
//go:embed images/error.base64
var ImageErrorBase64 string
func GetTemplate(locale, templateName string) (string, error) { func GetTemplate(locale, templateName string) (string, error) {
switch templateName { switch templateName {
case "card": case "card":
@ -39,3 +44,12 @@ func GetTemplate(locale, templateName string) (string, error) {
} }
return "", fmt.Errorf("template not found with name %s and locale %s", templateName, locale) return "", fmt.Errorf("template not found with name %s and locale %s", templateName, locale)
} }
func GetImage(imageName string) string {
content, err := os.ReadFile("static/images/" + imageName + ".base64")
if content == nil || err != nil {
log.Printf("error reading image %s: %v", imageName, err)
return ImageErrorBase64
}
return string(content)
}