Commit Graph

1275 Commits

Author SHA1 Message Date
Johannes Meyer 920c027990 Ensure that the ini writer deletes properties properly
The fix for #5958 introduced with commit 6aaff6b3 caused the property
deletion of the PreservingIniWriter be even more faulty than before. The
actual fix for this issue is an improved procedure for how properties are
deleted as the initial implementation suffered from a few
misunderstandings in how properties in Zend_Ini files need to be handled.

fixes #6599
fixes #6601
fixes #6600
fixes #6598
fixes #6614
2014-07-01 14:55:45 +02:00
Johannes Meyer 87e72961e8 Revert "Fix that the ini writer produces invalid configuration files"
This reverts commit 9bec8e3c27.
2014-07-01 14:45:00 +02:00
Johannes Meyer 9bec8e3c27 Fix that the ini writer produces invalid configuration files
fixes #6614
2014-07-01 14:21:46 +02:00
Eric Lippmann db5c6631d9 Merge branch 'master' into feature/display-documentation-4820
Conflicts:
	modules/doc/library/Doc/Controller.php
2014-07-01 12:42:55 +02:00
Johannes Meyer 7eb0f3c472 Remove @codingStandardsIgnoreStart/-Stop annotations
refs #6091
2014-06-30 13:59:58 +02:00
Johannes Meyer f2e5d8afa5 Remove @codeCoverageIgnoreStart/-Stop annotations
refs #6091
2014-06-30 13:58:37 +02:00
Thomas Gelf 62928c48b0 helpers/timeSince: fix c&p error 2014-06-27 23:37:39 +02:00
Alexander Klimov 7ab984106a Replace Exception with Icinga\Exception\ProgrammingError in Icinga\Application\Loader
refs #6542
2014-06-27 15:20:56 +02:00
Alexander Klimov 4b72e1b54f Revert "Fix PHP Fatal error "Method Icinga\File\Csv::__toString() must not throw an exception in /vagrant/test/php/library/Icinga/File/CsvTest.php on line 35""
This reverts commit f2fdd7f39df759ff27c9c133f40bbcae14820708.
2014-06-27 14:30:57 +02:00
Alexander Klimov 22e13ce282 Replace DatasourceInterface with Selectable in Icinga/Protocol/Statusdat/Reader
refs #6542
2014-06-27 14:30:57 +02:00
Alexander Klimov c0b44c3248 Revert "Fix PHP Fatal error "Interface Icinga\Data\DatasourceInterface not found in /vagrant/library/Icinga/Protocol/Statusdat/Reader.php on line 41""
This reverts commit 35e12c2053685a6951765a007a0e3f8c7999734f.
2014-06-27 14:30:57 +02:00
Alexander Klimov b04f9b91be Fix PHP Fatal error "Interface Icinga\Data\DatasourceInterface not found in /vagrant/library/Icinga/Protocol/Statusdat/Reader.php on line 41" 2014-06-27 14:30:57 +02:00
Alexander Klimov 0065cbe998 Fix PHP Fatal error "Method Icinga\File\Csv::__toString() must not throw an exception in /vagrant/test/php/library/Icinga/File/CsvTest.php on line 35" 2014-06-27 14:30:57 +02:00
Johannes Meyer 9c1ee57628 Icinga\Util\File: throw an ErrorException with file and linenumber details 2014-06-27 09:54:17 +02:00
Johannes Meyer 7f99be73fd Adjust usages of Icinga\Util\File to suit the new interface introduced earlier 2014-06-26 15:57:14 +02:00
Johannes Meyer 3b191d36c4 Let Icinga\Util\File extend from SplFileObject
We should extend SplFileObject as it provides already some of the
functionality Icinga\Util\File had and adds even more on top of that.
2014-06-26 15:57:14 +02:00
Thomas Gelf 7112ed23f4 Chart\InlinePie: locale-ignorant cast for floats
This has already been fixed with 92f454c3 and got broken again with be0c5d4b.
Time for a regression test I guess.

refs #6348
2014-06-25 22:13:19 +02:00
Thomas Gelf 10d1520711 Widget\Limiter: show "all"
In case we pass limit=0 we show this, still unsure whether we should
provide a link for "showing all" - might really hurt with millions of
history rows.
2014-06-25 20:39:10 +02:00
Thomas Gelf 59dd80ed32 ActionController: benchmark should measure rendering
We have been cheating a little bit, now the measurement should be more
precise.
2014-06-25 20:37:17 +02:00
Matthias Jentsch d49f30ff77 Improve InlinePie performance
Use str_replace instead of preg_replace
2014-06-25 15:24:53 +02:00
Matthias Jentsch 7b19bd1d99 Improve interface of InlinePie
Method setLabel can also accept a simple string and title is mandatory in constructor
2014-06-25 15:21:12 +02:00
Matthias Jentsch 8839166090 Add number format 'none' to InlinePie 2014-06-25 14:53:39 +02:00
Matthias Jentsch 35a5431512 Revert "Refractor InlinePie and Perfdata helper"
This reverts commit f003c38abd.
2014-06-25 14:29:17 +02:00
Matthias Jentsch c18b6f26f0 Throw Ldap\Exception when something goes wrong in a Ldap connection 2014-06-25 12:41:17 +02:00
Matthias Jentsch e7548b6fc7 Return null for empty DNS query results 2014-06-25 12:41:17 +02:00
Matthias Jentsch f003c38abd Refractor InlinePie and Perfdata helper
Refractor InlinePie methods for better usability, fix several coding guideline
issues and fix some typos
2014-06-25 12:41:17 +02:00
Johannes Meyer 2fc793096a Use the preferred language sent by the browser, not the configured one
refs #6074
2014-06-25 12:15:41 +02:00
Johannes Meyer 461b050718 Add locale negotiation to Icinga\Util\Translator
Translator::getPreferredLocaleCode($header) can now be used with the
HTTP "Accept-Language" header to return the best matching locale using
the user's preferations reported by the browser and our available locale
stack. Additionally Translator::getLocale and Translator::getLanguage were
replaced by Translator::splitLocaleCode to provide a more flexible
implemenation in order to identify specific parts of a particular locale or
the current one.

refs #6074
2014-06-25 12:15:41 +02:00
Alexander Klimov 53de3686a8 Bootstrap: Only replace config dir with its canonicalised absolute pathname when the dir exists 2014-06-25 11:59:09 +02:00
Alexander Klimov ab1d8655f9 Config: Hard-code path to preferences INI files 2014-06-25 11:59:09 +02:00
Alexander Klimov a18058e185 lib: Assume relative path for Config::resolvePath() 2014-06-25 11:59:09 +02:00
Alexander Klimov ebca81b040 Revert "Make preferences INI path NOT be configurable"
This reverts commit f2693613d1.
2014-06-25 11:59:08 +02:00
Alexander Klimov fdf74c5e18 Revert "Make preferences INI path NOT be configurable"
This reverts commit 219869607d.
2014-06-25 11:59:08 +02:00
Thomas Gelf fac3c9f3a6 Util\Translator: fix language list
Reverted former redundant patch, got confused by legacy web modules
been translated with earlier versions. They had a different directory
structure and registered erraneous domain directories.

This patch fixes the list, does an additional safety check (dirname must
end with .UTF-8) and strips .UTF-8 from the locale name. Former regex
matched always and therefore blacklisted every translation.
2014-06-25 11:43:15 +02:00
Thomas Gelf 20cdb6e0b8 Revert "Util\Translator: show correct language list"
This reverts commit b7521f48b9.
2014-06-25 11:37:37 +02:00
Thomas Gelf 4591297e56 SortBox: use POST instead of GET
This avoids trouble with complex filter URLs

fixes #6556
2014-06-25 11:00:10 +02:00
Thomas Gelf 7ebdb2d378 FilterQueryString: add hidden debug feature
Might help to track down potential problems in the future, should
not be enabled by default
2014-06-25 10:47:03 +02:00
Thomas Gelf 9359f527db FilterQueryString: fix issues with not
NOT is a "chain" with just one subfilter and therefore behaves a little
bit different. Should work fine now.

