Commit Graph

277 Commits

Author SHA1 Message Date
Matthias Jentsch 52c66893ab Add new component loader to load frontend-components
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
2013-08-21 09:40:31 +02:00
Eric Lippmann 41f5499bba Nav: Remove global search since it's not working
refs #4583
2013-08-20 15:14:57 +02:00
Eric Lippmann aff2398c81 Application/Controllers: Follow our Coding Standards
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
Jannis Moßhammer 392e568bf8 Code style fixes: License header, phpdoc tags, psr-2 compliance
refs #4530
2013-08-14 16:08:15 +02:00
Jannis Moßhammer be29b8ff8f Make ConfigController and PreferenceController extensible by convention
- 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
2013-08-14 16:08:15 +02:00
Eric Lippmann 2c217d1d06 Framework/DateTime: No longer use the Unix timestamp format since this ignores the time zone
refs #4440
2013-08-12 16:43:10 +02:00
Eric Lippmann 5cb9c67443 Framework: Fix Form's docstrings
refs #4440
2013-08-12 16:43:09 +02:00
Eric Lippmann a82d750d6a Framework: Use the DateTime Unix timestamp format in the DateFormat helper
refs #4440
2013-08-12 16:43:09 +02:00
Eric Lippmann 5c98acd36c Framework: Add doctrings to DateFormat view helper
refs #4424
2013-08-12 16:43:09 +02:00
Eric Lippmann da7f619804 Framework: Implement DateFormat view helper
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
2013-08-12 16:43:09 +02:00
Johannes Meyer 94ea09b552 Remove Date and Time form elements
Drops the Date and Time form element as they are redundant.

refs #4440
2013-08-12 16:43:08 +02:00
Eric Lippmann c0e3712e1b Framework/Elements: Implement DateTime form element
refs #4440
2013-08-12 16:42:51 +02:00
Eric Lippmann 93ae6d6811 Framework: mv Icinga\Config\Config to Icinga\Application\Config
refs #4543
2013-08-12 15:02:25 +02:00
Jannis Moßhammer 886da7d0cb Fix codestyle, change wrong 'dashboard' parameter to pane causing pane switching to fail
- Fixed concatenation
- Added license header where missing
- Fixed the index controller fetching the wrong parameter ('dashboard' instead of 'pane')

 refs #4192
2013-08-08 17:42:34 +02:00
Jannis Moßhammer 6e68826da6 Fix PSR compliance of code
refs #4192
2013-08-07 18:10:39 +02:00
Jannis Moßhammer 2a2966fc56 Fix Config.php relocation, fix header.phtml crashing due to old tab rendering
refs #4192
2013-08-07 17:51:52 +02:00
Jannis Moßhammer 488310df37 Fix style and docstrings, exception when removing the last tab
refs #4192
2013-08-07 17:45:09 +02:00
Jannis Moßhammer 9ba3c90931 Rename dashboard folder to work on non case-insensitive fs
refs #4192
2013-08-07 17:44:40 +02:00
Jannis Moßhammer 19764485bc Add untracked files
refs #4192
2013-08-07 17:44:40 +02:00
Jannis Moßhammer 2b25757e20 Add documentation, add errorhandling and sizing
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
2013-08-07 17:44:30 +02:00
Jannis Moßhammer f8bb478f0e Update dashboard implementation
fix javascript naming (icinga-url to icingaurl), fix add form, add remove
button, code style changes

refs #4192
2013-08-07 17:43:37 +02:00
Jannis Moßhammer b3e0d5e8ce Remove AbstractWidget and make Widget an interface
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
2013-08-07 17:41:43 +02:00
Matthias Jentsch 56e47fd084 Add an ini writer for configuration files
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
2013-08-07 15:58:42 +02:00
Eric Lippmann 290c8c5225 CC: Add newline to end of file where missing
Following command was used:
    $ find application/ library/Icinga/ modules/ -name *.php | xargs sed -i -e :a -e '/./,$!d;/^\n*$/{$d;N;};/\n$/ba;$a\'
