Commit Graph

331 Commits

Author SHA1 Message Date
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 11c44af35e Remove obsolete requestId 2014-03-09 23:21:27 +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
Thomas Gelf 796265d304 Widget interface is useless, prepare for removal in favour of AbstractWidget 2014-03-09 01:58:42 +01:00
Thomas Gelf bd7280305a Cast widget render() result when casting to string 2014-03-09 01:57:25 +01:00
Thomas Gelf 0fe493b007 Allow us to have responses with no output not rendered in JS 2014-03-08 12:07:03 +01:00
Thomas Gelf 296d8c7969 Send notifications on site reload and via XHR 2014-03-07 23:15:51 +00:00
Thomas Gelf 4603219677 Undefined variable in Web\Notification 2014-03-07 23:15:16 +00:00
Alexander Klimov b410ebeed6 Remove unnecessary spaces at end of line 2014-03-06 13:08:11 +01:00
Thomas Gelf 6ed72e1565 Mess with PDF generation code
* Works more or less
* Rewrite image tags on the fly
* Sample header image (still ugly)
* Trying hard to find a way for CORRECT page footers and line numbers
2014-03-06 11:21:11 +00:00
Thomas Gelf 9971030965 Send PDF BEFORE we take care of custom headers 2014-03-06 11:15:28 +00:00
Thomas Gelf 063939b73a We don't die unless we're dead ;) 2014-03-06 11:14:21 +00:00
Thomas Gelf 294d8f87bf Move moduleContainer to a separate function as it will be removed 2014-03-06 11:13:07 +00:00
Thomas Gelf e4540a2cf3 Fix type/HTML error in HistoryColorGrid 2014-03-06 10:07:38 +00:00
Thomas Gelf e930df4c54 Provide a method to generate PDF CSS 2014-03-06 09:21:32 +00:00
Thomas Gelf c5ad14e781 Dashlet title links should not replace the dashlet 2014-03-06 09:20:40 +00:00
Matthias Jentsch 819e7e9806 Implement Widget to display problems as matrix over time
refs #5703
2014-03-05 20:19:09 +01:00
Thomas Gelf af7ca57b41 Clean up JavaScript and CSS loaders, prepare for minimized delivery 2014-03-04 15:15:08 +00:00
Thomas Gelf b09ea7c690 Sample ticket hook 2014-03-04 12:50:49 +00:00
Thomas Gelf 22e5ca34bc Autorefresh, custom headers and _render in ActionController 2014-03-04 11:37:54 +00:00
Thomas Gelf 215d9df111 Add Dashboard::getActivePane() and complain when asking for invalid one 2014-03-04 11:18:28 +00:00
Thomas Gelf 6d3db4732a Whitespace 2014-03-04 11:17:27 +00:00
Thomas Gelf 8c78600841 JS components are gone 2014-03-04 11:15:56 +00:00
Thomas Gelf 57caacb93f Merge branch 'feature/fanzzzy-5481' into feature/master-1
Conflicts:
	application/controllers/AuthenticationController.php
	application/controllers/ErrorController.php
	application/views/scripts/authentication/login.phtml
	library/Icinga/Application/ApplicationBootstrap.php
	library/Icinga/Web/Controller/ActionController.php
	library/Icinga/Web/Hook.php
	library/Icinga/Web/Widget/Dashboard.php
2014-03-04 09:42:25 +00:00
Eric Lippmann 07d04628cf Merge branch 'feature/installation-and-configuration-cleanup-5638'
Conflicts:
	config/config.ini.in
	library/Icinga/Application/ApplicationBootstrap.php
	library/Icinga/Application/Cli.php
	library/Icinga/Application/EmbeddedWeb.php
	library/Icinga/Application/Logger.php
	library/Icinga/Application/Modules/Manager.php
	library/Icinga/Application/Web.php
	library/Icinga/Authentication/Backend/DbUserBackend.php
	library/Icinga/Authentication/Manager.php
	library/Icinga/User/Preferences/IniStore.php
	test/php/library/Icinga/Application/LoggerTest.php
2014-03-03 19:03:39 +01:00
Matthias Jentsch b118e9679d When webserver setting is missing regular authentication will be used
Check if the remote user is set and use regular authentication when the key is missing.