fixes #6554
2014-06-25 10:39:48 +02:00
Thomas Gelf 1dcf44b9cd FilterEditor: fix buggy dropdown boxes
There were some issues with option names. Also cleaned up HTML a
little bit and added autosubmission.
2014-06-25 10:37:06 +02:00
Thomas Gelf b40d0f6a1e FilterWidget: POST instead of GET
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.
2014-06-25 10:34:09 +02:00
Thomas Gelf b7521f48b9 Util\Translator: show correct language list
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.
2014-06-25 10:31:03 +02:00
Thomas Gelf 2746b5ff9f ConfigController: switch over to new config tabs
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.
2014-06-24 21:31:59 +02:00
Thomas Gelf b38bcfc19b Widget\FilterEditor: correct expression output
Filter expressions should be filled into form fields exactly as we
expect them at parse time.

fixes #6568
2014-06-24 21:00:01 +02:00
Thomas Gelf 47b893e1ea Widget\FilterEditor: handle custom vars
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
2014-06-24 20:57:41 +02:00
Thomas Gelf 3f9f4bb9e1 ModuleActionController: module object shortcut
This helps modules with the need to know more about themselves. No
more App -> Module Manager -> Module voodoo.
2014-06-24 20:54:39 +02:00
Thomas Gelf 13ef06c700 Modules\Module: modules should register config tabs
This allows modules to register their config tabs and provides a
convenient way to fetch a modules fully instanced config tabs.
2014-06-24 20:47:03 +02:00
Thomas Gelf b7b99cfd67 Widget\AlertMessageBox: fix broken widget
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.
2014-06-24 20:30:41 +02:00
Alexander Klimov 219869607d Make preferences INI path NOT be configurable
fixes #6567
2014-06-24 18:29:28 +02:00
Alexander Klimov f2693613d1 Make preferences INI path NOT be configurable
refs #6567
2014-06-24 18:00:40 +02:00
Alexander Klimov 3e31ff65a4 Prefer dirname rather than pathinfo 2014-06-24 15:57:13 +02:00
Alexander Klimov 6daccae30e Optimize IcingaConfig::resolvePath 2014-06-24 15:45:19 +02:00
Alexander Klimov 6e4bf73c36 Compute config file paths properly
fixes #6564
fixes #6534
2014-06-24 14:54:31 +02:00
Alexander Klimov 9bab7c0323 Signal that resolvePath doesn't support Windows
refs #6564
2014-06-24 13:22:43 +02:00
Alexander Klimov ff87588d96 Don't let config path seem absolute where it isn't
refs #6534
2014-06-24 10:12:07 +02:00
Johannes Meyer c563479888 Use Icinga\Util\File instead of fopen 2014-06-23 15:02:06 +02:00
Johannes Meyer 9066a0c2fa Fix deadlock when writing to the command pipe while noone is listening 2014-06-23 15:02:06 +02:00
Johannes Meyer 2862c5667c Make Icinga\Util\File an object
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.
2014-06-23 15:02:06 +02:00
Matthias Jentsch 010466f8f9 Replace sizeof with count
Do not use sizeof to get the length of an array, as the function name 'sizeof'
is misleading
2014-06-23 14:19:55 +02:00
Matthias Jentsch 77a9dd1e6e Throw exception on fetchDN, when no row exists
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
2014-06-23 14:02:45 +02:00
Thomas Gelf ba9a633b73 Web\Form: relax form submission check
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 #6423
fixes #5967
refs #6540
2014-06-23 13:31:34 +02:00
Thomas Gelf ea44de8698 ActionController/translate: detect domain only once 2014-06-22 20:09:23 +02:00
Thomas Gelf 23ed744747 params/_render: replace it everywhere
Cleaning up controllers and JS, using headers only and respecting
history.
2014-06-22 20:07:44 +02:00
Thomas Gelf 61600ae2d4 ModuleActionController: fix typo 2014-06-22 19:39:54 +02:00
Thomas Gelf 997587d729 Chart\InlinePie: remove ugly default border 2014-06-22 16:38:12 +02:00
Thomas Gelf 216f0f3f55 isIframe: clean up, load less html and js
We use isIframe only when we have no JS, therefore it makes no sense
to load JS files in an iFrame. Also removed sidebar.
2014-06-22 16:30:06 +02:00
Thomas Gelf 3b84078b2f Params/_render: get rid of it, start with iframe 2014-06-22 16:18:23 +02:00
Thomas Gelf bb23d0636c ModuleActionController: use isXhr() 2014-06-22 16:04:55 +02:00
Thomas Gelf 3774eb6889 ActionController: add isXhr() method
Makes things easier as we use this a lot
2014-06-22 15:36:41 +02:00
Thomas Gelf 331d756a2a ActionController: isolate ignoreXhrBody
This function is only a workaround for broken forms not redirecting
after submission. Will hopefully be removed soon.
2014-06-22 15:33:38 +02:00
Thomas Gelf b4f8ef74fa ActionController: remove obsolete code 2014-06-22 15:20:55 +02:00
Thomas Gelf 631603aba3 ActionController: create postDispatchXhr
Moved XHR-specific stuff to a dedicated post-dispatch function
2014-06-22 15:17:28 +02:00
Thomas Gelf cf995b366b ActionController: cleanup postDispatch
Make XHR handling more readable, move module-related stuff to the
module controller
2014-06-22 15:11:08 +02:00
Thomas Gelf 7d6fd45466 Application\Web: use same request everywhere 2014-06-22 14:13:00 +02:00
Thomas Gelf de19745eb2 ActionController: move moduleInit to Module controller 2014-06-22 13:54:02 +02:00
Thomas Gelf 2cd25b7376 ActionController: if/else should be easy to read 2014-06-22 13:52:40 +02:00
Thomas Gelf b7fc0b67a8 Web/controllers: use own Request/Response objects
* introduces Icinga\Web\Response
* uses ModuleActionController where necessary
* no module translationDomain voodoo in base ActionController
2014-06-22 13:49:21 +02:00
Thomas Gelf ef5e1b54fd Web\Window: fix it's usage, add helper function
Improved window handling, fixed controllers using it.
2014-06-22 13:21:21 +02:00
Thomas Gelf b350e3640d Web\Window: move window handle to dedicated class
One more step in cleaning up our ActionController
2014-06-22 13:01:48 +02:00
Thomas Gelf d69a6d1640 ActionController: remove getRequestUrl
Thie removes complexity and makes redirection to login less error-
prone.
2014-06-22 12:23:34 +02:00
Thomas Gelf 9608d8254d ActionController: remove addModuleContainer
This method was obsolete
2014-06-22 12:09:07 +02:00
Thomas Gelf 4980b700da ActionController: __construct() as first function 2014-06-22 12:07:50 +02:00
Thomas Gelf a4955df1a9 controller->Auth(): one more lazy-loading helper
Not sure about the capital A, but doesn't look so bad - and similar
to Config().
2014-06-22 12:06:09 +02:00
Thomas Gelf 373e1c5ecb Web\Controller: re-introduce ModuleActionController
This will help getting rid of a couple of if/else constructs
2014-06-22 12:03:37 +02:00
Thomas Gelf 469eb3dc98 Web\Url: remove forgotten "debug" line 2014-06-22 11:59:24 +02:00
Thomas Gelf b3cdeee35d monitoring/timeline: should benefit from new filter
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
2014-06-21 03:09:40 +02:00
Thomas Gelf 78193137f0 config/modules: show metadata, improve usability
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
2014-06-21 02:27:27 +02:00
Thomas Gelf 216c2ca770 Autorefresh: should work also on initial page load
fixes #6296
2014-06-21 01:54:32 +02:00
Thomas Gelf e2f7a1054e CSV/JSON export: work with new query interfaces
NB: I do not like the fact that we have to do as follows:

  DataView->getQuery()->fetchWhatever();