2013-08-07 10:27:50 +02:00
Johannes Meyer f5162189dd Implement dynamic form elements
Rename "isPostAndValid" to "isSubmittedAndValid" and refactor it.
Add possibility for specific form elements to auto-submit their form.

refs #4439
2013-08-06 15:03:25 +02:00
Marius Hein 15999eb880 Change _forward to redirect() to keep url history updates
refs #4382
2013-08-06 13:39:10 +02:00
Johannes Meyer 98e7ab02db Implement dynamic form elements
Rename "isPostAndValid" to "isSubmittedAndValid" and refactor it.
Add possibility for specific form elements to auto-submit their form.

refs #4439
2013-08-06 11:09:42 +02:00
Matthias Jentsch e47954b471 dd downtime overview
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
2013-08-02 14:48:16 +02:00
Jannis Moßhammer 5c3eb1d796 Style fixes and addParam test
refs #4381
2013-08-02 13:14:56 +02:00
Jannis Moßhammer 50ca1aec1a Refactor URL class and test
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
2013-08-02 13:14:55 +02:00
Marius Hein 5ade338632 Fix wrong getter after renaming
refs #4066
2013-07-30 14:06:46 +02:00
Jannis Moßhammer e2b98a4138 Fix broken login form
The login form was broken, as it used the old form api (disableCSRFToken
instead of setTokenDisabled and isValid instead of isPostAndValid)

refs #4459
2013-07-26 10:34:45 +02:00
Marius Hein e9c9c9de87 Command masks: Fix lazy initialization of forms
refs #4355
2013-07-23 14:47:40 +02:00
Marius Hein 0de38c25eb Command masks: Refactor and implement masks
refs #4355
2013-07-23 14:47:40 +02:00
Marius Hein d5b8a850ea Forms: New form system
Move new form parts arround and add new LoginForm.

refs #4355
2013-07-23 14:46:26 +02:00
Johannes Meyer b351cf61a7 Refactor Form-builder [WIP]
Refactor Form-builder so that it is an abstract extension class of
Zend_Form.

refs #4355
2013-07-23 14:46:25 +02:00
Johannes Meyer 56b8b398c2 Add Number functionality to Icinga\Form\SendCommand 2013-07-23 14:46:25 +02:00
Johannes Meyer 4b8643dc56 Add a date and time form-element.
Added a date and time form-element which are implemented based on the
new "date" and "time" input-types introduced with html5. If those are not
available two bootstrap javascript-modules will be enabled.

refs #4355
2013-07-23 14:46:24 +02:00
Johannes Meyer abda65f4bd Refactor command controller and implement restart action.
Refactored existing command controller so that it reflects the
correct coding style, rewritten the icinga restart command and
added a very simple form for it.

refs #4355
2013-07-23 14:46:24 +02:00
Jannis Moßhammer dac9b7be4b Fix mixedPagination property typo, Statusloader libraries missing and getter for Abstractquery
refs #4178
2013-07-19 17:48:24 +02:00
Jannis Moßhammer c1860e7d5d Merge branch 'master' of ssh://git.icinga.org/icinga2-web into feature/host-overview--4179
Conflicts:
	modules/monitoring/application/controllers/ListController.php
	modules/monitoring/application/controllers/ShowController.php
	modules/monitoring/library/Monitoring/Backend/AbstractBackend.php
2013-07-15 13:52:26 +02:00
Marius Hein e27c73fe15 Autoloader: Move builder to new location [WIP]
refs #4407
2013-07-15 11:07:22 +02:00
Marius Hein 316893ad2c Add new autoloader implementation
New namespace implementation created to load application code
like forms with this autoloader. Consumpting services can register
their own, multiple namespaces. Overlapping namespaces matched
by closest name.