refs #5405
2014-02-26 18:08:48 +01:00
Johannes Meyer 3555e66018 Make IcingaWeb using the new log wrapper
refs #5683
2014-02-26 11:19:52 +01:00
Thomas Gelf 6ebe723f7e Remove obsolete data attributes from filter box, add placeholder 2014-02-25 10:27:11 +00:00
Thomas Gelf 912b3a6478 Remove obsolete form classes 2014-02-25 10:05:14 +00:00
Thomas Gelf 1b4f055bfa Adjusted tab extensions to fit new URLs 2014-02-21 14:03:49 +00:00
Eric Lippmann 73dc6c3c27 Render "inline" layout if the view parameter is set to "compact" 2014-02-21 14:03:49 +00:00
Eric Lippmann 7033c41503 Fix Fatal error: Can't inherit abstract function Icinga\Web\Widget\Widget::render() 2014-02-21 14:03:49 +00:00
Eric Lippmann 94a900bb5c Remove deprecated code 2014-02-21 14:03:49 +00:00
Thomas Gelf f9f522d599 Re-allow dashboard to render itself 2014-02-21 14:03:49 +00:00
Thomas Gelf cea4923eae Temporarily re-added AbstractWidget, we should discuss this 2014-02-21 14:03:48 +00:00
Thomas Gelf b7de09f6ba Render 'inline' if xhr request, missing use added 2014-02-21 14:03:48 +00:00
Thomas Gelf db19ddca25 Added module container, may be dropped again 2014-02-21 14:03:47 +00:00
Thomas Gelf 6b308986d1 Small syntax changes 2014-02-21 14:03:47 +00:00
Thomas Gelf ac0faa26a8 Started to restructure less compiler:
* Combine all files and compile once
* Allow to collect module less files
* No recursion
2014-02-21 14:03:47 +00:00
Thomas Gelf 62ca46e9cd Re-added widget loader 2014-02-21 14:03:47 +00:00
Thomas Gelf 34316ccbca Lighter tab html, support casting to string 2014-02-21 14:03:47 +00:00
Thomas Gelf 73fdcdef47 use without backslash 2014-02-21 14:03:47 +00:00
Thomas Gelf 445c981d01 Tab extensions use imgs instead of icons 2014-02-21 14:03:47 +00:00
Thomas Gelf 3faf1ec725 Lighter HTML in the dashboard component, handle missing URLs 2014-02-21 14:03:47 +00:00
Thomas Gelf 9e66d22c76 One more TODO: Query-String handling in action controller 2014-02-21 14:03:47 +00:00
Thomas Gelf 69538270f7 Action controller example function: Config() 2014-02-21 14:03:47 +00:00
Johannes Meyer 68357e9ca2 Fix coding style 2014-02-21 14:07:32 +01:00
Eric Lippmann 7fa6668b64 Make Icinga Web 2 work without any config file
refs #5638
fixes #5523
2014-02-20 13:53:28 +01:00
Matthias Jentsch a2baf4217b Add php script to render dynamic svgs of inline charts
Add a php script to render dynamic SVGs as a fallback and add a widget to draw
inline charts.

refs #5679
2014-02-19 18:29:59 +01:00
Markus Frosch 971a87c608 Fixed executable flags on normal files.
Refs #5040
2014-02-18 09:42:13 +01:00
Eric Lippmann 35fc451115 Rework save preferences 2014-02-17 14:11:55 +01:00
Matthias Jentsch 342a9375de Move pdf.css into different directory to prevent it from being loaded during
regular requests.

refs #5644
2014-02-12 15:44:02 +01:00
Matthias Jentsch 4e5569371f Show only mainDetailGrid in pdf and move css fixes to less-directory
refs #4356
2014-02-12 12:11:49 +01:00
Matthias Jentsch a064ef520d Fix page-break on table rows
The dompdf library messes up the document layout, when page breaks reach over
several sites and will eventually even crash completely. Add a function to
split up tables in different chunks to fix this issue.