Guess this is worth a few more proxy functions.
2014-06-21 00:09:11 +02:00
Thomas Gelf c0c7a815f8 Merge remote-tracking branch 'origin/master' into feature/query-interfaces-6018 2014-06-20 19:18:38 +02:00
Thomas Gelf a904ff51aa monitoring/eventhistory: improve query performance
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.
2014-06-20 19:14:34 +02:00
Thomas Gelf 3e24a2cbe4 Paginator/SlidingWithBorder: use less space
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.
2014-06-20 17:31:32 +02:00
Thomas Gelf afd6b11b7b Web\Url: add set/mergeValues support 2014-06-20 15:50:55 +02:00
Thomas Gelf 2cf79fe9a7 Widget\SortBox: hardcode some styles
This is a quickfix, should be moved to CSS once we know how our HTML
elements will definitively look like
2014-06-20 14:55:43 +02:00
Thomas Gelf 916c9c027e forms: fix isSubmitted
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
2014-06-20 14:32:22 +02:00
Thomas Gelf 01631720cc Dashboard\Component: don't pass on limit
Dashlets might be limited to just a few line, we shoultn't pass on
this parameters when showing the "large" variant
2014-06-20 14:29:45 +02:00
Thomas Gelf ac7354295a Accessibiltiy: add alt tag for icons
Screen readers to not read title tags per default
2014-06-20 14:28:19 +02:00
Thomas Gelf 27e7839d1b Widget\Limiter: initial commit
This allows one to easily switch  row count shown on a single page
2014-06-20 13:48:17 +02:00
Thomas Gelf 07134cf931 JS/XHR: handle multiple notifications
As there seems to be problems with sending the same header multiple
times we put multiple notifications in one header.
2014-06-20 13:20:20 +02:00
Thomas Gelf 617741c62f helpers/widget: options are opional 2014-06-20 13:18:52 +02:00
Thomas Gelf dbf03ee647 ActionController: refine url handling on redirect 2014-06-20 13:18:03 +02:00
Thomas Gelf 7cad4de3be ActionController: allow to disable autorefresh 2014-06-20 13:17:11 +02:00
Thomas Gelf 262dcff3a5 Util\Translator: tell us current locale and lang 2014-06-20 13:12:23 +02:00
Thomas Gelf ecbdb07bea FilterQueryString: fix handling encoded <> signs
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.
2014-06-20 13:06:07 +02:00
Thomas Gelf f2605b89ff FilterQueryString: fix parsing expression lists
The parser sometimes failed when reaching a=b&b=(c|d|e) - fixed.
2014-06-20 13:04:53 +02:00
Thomas Gelf 1ea15e1f66 FilterQueryString: fix sub-expression parsing
In a string like !(b=c)&a=d the parser used to fail once it reached
the &, fixed now.
2014-06-20 13:02:02 +02:00
Thomas Gelf a3a2e97f18 FilterQueryString: just cleaning up a little bit 2014-06-20 13:01:10 +02:00
Thomas Gelf 4bada86731 Authentication\Manager: fix fromRemoteUser boolean
This used to be always true in case an autologin backend was enabled.
We only have a REMOTE_USER if there is such.
2014-06-20 12:58:17 +02:00
Thomas Gelf 559457f730 Bootstrap/timezone: do not enforce config
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.
2014-06-20 12:54:37 +02:00
Thomas Gelf f498cd0c81 Web\Url: small fixes, allow override queryString 2014-06-20 12:41:16 +02:00
Thomas Gelf d504c27641 timeUntil/timeSince: add timestamp hover title
It's sometimes easier to read "full" timestamps.
2014-06-20 12:28:55 +02:00
Thomas Gelf 317094aed3 Widget\FilterWidget: ui cleanup 2014-06-20 12:16:33 +02:00
Thomas Gelf 644dd5e33e Widget\FilterEditor: improve the filter editor
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.
2014-06-20 12:03:22 +02:00
Thomas Gelf 1bfc4058f2 Data\Filter: automagically handle hierarchy
This adds a few more functions assisting filters in replacing
themselves or subnodes. Introducing Filter::chain().
2014-06-20 12:00:29 +02:00
Thomas Gelf 18e49f6b9a Data\Filter: add setters for all properties
To keep our filter editor simple we want our filters to handle also
operations replacing themselves.
2014-06-20 11:57:31 +02:00
Thomas Gelf 97f88bf636 Data\Filter: clean up a few things
* throw useful exceptions
* our "id" should always be treated as a string
2014-06-20 11:55:27 +02:00
Matthias Jentsch aae49ce0c0 Do not show tooltips for piechart areas that indicate empty or free areas
refs #6117
2014-06-18 17:38:25 +02:00
Matthias Jentsch 6555d347a7 Escape InlinePie html and adjust chart size
fixes #6117
2014-06-18 14:43:14 +02:00
Matthias Jentsch be0c5d4b23 Add more meaningful tooltip labels to InlinePies
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
2014-06-18 14:43:14 +02:00
Matthias Jentsch 521cc0cac4 Refactor Ldap and Dns utility functions and conform to coding guidelines
refs #6507
2014-06-18 14:38:44 +02:00
Thomas Gelf 21febddad2 Widget\Filter*: rudimentary filter widgets
Initial implementation, more to come
2014-06-17 14:00:38 +00:00
Thomas Gelf 54e97f114d Widget\SortBox: hardcode element width
Temporarily added inline CSS, shall be removed soon
2014-06-17 13:54:32 +00:00
Thomas Gelf d63d8fe451 view/helpers: add $this->widget() 2014-06-17 13:53:05 +00:00
Thomas Gelf e3e6826d9d Icinga\Filter: remove 2014-06-17 13:26:57 +00:00
Thomas Gelf 992a8a276b Web/ActionController: provide $this->params
We always need params, this are our new URL params made accessible
this way. This is just for our query string, not for POST body params.
2014-06-17 12:58:04 +00:00
Thomas Gelf 468b290277 Monitoring\Controller: provide $this->backend
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().
2014-06-17 12:55:43 +00:00
Thomas Gelf 7cd696b31b Data/queries: adjust to fit new filters
Slight changes to get our queries working with new filter implementation.
2014-06-17 12:34:02 +00:00
Thomas Gelf d1b2d47fed Data\Filter: rework fitting new URLs
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.
2014-06-17 12:28:28 +00:00
Thomas Gelf 5ea9b2be84 Web\Url: make use of the new UrlParams class
This makes a lot of things easier while trying to preserve compatibililty.
However, a few things like aliases are marked for removal (TODO).
2014-06-17 10:07:19 +00:00
Thomas Gelf de5bb56fb3 Web\UrlParams: new implementation
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 [].
2014-06-17 10:00:49 +00:00
Thomas Gelf 7b77083c89 Data\Db\DbConnection: relax timeout, persistance
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.
2014-06-17 09:53:59 +00:00
Thomas Gelf e056310378 Data\Db\DbConnection: one more legacy class name
Fixed, Query is now DbQuery
2014-06-17 09:52:32 +00:00
Thomas Gelf 9e1e502fc8 Data\Db\DbConnection: implement fromResourceName
This allows to instantiate DB connections with less code in our
controllers.
2014-06-17 09:51:37 +00:00
Thomas Gelf d2ccc68214 Merge remote-tracking branch 'origin/master' into feature/query-interfaces-6018
Conflicts:
	modules/monitoring/application/controllers/ListController.php
2014-06-17 09:47:14 +00:00
Eric Lippmann 25a73ea3a1 Merge branch 'master' into feature/display-documentation-4820 2014-06-13 17:29:41 +02:00
Eric Lippmann 7f6010e1f8 lib/tree: Add PHPDoc to Node's methods 2014-06-13 17:22:43 +02:00
Johannes Meyer 405266e000 Drop Icinga\Util\Process in favour of an upcoming stronger implementation 2014-06-13 11:59:13 +02:00
Johannes Meyer 561616dca0 Add support for multi-value options
Makes it possible to supply options multiple times and to supply the
"--" flag to indicate that there are no options anymore to parse

