105 Commits

Author SHA1 Message Date
Łukasz Mierzwa
f4629e72f3 Include receiver in the group link filter 2017-06-13 09:29:04 -07:00
Łukasz Mierzwa
0a2ba057c6 Fix indentation 2017-06-12 16:57:24 -07:00
Łukasz Mierzwa
4215a4b525 Fix indentation 2017-06-12 16:57:15 -07:00
Łukasz Mierzwa
5d19ada62b Fix indentation 2017-06-12 16:56:46 -07:00
Łukasz Mierzwa
d779448aa5 Remove useless replace 2017-06-12 16:56:02 -07:00
Łukasz Mierzwa
d6e1f9d2a6 Remove useless escape char 2017-06-12 16:54:01 -07:00
Łukasz Mierzwa
4b0a9fa9e2 Make alert separator line more visible 2017-06-07 20:21:50 -07:00
Łukasz Mierzwa
3815ec5852 Don't mark timestamp label as recent if it's in the past
Prevents silence endsAt labels from fading when they are for 0001-01-01Z
2017-06-06 22:15:02 -07:00
Łukasz Mierzwa
291256f48f Show group badge only if there are multiple alerts 2017-06-06 22:02:30 -07:00
Łukasz Mierzwa
dd8c6f13af List silence matchers in the UI 2017-06-06 21:47:09 -07:00
Łukasz Mierzwa
f14010b1ad Move silence button close to @state label 2017-06-06 21:34:58 -07:00
Łukasz Mierzwa
4bd43d0921 Show a bit more info for silences 2017-06-06 21:34:58 -07:00
Łukasz Mierzwa
5d35cf3529 Pull links up to labels level
Number of links usually doesn't justify giving it a dedicated row, so let's render it before labels
2017-06-06 21:34:58 -07:00
Łukasz Mierzwa
7ad5e1e18c Remove label from alert source link
And change the icon, this is static text so let's remove it to save space
2017-06-06 21:34:57 -07:00
Łukasz Mierzwa
1dfd20fbeb Add @receiver filter to the help page 2017-06-06 21:34:57 -07:00
Łukasz Mierzwa
1521311f1d Remove new lines 2017-06-06 21:34:57 -07:00
Łukasz Mierzwa
6d15a82e89 Support multiple receivers 2017-06-03 13:23:51 -07:00
Łukasz Mierzwa
aadcaeb9b5 Fix issues reported by eslint 2017-06-01 20:24:47 -07:00
Łukasz Mierzwa
8a77d620fd Rename @status to @state
Fixes #104

@status filter was added to the master branch to support new status key from Alertmanager >=0.6.1
status ended up being nested in Alertmanager (it was added to solve AM issue 609 and that was a long PR with lots of changes), current unsee implementation ended being slightly off with how Alertmanager is naming this, it should actually be @state rather than @status.
2017-05-23 21:52:08 +01:00
Filippo Giunchedi
33557a7d6f assets: use .WebPrefix for help link too 2017-05-22 10:40:05 +02:00
Łukasz Mierzwa
46880fafd9 Split silence form code to a dedicated file
It's a lot of code, split it to a dedicated file so it's all in one place
2017-05-10 22:04:37 +01:00
Łukasz Mierzwa
fcb6c5200d Update frontend assets 2017-05-10 15:26:26 +01:00
Łukasz Mierzwa
15b5afb1a8 Update masonry 2017-05-10 15:14:04 +01:00
Łukasz Mierzwa
0497e82128 Move assets target to a dedicated Makefile 2017-05-10 15:10:29 +01:00
Łukasz Mierzwa
12521e25bc Use gray color for alert groups with only unprocessed alerts
Expose counts of all alert statuses in each group (active, suppressed, unprocessed) instead of only active, and if a group contains only unprocessed alerts then color it as gray
2017-05-10 10:58:19 +01:00
Łukasz Mierzwa
847df373bf Pre-render JSON silence payload when form is ready
When silence form is ready we should generate initial JSON preview, so when user clicks to show it there's something to show. Right now it's only generated if user changes something.
2017-05-10 10:51:11 +01:00
Łukasz Mierzwa
817731857a Remove all alert groups in Grid.Clear()
Clear was only hiding elements so div objects were still present, ensure they are removed from the DOM
2017-05-05 17:32:16 +01:00
Łukasz Mierzwa
0d55311a9d Replace @silenced & @inhibited filters with @status
Now that Alertmanager provides status=(unprocessed|suppressed|active) in the API it doesn't make sense to keep having separate filters for each value, merge @silenced & @inhibited into a single filter, update docs and UI
2017-05-05 13:56:48 +01:00
Łukasz Mierzwa
b1873963df Notify user when there are no labels for a new silence
If user clicks on a silence button we make AJAX call to the /alerts.json endpoint to get all instances of given alert so we can allow user to select from all labels used. But it's possible that this alert will be resolved by the time user clicks on it, when this happens we simply list no labels, which might be confusing, show a message so user knows what happened.
2017-05-04 14:39:06 +01:00
Łukasz Mierzwa
34c68ffb65 Rewrite js classes using prototypes
This removes the requirement on ES6 support in the browser, which will allow to use unsee on older browsers
2017-05-02 13:50:56 +01:00
Łukasz Mierzwa
487d7bcde8 Use alert status, inhibitedBy & silencedBy fields instead of silenced & inhibited 2017-05-01 22:20:12 +01:00
Łukasz Mierzwa
12832e2c29 Fix quotation mark inconsistencies
jshint tests passing again
2017-04-27 22:52:05 -07:00
Łukasz Mierzwa
4e97f4f0aa Fix unused and undefined variables warnings 2017-04-27 22:51:53 -07:00
Łukasz Mierzwa
dd6c3b1057 Correctly anchor regex silences
Silence regex rules are not anchored, be explicit
2017-04-26 20:00:45 -07:00
Łukasz Mierzwa
7f3c414189 Don't leak event listeners in the silence form
Event listeners are setup on the modal div, but that div is not removed when the modal is hidden, only its children. This means that event listeners are stacked every time you show and hide a form. To reproduce this issue:
1. open silence form, click up button above hours, it will increment from 1 to 2
2. hide the form
3. re-open silence form, click up button above hours, it will increment from 1 to 3
4. repeat and every time increment will get a new listener that will cause higher value bump

