Commit Graph

3927 Commits

Author SHA1 Message Date
Johannes Meyer 6a8f17faf2 OutputFormat: Just provide the pdf export if there's a hook available
Calling `isSupported()` is bad here since there may be IO involved.
2020-01-14 11:01:53 +01:00
Johannes Meyer 29aaa363b4 Pdf: Utilize an pdfexport hook without calling `isSupported()`
If it's not supported, users should disable the module. If there
are multiple hooks supported at some point we need to touch this
again anyways. So that should suffice for now.
2020-01-14 10:59:01 +01:00
Johannes Meyer 9fe43dda5f ActionController: Drop method `handlerBrowserWindows()` 2020-01-14 10:14:02 +01:00
Johannes Meyer 855bb8ae72 Properly handle window id's and container id's 2020-01-14 10:14:02 +01:00
Johannes Meyer 2d3fc218db Window: Differentiate between window and container id 2020-01-14 10:14:02 +01:00
Johannes Meyer d459e58aca Response: Add methods to override the client's window id 2020-01-14 10:14:02 +01:00
Johannes Meyer 098bcfb98f LdapConnection: Ignore unknown vendor upon inspection 2020-01-13 13:46:32 +01:00
Johannes Meyer 7bb9c8e25f LdapConnnection: Don't pass param `$serverCtrls` to `ldap_search` prior php 7.3
refs #4013
2020-01-13 13:17:40 +01:00
Johannes Meyer 5a58279995 ActionController: Don't render exceptions as PDF 2020-01-10 14:11:52 +01:00
Johannes Meyer 5943e6bde9 Pdf: Restore previous state after rendering content
In case an exception occurs its output was previously merged
with the rendered content or even PDF..
2020-01-10 14:11:40 +01:00
Johannes Meyer f63dfa5294 DbUserBackend: Use binary string comparison if it's a mysql db 2019-12-11 10:15:05 +01:00
Johannes Meyer e6d9819adb FilterQueryString: Parse numbers as floats in range conditions 2019-12-09 09:39:50 +01:00
Johannes Meyer dc8981f209 ConfigFormEventsHook: Use base class `Icinga\Web\Form` in type hints 2019-12-09 09:01:33 +01:00
Johannes Meyer 4157821c89 IcingaCheckbox: Don't `display:none` the checkbox but add `.sr-only` to it 2019-12-05 16:12:41 +01:00
Johannes Meyer 668ae38497 ExternalBackend: Don't authenticate a user if `REMOTE_USER` is empty 2019-12-05 15:13:02 +01:00
Johannes Meyer d0857345d0 DbConnection: Set `COLLATE 'latin1_general_ci'` for `latin1` charsets
MySQL 8+ seems a bit more strict now.
2019-12-05 14:18:17 +01:00
Johannes Meyer 8519bb5d11 User: Don't return true if any permission is granted and `*` is required 2019-12-05 08:44:33 +01:00
Johannes Meyer 7b488d7f93 swag: Fix violations of PSR-12
PSR-2 has been deprecated and phpcs v3.5.3
now checks for the successor PSR-12
2019-12-04 11:28:08 +01:00
Johannes Meyer 9c94b9cde7 vendor/lessphp: Check for an array before accessing an offset
https://www.php.net/manual/en/migration74.incompatible.php#migration74.incompatible.core.non-array-access
2019-12-04 11:28:08 +01:00
Johannes Meyer 369ffa758e zend/Registry: Don't override method `offsetExists()`
It's not possible to use `array_key_exists()` on objects anymore
(https://www.php.net/manual/en/migration74.deprecated.php#migration74.deprecated.core.array-key-exists-objects)
and since the referenced bug (http://bugs.php.net/bug.php?id=40442)
only applied to PHP 5.2.0 it's now obsolete.
2019-12-04 11:28:08 +01:00
Johannes Meyer d34909bbac vendor/lessphp: Avoid curly braces to access array offsets
https://www.php.net/manual/en/migration74.deprecated.php#migration74.deprecated.core.array-string-access-curly-brace
2019-12-04 11:28:08 +01:00
Johannes Meyer 0a44bbc804 vendor/Zend: Avoid curly braces to access array offsets
https://www.php.net/manual/en/migration74.deprecated.php#migration74.deprecated.core.array-string-access-curly-brace
2019-12-04 11:28:08 +01:00
Johannes Meyer 67dd439673 vendor/HTMLPurifier: Avoid curly braces to access array offsets
https://www.php.net/manual/en/migration74.deprecated.php#migration74.deprecated.core.array-string-access-curly-brace
2019-12-04 11:28:08 +01:00
Johannes Meyer 0442c4f0ab View: Ignore setting `short_open_tag`
Adjusting class `Zend_View_Stream` according to https://www.php.net/manual/en/migration74.incompatible.php#migration74.incompatible.core.stream-wrappers
didn't work. (*syntax error, unexpected end of file* after every last php statement in phtml files)

So.. since `<?= ?>` instructions are permanently available since PHP 5.4 (https://www.php.net/manual/en/language.basic-syntax.phptags.php)
we'll just omit using a custom stream wrapper now.
2019-12-04 09:35:24 +01:00
Johannes Meyer 7bc1893a24 LdapConnection: Don't utilize `ldap_control_paged_result()` on PHP 7.3+
https://www.php.net/manual/en/migration74.deprecated.php#migration74.deprecated.ldap
2019-12-04 09:33:13 +01:00
Johannes Meyer 9b1dc44130 FilterEditor: Also trim trailing whitespace from search values
Simple values are wrapped with `*` anyway, so trimming all
whitespace doesn't pose an issue. (Even if inserted intentionally)
This doesn't apply to qualified search values. (e.g. `host = abc `)

resolves #4002
2019-12-03 10:33:00 +01:00
Eric Lippmann 9f4e29b56c JS/CSS: Load modal behavior and styles 2019-11-04 12:46:30 +01:00
Eric Lippmann c196631f5a Add Markdown::line() 2019-10-31 14:41:39 +01:00
Johannes Meyer e0be21f655 Raise version to 2.7.3 2019-10-18 07:41:53 +02:00
Johannes Meyer 362c30c1dd Raise version to 2.7.2 2019-10-16 08:12:09 +02:00
Johannes Meyer 8e5380220c SimpleQuery: Cache count query result and use it in `hasResult()`
Does not affect views which do not run a count query. (e.g. dashlets)
Though, this is a quick win for all other views with which the user
interacts directly and gets the desired result quicker than before.

refs #3905
refs #3836
2019-10-11 10:27:43 +02:00
Johannes Meyer 52d830170f LessCompiler: Put required assets into a module's css block
We have to include these there otherwise mixins from assets
can't be used.
2019-10-01 15:30:17 +02:00
Johannes Meyer 5352e72d1f
Merge pull request #3946 from Icinga/fix/wrong-dashlet-order-3931
Fix wrong dashlet order
2019-09-26 14:34:13 +02:00
Johannes Meyer d699191629
Let modules provide css/js assets to be used by other modules (#3961) 2019-09-25 09:53:53 +02:00
Johannes Meyer f98f988aff Remove tristate form element 2019-09-23 08:36:24 +02:00
Johannes Meyer d4dc282ac8 DashboardContainer: Allow to define a priority for dashlets
refs #3931
2019-09-09 14:43:28 +02:00
Johannes Meyer 04b23811be Raise version to 2.7.1 2019-08-14 13:10:19 +02:00
Eric Lippmann c8ed889114 Fix operator in wildcard filter chains 2019-08-13 17:19:45 +02:00
Eric Lippmann 31d3153d2b Support wildcard filters in chains (#3903) 2019-08-12 13:41:38 +02:00
Eric Lippmann 666bdfb4c4 Revert "Fix double query execution"
This reverts PR 6ea012af7e, reversing
changes made to be5b9f870b.

The reverted commit fixed a double query execution bug by only executing
the query once in either SimpleQuery::hasResult() or upon iteration.

But the fix (b20291a60) introduced two problems:

* Default sort rules no longer work
* Show more links missing

We work with DataView objects in our controllers and views. When
iterating over a DataView, it applies its default sort rules and then
returns the underlying query, see DataView::getIterator().

DataView::hasResult() on the other hand does not apply the default sort
rules. So, if hasResult() is called first, the default sort rules are no
longer applied because the query will be executed only once.
The fix would be as easy as to apply sorting in DataView::hasResult() as
well.

But now the show more part kicks in. We know whether there are more
results because we execute queries with $limit + 1. This is enabled via
SimpleQuery::peekAhead(). Unfortunately, we call
SimpleQuery::peekAhead() ALWAYS after SimpleQuery::hasResult(). And
that's why the show more links are missing because the query is executed
only once with the "wrong" limit.

For now, we just revert the commit in question and postpone a proper fix
for the double execution.
2019-08-07 13:29:57 +02:00
Eric Lippmann f35946df29 Raise version to 2.7.0 2019-07-30 10:19:53 +02:00
Eric Lippmann b8fb193bdd Add FilterChain::setFilters() 2019-07-30 09:17:25 +02:00
Johannes Meyer b31dd77812
Merge pull request #3676 from Icinga/feature/form-styling
Improve look of our forms
2019-07-30 08:26:08 +02:00
Markus Frosch c66d206042 Cleanup executable flags on files
Some or scripts, but if so just vendor artifacts
2019-07-30 07:53:54 +02:00
Johannes Meyer 9cdf37410c ApplicationStateMessages: Fix message layout 2019-07-29 10:19:39 +02:00
Johannes Meyer 13ad506393 css: Rename class `icinga-forms` to `icinga-form` 2019-07-29 10:17:59 +02:00
Johannes Meyer 212606de78 setup: Apply new icinga form style 2019-07-29 10:17:59 +02:00
Johannes Meyer 0bc70a840c SortBox: Apply icinga form style 2019-07-29 10:17:59 +02:00
Johannes Meyer 346083109a Apply new form style to the filter editor 2019-07-29 10:17:59 +02:00
Johannes Meyer 05613c413d Enhance toggle-switch, spinner and control-info placement
tested with Chromium, IE11 (Win7), Edge (Win10)
2019-07-29 10:17:59 +02:00
Johannes Meyer 115bb80c6a View: Register our own view helper path
That's a different path than application/views/helpers because this one
uses a namespace so that we're able to extend Zend's view helpers
2019-07-29 10:17:59 +02:00
Johannes Meyer bc2e7588d7 FormNotifications: Don't ignore warning and error notifications 2019-07-29 10:17:59 +02:00
Johannes Meyer a5f292c2ae Form: Define classes `icinga-forms` and `icinga-controls` by default 2019-07-29 10:17:59 +02:00
Florian Strohmaier f14256a7ee CSS: Adapt form design with filter editor
refs #3676
2019-07-29 10:17:59 +02:00
Florian Strohmaier f70f996085 Announcements: Increase font-size and align control layout
refs #3676
refs #3560
refs #3839
2019-07-29 10:17:59 +02:00
Florian Strohmaier c492c6bb23 Announcements: Avoid duplicate `id attribute
refs #3762
2019-07-29 10:17:59 +02:00
Eric Lippmann c49f5d6a0f Don't override Zend's Checkbox for our toggle switch 2019-07-29 10:17:59 +02:00
Eric Lippmann 41ee36c7e6 Reduce default textarea rows 2019-07-29 10:17:59 +02:00
Jennifer Mourek bf48b6d26b WIP: New form styles
Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2019-07-29 10:17:59 +02:00
Johannes Meyer 9d0ef4cf33 Wrap any markdown output with a `<section>` and remove explicit containers 2019-07-23 14:45:32 +02:00
Johannes Meyer 9de9fe8f39 Introduce class RolesConfig 2019-07-23 13:53:29 +02:00
Johannes Meyer 1f0ee9b0d4 IniRepository: Fix wrong documentation for $configs 2019-07-23 13:53:29 +02:00
Johannes Meyer 40529e76ef
Merge pull request #3858 from Icinga/feature/downtime-schedule-times
Require time output for downtime schedule and end/expire times
2019-07-18 08:47:55 +02:00
Johannes Meyer fcde2a9eea dashboard: Use the non-translated versions of pane and dashlet names for storage
This is a dirty quick fix. And calling it *quick* is already an overstatement.
Of course, it's also a breaking change, as **all** non-english users need to
update their dashboard.ini after this change.

Oh, and don't dare to move this over to the new dashboards!

refs #3542
2019-07-18 08:33:35 +02:00
Johannes Meyer 4fdfb190ad Navigation/DashboardPane: Properly register dashlets as children
refs #3542
2019-07-18 08:33:35 +02:00
Johannes Meyer 37a972cf75 dashboard: Differentiate between `name` and `title`
The former is the original name while title may
be changed by the user. This change is strictly
necessary for the references bug and should also
be introduced when rewriting this mess.

refs #3542
2019-07-18 08:33:35 +02:00
Johannes Meyer f8d3f43965 js: Drop vendor library tipsy 2019-07-18 07:57:14 +02:00
Johannes Meyer eac3a106ad Render `<title>` tags for line and bar charts instead of tipsy titles 2019-07-18 07:57:14 +02:00
Johannes Meyer c100654412 js: Integrate vendor library jquery-migrate 2019-07-18 07:57:14 +02:00
Johannes Meyer 91e4baa221 Remove remaining special cases for IE8 2019-07-18 07:57:14 +02:00
Jennifer Mourek 07586af41f Remove IE8 & IE9 traces 2019-07-18 07:56:09 +02:00
Florian Strohmaier 7cf620f3f1 JS: Use jquery 3.4.1
refs #3813
2019-07-18 07:56:09 +02:00
Jennifer Mourek 55d35b9e5b Remove jquery 1.11 dependency
refs #3784
2019-07-18 07:56:09 +02:00
Johannes Meyer e2cddc2d46 js: Introduce storage.js, a localStorage abstraction layer 2019-07-17 13:12:41 +02:00
Johannes Meyer 0574f44bd9 colllapsibleContainer.js: Rename to collapsible.js 2019-07-17 13:12:41 +02:00
Florian Strohmaier b07ffd4987 JS: Implement collapsible-container behavior 2019-07-17 13:12:41 +02:00
Eric Lippmann f9021e8fdd Add $requireTime to timeAgo() and timeSince() too 2019-07-15 10:11:52 +02:00
Johannes Meyer 5145de6b50
Merge pull request #3852 from Icinga/feature/cli-load-enabled-modules
CLI: Automatically load enabled modules if not disabled
2019-07-15 08:39:57 +02:00
Johannes Meyer 3edda43bca ActionController: Utilize view variable `$defaultTitle` instead of the constant
Allows controllers to also customize the default title with translated contents.

refs #3851
2019-07-15 08:24:44 +02:00
Eric Lippmann 16fbf6d7bd Introduce ConfigFormEventsHook 2019-07-15 07:52:32 +02:00
Eric Lippmann 98b8631db3 Optimize imports 2019-07-12 14:23:41 +02:00
Eric Lippmann 6fa5af4de1 CLI: Automatically load enabled modules if not disabled 2019-07-12 14:23:41 +02:00
Johannes Meyer 5d87f6712e
Merge pull request #3856 from Icinga/feature/send-failed-login-attempts-to-the-audit-log-3855
Send failed login-attempts to the audit log
2019-07-12 14:00:09 +02:00
Johannes Meyer 2257eaa0c1
Merge pull request #3849 from Icinga/feature/commonly-accessible-module-hooks-3772
Add possibility to disable permission checks for hooks
2019-07-12 13:59:44 +02:00
Johannes Meyer b06103bfc5 NavigationItemRenderer: Don't fail to render an icon if there's none
fixes #3859
2019-07-12 07:42:33 +02:00
Johannes Meyer 59fa054d42 AuthChain: Send failed login-attempts to the audit log
resolves #3855
2019-07-11 14:41:17 +02:00
Loei Petrus Marogi 617f1b35b3 Add possibility to let hooks always run
refs #3772
2019-07-11 13:36:33 +02:00
Eric Lippmann 1351be7da8 Add param to timeUntil() to require time output
If the time specified in timeUntil() is at least 3 days in the future,
the output will only contain the month and the day. With $requireTime it
will also ouput the time. This is useful for some views, e.g.
scheduled downtimes.
2019-07-11 13:07:17 +02:00
Niko Martini 7abd1b906b Cli: add version command
refs #3763
2019-07-11 08:17:56 +02:00
Johannes Meyer 801a6719b7
Merge pull request #3835 from Icinga/fix/problem-badges-not-visible-if-sidebar-is-collapsed-3568
ui: Show problem badges in collapsed sidebar
2019-07-11 08:00:12 +02:00
Johannes Meyer f0b5d8fd8e BadgeNavigationItemRenderer: Round counts to the neareset base
refs #3568
2019-07-03 11:29:37 +02:00
Johannes Meyer 559d57d466
Merge pull request #3834 from Icinga/fix/tactical-overview-big-numbers
Support higher number of problems in the tactical overview
2019-07-02 15:38:52 +02:00
Johannes Meyer 36524bcd94
Merge pull request #3814 from Icinga/feature/make-notes-and-comments-markdown-aware-3684
Make notes, comments and announcements markdown aware
2019-07-02 15:30:21 +02:00
Johannes Meyer 6ea012af7e
Merge pull request #3836 from Icinga/fix/query-double-execution
Fix double query execution
2019-07-02 13:56:50 +02:00
Eric Lippmann b20291a606 Fix double query execution
Our monitoring list views call SimpleQuery::hasResult() first in
order to determine whether there are results to display. This calls
fetchRow() which executes the underlying query the first time. If there
are resulsts, the query is iterated which executes the query again.
With this patch, SimpleQuery::hasResult() makes use of the inner
iterator instead of calling fetchRow(). The query is now executed only
once.
2019-06-27 15:11:45 +02:00
Johannes Meyer 6aa2cf69c7 HtmlPurifier: Enable cache directory
refs #3814
2019-06-27 14:41:13 +02:00
Niko Martini cae8cea482 Support higher number of problems in the tactical overview
refs #3746
2019-06-27 11:06:07 +02:00
Johannes Meyer 44c7c427e8 vendor: Update dompdf to version 0.8.3
refs #3785
2019-06-27 09:39:41 +02:00
Johannes Meyer 3f7b317ced vendor: Update lessphp to version 0.5.0
refs #3785
2019-06-27 09:21:13 +02:00
Johannes Meyer cdaef76faf vendor: Update Parsedown to version 1.7.3
refs #3785
2019-06-27 09:20:11 +02:00