refs #4407
2013-07-12 16:11:03 +02:00
Jannis Moßhammer 820ed8f7a8 Merge branch 'master' of ssh://git.icinga.org/icinga2-web into feature/host-overview--4179 2013-07-12 16:02:00 +02:00
Jannis Moßhammer b045650a19 Merge branch 'master' of ssh://git.icinga.org/icinga2-web into feature/host-overview--4179
Conflicts:
	application/layouts/scripts/layout.phtml
	modules/monitoring/application/controllers/ListController.php
	modules/monitoring/application/controllers/ShowController.php
	modules/monitoring/application/views/scripts/list/hosts.phtml
	modules/monitoring/application/views/scripts/show/components/comments.phtml
	modules/monitoring/application/views/scripts/show/components/contacts.phtml
	modules/monitoring/application/views/scripts/show/components/customvars.phtml
	modules/monitoring/application/views/scripts/show/host.phtml
	modules/monitoring/library/Monitoring/Backend/AbstractBackend.php
	modules/monitoring/library/Monitoring/Backend/Ido/Query/StatusQuery.php
2013-07-12 15:55:31 +02:00
Eric Lippmann 51755209b6 Adapt usage of config class
refs #4354
2013-07-12 15:43:23 +02:00
Jannis Moßhammer 30040eaa1b Add Host detail to hostoverview
This is merge to prevent the host-overview nad
host-detail branch from diverging too much

refs #4179

Conflicts:
	application/views/helpers/TimeSince.php
	modules/monitoring/application/controllers/ShowController.php
	modules/monitoring/application/views/scripts/show/components/comments.phtml
	modules/monitoring/application/views/scripts/show/header.phtml
	modules/monitoring/application/views/scripts/show/host.phtml
	modules/monitoring/library/Monitoring/Backend/AbstractBackend.php
	modules/monitoring/library/Monitoring/Backend/Ido/Query/StatusQuery.php
	public/css/base.less
	public/css/components/details.less
2013-07-12 15:12:26 +02:00
Jannis Moßhammer 7116cfd60a Host list markup and less changes (WIP)
Modified the host list markup to reflect host information.
Comments are currently missing as well as behaviour and final styling.
The styling part is not really part of the ticket, as we decided
not to style or add additional markup, but as the work
has been done in sprint 1.0-4 it makes no sense to
throw it away at this time

refs #4179
2013-07-12 14:14:32 +02:00
Eric Lippmann 2c6f8a8441 Add ImgAction to StaticController 2013-07-12 13:45:11 +02:00
Eric Lippmann e66d17dbf8 Use class Url in mixedPagination.phtml 2013-07-12 13:40:21 +02:00
Eric Lippmann 6d05361370 phtml: Use short_open_tags instead of <?php echo 2013-07-10 17:03:51 +02:00
Marius Hein e817b9b790 Host detail view
Add downtime sub component.

refs #4182
2013-07-08 16:12:47 +02:00
Marius Hein 6be510b05e License writer
Update license headers

refs #4262
2013-07-03 14:17:49 +02:00
Eric Lippmann 4f25a1be0f Add inline.phtml view script
refs #4301
2013-06-28 09:34:28 +02:00
Eric Lippmann 011f211b8f Qlink: Allow urlFormat to be an instance of Url
refs #4301
2013-06-28 09:20:22 +02:00
Eric Lippmann 47926045cf Add layout view helpers
refs #4301
2013-06-28 09:19:43 +02:00
Eric Lippmann 84f042fd8b Add Format.php view helper
refs #4301
2013-06-28 09:19:43 +02:00
Eric Lippmann 674f36b291 Add Util.php view helper
refs #4301
2013-06-28 09:19:43 +02:00
Eric Lippmann 771cfbf4eb Add QUrl.php view helper
refs #4301
2013-06-28 09:14:32 +02:00
Eric Lippmann 9de6e4f950 Add Img.php view helper
refs #4301
2013-06-28 09:14:32 +02:00
Eric Lippmann ef9dabba83 Add TimeSince view helper
refs #4301
2013-06-28 09:14:32 +02:00
Eric Lippmann 658fbd0584 Forward index to welcome
refs #4301
2013-06-28 09:11:12 +02:00
Marius Hein 1ede8df2af Extensible configuration system
Add configuration tab builder parts to register
free configuration tab items