refs #6092
2014-06-13 09:58:50 +02:00
Johannes Meyer b935cb34fb Add clicommands to run unit- and style-tests
refs #6092
2014-06-13 09:27:27 +02:00
Johannes Meyer 851977cbeb Revert "Add clicommands to run unit- and style-tests"
This reverts commit 0805d73e34.
2014-06-13 09:14:22 +02:00
Thomas Gelf 44a7aa6adb JS/IE8: deliver legacy jQuery for IE8
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
2014-06-12 17:33:28 +00:00
Eric Lippmann db73d324de Autologin: Fix that the backend name must have been `autologin'
Before, the code validated the name of the backend instead of the `backend' directive against `autologin'.
2014-06-12 17:05:54 +02:00
Johannes Meyer 0805d73e34 Add clicommands to run unit- and style-tests
refs #6092
2014-06-12 16:29:07 +02:00
Eric Lippmann 7d2ee41f42 Autologin: Fix PHPDoc 2014-06-11 15:46:59 +02:00
Eric Lippmann 992ccf4f6d Autologin: Actually set the username upon authentication
Before, when using autologin the username of the authenticated user always was the empty string.
2014-06-11 15:46:59 +02:00
Eric Lippmann 65a2bd41bc Autologin: Do not use absolute `use' 2014-06-11 15:46:58 +02:00
Eric Lippmann 7215ba4f59 Autologin: Do not require a bogus password in the source code 2014-06-11 15:46:58 +02:00
Eric Lippmann 63fc8eb27e Autologin: Use REMOTE_USER for authentication
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.
2014-06-11 15:46:58 +02:00
Eric Lippmann c09341d77e Autologin: Do NOT sanitize username
I don't know the reason why this was done initially but a username must not be changed.
2014-06-11 15:46:58 +02:00
Matthias Jentsch c42c7977be Call extended backend health checks when creating ldap authentication backends
fixes #6457
2014-06-11 15:09:36 +02:00
Matthias Jentsch 6c82cb8988 Check ldap backend health during Authentication
Check if authentication is possible during authentication, to generate more
useful error and log messages, in case the backend configuration is wrong

ref #6457
2014-06-11 15:08:05 +02:00
Matthias Jentsch bca166c644 Do not throw an exception when the username does not exist
refs #6457
2014-06-11 15:08:05 +02:00
Johannes Meyer 159d765f14 Fix that calling ActionController::translate() throws an exception
Translating strings must not throw an exception
even if the given domain is not valid.

fixes #6432
2014-06-11 13:39:22 +02:00
Matthias Jentsch 305a025e7a Detect ldap default naming context
Read the entries in the RootDTS of the given ldap server, to discover
its default naming context and capabilities

refs #6097
refs #6096
2014-06-06 18:18:58 +02:00
Matthias Jentsch efe67377a8 Move dns discovery functions into separate class
Add functions to lookup and reverse-lookup domain names and move the ldap
discovery function into a separate class

refs #6093
2014-06-06 17:49:55 +02:00
Matthias Jentsch 953d22244a Add host discovery to authentication page
Find all domains for a given hostname.

refs #6093

Conflicts:

	application/forms/Install/AuthenticationPage.php
2014-06-06 17:49:55 +02:00
Marius Hein 06296f29d8 UI/Sparklines: Change sparkline code to serverside only
fixes #6124
2014-06-06 16:35:33 +02:00
Eric Lippmann 160a75403d Merge branch 'master' into feature/display-documentation-4820
Conflicts:
	modules/doc/library/Doc/DocParser.php
2014-06-06 14:25:13 +02:00
Eric Lippmann 6c8d35c667 lib: Add a not yet customizable node renderer 2014-06-06 13:58:40 +02:00
Eric Lippmann ce0aee5e41 lib: Add Data/Tree/Node.php 2014-06-06 13:58:14 +02:00
Eric Lippmann d84532d593 lib: Remove TreeIterator
Nodes implementing the NodeInterface (which extends the RecursiveIterator interface)
are already iterable.
2014-06-06 13:57:18 +02:00
Eric Lippmann 794ae141fa lib: Let NodeInterface extend RecursiveIterator
Since a node may have children and they should be iterable, the Nodefinterface
now extends RecursiveIterator.
2014-06-06 13:55:58 +02:00
Thomas Gelf e01629fe0b ActionController: fix initial redirect
refs #6419
2014-06-06 08:32:21 +00:00
Thomas Gelf 1e9bc6c7d4 Data\PivotTable: should work with new queries
There is still some work to do be done here. And we should/could
rethink columns() VS getColumns().
2014-06-06 06:47:49 +00:00
Thomas Gelf db3accc704 Data\Db: rename Query and Connection to Db...
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.
2014-06-06 06:43:13 +00:00
Thomas Gelf 1fbca25d99 Data\DataArray: use SimpleQuery and new interfaces
Removed ArrayQuery implementation as SimpleQuery is enough here.
Renamed the Datasource class to ArrayDatasource.

refs #6418
2014-06-06 06:21:35 +00:00
Thomas Gelf 31047e8082 Data\SimpleQuery: concrete implementation
SimpleQuery is no longer abstract, implements the Filterable interface
and should now be usable as a basic Query implemenation as is.
2014-06-06 06:12:17 +00:00
Thomas Gelf 85605597cc Data/interfaces: add Filterable, extend Connection
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
2014-06-06 06:07:33 +00:00
Thomas Gelf f438cb30e1 Data\Filter: initial commit basic implementation
Basic operators are there, still missing: subclassed "where" to distinct
comparison operators like greater/less than on a class level.

refs #6418
2014-06-06 06:04:24 +00:00
Thomas Gelf d44a87717d Data\SimpleQuery: implement column handling
We want SimpleQuery to be able to run standalone
2014-06-06 05:49:39 +00:00
Thomas Gelf 4b8e09b12a Data\SimpleQuery: get front controller without ZF 2014-06-06 05:48:29 +00:00
Thomas Gelf bfe6a1593a Merge remote-tracking branch 'origin/master' into feature/query-interfaces-6018 2014-06-06 05:32:54 +00:00
Marius Hein 20b43a92f1 Dashboard: Better implementation of handling errors
refs #6412
2014-06-05 16:07:40 +02:00
Marius Hein 151f058286 Dashboard: Display error message on failure
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
2014-06-05 15:20:54 +02:00
Thomas Gelf 1b3bb6cade Web\Url: add getQueryString() and without() 2014-06-05 03:44:12 +00:00
Thomas Gelf 99aae5a0d9 JS/XHR: get ready to get XHR redirect-aware
These are just the first steps, there is more to come
2014-06-05 03:37:36 +00:00
Thomas Gelf 1ebab3e5c1 vendor/lessphp: we don't need travis.yml right now 2014-06-05 00:15:31 +00:00
Thomas Gelf c592236258 vendorlibs: library/vendor to libary/IcingaVendor
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
2014-06-05 00:10:49 +00:00
Thomas Gelf 8df26bb5f5 bootstrapping: add a dispatchModule() shortcut
This allows to easily jump into a specific modules CLI controllers.

refs #6411
2014-06-04 23:39:12 +00:00
Thomas Gelf 4202e34d13 bootstrapping: play nice with duplicate modules
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.
2014-06-04 23:37:36 +00:00
Thomas Gelf bdcec5a253 Cli\Loader: allow injecting a module name
This helps those who prefer to create their own executables instead
of creating icingacli subcommands.

refs #6411
2014-06-04 23:04:11 +00:00
Thomas Gelf eadb6cb518 bootstrapping: allow to retrieve a modules base...
...directory if it has been loaded but neither enabled nor installed.

refs #6411
2014-06-04 22:59:48 +00:00
Thomas Gelf 0e6aecbd43 bootstrapping: allow to load modules neither...
...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
2014-06-04 22:57:50 +00:00
Thomas Gelf e076d2d1d6 bootstrapping: create only one CLI loader instance
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
2014-06-04 22:52:38 +00:00
Thomas Gelf a221afd933 bootstrapping: autoloader exceptions should not...
...require to be autoloaded.

refs #6411
2014-06-04 22:50:08 +00:00
Thomas Gelf 602b448505 bootstrapping: only web should depend on forms
This fixes the problem that CLI scripts or other applications without
an application directory would badly fail because of missing web forms.

refs #6411
2014-06-04 22:46:16 +00:00
Thomas Gelf bdc3423d4e packaging/config: allow to override APPDIR
It is now possible to either define ICINGAWEB_APPDIR in an Environment
variable or to define it as a PHP constant before bootstrapping.

fixes #6400
2014-06-04 21:22:29 +00:00
Thomas Gelf 55880cb5a3 packaging/config: rename ICINGA_APPDIR
Renamed ICINGA_APPDIR to ICINGAWEB_APPDIR for consistency. This way
it fits ICINGAWEB_CONFIGDIR.

refs #6400
2014-06-04 21:11:27 +00:00
Thomas Gelf e992f152bb packaging/configuration: get rid of _ENV
We should use _SERVER for our settings as it works fine on CLI and
for web servers.

refs #6400
2014-06-04 21:08:49 +00:00
Marius Hein 29f593a357 Authentication: Add backend to handle external authentication
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
2014-06-03 17:59:22 +02:00
Marius Hein a0459d0172 ExternalAuthentication: Move authenticationMode to config.ini
fixes #6214
2014-06-03 15:26:15 +02:00
Marius Hein 160a95e32d Bootstrap/Web: Only load authentication.ini if needed
fixes #6238
2014-06-03 14:16:01 +02:00
Eric Lippmann cfcaf019bd User backends: Throw exception when authentication fails due to an exception
refs #5685
2014-06-02 15:52:58 +02:00
Eric Lippmann 2274b6e11e lib: Add phpdoc to class `AuthChain'
refs #5685
2014-06-02 15:46:15 +02:00
Marius Hein 79fb8b1e0d Config: Remove base path subsitution
Test for leading slash and prepend base path to allow
absolute configuration files.

