Mercurial > gemma
view pkg/common/attributes.go @ 1928:76ca071cb006
client: pdf-gen: add legend graphic
* Add a plain legend graphic to the right upper corner. Take a detour
via a HTMLImageElement to get the aspect ration of the legend graphic
and calculate the necessary size accordingly.
author | Bernhard Reiter <bernhard@intevation.de> |
---|---|
date | Mon, 21 Jan 2019 11:37:24 +0100 |
parents | 49e047c2106e |
children | 8eeb0b5eb340 |
line wrap: on
line source
// This is Free Software under GNU Affero General Public License v >= 3.0 // without warranty, see README.md and license for details. // // SPDX-License-Identifier: AGPL-3.0-or-later // License-Filename: LICENSES/AGPL-3.0.txt // // Copyright (C) 2018 by via donau // – Österreichische Wasserstraßen-Gesellschaft mbH // Software engineering by Intevation GmbH // // Author(s): // * Sascha L. Teichmann <sascha.teichmann@intevation.de> package common import ( "log" "strconv" "strings" "time" ) // Attributes is a map of optional key/value attributes // of a configuration. type Attributes map[string]string // Get fetches a value for given key out of the configuration. // If the key was not found the bool component of the return value // return false. func (ca Attributes) Get(key string) (string, bool) { if ca == nil { return "", false } value, found := ca[key] return value, found } // Bool returns a bool value for a given key. func (ca Attributes) Bool(key string) bool { s, found := ca.Get(key) return found && strings.ToLower(s) == "true" } // Time gives a time.Time for a given key. func (ca Attributes) Time(key string) (time.Time, bool) { s, found := ca.Get(key) if !found { return time.Time{}, false } t, err := time.Parse("2006-01-02T15:04:05", s) if err != nil { log.Printf("error: %v\n", err) return time.Time{}, false } return t, true } func (ca Attributes) Int(key string) (int, bool) { s, found := ca.Get(key) if !found { return 0, false } i, err := strconv.Atoi(s) if err != nil { log.Printf("error: %v\n", err) return 0, false } return i, true }