Commit Graph

1272 Commits

Author SHA1 Message Date
Matthias Jentsch 573a4ea12f Fix spelling mistakes 2014-08-28 16:14:59 +02:00
Eric Lippmann 4ca1eaa7ce Merge branch 'bugfix/rebuild-form-builder-5525' into bugfix/commands-6593
Conflicts:
	library/Icinga/Web/Form.php
	modules/monitoring/application/forms/Config/SecurityForm.php
2014-08-28 13:58:02 +02:00
Marius Hein e345aa257a Platform: Drop *Available function
Create a function extensionLoaded and change usages.

refs #5514
2014-08-28 12:14:55 +02:00
Marius Hein 9d0037a53a ResourceFactory: Add function create(<name>)
The ConfigAwareFactory is an interface forcing "backend-type" classes to call
ResourceFactory::createResource() passing a config they got in the constructor.

That's kind of overdesigned, if the ResourceFactory wants to be something like
a service locator it's responsabilities should include object instantiation.

refs #5514
2014-08-28 12:14:54 +02:00
Marius Hein 35d11bd145 Class doc for Platform
refs #5514
2014-08-28 12:14:54 +02:00
Marius Hein 9b83074cc9 Class doc for ResourceFactory
refs #5514
2014-08-28 12:14:54 +02:00
Marius Hein 22e17e9901 ResourceFactory: Move available function to platform
refs #5514
2014-08-28 12:14:54 +02:00
Matthias Jentsch 947cd0c5d3 Merge branch 'master' of git.icinga.org:icingaweb2
fixes #7006
2014-08-27 17:22:09 +02:00
Alexander Klimov e6612fefe7 FilterParseException: extend IcingaException
refs #6931
2014-08-27 16:26:43 +02:00
Alexander Klimov afd0c20c42 FilterException: extend IcingaException
refs #6931
2014-08-27 16:23:44 +02:00
Alexander Klimov 45638b218c Throw IcingaException rather than Exception
fixes #7014
2014-08-27 16:03:15 +02:00
Alexander Klimov 7ff51caed0 Remove leading backslashes from the targets of use statements
- use \Exception;
+ use Exception;
2014-08-27 15:51:49 +02:00
Alexander Fuhr 236d384bab Fixes unaccepted behavior in module configuration
fixes #7011
2014-08-27 14:57:08 +02:00
Matthias Jentsch 4a59ff6712 Support preserveAspectRatio in SVGRenderer
Add support for the preserveAspectRatio attributes in root SVG elements, to improve the handling of padding and automatic resizing of inline SVG.
2014-08-27 13:51:52 +02:00
Johannes Meyer e1329058db Do not hard code the name of the form identification element
Like the csrf element name the form identification element name should
be publicly accessible as well.

refs #5525
2014-08-27 13:14:40 +02:00
Eric Lippmann 1dea19504f Revert "Remove leading backslashes from the targets of use statements"
This reverts commit 87a5967501.

At least 'modules/doc/run.php' issues a warning about "The use statement with non-compound name 'Zend_Controller_Router_Route' has no effect"
2014-08-27 12:24:11 +02:00
Marius Hein 88698cb05d Hook/TopBar: Rework interface for monitoring top bar
refs #6929
2014-08-27 11:31:48 +02:00
Marius Hein b7ae66b496 Hook: Add web hook base class
refs #6929
2014-08-27 11:31:47 +02:00
Marius Hein e0d7c3855d Hook: Add class suffix for base class testing
refs #6928
2014-08-27 11:31:47 +02:00
Alexander Klimov 87a5967501 Remove leading backslashes from the targets of use statements
- use \Exception;
+ use Exception;
2014-08-27 11:16:44 +02:00
Marius Hein 5abf41edef Hook/ConfigurationTab: Remove deprecated implementation
ConfigurationTab hook is not used anywhere. Test is
removed also.
2014-08-27 10:29:04 +02:00
Johannes Meyer 6783d51f76 A form is "submitted" when it was "sent" but no submit label was set
This enables us to use handleRequest() as is when no specific submit button
is required.