fixes #5556
2014-06-02 14:54:31 +02:00
Eric Lippmann 5559cf6c2b lib: Add AuthenticationException for exceptions thrown during authentication
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.
2014-06-02 14:07:59 +02:00
Eric Lippmann a379502b15 Preferences: Rename `showBenchmark' to `show_benchmark'
We use underscore_case notation for all configuration keys.

refs #4952
2014-06-02 13:33:55 +02:00
Eric Lippmann 50e01d1284 Config: Rename `configPath' to `config_path'
We use underscore_case notation for all configuration keys.

refs #4952
2014-06-02 12:09:16 +02:00
Eric Lippmann 1619d682c7 vendor: Remove executeable bit from a read me file of HTMLPurifier
refs #5982
2014-06-02 10:45:30 +02:00
Gunnar Beutner 5cc69b53cf Remove superfluous space in prefixedTimeSince
refs #5981
2014-05-29 13:11:01 +02:00
Gunnar Beutner a66a1a4729 Refactor the timeSincePrefix and timeUntilPrefix functions
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
2014-05-29 13:03:10 +02:00
Gunnar Beutner 7b0a48bef5 Rename timeUnless to timeUntil
refs #5981
2014-05-29 12:38:59 +02:00
Gunnar Beutner d01a98b7e6 Fix some of the time-related grammar mistakes
This updates some of the messages to use "For"
instead of "Since" where appropriate.

fixes #5981
2014-05-29 11:30:08 +02:00
Thomas Gelf 88460189cd Encoding: no ASCII chars > 127 in HTTP headers
Had quite some trouble with this, decided to URL-encode titles and
notifications.
2014-05-28 21:34:36 +00:00
Eric Lippmann 9edaaa82e8 lib: Add TreeIterator 2014-05-28 17:14:33 +02:00
Eric Lippmann 040473f986 lib: Add NodeInterface 2014-05-28 17:13:42 +02:00
Eric Lippmann c12c4a9e4c Modules: Call `Module::registerWebIntegration()' after including the run script
Routes added via a module's run script were not respected since
`Module::registerRoutes()' is called from `Module::registerWebIntegration()'.

refs #6303
2014-05-28 13:29:02 +02:00
Thomas Gelf 92f454c36d Chart\InlinePie: locale-ignorant casts for floats
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
2014-05-28 10:20:34 +00:00
Thomas Gelf 360ac87550 Translation: add a module-aware translation helper
With this fix $this->translate works in our view scripts

refs #6338
2014-05-27 21:41:46 +00:00
Eric Lippmann b58ec5f445 Add Module::addRoute() to add a route to the route chain
refs #6303
2014-05-27 15:11:33 +02:00
Thomas Gelf 70ba36aad6 notifications: improve client- and serverside
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
2014-05-26 14:41:47 +00:00
Thomas Gelf 8a770007ff Modules\Module: provide a lighter header sample
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
2014-05-26 14:17:46 +00:00
Thomas Gelf 7c68d0a30f Modules\Module: clean up phpdoc blocks 2014-05-26 14:14:34 +00:00
Thomas Gelf 5b87d6238b Modules\Module: improve provided metadata
refs #4095
2014-05-26 14:11:43 +00:00
Eric Lippmann 6ff5a986dd Modules: Don't call `FrontController::getRoute()' twice
refs #6303
2014-05-26 13:08:47 +02:00
Thomas Gelf 6a33f4e5e0 vendor/dompdf: fix typo 2014-05-20 23:59:49 +00:00
Thomas Gelf 8ff757f6df Inline\PieChart: code style 2014-05-20 23:29:13 +00:00
Thomas Gelf 12b57c6d95 Merge remote-tracking branch 'origin/master' into feature/query-interfaces-6018
Conflicts:
	modules/monitoring/library/Monitoring/Backend/Ido/Query/ContactgroupQuery.php
	modules/monitoring/library/Monitoring/Backend/Ido/Query/IdoQuery.php
	modules/monitoring/library/Monitoring/Backend/Ido/Query/StatusQuery.php
	modules/monitoring/library/Monitoring/Controller.php
2014-05-20 23:15:11 +00:00
Thomas Gelf cf42ffbafa Parsedown: version 1.0 released 2014-05-20 22:56:01 +00:00
Thomas Gelf 24f2ae607f Pdf/Charts: add initial chart support to PDFs
Problem: TCPDF had SVG support, dompdf hasn't. This patch adds a
first rudimentary PNG conversion and a sample implementation making
use of such.
2014-05-20 22:48:06 +00:00
Thomas Gelf 78bc2b4ec7 Modules\Manager: no warning for duplicate modules
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.
2014-05-20 22:39:32 +00:00
Thomas Gelf 51c3fed743 File\Pdf: remove obsolete code 2014-05-20 22:39:03 +00:00
Thomas Gelf 4e88a4e008 Web\Url: add a shift() method
This methods allows to retrieve an URL param while removing it from the
URL object
2014-05-20 13:49:35 +00:00
Thomas Gelf e6d80ae1f6 IDO Queries: performance quickfixes
Will be obsoleted by the new filter implementation, but for now it
helps a little bit
2014-05-20 13:27:58 +00:00
Thomas Gelf b447225512 Web\Form: Revert "Fix subForm functionality"
This reverts commit 51bac035ac.
The div element introduced by this commit breaks inline form layout
2014-05-20 13:10:18 +00:00
Johannes Meyer ef7bb0e794 It is a multistep page's responsibility whether it is shown to the user
refs #6136
2014-05-14 12:53:45 +02:00
Johannes Meyer 754f854dd0 Multistep pages should know about their multistep form
refs #6136
2014-05-14 12:53:45 +02:00
Johannes Meyer 1f942acd38 Fix multistep page creation
refs #6136
2014-05-14 12:53:45 +02:00
Johannes Meyer 33d4142664 Make it possible to recreate a form 2014-05-14 12:53:44 +02:00
Johannes Meyer 1637a19c23 Fix multistep form creation
refs #6136
2014-05-14 12:53:44 +02:00
Johannes Meyer 429e09aae2 Multistep pages should not have random generated names
refs #6136
2014-05-14 12:53:44 +02:00
Johannes Meyer 51bac035ac Fix subForm functionality 2014-05-14 12:53:44 +02:00
Johannes Meyer de169c7bf5 Make it possible to disable form submit buttons forcefully 2014-05-14 12:53:44 +02:00
Johannes Meyer 88e451402f Redirect to /install when the setup.token exists but no config.ini
refs #6136
2014-05-14 12:53:44 +02:00
Johannes Meyer 4cf5fe6fdd Add multistep form
refs #6136
2014-05-14 12:53:44 +02:00
Johannes Meyer e1230eb8ae Add style and view scripts for first prototype
refs #6136
2014-05-14 12:53:44 +02:00
Thomas Gelf 339460fee4 Merge remote-tracking branch 'origin/master' into feature/query-interfaces-6018 2014-05-09 16:29:54 +00:00
Thomas Gelf 1190a8959f Upgrade Parsedown to 1.0.0-rc.4
Please note that this invalidates my img size patch, I forgot to bring
it upstream. Still TBD.

refs #6165
2014-05-09 15:36:46 +00:00
Thomas Gelf dcf6b998bf Upgrade lessphp
* Upgrade from 0.3.9 to 0.4.0
* Document package source
* Remove overhead