refs #4300
2013-06-27 16:10:54 +02:00
Marius Hein f22ae52768 System settings
Add new configuration controller for the configuration
controllers later.

refs #4299
2013-06-27 12:45:18 +02:00
Jannis Moßhammer 5e5b301d0d Add support for lazy module loading
When the X-Icinga-Module-Enable header is send, the
modulemanager automatically tries to load javascript files for
that module. This is realized by adding the 'registerHeaderListener'
method to the async manager, which allows to listen to specific headers
and firing callbacks if a response with the specified header is retrieved.

Also the tests have changed a bit, requireNow should be used when using
the requiremock, so a require always loads files new.

refs #4092
refs #3753
2013-06-26 16:41:07 +02:00
Jannis Moßhammer 8b84de934a Move ModuleController from incubator
The Notification dependency is removed and uses exceptions now,
otherwise it's mostly the same like in the incubator

refs #4092
2013-06-26 16:39:55 +02:00
Jannis Moßhammer e9ade7a339 Add support for lazy module loading
When the X-Icinga-Module-Enable header is send, the
modulemanager automatically tries to load javascript files for
that module. This is realized by adding the 'registerHeaderListener'
method to the async manager, which allows to listen to specific headers
and firing callbacks if a response with the specified header is retrieved.

Also the tests have changed a bit, requireNow should be used when using
the requiremock, so a require always loads files new.

refs #4092
refs #3753
2013-06-26 16:37:12 +02:00
Jannis Moßhammer d94d89e1cf Add javascript autoloading
the js/modules/%modulename%/%file% is now mapped to the module
path (if existing). To prevent name clashing, the modules folder
has been renamed to components.
2013-06-26 16:37:12 +02:00
Jannis Moßhammer 4f2fb49555 Move ModuleController from incubator
The Notification dependency is removed and uses exceptions now,
otherwise it's mostly the same like in the incubator

refs #4092
2013-06-26 16:36:36 +02:00
Jannis Moßhammer 34f68856ee Add rule for 'body' container and QLink property 'target'
QLinks can now define the target for their link. Additionally, the
targte 'body' is now always the <body> tag. This allows the
modulemanager to reload the whole page (with the navigation bar).

refs #4092
2013-06-26 16:36:36 +02:00
Jannis Moßhammer 5c167563fa Add SystemPermissionException
This exception should be fired when the OS restricts the web user
from executing certain actions. Also the template for errors has
been modified so it displays the action and the target that
was prevented.

refs #4092
2013-06-26 16:36:14 +02:00
Jannis Moßhammer 8192c19424 Fix Authentication workflow
- The authentication controller now uses the Authentication/Manager class,
also there were some issues in the Session creation, this has been removed
from the Bootstrap now, as the Controller must decide how to open a session
(read-only or read/write).
- The tests reflect a few chagnes, as the move from the CSRF token generation
to the Formbuilder.
- Notificaiton now doesn't use Zend Session

refs #4340
2013-06-25 11:54:42 +02:00
Marius Hein c905b1f490 Test and move bootstrapping/web code to source tree
Move code from incubator to web. Only files needed to show
welcome moved.

refs #4249
2013-06-17 08:49:27 +02:00
Marius Hein e05ca449ae Fix PSR compliance
Alter files to follow PSR standards.

refs #4246
2013-06-07 13:29:11 +02:00
Marius Hein 172c699c47 Fix PSR compliance
Commit first part of correction.

refs #4246
2013-06-06 16:52:54 +02:00
Jannis Moßhammer d7bbf256b3 Add additional resources
refs #4212
2013-06-03 17:05:59 +02:00