refs #4356
2014-02-12 12:11:49 +01:00
Matthias Jentsch db0f61fff1 Convert the opened view to pdf
refs #4356
2014-02-12 12:11:49 +01:00
Matthias Jentsch 80488644d4 Add pdf export functions
refs #4356
2014-02-12 12:09:33 +01:00
Marius Hein 1a6d1a20fb Fix: Simplify TopBar hook
refs #5597
2014-02-12 09:58:59 +01:00
Marius Hein 51188daa45 Implenent TopBar hook and status summary as hook in monitoring
refs #5597
2014-02-11 17:12:17 +01:00
Eric Lippmann 1caacbf20f Modules/Doc: Set rel="nofollow" on header links missing a user-specified id
refs #4820
2014-02-11 15:27:42 +01:00
Eric Lippmann 75577cec51 Modules/doc: Replace Michelf/Markdown with Parsedown
refs #4820
2014-02-11 15:09:03 +01:00
Thomas Gelf 3d636423c8 MenuItem renamed, small fixes
* One less namespace, better naming
* hasItem() added
* throws Exception when trying to access invalid Items
* Automagically creates missing parents when adding named childs
2014-02-03 14:16:17 +00:00
Johannes Meyer bd34669357 Refactor i18n implementation
One can now use $this->translate(msg) in a view or controller without the
need to pass the module domain (web&cli). Forms still need to be built
with _t(msg) and _mt(dom, msg).

refs #5533
2014-01-29 16:25:08 +01:00
Johannes Meyer f4a00d24e5 Fix exception when a module has no menu configuration 2014-01-29 12:09:35 +01:00
Eric Lippmann 77f7c9c1a6 Fix menu throwing an exception when a parent menu item does not exist
refs #3759
2014-01-28 14:43:43 +01:00
Eric Lippmann 48f5eebd53 Menu: Fix code compliance
refs #3759
2014-01-28 13:34:57 +01:00
Chris Rüll c4a00b8d31 Menu Configuration
Rework the Menu.Ini files and Include a new class to create a menu inside the project
2014-01-28 13:34:57 +01:00
Eric Lippmann 71c3fd831f Fix Call to a member function getPreferences() on a non-object when not logged in 2014-01-27 13:22:29 +01:00
Johannes Meyer 1b5b26c2bb Add window awareness
refs #5510
2014-01-24 14:44:19 +01:00
Johannes Meyer cf778d4609 Implement session namespaces
refs #5510
2014-01-24 14:44:19 +01:00
Johannes Meyer ac0b041523 Remove session handling from the authentication manager
refs #5510
2014-01-24 14:44:19 +01:00
Alexander Klimov fc1fb60b01 Re-add benchmark helper
Enable benchmark via user preferences

resolves #5508
2014-01-24 12:20:13 +01:00
Eric Lippmann 2242973568 XHR: Force redirect to login if session is expired
resolves #5507
2014-01-23 16:03:47 +01:00
Thomas Gelf 0f565aae6a Added permission handlers and related sample config reader
Please see feature #4108 for sample usage

refs #4108
2014-01-22 13:06:59 +00:00
Matthias Jentsch cd0194e20f Fetch and clean user messages lazily, to ensure that only shown messages are removed
This will make the code of the ConfigController way easier, as messages can be
send from everywhere and there is no need to consider consquences of
redirections.

refs #5100
2013-11-26 10:41:51 +01:00
Matthias Jentsch 2a0add3ec3 Fix messages in ConfigController
Store messages in the current user session to be able to fetch messages from
other controllers, so that the use can be redirected back to the index, instead
of staying in the original action

refs #5100
2013-11-20 19:10:38 +01:00
Matthias Jentsch 941ce6d68e Fix bug that caused ajax-request to override values written to the session
Authentication/Session.php and its Subclasses do not have a open/closed -state
anymore. Read will refresh the session, write will always write the changes,
and opening/closing will be handled internally.

refs #5101
2013-11-20 12:01:40 +01:00
Matthias Jentsch d65bd33205 Add configuration for resources
Add views and controller to handle resource configuration. Add form to edit
several resource types at once.