refs #5525
2014-08-27 10:28:50 +02:00
Johannes Meyer 0ff79b0948 Replace Form::onFailure() with Form::onShow()
There is currently no usecase for onFailure() but for onShow() wherewith
the case is covered when a form needs to be prepared before showing it
to the user while the form was not submitted in any way.

refs #5525
2014-08-27 10:25:50 +02:00
Johannes Meyer d3c2fc858c Access formdata internally using a public helper method
This way concrete form implementations can also simply fetch form
dependent request values without referring to the form's submission
method.

refs #5525
2014-08-27 10:19:33 +02:00
Johannes Meyer 65dd3f9a5b Make the form in view scripts accessible using $form instead of $element
refs #5525
2014-08-27 10:10:55 +02:00
Johannes Meyer 98b2bce15e Icinga\Web\Form::onSuccess() must not return TRUE
When using Icinga\Web\Form directly without creating a specific sub-class
and calling handleRequest() one must not get redirected.

refs #5525
2014-08-27 10:09:29 +02:00
Marius Hein 89541f5727 Merge branch 'bugfix/hook-interface-6932'
fixes #6932
fixes #6928
2014-08-27 09:39:56 +02:00
Marius Hein 7e5b5a0b30 Hook/Grapher: Rework hook interface
Rework interface based on specification and changed consumer calls.

