Commit Graph

40 Commits

Author SHA1 Message Date
Sergey 33e680a34d
feat: add time helpers (#3863)
Signed-off-by: Sergey <freak12techno@gmail.com>
Co-authored-by: gotjosh <josue.abreu@gmail.com>
2024-06-05 15:23:42 +01:00
George Robinson dc1e1a2b88
Add date and tz functions to templates (#3812)
* Add date and tz functions to templates

This commit adds the date and tz functions to templates. This means
users can now format time in a specified format and also change
the timezone to their specific locale.

An example of how these functions work, and can be composed together,
can be seen here:

	{{ .StartsAt | tz "Europe/Paris" | date "15:04:05 MST" }}

Signed-off-by: George Robinson <george.robinson@grafana.com>

---------

Signed-off-by: George Robinson <george.robinson@grafana.com>
2024-04-22 16:15:33 +02:00
George Robinson 72b0cb0f40
Fix comments as per Josh's feedback (#3284) 2023-03-07 11:25:20 +00:00
George Robinson 012dbc9d81
Fix corruption in templates that use title function (#3278)
This commit fixes data corruption in templates that use the title
function as it used a shared cases.Title when casers should not
be shared between goroutines. When templates that used the title
function were executed at the same time, data corruption would occur
in the text that was being cased. This is fixed using a separate
caser for each function call.

Add tests to assertDefaultFuncs are thread-safe

Signed-off-by: George Robinson <george.robinson@grafana.com>
2023-03-07 11:37:39 +01:00
Ghazanfar d8bea84adc
Make TrimSpace available for use in the template (#3281)
* Make TrimSpace available for use in the template

Signed-off-by: Ghazanfar <ghazanfar.isc@gmail.com>
2023-03-07 09:38:57 +01:00
Furkan Türkal 57cad0d272
Seperate the template creating functions for as-lib use (#3225)
* Separate the template creating functions for as-lib use

Fixes #3217

Signed-off-by: Furkan <furkan.turkal@trendyol.com>
---------

Signed-off-by: Furkan <furkan.turkal@trendyol.com>
2023-02-24 10:24:00 +00:00
George Robinson 11d0b57c97
Implement Stringer interface for Pairs and KVs (#3256)
This commit implements the Stringer interface for Pairs and KVs.
It changes how Pairs are printed in templates from
map[name1:value1 name2:value2] to name1=value1, name2=value2. KVs
work similar, but are first sorted into pairs before being printed.

Signed-off-by: George Robinson <george.robinson@grafana.com>
2023-02-22 11:38:15 +00:00
Martin Chodur 26cbd6bd86
feat: add template.FromGlobsWithAdditionalFuncs (#3174)
* refactor: add Options to the template.FromGlob function to allow customizing the Template

Signed-off-by: Martin Chodur <m.chodur@seznam.cz>
2022-12-16 10:13:13 -04:00
Ben Kochie b55097f490
Merge pull request #3009 from inosato/remove-ioutil
Remove ioutil
2022-07-25 15:58:55 +02:00
SuperQ b0c2f27319
Update build
* Update Go to 1.18
* Update circleci machine image.
* Switch maildev to new upstream image location.
* Update Go modules to 1.17 format.
* Make dependabot monthly to match prometheus/prometheus.

Signed-off-by: SuperQ <superq@gmail.com>
2022-07-23 17:41:36 +02:00
inosato 791e542100 Remove ioutil
Signed-off-by: inosato <si17_21@yahoo.co.jp>
2022-07-18 22:01:02 +09:00
Brad Ison c0a7b75c9c
Automate CSS-inlining for default HTML email template (#2798)
* Automate CSS-inlining for default HTML email template

The original HTML email template was added in `template/email.html`.
It looks like the CSS was manually inlined.  Most likely using the
premailer.dialect.ca web form, which is mentioned in the README for
the Mailgun transactional-email-templates project.  The resulting HTML
with inlined CSS was then copied into `template/default.tmpl`.  This
has resulted in `email.html` and `default.tmpl` diverging at times.

This commit adds build automation to inline the CSS automatically
using [juice][1].  The Go template containing the resulting HTML has
been moved into its own file to avoid the script that performs the CSS
inlining having to parse the `default.tmpl` file to insert it there.

Fixes #1939.

[1]: https://www.npmjs.com/package/juice

Signed-off-by: Brad Ison <bison@xvdf.io>

* Update asset/assets_vfsdata.go

Signed-off-by: Brad Ison <bison@xvdf.io>
2022-01-03 17:33:53 +01:00
Vincent Rischmann 66a0ed21bd template: add the default template function stringSlice (#2101)
Since it's impossible to create a string slice in a Go template by
default, add a function to work around this problem.

The use case is to make it easy to call KV.Remove with an arbitrary
slice inside a template.

Signed-off-by: Vincent Rischmann <vincent@rischmann.fr>
2019-11-13 09:32:51 +00:00
Tim Reddehase d517f786ef Allow slashes in receivers (#2011)
* do not split receiver by slash

I'm not sure why this was originally done, because a slash seems to be perfectly
valid in a receiver definition. The only issue i encountered was that linking
from a fired alert was not working, because of the splitting performed here.

Signed-off-by: Tim Reddehase <tim.reddehase@xing.com>

* urlquery escape Receiver by default for URL

If Receiver is allowed to contain slashes and other special characters
we need to percent encode them properly.

Signed-off-by: Tim Reddehase <tim.reddehase@xing.com>

* rerun make asset/assets_vfsdata.go

Signed-off-by: Tim Reddehase <tim.reddehase@xing.com>
2019-08-28 10:01:47 +02:00
stuart nelson e7275537ff
Merge pull request #1945 from kfdm/webhook-fingerprint
Add Fingerprint to template data
2019-07-22 17:02:29 +02:00
Simon Pasquier bb3df011a3
Move break at the beginning fo the for loop (#1928)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-07-04 15:31:09 +02:00
Paul Traylor 6fbbda75ed Add Fingerprint to template data
Signed-off-by: Paul Traylor <paul.traylor@linecorp.com>
2019-06-28 17:35:32 +09:00
Simon Pasquier 3558e6fd9e Migrate from go-bindata to vfsgen (#1532)
* Migrate from go-bindata to vfsgen

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Ensure idempotent generation for vfsgen

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* asset: update generated files

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Fix asset paths for Windows platforms

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Regenerate assets

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Add vfs wrapper that returns constant mod time

This is identical to what we had with go-bindata and avoids the extra
step of storing the identity of the complete file system in another
location.

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Additional cleanup

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2018-09-24 15:12:40 +02:00
Waldemar Biller 4e8a910b9d Lookup parts in strings using regexp.MatchString (#1452)
Signed-off-by: Waldemar Biller <wbiller@gmail.com>
2018-07-03 10:55:47 +01:00
stuart nelson a7009a9db7 Stn/add receiver support (#872)
Add ability to filter alerts by receiver in UI. This adds changes both in the Elm UI, as well as the Go backend.
2017-06-26 18:20:26 +02:00
James O'Gorman 00e3b98614 template: Add reReplaceAll function (#639)
This allows for using regexp replacement in templates.
2017-03-04 12:07:31 +00:00
Julius Volz ecd856a401 Add safeHtml template function.
Fixes https://github.com/prometheus/alertmanager/issues/314
2016-04-20 16:17:30 +02:00
Christoph Oelmueller 04b61f6d9a fix template error if no template string is defined 2016-04-01 10:23:34 +02:00
Fabian Reinartz 24b8c22a83 Expose alert interval in template data 2016-02-12 11:00:33 +01:00
Fabian Reinartz 0594d170f6 Upgrade webhook protocol 2016-02-12 10:34:00 +01:00
Fabian Reinartz 897b3a0366 Use missingkey=zero option in templates 2016-02-05 15:41:15 +01:00
Fabian Reinartz 76f884b328 Allow zero matching template files 2015-12-09 14:51:18 +01:00
Fabian Reinartz 4ada2398f2 Set previous inhibition/silence state 2015-12-04 10:58:56 +01:00
Fabian Reinartz 1629e9d166 Statically compile default templates 2015-12-01 18:39:57 +01:00
Fabian Reinartz 6dc397de5c Transfer template functions into types+methods 2015-11-30 18:40:22 +01:00
Brian Brazil 71a1c76e52 Use title rather than toTitle.
It turns out that 'title case' is a thing in unicode,
in the same way upper/lower case is.

What our users will want is the first character of a word
being titlecased, which `title` will do.
2015-11-28 11:08:24 +00:00
Fabian Reinartz 9fbc76a52f Improve PagerDuty templating 2015-11-27 14:02:34 +01:00
Fabian Reinartz 38b6ed118d Iterate over templating 2015-11-26 12:56:09 +01:00
beorn7 93ffa534a5 PR with changes after code review
Now to be reverse-reveiewed.
2015-11-23 18:24:57 +01:00
Brian Brazil faa88831f4 First-pass at improving template system.
- Cut back to bare minimum to make the rest simpler
- Consistency in config naming
- Have one data strucutre that's the same for all templates
- Pass in common labels to templates
- Support templates almost everywhere
- Support multiple SMTP recipients
- Support non-ASCII SMTP headers
- Handle colour logic via templates
- Make $subjects have consistent output, go maps aren't sorted.
- Make tests pass when v6 is disabled
2015-11-18 14:59:05 +00:00
Fabian Reinartz 66488d433b add title and regexp replace template functions 2015-10-12 08:55:20 +02:00
Fabian Reinartz f9f32c7136 Add test for silence deletion 2015-10-12 08:49:49 +02:00
Fabian Reinartz 5dc2f6e9b1 Add license headers 2015-10-11 17:24:49 +02:00
Fabian Reinartz ce74f8363b Simplify initialization
No longer update components based on a new configuration. Generally,
destroying and recreating has no performance impact and is less
error-prone.
This also removes the Reloadable interface and simplifies the entire
startup contraption.
2015-10-11 16:54:39 +02:00
Fabian Reinartz 3a2db95a8e Create and use custom template package 2015-10-11 13:32:24 +02:00