- 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
This has the reason that it's better to add a cache-buster via
requirejs, so only the main.js module must be modified in development
mode and we avoid an ugly bug in recent Chrome versions that prevents
<script> nodes from being correctly loaded in some cases (aborted
requests)
refs #4611 (not really, but kind of)
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
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
This commit summarizes the bugfixes made in this branch. As the frontend the fixes required a lot of stuff to be fixed afterwards and #4602 was used as a larger example regression test, this affects a few tickets:
- (Bug 4491) Frontend tests will hang randomly: CasperJS now operates on the installed version, so this shouldn't happen anymore
- (Bug 4602) Configuration Interface - Authentication: Backends moved when pushing enter: The authentication interface is reworked and does not persist a state over pages
- (Bug 4605) /tmp should not be the default log path: Now it is the application relative var/log path
- (Bug 4606) Configuration: Show message that changes were saved successfully: Implemented and tested with casperjs
- (Bug 4641) Installation/Testing fix configure/make: This has been reworked
- (Bug 4642) Allow Application placeholder in config: This was required for implementimg 4605
- (Bug 4643) Application doesn't work with older Zend Versions: A fallback __call has been implemented for this
refs #4491
refs #4602
refs #4605
refs #4606
refs #4641
refs #4642
refs #4643
the runner now supports --host, --port, --path, --user and --pass for
icingaweb access and doesn't spawn any servers by itself.
Also a login test has been added. Other tests are removed as they don't
apply anymore.
refs #4491
Add a component loader that finds components by searching for elements with the
"data-icinga-component" attribute and loads the corresponding JavaScript file
from the backend to render the component.
refs #4456
- Rename ConfigurationController to ConfigController
- ConfigController and PreferenceController are now subclasses of
BaseConfigController and BasePreferenceController
- Module and Application Config/Preference Tabs are detected via
the ControllerTabCollector
- Moved Controller classes to Icinga/Web/Controller (this is why
so many files are modified)
refs #4530
Support date, time and datetime formatting based on format strings
set either by the user or via config.ini. The view helper
FormDateTime uses the new helper already
refs #4440
refs #4424
- Fixed concatenation
- Added license header where missing
- Fixed the index controller fetching the wrong parameter ('dashboard' instead of 'pane')
refs #4192
The optional width/height parameter can be set in the ini to change the dashboard components
size, documentation has been added and in the error case a message with the configuration is shown
refs #4192
As Widget's already denote an abstract concept, the name
'AbstractWidget' is redundant. Also this class didn't do anything except
fetching a view via a singleton (which is now injected into the render method)
and bypassing the PHP class properties by creating a 'properties' array which is
filled with magic getters and setters (which now are simply php class properties)
Further changes:
- toString is removed, as this incorporated a lot of
application logic which would cause unrecoverable
errors when throwing exceptions
- renderToHtml is now just render and the view dependency must be
passed, as a widget shouldn't be responsible for getting
view instance (this means that <?= $this->tabs ?> is now
<?= $this->tabs->render($this); ?> in the templates
- Controllers don't have $this->widget anymore as Widgets are
directly instanciated with their class, allowing better code completion
and avoiding hidden dependencies, also Widget::create is now removed
in favor of direct instanciation.
refs #4192
Add an ini writer that respects the file structure and the comments that may be
already present in the config file. Move Application/Config.php into
Config/Config.php.
refs #4352
Add the downtime overview view, add the downtimes controller action, fix issues
with the the DowntimeQuery and add the new fields to the DowntimeView. Fix
issues in the ShowController that occur due to the changes in the DowntimeQuery.
refs #4188
The constructor of the class is now private, instantiation happens
with Url::fromRequest and Url::fromPath. Also updated all occurences
of Url and fixed the Qlink helper to not overwrite the baseUrl with null
values
refs #4381