refs #4786
2013-11-13 18:12:00 +01:00
Eric Lippmann a9086c5388 Redirect to /index after login 2013-10-23 16:02:08 +02:00
Eric Lippmann ca1d50ae53 Rename Icinga 2 Web to Icinga Web 2 2013-10-23 15:11:06 +02:00
Jannis Moßhammer 1a95e48deb Fix row style, add dashboard as default route 2013-10-23 14:20:32 +02:00
Jannis Moßhammer 8eea09ab53 Add default dashboard, fix componentLoader issue introduced before 2013-10-23 13:06:09 +02:00
Jannis Moßhammer 16124989dd Various style fixes, changed icon size, fixed show/service 2013-10-22 15:58:24 +02:00
Jannis Moßhammer f7c0eaa7c4 Fix/Reimplement dashboard
refs #4532
2013-10-22 12:10:12 +02:00
Jannis Moßhammer c4f3e78c02 Fix filter behaviour, fix statusdat filter
refs #4469
2013-10-21 17:04:39 +02:00
Marius Hein 1a73747740 Implement bootstrap datepicker
refs #4929
2013-10-21 11:32:24 +02:00
Marius Hein a49691068e Add datepicker
refs #4929
2013-10-21 10:32:53 +02:00
Matthias Jentsch 6062d5f716 Add the html-anchor from the url to the login redirection
Change the Url class to support html anchors and add JavaScript to
fetch the anchor from the URL, as it is regularly not send to the
server.

refs #4833
2013-10-20 16:31:56 +02:00
Eric Lippmann 36e9cdb549 Monitoring/register: Add status summary to the top bar 2013-10-20 16:08:53 +02:00
Marius Hein 53ab6dbbf1 Implement global command toggle form in process view
refs #4918
2013-10-19 15:28:51 +02:00
Marius Hein 73e8d60060 Implement global commands
resolves #4142
2013-10-19 13:25:18 +02:00
Matthias Jentsch 1d07a766d9 Add form classes to handle the configuration
Add a tri-state form element to handle the configuration flags and add the form
to the controllers

refs #3788
2013-10-18 16:44:02 +02:00
Jannis Moßhammer 6095a71a8d CS Fixes
refs #4868
2013-10-17 21:40:02 +02:00
Jannis Moßhammer 4a95ba3468 Change url handling to detail on hashtag, add service filter
The url is now
http://%mainUrl%#%anchor%!detail=%detailUrl%
which allows us to better support IE and prevents
the detail url from appearing on the server side.

refs #4868
2013-10-17 19:55:00 +02:00
Jannis Moßhammer d33cec78de Semantic search implementation
- Only implemented for hosts as an example
- URL behaviour still has to be normalized

refs #4469
2013-10-17 19:52:52 +02:00
Jannis Moßhammer dac61eda19 Implement Filter to IDO Sql parser
refs #4469
2013-10-17 19:52:25 +02:00
Marius Hein c624921792 Add error handling for less compiler
refs #4892
2013-10-16 15:52:12 +02:00
Marius Hein 6f26df60f3 Apply less mixins
refs #4895
2013-10-16 15:37:44 +02:00
Marius Hein cc8ecf262f Reorganized styles
refs #4895
2013-10-16 14:49:03 +02:00
Marius Hein 460e0fe242 Implement on-the-fly less compilation
refs #4892
2013-10-16 12:00:09 +02:00
Marius Hein 7a406b313f Adjusted buttons and a tags
refs #4869
2013-10-15 18:10:36 +02:00
Marius Hein 15f0f1aa59 Status view and icons
refs #4824
2013-10-14 13:27:43 +02:00
Eric Lippmann 1ea5778981 Temporary overwrite front controller's request when dispatching detail (WIP)
refs #4823
2013-10-14 12:57:26 +02:00
Eric Lippmann d479ab3536 Widget/Tab: Allow additional a tag attributes
refs #4823
2013-10-14 12:57:26 +02:00
Matthias Jentsch ec2ffcabdf Add redirection to AuthenticationController
refs #4670
2013-10-04 15:43:02 +02:00
Marius Hein e7696bec89 CS: Fixes for controllers: Static, Action, List and Show
refs #4611
2013-09-24 12:52:00 +02:00
Jannis Moßhammer b4000d34fb CS: Fixed styles, add codingStandardsIgnore for helper
refs #4611
2013-09-23 13:56:59 +02:00
Jannis Moßhammer 6d26240d6d Add Main detail state to url, renderhelper, container tests
-   The ActionController is now able to render a seperate detail view
-   All list scripts select the currently active row from the detail view with
    the 'active' class