refs #6165
refs #6166
2014-05-09 10:53:54 +00:00
Thomas Gelf d93c060e6a Upgrade htmlpurifier to 4.6.0
refs #6165
2014-05-09 10:41:20 +00:00
Thomas Gelf 64dd91e457 Upgrade JShrink to 1.0
refs #6165
2014-05-09 10:37:38 +00:00
Thomas Gelf e04ca8c29a Merge remote-tracking branch 'origin/master' into feature/query-interfaces-6018 2014-05-07 15:53:48 +00:00
Matthias Jentsch d0c56126b8 Fix inline pie reload.
refs #6124
2014-05-07 17:03:27 +02:00
Thomas Gelf 820b6b7a8d Data\BaseQuery: rename to Data\SimpleQuery
BaseQuery should no longer be abstract but be usable as is as soon as
we stripped ResultSet-specific tasks. As "Base" suggests something that
must be extended, the name no longer fits. So this is SimpleQuery right
now.
2014-05-07 11:55:35 +00:00
Thomas Gelf ab32a91a6e File\Csv: use Fetchable instead of BaseQuery 2014-05-07 11:33:48 +00:00
Eric Lippmann ecbd9b8616 Sortable: Fix PHPDoc for parameter `$direction'
`$direction' must be a string instead of an integer because
the direction constants `SORT_ASC' and `SORT_DESC' are strings.
2014-05-07 10:00:41 +02:00
Eric Lippmann d87788b9c1 Merge branch 'master' into feature/query-interfaces-6018
Conflicts:
	modules/monitoring/library/Monitoring/Backend/Ido/Query/ContactgroupQuery.php
2014-05-06 18:45:12 +02:00
Johannes Meyer 2f911f75a1 Fix division by zero in Icinga\Util\Format
refs #6125
2014-05-06 08:32:42 +02:00
Johannes Meyer c711e3405d Fix cli default log configuration and js-loader debug message 2014-05-05 16:17:21 +02:00
Johannes Meyer 0627d954ac Fix usages of Icinga\Module\Monitoring\Plugin\*
refs #5973
2014-05-05 16:16:45 +02:00
Thomas Gelf 6a1602a499 Exception messages should be single-line strings
fixes #6095
2014-05-02 11:19:35 +02:00
Marius Hein 6c698c1543 Tests: Remove Zend Controller Test from base test
fixes #6106
2014-05-02 09:46:01 +02:00
Marius Hein 6aaff6b399 IniWriter: Delete nested properties
fixes #5958
2014-05-02 09:26:17 +02:00
Johannes Meyer 4cf3044a53 Rename Icinga\Logger\Writer\StreamWriter to FileWriter
refs #6038
2014-04-30 11:59:22 +02:00
Thomas Gelf 270181885c Fix Url error for emty baseUrl, less function calls 2014-04-29 12:27:19 +00:00
Johannes Meyer e2ba172a8e Make dashboard components using the ini writer class
fixes #5524
2014-04-29 11:30:53 +02:00
Matthias Jentsch 085025ba7d Icingaweb shoul work without optional extensions when they are not used
When optional classes and php extensions like pgsql and additonal Zend-Pdos are
actually required by creating a new resource or authentication backend,
perform a check and display a warning instead of just throwing an exception.

refs #4788
2014-04-28 17:13:40 +02:00
Johannes Meyer 98ca15d1fb Mark less important or non-testable code as skipped for code coverage
refs #6011
2014-04-28 14:06:41 +02:00
Johannes Meyer 07da92ee42 Rewrite test for Icinga\Web\Url and fix some bugs
refs #6011
2014-04-28 14:06:40 +02:00
Johannes Meyer 729c33c3cf Add helpful documentation to Icinga\Web\ViewStream 2014-04-28 14:06:40 +02:00
Johannes Meyer c5c375e72d Add test for Icinga\Web\MenuItem
refs #6011
2014-04-28 14:06:40 +02:00
Johannes Meyer 290fe9eeb5 Rewrite test for Icinga\Web\Hook
refs #6011
2014-04-28 14:06:40 +02:00
Johannes Meyer 2b15d35dec Rewrite test for Icinga\Web\Form
refs #6011
2014-04-28 14:06:40 +02:00
Johannes Meyer 87863d3212 Add test for Icinga\File\Csv
refs #6011
2014-04-28 14:06:40 +02:00
Johannes Meyer e8ed7c7166 Rewrite test for Icinga\Config\PreservingIniWriter
refs #6011
2014-04-28 14:06:40 +02:00
Johannes Meyer fe44f8ed7c Remove empty file library/Icinga/File/Csv/Query.php 2014-04-28 14:06:40 +02:00
Johannes Meyer 54a5e996bb Add test for Icinga/Logger/Writer/StreamWriter
refs #6011
2014-04-28 14:06:39 +02:00
Johannes Meyer 45d7864198 Refactor test for Icinga\Test\BaseTestCase
refs #6011
2014-04-28 14:06:39 +02:00
Johannes Meyer c93159d287 Add test for Icinga\User\Preferences\Store\IniStore
refs #6011
2014-04-28 14:06:39 +02:00
Johannes Meyer 9efe71441a Add test for Icinga\User\Preferences\Store\DbStore
refs #6011
2014-04-28 14:06:39 +02:00
Johannes Meyer d44aaeb8d7 Add test for Icinga\User\Preferences
refs #6011
2014-04-28 14:06:39 +02:00
Johannes Meyer be410a685b Add test for Icinga\User
refs #6011
2014-04-28 14:06:39 +02:00
Johannes Meyer e10193f570 Add test for Icinga\Util\DateTimeFactory
refs #6011
2014-04-28 14:06:39 +02:00
Johannes Meyer 891d36dbd7 Make DateTimeFactory expecting a string instead of a DateTimeZone 2014-04-28 14:06:39 +02:00
Johannes Meyer 1db9b1ede4 Move non-factory functions from DateTimeFactory to Icinga\Util\Format 2014-04-28 14:06:39 +02:00
Johannes Meyer e27e538bd9 Add test for Icinga\Util\Translator
refs #6011
2014-04-28 14:06:39 +02:00
Johannes Meyer 21b949758f Refactor ResourceForm tests
refs #6011
2014-04-28 14:06:38 +02:00
Johannes Meyer aaa6a56146 Refactor authentication config form tests and fix auth backend validation
refs #6011
fixes #5712
2014-04-28 14:06:38 +02:00
Matthias Jentsch b16c6efa05 Add PieChart to display hosts and services, improve layout and fix flag
checkboxes

refs #5765
2014-04-28 09:48:06 +02:00
Matthias Jentsch 081b5072a6 Fix layout of MultiController views
refs #5765
2014-04-28 09:48:06 +02:00
Alexander Klimov 6973b04211 Don't throw exception if logfile is not found
fixes #6035
2014-04-23 12:21:42 +02:00
Michael Friedrich f510130797 Look for ICINGAWEB_CONFIGDIR in $_ENV too.
Refs #5638
2014-04-23 11:23:29 +02:00
Thomas Gelf a7b5893918 Detect TTY support and avoid ANSI colors if none
fixes #5992
2014-04-18 14:36:46 +00:00
Thomas Gelf fa3e7f9fc2 Module list should not throw Exceptions if no config is present 2014-04-17 21:16:51 +00:00
Thomas Gelf 0d6aeb3877 Make CLI logging robust against missing config 2014-04-17 21:09:30 +00:00
Thomas Gelf 3f9bc5dea6 Use no space in syslog application name 2014-04-17 21:04:15 +00:00
Thomas Gelf f04d765365 Fix routing for static content with internal webserver 2014-04-17 20:59:37 +00:00
Thomas Gelf d939e12ef9 Only XHR requests use the "inline" layout 2014-04-17 17:03:35 +00:00
Thomas Gelf 6f9c187d47 Default configDir in App bootstrap related to last commit 2014-04-17 17:01:23 +00:00
Thomas Gelf 5fdec39475 More consistent default config dir handling, less configuration 2014-04-17 16:59:10 +00:00
Thomas Gelf 3b20833495 Cosmetic web router changes 2014-04-17 16:47:01 +00:00
Thomas Gelf 83b26bc595 JS-less iFrame rendering improvements 2014-04-17 16:20:03 +00:00
Alexander Klimov 070e608236 Read log file chunkwise
resolves #6021
2014-04-17 18:01:24 +02:00
Eric Lippmann 026145356b Add interface "QueryInterface" implementing Browsable, Fetchable, Filterable, Limitable, Sortable, Countable (WIP)
This interface is intended to be used within the data views and monitoring controllers. The monitoring list
and show controllers should only query data views instead of the actual query. Thus a data view is required to
implement the QueryInterface, which will be changed later.
The name is not final because it somehow conflicts with the Queryable interface which is also marked as work in progress.
2014-04-17 14:21:01 +02:00
Eric Lippmann 8532622fab Db: Implement missing fetch*() functions on connection level
The BaseQuery forwards fetch*() function calls to its datasource with the
query as first parameter since the datasource implements the actual fetching functionality.
There's no interface for fetch*() functions on the datasource level yet.
2014-04-15 17:44:34 +02:00
Eric Lippmann e525688383 Replace DatasourceInterface with Selectable 2014-04-15 17:43:45 +02:00
Eric Lippmann 1a2577dd47 Db/Connection: Replace getConnection() with getDpAdapter()
For readability getConnection() is deprecated in favor of getDpAdapter()
since Db/Connection is already the connection.
2014-04-15 17:37:44 +02:00
Eric Lippmann c85ade39c0 Create count and select database queries separately
The previous implementation always created both the count
and the select query.
For readability the property baseQuery has been renamed to select which the
IDO queries must take into account.
2014-04-15 17:21:10 +02:00
Eric Lippmann d94170372d Let the BaseQuery implement the query interfaces and remove filter functionality
This commit breaks the application as it introduces incompatible changes which
will be adopted bit by bit.