refs #6932
2014-08-27 09:35:43 +02:00
Matthias Jentsch 1ff63dbf3f Support nested keys expressed as single strings in the PreservingIniWriter
Automatically convert keys with dots into nested configurations to avoid errors during the property diff, of the old and new configuration file.
2014-08-26 18:05:22 +02:00
Eric Lippmann 6b88f1c98e Move Commandpipe/* classes from Icinga Web 2's library to the monitoring module
refs #6593
2014-08-26 16:35:30 +02:00
Matthias Jentsch ff1d2e4fed Fix coding style 2014-08-26 15:20:15 +02:00
Goran Rakic 23aa57a5d7 Remove 100% pie slice hack
The getPieSlicePath primitive can draw it now.
2014-08-26 15:20:15 +02:00
Goran Rakic 2575634dec Draw full circle pie slice (100%) as a primitive
Allows getPieSlicePath to draw a full circle pie slice (100%) by slightly adjusting endpoint to have a valid arc. Also hides a central line as there will be no more pie slices.
2014-08-26 15:20:15 +02:00
Marius Hein 376e9aa160 Rename hook base classes
Adding suffix "Hook" to every base class. This simplifies development
because you don't need to alias bases classes in your concrete
hook classes

refs #6928
2014-08-26 14:29:55 +02:00
Johannes Meyer 45cbd3f067 We do not require the request being passed to handleRequest()
refs #5525
2014-08-26 12:31:05 +02:00
Johannes Meyer 5c7999fe9b Forms should be responsible for any redirection as well
If no specific url has been set with setRedirectUrl() a form redirects to the
current action it was posted to.

refs #5525
2014-08-26 12:30:37 +02:00
Alexander Klimov 1f7d4cb61b Merge branch 'master' into bugfix/exceptions-with-printf-params-6931 2014-08-26 11:24:33 +02:00
Alexander Klimov a2011b1665 SystemPermissionException: extend IcingaException
refs #6931
2014-08-26 11:21:57 +02:00
Alexander Klimov febb2d1ae2 ProgrammingError: extend IcingaException
refs #6931
2014-08-26 11:15:19 +02:00
Alexander Fuhr d8bbd7a0a0 Merge branch 'bugfix/modules-dashlet-provider-6639'
fixes #6639
2014-08-26 10:57:37 +02:00
Alexander Klimov 4ec6dbe3f0 Prefer single quotes ' rather than double quotes " 2014-08-26 10:41:17 +02:00
Alexander Fuhr 42e2b34356 Implement self provided configuration for dashboard/dashlets in modules
refs #6639
2014-08-26 10:34:36 +02:00
Alexander Klimov f754531e4d Fix grammatical error 2014-08-26 10:22:14 +02:00
Johannes Meyer 52534a2f46 It is a form's responsibility to process the request it was submitted with
How forms are being validated should not be a task that is part of the
controller action, but should be handled by the form base class as it is
most of the time the same procedure. Now a controller action just sets
up the form to use, calls handleRequest() and acts upon its return value.
(e.g. calling handleRequest() from another form or any redirection)

refs #5525
2014-08-25 17:06:45 +02:00
Johannes Meyer c93ab7951d Check whether a form's data was sent instead of whether it's complete
It is not sufficient to just check whether all required elements are being
submitted. We definetely need to check whether the submit button was
pressed. But doing this and providing a standard button with a static name
simultaneously will produce conflicts if forms are using the same action
urls. To fix this, we'll add an additional form-identification check by using
a form's name or class.

refs #5525
2014-08-25 16:49:54 +02:00
Alexander Klimov 7074fa1331 NotWritableError: extend IcingaException
refs #6931
2014-08-25 12:56:35 +02:00
Alexander Klimov 6c9947326d NotReadableError: extend IcingaException
refs #6931
2014-08-25 12:38:34 +02:00
Alexander Klimov f4dbb4df96 NotImplementedError: extend IcingaException
refs #6931
2014-08-25 12:21:59 +02:00
Alexander Klimov 013aad8f73 MissingParameterException: extend IcingaException
refs #6931
2014-08-25 12:14:18 +02:00
Johannes Meyer 7b221e2aba It should not be a form's responsibility how its submit button should look..
...in case it's a standard button. No need to be DRY here.

refs #5525
2014-08-22 15:20:54 +02:00
Johannes Meyer 2b879b344f Do not populate using createElements() and fix documentation blocks
refs #5525
2014-08-22 12:04:14 +02:00
Alexander Klimov 9c5878cbbe ConfigurationError: extend IcingaException
refs #6931
2014-08-22 11:46:11 +02:00
Alexander Fuhr 20cead67a6 Merge branch 'master' into bugfix/modules-menu-provider-6639 2014-08-22 11:44:10 +02:00
Alexander Fuhr 1886569174 Implement Module self provided configuration for menus
refs #6639
2014-08-22 11:35:42 +02:00
Johannes Meyer bc05d2ee64 Merge LoggingForm into GeneralForm
fixes #6933
2014-08-22 11:05:20 +02:00
Alexander Klimov b764993091 AuthenticationException: extend IcingaException
refs #6931
2014-08-22 10:59:52 +02:00
Alexander Klimov b55a313146 Implement IcingaException
refs #6931
2014-08-22 10:27:30 +02:00
Thomas Gelf 09412d03b6 Benchmark: hide timestamp on HTML output
Wastes space and is mostly useless, absolut and relative expired time
gives more than enough information.
2014-08-22 09:34:43 +02:00
Alexander Klimov 8733238a6e Loader::registerNamespace(): correct exception message 2014-08-21 12:40:41 +02:00
Johannes Meyer bb7972aa39 Merge branch 'master' into bugfix/rebuild-form-builder-5525
Conflicts:
	application/controllers/AuthenticationController.php
	application/controllers/ConfigController.php
	application/forms/Authentication/LoginForm.php
	application/forms/Preference/GeneralForm.php
	modules/monitoring/application/controllers/ChartController.php
2014-08-20 13:13:50 +02:00
Eric Lippmann 995355ec30 lib/Limiter: fix translate w/ sprintf 2014-08-19 16:29:11 +02:00
Thomas Gelf f49a34625e Url\Params: check for QUERY_STRING before using it
fixes #6957
2014-08-19 14:53:56 +02:00
Eric Lippmann 1c74fd7028 Merge branch 'master' into feature/display-documentation-4820
Conflicts:
	modules/doc/library/Doc/DocParser.php
2014-08-19 13:39:48 +02:00
Thomas Gelf db3ef8fbd0 ActionController: remove redirectToLogin default
The redirectOnLogin function now doesn't have any predefined default.
This also leads to the behaviour that "Logout" will not redirect you
anywhere on a new login while "forcibly being logged out" (e.g. by
logging out in another browser tab) will bring you back to where you
came from.
2014-08-19 12:28:24 +02:00
Thomas Gelf a38d71f17c Cli\Command: provide Config()
This makes it feel more like action controllers

fixes #6954
2014-08-19 10:27:26 +02:00
Thomas Gelf 9d4a4f49c9 ActionController: JS should redirect to __SELF__...
...once you lost your session. That's the only way to do this in a
smooth way. When the server get's an unauthenticated request for a
single container, redirecting to auth/login?redir=<that-container>
was not what you expect.

Together with JS handling __SELF__ in redirection URLs this will
play fine.

refs #6935
2014-08-19 09:57:24 +02:00
Thomas Gelf b9cc964e24 Url\Params: remove() should reindex on change
There was a small bug, fixed.

refs #6699
2014-08-19 09:49:53 +02:00
Thomas Gelf 344909dfcd Web\UrlParams: add() and set() should encode...
...while there is now a addEncoded function, mostly for internal use.

refs #6699
2014-08-19 09:45:58 +02:00
Thomas Gelf 217595dc15 Web/Url: more intuitive separator usage
One might not expect to get a URL with params separated by &amp; while
this is the correct way of writing them to HTML attributes. So default
behaviour is right now that all functions return URL params separated
by &, but if you cast a URL (or it's params) to a string, &amp; will be
used.

Additionally there are toString functions allowing you to choose the
separator "manually".

refs #6699
2014-08-19 09:42:16 +02:00
Thomas Gelf 7caccd7691 Web\Url: remove stripUrlFragment()
This function had an interesting history and seems to be a result of
missunderstanding of each others commits. Removed, as the fragment is
already there.

refs #6699
2014-08-19 09:36:15 +02:00
Johannes Meyer f2ed813c9a Fix that Icinga\Web\Url::fromPath drops fragments
fixes #6284
2014-08-14 14:23:31 +02:00
Johannes Meyer 4ddc0e718b Report the default language also as being available for setting up the locale
fixes #6905
2014-08-14 10:48:52 +02:00
Johannes Meyer dc8181cdc5 Escape linefeeds and carriage returns in commands and show them as html
fixes #6088
2014-08-14 10:23:04 +02:00
Johannes Meyer 666591beb7 Encode url before passing it to Icinga\Form\Dashboard\AddUrlForm
fixes #6611
2014-08-13 16:41:40 +02:00
Johannes Meyer 7311ab964e Do not set the full url from the request as action with form parameters
Setting an url with parameters named like form elements in a form with
method POST causes Zend to ignore any POST data because GET will be
processed with higher priority.

fixes #6806
2014-08-13 14:50:21 +02:00
Johannes Meyer e7da9c0a00 Make our anti CSRF logic being a form element
refs #5525
2014-08-12 14:43:10 +02:00
Johannes Meyer fe63ce664f Make use if 'ignore´ instead of explicitly unsetting array keys
refs #5525
2014-08-12 13:57:28 +02:00
Johannes Meyer 4b1169c0a1 Fix improper form submission
refs #5525
2014-08-12 10:41:19 +02:00
Thomas Gelf 8f729bfb65 ActionController: set a default window title
In case a controller action didn't set a view title this fix restores
the default title on XHR requests.

fixes #6797
2014-07-31 17:04:26 +02:00
Marius Hein 56a29354d3 AutoLogin: Check the remote username against logged in user
fixes #6462
2014-07-30 12:54:08 +02:00
Marius Hein e2c761a7aa AutoLogin/Logout: Remove own session namespace
Store data in the user and implement interface to left
backends store remote information.

fixes #6461
2014-07-30 12:35:55 +02:00
Eric Lippmann 294728ac47 Revert "Autologin: Test logged session against remote user"
This reverts commit 64954e9924.

If the strip_username_regex is configured on the autologin backend and applies on a user's name,
the authenticated user's username does never match the REMOTE_USER server variable.
Thus the application will logout/login on every request which results in a redirect loop.

refs #6462
2014-07-29 17:50:44 +02:00
Marius Hein 64954e9924 Autologin: Test logged session against remote user
fixes #6462
2014-07-29 12:06:43 +02:00
Marius Hein 8b9d446d2e Autologin: Remove deprecated autologin methods
Remove methods from manager because autologin
is now handled with special backends (AutoLoginBackend).

The session is used to store the status about a remote
user authentication to send a 401 header to the client
upon logout.

refs #6461
2014-07-29 10:48:57 +02:00
Eric Lippmann edc89d6ad6 lib: Remove `NodeRenderer'
`NodeRenderer' is superseded by `TocRenderer'.
2014-07-28 19:12:35 +02:00
Eric Lippmann e26d360561 lib/Node: Remove method `findNodeBy()'
The new `DocTree' class provides `getNode()'.
2014-07-28 19:07:13 +02:00
Eric Lippmann bbcdcb4609 lib: Add `Identifiable' interface for objects that are identifiable by an ID of any type 2014-07-28 19:05:37 +02:00
Johannes Meyer c3731fa79e Adjust removeresource-action to suit the new resource form interface
refs #5525
2014-07-24 16:17:30 +02:00
Eric Lippmann a68ccecb28 Revert "Do not use htmlspecialchars in widgets"
This reverts commit 2ff43abcf5.

`Widget::escape()' does not exist. But `Widget::view()::espcae()' does.
2014-07-23 12:28:04 +02:00
Alexander Klimov 2ff43abcf5 Do not use htmlspecialchars in widgets
refs #6759
2014-07-23 12:12:05 +02:00
Johannes Meyer 8b2cc3a558 Do not consider <button type=submit> when checking form completion
refs #5525
2014-07-23 10:58:45 +02:00
Johannes Meyer 0bf0213547 Rename Form::addElement to Form::createElement
Since we are using mainly createElement and addElement is only an alias for
createElement if no object is passed our changes to addElement can safely
be moved to createElement.

refs #5525
2014-07-23 10:57:46 +02:00
Johannes Meyer 25c9ee567d Add missing use statement for Zend_View_Abstract 2014-07-23 10:54:22 +02:00
Eric Lippmann e005333806 Merge branch 'master' into feature/display-documentation-4820 2014-07-22 12:25:58 +02:00
Matthias Jentsch 0eaaaf2f29 Make bar charts thicker 2014-07-22 11:32:52 +02:00
Matthias Jentsch 4b8bb99fa1 Fix svg text rotation in firefox
Use the SVG transform attribute instead of the writing-mode attribute to support firefox.
2014-07-22 11:26:35 +02:00
Matthias Jentsch 0a500efd8a Determine the max value in LinearUnit dynamically
The range between min and max should always be divisable by the amount of
ticks, to ensure that the vertical lines are always at a full discrete value.

fixes #6769
2014-07-21 17:21:54 +02:00
Johannes Meyer 75e09f2c69 Do not consider submit buttons when checking form completion
refs #5525
2014-07-21 15:25:00 +02:00
Alexander Klimov cebd71b2ff Fix "Fatal error: Interface 'Icinga\Data\DatasourceInterface' not found in Icinga\Protocol\File\Reader"
fixes #6722
2014-07-21 14:14:13 +02:00
Alexander Klimov c5ecbf250d lib: add FileReaderException for file reader specific errors
refs #6722
2014-07-21 14:11:08 +02:00
Alexander Klimov 6df7be7ee5 File/Query: Fix `applyFilter' and `order' not matching SimpleQuery's interfaces
refs #6722
2014-07-21 14:09:40 +02:00
Matthias Jentsch 091ddbe552 Partiall revert bfc54b7e
Refactor Url->getParams() to return an instance of UrlParam instead of an array.

fixes #6760
2014-07-21 09:22:19 +02:00
Johannes Meyer f5ac592645 Do not consider disabled elements when checking form completion
Values of disabled inputs are not sent by browsers.

refs #5525
2014-07-21 08:57:41 +02:00
Alexander Klimov 5ea02b41ea Optimize variable names and positions, cast array direct to object 2014-07-18 17:35:24 +02:00
Thomas Gelf 2a204897b4 DbQuery: improve method description
Not English mine this was, copy paste did I ;)
2014-07-18 16:48:52 +02:00
Thomas Gelf 209894d857 DbQuery: add dummy isTimestamp function
Not the best solution, but helps for now.

fixes #6675
2014-07-18 16:35:29 +02:00
Johannes Meyer f4ff2c90f2 It's a form's responsibility how its submit button should look like
refs #5525
2014-07-18 09:54:36 +02:00
Johannes Meyer 6ac471c598 Also mention the viewscript functionality of Form::loadDefaultDecorators()
refs #5525
2014-07-18 09:52:50 +02:00
Johannes Meyer 8f0b9899a3 We cannot know what kind of data is passed to Form::isValid()
refs #5525
2014-07-18 09:52:05 +02:00
Johannes Meyer 78a6175acc Make form creation lazy and implement the new validation mechanism
Form creation must not depend on specific function calls. If a forms' elements are required and missing, create them. Form::isValid() must be
able to determine whether a form can be processed or not without to rely
on a particular button value.

refs #5525
2014-07-18 09:51:15 +02:00
Johannes Meyer 37fd3deb67 Rename initCsrfToken to addCsrfToken and move it upwards
Form::addCsrfToken() should be public and fluent to ensure more
flexibility.

refs #5525
2014-07-18 09:43:03 +02:00
Johannes Meyer 58188c5cc1 We only want to rely on Form::isValid() when about to process forms
As the new auto-submission implementation does not depend on whether
a submit button was pressed or not we need another way to determine
whether a form should be processed.

refs #5525
2014-07-18 09:33:09 +02:00
Johannes Meyer 802c095bf8 Configuration values need to be inserted to forms explicitly
It's the controllers' responsibility to ensure that forms are populated with
configuration values on GET requests.

refs #5525
2014-07-18 09:27:10 +02:00
Johannes Meyer 21cd503ee7 Form buttons need to be added explicitly
We either demand the user to add a submit button or provide a implicit
function call to be implemented by him, adding additional elements once
the form gets rendered.

refs #5525
2014-07-18 09:24:49 +02:00
Johannes Meyer 47ae4d79dc Forms do not need a special title property
As our upcoming wizard has no menu and our tabs are hardcoded we do not
need a special "title" property anymore.

refs #5525
2014-07-18 09:21:11 +02:00
Johannes Meyer 1de2d0c14f Merge branch 'master' into bugfix/rebuild-form-builder-5525
Conflicts:
	application/forms/Authentication/LoginForm.php
	library/Icinga/Test/BaseTestCase.php
	library/Icinga/Web/Form.php
	library/Icinga/Web/Form/Decorator/BootstrapForm.php
2014-07-17 13:15:42 +02:00
Matthias Jentsch bfc54b7e32 Fix array conversion of the Dashboard and its Components
Do not omit the parameters when converting the dashboard components to
an array. Add an array conversion to the UrlParams class.

refs #6691
2014-07-16 17:31:01 +02:00
Johannes Meyer 5c507d5d91 Fix notice that the session has been already started after retrieving its id 2014-07-16 15:39:40 +02:00
Johannes Meyer eb977b7a55 Fix wrong variable assignment causing preferred languages not being set 2014-07-16 15:17:14 +02:00
Johannes Meyer e5fdf78c98 Fix testing errors due to accessing the session id by using our container 2014-07-16 10:18:00 +02:00
Johannes Meyer e6dee9fe89 Protect login against CSRF
refs #5626
2014-07-16 09:55:23 +02:00
Johannes Meyer b40027b6c7 Purge session when logging out
fixes #6739
2014-07-16 09:55:22 +02:00
Johannes Meyer 19f05256a0 Only call session_start() when reading from session
fixes #6383
2014-07-16 09:55:22 +02:00
Johannes Meyer c7c2ad3790 Improve preference changeset calculation
The calculation is still subject to the concrete writer implementation as its
parent Icinga\User\Preferences\PreferencesStore is only an abstraction
layer without any knowledge how the data is actually stored so it is not able
to determine how to handle differences.

fixes #6220
2014-07-15 14:54:57 +02:00
Johannes Meyer 3105c2059e Remove license headers from all files
refs #6309
2014-07-15 13:43:52 +02:00
Johannes Meyer e567ad67c5 Display statehistory summary vertically
fixes #6636
2014-07-14 15:26:35 +02:00
Eric Lippmann 906c132dc0 Merge branch 'master' into feature/display-documentation-4820 2014-07-11 16:05:09 +02:00
Johannes Meyer ab410de615 Make Icinga\Logger\Writer\FileWriter output more useful error messages
fixes #6464
2014-07-10 16:40:36 +02:00
Johannes Meyer 0dce204651 Refactor Icinga\Web\Form
We eagerly waited badly for a new approach to build forms, so here it is.
Should be the best compromise between the Zend_Form functionality and
our requirements regarding automatic submits.

refs #5525
2014-07-10 11:13:45 +02:00
Johannes Meyer 1a1263d9d8 Rename Icinga\Web\Form\Decorator\BootstrapForm
We do not use bootstrap anymore but do not want the default Zend
decorators either so this decorator got a more common name.

refs #5525
2014-07-10 11:09:48 +02:00
Matthias Jentsch 3ed67c9af6 Determine the scale factor correctly
Fix error in the logic of the context renderer, that lead to a wrong scale factor
when the width was bigger than the height
2014-07-09 18:13:40 +02:00
Matthias Jentsch 8d697a3d8e Fix coding style 2014-07-09 18:13:40 +02:00
Matthias Jentsch ec3bafa026 Fix number formatting in chart classes
Use explizit number formatting instead of implicit type conversions when
rendering SVGs, to prevent a change of the locale from breaking the charts.

fixes #6585
2014-07-09 18:13:40 +02:00
Johannes Meyer 0fc2604af3 Use Icinga\Data\Db\DbConnection instead of Zend_Db_Select directly
fixes #6218
2014-07-09 10:41:54 +02:00
Thomas Gelf 49c679fe0f FilterEditor: hide "add" links
They where there to show how this should look like. Removed for now as
they are not implemented yet.

refs #6668
2014-07-08 17:21:36 +02:00
Johannes Meyer bb2c85f90b Remove forgotten ActionController::requiresConfig() call
Should have been reverted by last commit but was not.
2014-07-07 16:12:26 +02:00
Johannes Meyer 82d2f5ac9b Revert "Merge branch 'feature/install-wizard-6136'"
This reverts commit 88d4262e7c, reversing
changes made to 6fae333048.

Conflicts:

	application/controllers/InstallController.php
	library/Icinga/Web/Controller/ActionController.php
2014-07-07 15:09:03 +02:00
Johannes Meyer b3cb29d804 Make Icinga\Util\Tranlsator not only return locale codes with encodings
refs #6602
2014-07-07 09:09:22 +02:00
Thomas Gelf 0d4166b1bd ModuleActionController: fix reference, var removed 2014-07-04 12:39:23 +02:00
Thomas Gelf 3cfdf4c977 Web\Response: add redirection function
The response now provides redirectAndExit(). One more step to clean up
our action controller. Please not that this is still unused right now.
2014-07-04 12:35:33 +02:00
Thomas Gelf 3772b9c16f ActionController: set layout module name early
Didn't work correctly before
2014-07-04 12:33:49 +02:00
Matthias Jentsch 485e2168c1 Fix coding style 2014-07-04 11:42:24 +02:00
Matthias Jentsch 05139ae684 Fix a bug in the section map creation of the IniEditor
Don't omit the first line when putting 'glued' comments into
the following section
2014-07-04 11:38:30 +02:00
Matthias Jentsch 57f3023ec4 Fix coding style 2014-07-03 16:20:45 +02:00
Johannes Meyer 143a1e44fe Add a HTML renderer for Icinga\Web\Menu
The menu was being rendered through recursive partials before. The
overhead this fact implicates is not as efficient as standard recursion
so there is now a special renderer for Icinga\Web\Menu utilizing
the RecursiveIteratorIterator

refs #6153
2014-07-03 15:46:46 +02:00
Johannes Meyer be18af7e7e Merge Icinga\Web\MenuItem into Icinga\Web\Menu
We do not need an additional class for the menu's root item just to
encapsulate our config handling, so these two classes were now merged
into a single one. Icinga\Web\Menu now also extends from
RecursiveIterator to be able to render the menu more efficient to html.

refs #6153
2014-07-03 15:14:47 +02:00
Eric Lippmann 545a153490 Merge branch 'master' into bugfix/test-fix-6542 2014-07-02 10:57:08 +02:00
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