-   Autosubmit is now again attached to the onchange attribute (to prevent issues
    when js can't load correctly)
-   Logout is now recognized and causes a page refresh (will be made more generic)
-   Add history mock for testing url changes
-   Update all grids to implement the app/mainDetailGrid component

refs #4611
2013-09-23 13:56:57 +02:00
Thomas Gelf c9ce7c53b0 Paginator may be ready for QueryInterface 2013-09-17 10:46:32 +02:00
Eric Lippmann cabe2ccbee Widget/Tabs: Show caret 2013-09-05 14:15:29 +02:00
Eric Lippmann a5908c9553 CS: Replace multiple empty lines with one
find application/ library/Icinga/ test/ modules/ -name *.php | xargs sed -i '/^$/N;/^\n$/D'
2013-09-04 18:36:10 +02:00
Eric Lippmann 35fd9fd391 CS: Remove whitespaces at end of line
find application/ library/ test/ modules/ -name *.php | xargs sed -i 's/\s\+$//'
2013-09-04 18:27:16 +02:00
Eric Lippmann 95e9117325 Fix SortBox not keeping Sort By input after submission 2013-09-04 18:21:10 +02:00
Eric Lippmann 05d08fb0b8 Fix Bootstrap typed wrong
refs #4601
2013-09-04 17:12:44 +02:00
Jannis Moßhammer d27e34cef8 Codestyle and Test fixes for SortBox
refs #4601
2013-09-04 15:22:00 +02:00
Jannis Moßhammer 57e66c247a Add sort widget, change js path from module to app, small style fixes
refs #4601
2013-09-04 15:22:00 +02:00
Jannis Moßhammer a0e63a1320 Fix error message and move validation in own DateTimeValidator
refs #4581
refs #4632
2013-09-04 11:06:36 +02:00
Johannes Meyer 23f0962da1 Adjust command forms and tests
Made those command forms using the DateTimePicker
element compatible with its new validation.

refs #4581
2013-09-03 09:27:02 +02:00
Johannes Meyer 368bd3c9c7 Refactor datetime validation
The DateTimePicker form element needs to know from now on,
how user input can be formatted when validating.

refs #4581
2013-09-03 09:27:02 +02:00
Johannes Meyer 1a003f8c8b Move configuration and preference handling to Form base class
Moved setConfiguration, setUserPreferences and getUserPreferences
to our Form base class due to some redundancies.

refs #4581
2013-09-03 09:27:02 +02:00
Eric Lippmann b09b3676de Rename determineAuthenticationState to requiresLogin
refs #4572
2013-09-02 18:42:05 +02:00
Jannis Moßhammer 9f923b4940 Fix pagination and remove ModuleController, rename handlesAuth
This commit introduces the following changes:
- Count is now performed after joins are added to the selection query,
  therefore returning the correct number
- MonitoringControllerTest now needn't to mock ModuleActionController (which is now removed)
- handlesAuthentication is now requiresAuthentication
- Redirection to login is now directly handled in the ActionController constructor,
  so we don't need to overwrite the preDispatch method

refs #4589
refs #4591
refs #4572
2013-09-02 18:42:05 +02:00
Jannis Moßhammer c5fde2324e Generalize form handling in Icinga\Web Form & Tests
configForm.js is now form.js and applied on all forms,
the autosubmit is now a special attribute for input fields,
so the PHP code doesn't create JS snippets anymore

refs #4622
2013-09-02 10:59:05 +02:00
Jannis Moßhammer 978b3519f6 Add configform js component (will be renamed later)
refs #4622
2013-09-02 10:59:05 +02:00
Jannis Moßhammer 3d3fa45838 Fix ActionController compatibility with older Zend Versions
refs #4643
2013-08-29 11:48:33 +02:00
Jannis Moßhammer 0b515e39ac Implement {app} placeholder and Icinga\Config::resolvePath()
refs #4642
2013-08-29 11:48:32 +02:00
Jannis Moßhammer d0ac97f335 Configure fixes, regression test for 4606
The configure routine still has to be improved, right now unused
authentication backends are commented out

refs #4491
refs #4606
refs #4640
2013-08-29 11:48:32 +02:00
Jannis Moßhammer 17e6402aa9 Split up authentication form, logic connectivity check
refs #4606
refs #4622
refs #4602
refs #4546
2013-08-29 11:48:29 +02:00
Jannis Moßhammer 4527aaf57a Smaller fixes in phpdoc style
refs #4566
2013-08-28 14:42:31 +02:00
Johannes Meyer 7fab739efd Fix styles in Form.php
refs #4566
2013-08-28 09:08:37 +02:00
Johannes Meyer 13e4efa221 Make use of the helptext decorator if suitable
Refactored some uses of the form element Note so that
each one is properly attached to its input element.

refs #4566
2013-08-28 08:57:46 +02:00
Jannis Moßhammer 895976550c Fix templates, capitalization and icons in php files
refs #4550
refs #4584
2013-08-23 10:28:48 +02:00
Jannis Moßhammer 015a914aab Fix template code style, use Bootstrap 3, remove icons
- Icons have now the {{XY_ICON}} format
- custom classes are removed
- A few typos are fixed
- Capitalization

refs #4550
refs #4621
refs #4584
2013-08-23 10:28:48 +02:00
Jannis Moßhammer dc2aad75d1 Modify application templates for proper bootstrap usage
refs #4550
2013-08-23 10:27:16 +02:00
Eric Lippmann cd2ae0450a Config: Hint that moduleFolder directive is currently not in use
refs #3776
2013-08-21 14:22:31 +02:00
Eric Lippmann 8ac914b29a Fix ActionController missing use Icinga\Web\Url
refs #3776
2013-08-21 14:22:31 +02:00
Eric Lippmann edb06ea8ea CS: Fix viloations for touched files in branch feature/backend-configuration-ui-3776
refs #3776
2013-08-21 14:22:31 +02:00
Jannis Moßhammer a6ff6ecadd Fix Codestyle/PHPDoc, fix configPath being Overwritten
Also removed possibility to disable debugging as there's no use case for this

refs #4525
refs #4598
2013-08-21 14:22:30 +02:00
Jannis Moßhammer 972bc9853e Configuration interfaces for logging, authentication and general configuration
- Added HelpText decorator
- Added Time and DateFormatValidator
- Added tests

refs #3777
2013-08-21 14:22:30 +02:00
Jannis Moßhammer c705f5d475 Implement Authentication form
- Allow creation of authentication providers
- Allow modification of authentication providers
- Allow reordering of authentication providers

refs #3777
2013-08-21 14:18:54 +02:00
Jannis Moßhammer 9ddc03d571 Implement General configuration form
Missing:
- Logical validation (check for writable paths)
- DB Resource selection (see #4503)

refs #3777
2013-08-21 14:18:53 +02:00
Jannis Moßhammer 26a5018d16 Add Forms and conditional hidden
refs #3777
2013-08-21 14:18:53 +02:00
Marius Hein dbae055e8e Fix redirector to use relative url
refs #4516
2013-08-21 09:44:01 +02:00
Marius Hein 4cdab8d904 Fix phpcs errors for Icinga\Web\Hook 2013-08-20 19:33:15 +02:00
Marius Hein 0581d9a130 Fix phpcs errors for Icinga\Web\View 2013-08-20 19:26:44 +02:00
Eric Lippmann 7dc2f78b63 CS: Fix docstrings in Icinga/Web/Widget/* and Icinga/Web/Controller/ActionController.php
refs #4512
2013-08-16 15:08:28 +02:00
Jannis Moßhammer 0b479e3796 Code style fixes, fix documentation, fix tab parameters not being overwritten
refs #4512
2013-08-16 15:08:28 +02:00
Jannis Moßhammer b28c7f2f4c Refactor test, tabs and controller
- Remove unused methods,
- Code style
- Documentation for widgets
- Tabextensions instead of hardcoded tab actions
- Add tests for tabs
- Add missing phpdoc for touched files
- Fix tests

refs #4512
refs #4541
refs #4540
2013-08-16 15:08:28 +02:00