Since the filter functionality is subject to change it's removed from the BaseQuery.
The functions setOrderColumns() and getOrderColumns() are deprecated because they're
replaced by functions in the Sortable interface.
Further the Sortable interface now defines the sort constants ASC and DESC and are
thus removed from the BaseQuery. In addition the sort constants are no longer integers
but strings.
The distinct() and isDistinct() functions are removed because they're database specific.
They have been introduced with changes in the PivotTable implementation which should
actually not call distinct blindly anyway.
2014-04-15 16:40:25 +02:00
Eric Lippmann 659e6f774e Add interface "Queryable" (WIP)
Interface for classes which act as a data source and thus return or are a Fetchable.
The name of the interface is not yet final though.
2014-04-15 16:23:17 +02:00
Eric Lippmann 0f3d70c437 Add interface "Filterable" (WIP)
This interface is empty yet. It's meant to define how to filter a result set.
2014-04-15 16:20:11 +02:00
Eric Lippmann e5e3dc9c43 Add interface "Sortable" defining how a result set can be sorted
This interface should be used to ensure that sorting a result set
is standardized among the different query implementations.
2014-04-15 16:07:27 +02:00
Eric Lippmann 3e0d254dfd Implement "Limitable" interface for retrieving just a portion of a result set
Defines how to set a limit count and offset and should be used everywhere
where setting limit and offset is supported.
2014-04-15 15:48:51 +02:00
Eric Lippmann c083747f67 Add "Fetchable" interface for classes providing data retrieval
Classes for retrieving data must implement the Fetchable interface
which defines the usual fetch*() functions.
2014-04-15 15:40:07 +02:00
Eric Lippmann 2cc3823a95 Implement interface "Browsable" for classes providing page turning
This interface is intended to be used everywhere a Zend_Paginator
is returned within our code.
2014-04-15 15:36:13 +02:00
Johannes Meyer 1ed1c0bc3c Remove user auth and backend tests
refs #4639
2014-04-14 11:44:02 +02:00
Johannes Meyer a844d33735 Do not create alias mock for Icinga\Application\Icinga
refs #4639
2014-04-14 08:31:46 +02:00
Johannes Meyer 4c8428423e Convert existing mocks to Mockery-mocks (Part 1)
refs #4639
2014-04-11 17:03:45 +02:00
Johannes Meyer 927772578d We do not want to use "@backupStaticAttributes enabled"
refs #4639
2014-04-11 15:31:29 +02:00
Johannes Meyer 1e69169bab Fix database tests
refs #4639
2014-04-10 11:33:24 +02:00
Johannes Meyer ccae70bc80 Make all tests inherit from BaseTestCase and fix license headers and style
refs #4639
2014-04-10 10:32:50 +02:00
Johannes Meyer 6056327c6d Fix that it's not possible to set non-existing values in a session with setAll()
refs #4639
2014-04-09 16:18:51 +02:00
Johannes Meyer f9324032cb Fix autoloader not ignoring vendor prefixed class names
refs #4639
2014-04-09 14:20:05 +02:00
Marius Hein 7708b9901f Drop BaseTestCase static class loader
refs #4639
2014-04-09 09:27:01 +02:00
Marius Hein 746cc4b5d9 Drop obsolete test cases
refs #4639
2014-04-09 09:26:11 +02:00
Johannes Meyer 3195e6a897 Rewrite preference DbStore
refs #5682
2014-04-08 13:28:45 +02:00
Johannes Meyer a1649a1f22 Refactor PreferencesStore and IniStore
refs #5682
2014-04-07 15:13:28 +02:00
Thomas Gelf a857af60be Intendation 2014-04-07 12:03:53 +00:00
Thomas Gelf 88cdf99934 More code style 2014-04-07 12:03:53 +00:00
Johannes Meyer d109046bc0 Fix that the general and logging form cannot write configuration changes
fixes #5952
2014-04-07 09:27:37 +02:00
Johannes Meyer ea44ae3693 Improve failure handling when setting the locale 2014-04-04 15:34:46 +02:00
Johannes Meyer 8be3ccc527 Make it possible to save the session by its associated session namespaces 2014-04-04 11:13:07 +02:00
Johannes Meyer 98b640f1e0 Fix that removed values/namespaces remain in the session storage
fixes #5934
2014-04-04 11:10:45 +02:00
Alexander Klimov cdf1a0b683 Write more class documentation 2014-04-02 13:47:02 +02:00
Alexander Klimov 241fda1196 Small cleanup 2014-04-02 13:47:02 +02:00
Alexander Klimov 2a10f6184a Write class documentation 2014-04-02 13:47:02 +02:00
Alexander Klimov 7c599e206e Make it working
refs #4514
2014-04-02 13:47:01 +02:00
Alexander Klimov 933a851f65 Initial commit
refs #4514
2014-04-02 13:47:01 +02:00
Johannes Meyer ae2d61682f Fix how the timeline processes dates
refs #4190
2014-04-02 10:53:39 +02:00
Johannes Meyer 21b9c1f4af Fix that filters are not preserved on timeline element urls
refs #4190
2014-04-01 14:26:10 +02:00
Johannes Meyer c19791fdd7 Fix brightness calculation in Icinga\Utils\Color 2014-04-01 11:46:44 +02:00
Johannes Meyer 3d658a664c Do not use logarithm base from session if the timeline is not being extended
refs #4190
2014-04-01 11:46:43 +02:00
Johannes Meyer f5e4331d71 Add timeline view script and styles
refs #4190
2014-04-01 11:46:43 +02:00
Johannes Meyer b0709d8cba Revert postDispatch -> preDispatch change in ActionController
refs #4190
2014-04-01 11:44:25 +02:00
Johannes Meyer 862b50264a Fix that the queryfilter parser cannot handle integer values 2014-04-01 11:44:24 +02:00
Johannes Meyer aade2ab7f6 Move timeline classes into the monitoring module
refs #4190
2014-04-01 11:44:24 +02:00
Johannes Meyer 0a146b4bb4 Clientside scrolling implementation [WIP]
refs #4190
2014-04-01 11:44:24 +02:00
Johannes Meyer fd07393e44 Fix event interpolation
refs #4190
2014-04-01 11:44:24 +02:00
Johannes Meyer 9d3935f15b Improve timeline layout
refs #4190
2014-04-01 11:44:24 +02:00
Johannes Meyer 25f4b50ce7 Implement timeline rendering
refs #4190
2014-04-01 11:44:24 +02:00
Johannes Meyer 103d43ea77 Implicitly add an TimeEntry's weight when calling getValue()
refs #4190
2014-04-01 11:44:24 +02:00
Johannes Meyer 34f25c6009 Return timeframes when iterating over TimeRange objects
refs #4190
2014-04-01 11:44:24 +02:00
Johannes Meyer 40f70eb572 Fix license header
refs #4190
2014-04-01 11:44:24 +02:00
Johannes Meyer 86839e757d Add interval selectbox and group legend
refs #4190
2014-04-01 11:44:24 +02:00
Johannes Meyer a589460de3 Make TimeEntry creation more flexible
TimeEntry objects are now created with the fromArray
constructor instead of the default one.

