Might have been a JS issue, but instead of messing with the URL just
POSTing is easier here - and works. Filters from the search box are
now added flawlessly to the filter tree.
List was showing useless stuff such as LC_MESSAGES and no language
but the default one. We should have a look whether LC_MESSAGES is
really needed, it looks so ugly.
Module configuration now takes place in module detail view and does no
longer pollute our config tabs. Modules are now able to provide a bunch
of own config tabs, we don't really care what they use them for.
There was an issue with custom vars as they made only partially part
of the column dropdown. Sorted columns and tried to beautify column
names.
fixes#6569
This widget is pretty useless as the error view script can to it's
job. Interestingly nobody missed it, even the render() call was wrong.
I guess we will remove this soon, but for now it's fixed. Looks ugly,
but works.
Was a class with just one static function beforehand and is now a fully
object oriented alternative for how files and pipes can be handled.
PHP warnings emitted by fopen, fwrite, fread and chmod are catched
and thrown as exceptions.
Instead of fetchDN, authentication now uses hasUser to check if the user
exists before querying the password, to prevent the exception from messing
up the whole authentication process
We have to live with some badly designed forms right now. Some have
submit buttons but don't know about, others don't have such but link
to foreign controllers fiddling with the form and adding different
button AFTER the form got submitted - it's a mess.
Relaxing the submission check to "just check whether btn_submit has
a value" fixes most of this. However I do not consider this being a
solution for the long run.
fixes#6423fixes#5967
refs #6540
Different changes have been applied:
* Allow integer unix timestamps as parameters for timestamp columns
* Remove alias-rewriting from Url class
* Remove all traces of raw_timestamp
* Use new filters
Well... I didn't want to commit this before creating single-button
forms for enabling/disabling modules. However part of this accidentally
made it through, so let's finish it.
Still some work to do, but it already looks far better like this.
refs #4095
This takes care of timestamp columns, modifies queries in a way not
depending on db functions, filters are passed through to subqueries
for better performance.
Showing less items right now. It would be great if we could steer
this by parameter. IMO we should also think about dropping ZF
pagination and use a custom tiny widget.
Implementation made wrong assumptions. A form is submitted when the
submit button has been pressed. It's value is then filled, it also
is when you're just pressing "RETURN". RETURN triggers the FIRST
submit button in a form. This way we are also able to find out which
form button has been pressed.
Current implementation is still poor, however isSubmitted works as
expected right now - and so does autosubmission.
fixes#5967
Those signs are URL-encoded and therefore not "seen" before decoding
the "key" part when the sit in front of the = sign. Same goes for
standalone ones. Fixed.
The current way forces people running a correctly configured PHP
to configure timezone once again in Icinga Web. We want LESS config,
so this tries to fix this.
This adds quite a bunch of changes. Part of the filter-modifying
complexity has been moved to the filter, the editor widget itself
now makes use of new filter capabilities such as changing operator
or expression type.
Show current title, a well-formated value and a label for each area in a
tooltip and add the ability to customize tooltip labels of InlinePies
refs #6117
Every monitoring controller needs $backend, so why declaring it over
and over again. Created "moduleInit" dummy function in our base action
controller to allow such implementations without polluting init().
A bunch of things happened here. We distinct FilterChains (or, and,
not) from FilterExpressions (less, greater, equal...). We make use of
our new URL-Parser. We can directly address anonymous filter components
for editing filters. Too much things to explain them in detail, a filter
documentation will follow.
The URL query string parsing done by PHP/ZF doesn't suffice our needs.
This is an implementation preserving filter-related "strange" query
string components while still offering legacy behaviour.
Missing right now: support for [].
Raised connection timeout, helps when talking to DB servers behind
weak links. Please note that I'm not sure whether this really is a
better default.
While it doesn't matter with local sockets, connection overhead will
have an impact with remote database servers. We have to reconnect with
every single request. Persistent connections seem to be no longer as
errorprone as they used to be, but I'd still refuse to switch them on
by default.
What we need is a config setting for connection persistancy and wizards
strongly suggesting to use this when working with remote db servers.
This patch makes IcingaWeb deliver a legacy jQuery version for IE8
as it is no longer supported in jQuery 2.x. JS for IE8 will not be
delivered minified to ease troubleshooting on that buggy platform.
fixes#5866
refs #6417
It's not safe to rely on PHP_AUTH_USER and PHP_AUTH_TYPE because
PHP cgi handlers (fgcid for example) only set the REMOTE_USER environment variable
and the authentication type for negogiation methods (Kerberos for example) is neither
Basic nor Digest.
We may have to add REDIRECT_REMOTE_USER for authentication for proxy setups.
Check if authentication is possible during authentication, to generate more
useful error and log messages, in case the backend configuration is wrong
ref #6457
Class names in namespaces should not be chosen as once we didn't have
such. The fact that we already did "use Db\Connection as DbConnection"
is the best hint that naming was wrong.
So this patch renames Db\Connection to Db\DbConnection and does the
same with DbQuery. DbQuery has been adjusted to fit our new SimpleQuery
and to handle the new Filter implementation.
New interface ConnectionInterface attempts to aggregate things.
Extended Filterable interface, added Filter-related functions. Please
note that apply will probably get dropped later on, I'll keep it for
compatibility reasons right now.
refs #6418
When no (default) configuration is available for dashboards
application dies not very gracefully. Display error message
and guid the user to the solution is a better way.
fixes#6412
This doesn't make it much better but allows to build a package
libicinga-vendor-php placing those files to /usr/share/php/IcingaVendor
or similar.
refs #4075
A module loaded manually could also exist in the list of enabled
modules if a configuration is given and a module with the same name
has been enabled. This used to confuse documentation.
...enabled nor installed by passing their base directory. In favour
of this parameter I dropped the possibility to inject a Module class
for testing purposes. There is no such test and I see no point in
doing so.
refs #6411
This used to work fine as long as you didn't try to interfere from
outside to influence the cli loader. The instance returned by
cliLoader() was not the same as used internally once dispatching the
CLI command.
refs #6411
This fixes the problem that CLI scripts or other applications without
an application directory would badly fail because of missing web forms.
refs #6411
Drop external auth configuration from config.ini and move
implementation into a single backend provider named
'autologin'. This provider can strip realm names from
username with a custom regexp.
fixes#6081
Our user backends log exceptions thrown during authentication but they don't throw
a exception to inform the caller that an error occured. The new `AuthenticationException'
class should be thrown in that case.
Instead of having two separate functions to get the prefix
and the formatted time interval the new functions return
both the prefix and the time interval.
refs #5981
Routes added via a module's run script were not respected since
`Module::registerRoutes()' is called from `Module::registerWebIntegration()'.
refs #6303
PHP respects locales (LC_NUMERIC) when casting floats to string. That
affected the generated HTML for our inline pie charts. This patch is
not that beautiful - but fixes this.
fixes#6348
This is just a first step, trying to catch a few gotchas:
* it doesn't send notifications to the browser when issueing a redirect
as redirects can currently not be catched in jQuery response handlers
* it tries to find a better notification handling place in the response
handler (JS) - still imperfect
* it explicitely stores sessions once modified by notifications. Still
need to crosscheck whether this is really needed and how we can get
rid of this.
refs #6280
We should get rid of the current way of copying license snippets to
every single file. This is a first example of how a lighter header
could look like. I'd add a short slogan to the title and place a
copy of the license to icinga.org, so our links could point there
instead of gnu.org.
refs #6309
Formerly we logged a warning if a module was found in multiple module
paths. This is pointless, because as soon as you got a default module
installed by your distribution and "upgraded" it via your web frontend
this "error" will be the default. Logging at debug level right now.