236 Commits

Author SHA1 Message Date
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
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
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
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
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
75e09f2c69 Do not consider submit buttons when checking form completion
refs #5525
2014-07-21 15:25:00 +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
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
Johannes Meyer
e6dee9fe89 Protect login against CSRF
refs #5626
2014-07-16 09:55:23 +02:00
Johannes Meyer
3105c2059e Remove license headers from all files
refs #6309
2014-07-15 13:43:52 +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
82d2f5ac9b Revert "Merge branch 'feature/install-wizard-6136'"
This reverts commit 88d4262e7ca17430eb2385715f402becfc653797, reversing
changes made to 6fae333048d0ef2b95f52c8113143c79e10c4e50.

Conflicts:

	application/controllers/InstallController.php
	library/Icinga/Web/Controller/ActionController.php
2014-07-07 15:09:03 +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
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
b447225512 Web\Form: Revert "Fix subForm functionality"
This reverts commit 51bac035ac1bdee2c63f680ec66120beb1081af3.
The div element introduced by this commit breaks inline form layout
2014-05-20 13:10:18 +00:00
Johannes Meyer
33d4142664 Make it possible to recreate a form 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
2b15d35dec Rewrite test for Icinga\Web\Form
refs #6011
2014-04-28 14:06:40 +02: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
Thomas Gelf
e480ed7aad We have no data-icinga-component 2014-03-09 01:59:27 +01: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
Thomas Gelf
912b3a6478 Remove obsolete form classes 2014-02-25 10:05:14 +00:00
Eric Lippmann
35fc451115 Rework save preferences 2014-02-17 14:11:55 +01:00
Eric Lippmann
ca1d50ae53 Rename Icinga 2 Web to Icinga Web 2 2013-10-23 15:11:06 +02:00
Jannis Moßhammer
f7c0eaa7c4 Fix/Reimplement dashboard
refs #4532
2013-10-22 12:10:12 +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
Marius Hein
7a406b313f Adjusted buttons and a tags
refs #4869
2013-10-15 18:10:36 +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
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
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