refs #4190
2014-04-01 11:44:23 +02:00
Johannes Meyer b168cf878d Fix type specification in DowntimestarthistoryQuery
refs #4190
2014-04-01 11:44:23 +02:00
Johannes Meyer ba541b402d Add timeline helper classes
#refs 4190
2014-04-01 11:44:23 +02:00
Thomas Gelf 1beb837783 A few little code cleanups 2014-03-31 16:35:28 +00:00
Thomas Gelf 056b8d5395 Coding style 2014-03-31 16:30:27 +00:00
Matthias Jentsch d3c4660c2d Fix colors of svg charts in Firefox 2014-03-31 12:35:39 +02:00
Thomas Gelf 947ad34153 Get web router ready for .htaccess removal 2014-03-28 19:46:58 +00:00
Johannes Meyer bafa8cc032 Fix authentication error handling 2014-03-28 14:45:03 +01:00
Thomas Gelf ade2121302 Router, once again 2014-03-27 20:00:43 +00:00
Thomas Gelf ff6859d1d1 One more router fix 2014-03-27 19:47:11 +00:00
Thomas Gelf fcde513c24 Router fixes for SVG images 2014-03-27 19:39:38 +00:00
Johannes Meyer 3beec6e102 Fix exception thrown during re-routing without parameters 2014-03-27 12:04:10 +01:00
Thomas Gelf 08945257dc Add alias detection to web router script 2014-03-27 09:33:45 +01:00
Thomas Gelf 5c89512e05 New router needs JavaScript and Stylesheet handlers fitting it's needs 2014-03-27 07:32:02 +00:00
Thomas Gelf cb5d90ad41 Simplify pre-bootstrapping web routing 2014-03-27 07:25:53 +00:00
Matthias Jentsch 2360f21b09 Fix InlinePie boundaries and use floats for the PieSlice path coordinates
Use floats as path coordinates in PieSlices, to
avoid that the start and ending position of the arc are at the exact same
position. This would cause buggy behavior, when displaying values like "99,999%".

refs #5863
2014-03-26 17:06:21 +01:00
Matthias Jentsch 15723f088b Include SVG piecharts in perfData helpers
When no JavaScript is available, SVG piecharts will be shown instead of the
jQuery sparklines.

fixes #5865
2014-03-26 14:56:35 +01:00
Thomas Gelf faec625912 Ship module JS files even with minified JS 2014-03-26 09:24:27 +00:00
Thomas Gelf eeaec20873 Add support for server-side triggered CSS reload 2014-03-26 07:58:00 +00:00
Thomas Gelf 87f90b6bdd Replace escaped ampersands in URLs with & for redirects
* NB: Icinga\Web\Url could provide a method for this
2014-03-26 07:56:30 +00:00
Johannes Meyer 18b825a24b Add missing keyword "new" in class SessionNamespace 2014-03-25 13:24:06 +01:00
Johannes Meyer f802b36ca9 Move session class files 2014-03-25 11:13:10 +01:00
Johannes Meyer 9ab53558f0 Add helper to get window-aware session namespaces 2014-03-25 11:13:10 +01:00
Thomas Gelf 9c5eb19af6 Re-add potentially obsolete dynamic Widget properties 2014-03-25 07:23:14 +00:00
Thomas Gelf 01f94c574d Handle window-id requests, allowing us to identify distinct windows 2014-03-21 13:27:44 +00:00
Thomas Gelf fea7e8993b Allow LDAP queries without objectClass filter 2014-03-21 10:31:12 +00:00
Thomas Gelf aed6d74ecd Add recursive delete support to LDAP Connection 2014-03-20 15:46:10 +00:00
Thomas Gelf 12933ee706 Add children count to LDAP root node 2014-03-20 15:45:36 +00:00
Thomas Gelf 292ce6e12b Fix SSH CommandPipe transport. Did anyone ever test this? 2014-03-20 14:05:57 +00:00
Johannes Meyer ea473cf08a Fix sorting of pivot tables 2014-03-20 13:21:28 +01:00
Johannes Meyer bf717654f0 Add more consistency to the servicematrix when switching pages 2014-03-20 11:30:55 +01:00
Thomas Gelf 3059228378 Fix JS support for modules 2014-03-20 09:55:29 +00:00
Michael Friedrich 4ce7ea503f Rename help and documentation to icingacli.
Refs #5802
2014-03-19 17:25:53 +01:00
Johannes Meyer 1604f4728b Fix that the TreeToSqlParser cannot handle partial conjunction nodes 2014-03-19 09:11:25 +01:00
Johannes Meyer e355415164 Fix that queryfilters are being ignored by the parser 2014-03-19 09:11:25 +01:00
Johannes Meyer 617b6822d7 Add pagination support to the servicematrix
refs #4180
2014-03-19 09:11:24 +01:00
Johannes Meyer dbab546f0a Make page/limit params work if either of those is hardcoded 2014-03-19 09:11:24 +01:00
Johannes Meyer eae4cd3b2a Add support for distinct database queries
refs #4180
2014-03-19 09:11:24 +01:00
Johannes Meyer 13b509bf4b Do not display hosts without any services in the servicematrix
refs #4180
2014-03-19 09:11:24 +01:00
Johannes Meyer 0a5c2c5bd7 Make filtering/sorting of the servicematrix work
refs #4180
2014-03-19 09:11:24 +01:00
Johannes Meyer 71f4b6960b Add servicematrix view
refs #4180
2014-03-19 09:11:24 +01:00
Thomas Gelf 58248c34a9 Remove width & height settings from dashboard components 2014-03-17 17:43:45 +00:00
Thomas Gelf 462bb2e4d5 Fix obsolete Logger::warn in Ldap\Connection 2014-03-17 16:18:33 +00:00
Thomas Gelf 7fc47ef961 Increase DB-Connection default timeout, 2 secs are sometimes too harsh 2014-03-17 16:17:55 +00:00
Thomas Gelf ebbd4119c2 New approach for view helpers - register anonymous functions
* May be subject to change
* TODO: Find out how to phpDoc them
* Removed a bunch of "old-style" view helpers
* more to come
2014-03-17 17:14:16 +01:00
Thomas Gelf 757570cdc2 Improve Action Controller postDispatch readability 2014-03-17 17:11:08 +01:00
Thomas Gelf 4466053679 Widgets should inherit common base class
* Get rid of the pass-view-object-around approach
* Remove <i> tags
* Remove PHP_EOL where it doesn't make sense
* Fix small HTML issues
2014-03-17 17:04:09 +01:00
Thomas Gelf e964da9579 URL default encoding should match rules for href's. &nbsp; VS & 2014-03-17 16:59:22 +01:00
Thomas Gelf c76729a821 Fix CLI complaining without log config 2014-03-11 20:45:01 +01:00
Alexander Klimov 7d08636af4 Handle missing config files more intelligent 2014-03-11 15:43:41 +01:00
Thomas Gelf 11c44af35e Remove obsolete requestId 2014-03-09 23:21:27 +01:00
Thomas Gelf ee01b28646 Replace tabs with whitespaces 2014-03-09 21:16:56 +01:00
Thomas Gelf 7449f2565a Make timeUntil behave like timeSince 2014-03-09 21:12:24 +01:00
Michael Friedrich df0dbaad5c Fix null value in timestamp format. 2014-03-09 20:53:38 +01:00
Thomas Gelf 93dc45241a Fix missplaced autosubmit in sort box 2014-03-09 18:02:12 +01:00
Thomas Gelf 4d48f4fb0e Filter form restyle dirty preview 2014-03-09 02:03:06 +01:00
Thomas Gelf e480ed7aad We have no data-icinga-component 2014-03-09 01:59:27 +01:00