This PR moves all listeners to the silence form element, which is removed when modal is closed, so all even listeners are destroyed properly and this bug no longer gets triggered.
Same fix is applied to the quick filter modal, it's present there but the effect there isn't as visible
2017-04-26 17:37:13 -07:00
Łukasz Mierzwa
0e7fe10b46 This should be the real fix for the even recursion
There's a bogus duplicated mouse event for a.silence-duration-btn, which I added to fix css issues, get rid of it and replace with proper css selectors. And with that drop the event.stopPropagation call as it shouldn't be needed anymore
2017-04-26 16:56:54 -07:00
Łukasz Mierzwa
aed3cf1f29 Add some space between submit button and the silence JSON preview 2017-04-26 14:17:33 -07:00
Łukasz Mierzwa
bd5b9688ac Handle load exceptions better
If js fails on startup (syntax error, can't load some files) then instead of showing blank page that doesn't work render a message with exception
2017-04-25 23:05:22 -07:00
Łukasz Mierzwa
45ba69cf76 Ensure raven-js is loaded first and works if enabled
This moves raven init into a dedicated file where it's configured on load, we no longer load it on /help, but there's only css there so there wasn't anything that could fail anyway. We will also now fail in the most visible way if the value passed to raven is invalid (as in invalid syntax)
2017-04-25 23:05:22 -07:00
Łukasz Mierzwa
5a53aa1ff7 Add jshint comments in modules that require ES6
This is to supress warnings about ES6 syntax usage, all modern browsers support 'class' so it's ok
2017-04-25 20:21:47 -07:00
Łukasz Mierzwa
9152aeff04 Prevent a chain of click events
Click events in some weird cases cause this function to be called twice, ensure that we stop processing this event after first pass
2017-04-25 19:14:18 -07:00
Łukasz Mierzwa
0c37254a71 Fix jshint warnings 2017-04-25 18:51:10 -07:00
Łukasz Mierzwa
46ea7ebc94 Remove dead element
This isn't used by anything
2017-04-25 16:42:52 -07:00
Łukasz Mierzwa
ca0b70f3a8 Better logic for updating minutes in the duration
This makes it more consistien when user resets the duration to the minimum of 1 minute
2017-04-25 16:19:21 -07:00
Łukasz Mierzwa
3460b3003a Add a delay to the top labels popover 2017-04-25 14:59:45 -07:00
Łukasz Mierzwa
c425952b62 Don't fail if startsAt wasn't yet initialized 2017-04-25 14:59:45 -07:00
Łukasz Mierzwa
e76531a165 Make decr button reset duration to minimun if needed
With this the user is able to reset duration to minimum by clickin on the day button when only 1 hour duration is set
2017-04-25 14:59:45 -07:00
Łukasz Mierzwa
e56ec68752 Correctly update min date of the silence end time
Move it to the right place, having it in silenceFormCalculateDuration means that we can trigger recursive updates
2017-04-25 14:59:45 -07:00
Łukasz Mierzwa
c07402d353 Fix warning from jshint
jshint needs to be added to 'make lint' target eventually, let's start with fixing some of the warnings it's generating
2017-04-25 14:59:44 -07:00
Łukasz Mierzwa
e26bb6e492 Cleanup silence form controls
Drop separators and replace submit button text with an icon
2017-04-25 14:59:44 -07:00