293 Commits

Author SHA1 Message Date
Thomas Gelf
e056310378 Data\Db\DbConnection: one more legacy class name
Fixed, Query is now DbQuery
2014-06-17 09:52:32 +00:00
Thomas Gelf
9e1e502fc8 Data\Db\DbConnection: implement fromResourceName
This allows to instantiate DB connections with less code in our
controllers.
2014-06-17 09:51:37 +00:00
Eric Lippmann
7f6010e1f8 lib/tree: Add PHPDoc to Node's methods 2014-06-13 17:22:43 +02:00
Eric Lippmann
6c8d35c667 lib: Add a not yet customizable node renderer 2014-06-06 13:58:40 +02:00
Eric Lippmann
ce0aee5e41 lib: Add Data/Tree/Node.php 2014-06-06 13:58:14 +02:00
Eric Lippmann
d84532d593 lib: Remove TreeIterator
Nodes implementing the NodeInterface (which extends the RecursiveIterator interface)
are already iterable.
2014-06-06 13:57:18 +02:00
Eric Lippmann
794ae141fa lib: Let NodeInterface extend RecursiveIterator
Since a node may have children and they should be iterable, the Nodefinterface
now extends RecursiveIterator.
2014-06-06 13:55:58 +02:00
Thomas Gelf
1e9bc6c7d4 Data\PivotTable: should work with new queries
There is still some work to do be done here. And we should/could
rethink columns() VS getColumns().
2014-06-06 06:47:49 +00:00
Thomas Gelf
db3accc704 Data\Db: rename Query and Connection to Db...
Class names in namespaces should not be chosen as once we didn't have
such. The fact that we already did "use Db\Connection as DbConnection"
is the best hint that naming was wrong.

So this patch renames Db\Connection to Db\DbConnection and does the
same with DbQuery. DbQuery has been adjusted to fit our new SimpleQuery
and to handle the new Filter implementation.
2014-06-06 06:43:13 +00:00
Thomas Gelf
1fbca25d99 Data\DataArray: use SimpleQuery and new interfaces
Removed ArrayQuery implementation as SimpleQuery is enough here.
Renamed the Datasource class to ArrayDatasource.

refs #6418
2014-06-06 06:21:35 +00:00
Thomas Gelf
31047e8082 Data\SimpleQuery: concrete implementation
SimpleQuery is no longer abstract, implements the Filterable interface
and should now be usable as a basic Query implemenation as is.
2014-06-06 06:12:17 +00:00
Thomas Gelf
85605597cc Data/interfaces: add Filterable, extend Connection
New interface ConnectionInterface attempts to aggregate things.
Extended Filterable interface, added Filter-related functions. Please
note that apply will probably get dropped later on, I'll keep it for
compatibility reasons right now.

refs #6418
2014-06-06 06:07:33 +00:00
Thomas Gelf
f438cb30e1 Data\Filter: initial commit basic implementation
Basic operators are there, still missing: subclassed "where" to distinct
comparison operators like greater/less than on a class level.

refs #6418
2014-06-06 06:04:24 +00:00
Thomas Gelf
d44a87717d Data\SimpleQuery: implement column handling
We want SimpleQuery to be able to run standalone
2014-06-06 05:49:39 +00:00
Thomas Gelf
4b8e09b12a Data\SimpleQuery: get front controller without ZF 2014-06-06 05:48:29 +00:00
Eric Lippmann
9edaaa82e8 lib: Add TreeIterator 2014-05-28 17:14:33 +02:00
Eric Lippmann
040473f986 lib: Add NodeInterface 2014-05-28 17:13:42 +02:00
Thomas Gelf
12b57c6d95 Merge remote-tracking branch 'origin/master' into feature/query-interfaces-6018
Conflicts:
	modules/monitoring/library/Monitoring/Backend/Ido/Query/ContactgroupQuery.php
	modules/monitoring/library/Monitoring/Backend/Ido/Query/IdoQuery.php
	modules/monitoring/library/Monitoring/Backend/Ido/Query/StatusQuery.php
	modules/monitoring/library/Monitoring/Controller.php
2014-05-20 23:15:11 +00:00
Thomas Gelf
e6d80ae1f6 IDO Queries: performance quickfixes
Will be obsoleted by the new filter implementation, but for now it
helps a little bit
2014-05-20 13:27:58 +00:00
Thomas Gelf
820b6b7a8d Data\BaseQuery: rename to Data\SimpleQuery
BaseQuery should no longer be abstract but be usable as is as soon as
we stripped ResultSet-specific tasks. As "Base" suggests something that
must be extended, the name no longer fits. So this is SimpleQuery right
now.
2014-05-07 11:55:35 +00:00
Eric Lippmann
ecbd9b8616 Sortable: Fix PHPDoc for parameter `$direction'
`$direction' must be a string instead of an integer because
the direction constants `SORT_ASC' and `SORT_DESC' are strings.
2014-05-07 10:00:41 +02:00
Eric Lippmann
d87788b9c1 Merge branch 'master' into feature/query-interfaces-6018
Conflicts:
	modules/monitoring/library/Monitoring/Backend/Ido/Query/ContactgroupQuery.php
2014-05-06 18:45:12 +02:00
Matthias Jentsch
085025ba7d Icingaweb shoul work without optional extensions when they are not used
When optional classes and php extensions like pgsql and additonal Zend-Pdos are
actually required by creating a new resource or authentication backend,
perform a check and display a warning instead of just throwing an exception.

refs #4788
2014-04-28 17:13:40 +02:00
Johannes Meyer
aaa6a56146 Refactor authentication config form tests and fix auth backend validation
refs #6011
fixes #5712
2014-04-28 14:06:38 +02:00
Eric Lippmann
026145356b Add interface "QueryInterface" implementing Browsable, Fetchable, Filterable, Limitable, Sortable, Countable (WIP)
This interface is intended to be used within the data views and monitoring controllers. The monitoring list
and show controllers should only query data views instead of the actual query. Thus a data view is required to
implement the QueryInterface, which will be changed later.
The name is not final because it somehow conflicts with the Queryable interface which is also marked as work in progress.
2014-04-17 14:21:01 +02:00
Eric Lippmann
8532622fab Db: Implement missing fetch*() functions on connection level
The BaseQuery forwards fetch*() function calls to its datasource with the
query as first parameter since the datasource implements the actual fetching functionality.
There's no interface for fetch*() functions on the datasource level yet.
2014-04-15 17:44:34 +02:00
Eric Lippmann
e525688383 Replace DatasourceInterface with Selectable 2014-04-15 17:43:45 +02:00
Eric Lippmann
1a2577dd47 Db/Connection: Replace getConnection() with getDpAdapter()
For readability getConnection() is deprecated in favor of getDpAdapter()
since Db/Connection is already the connection.
2014-04-15 17:37:44 +02:00
Eric Lippmann
c85ade39c0 Create count and select database queries separately
The previous implementation always created both the count
and the select query.
For readability the property baseQuery has been renamed to select which the
IDO queries must take into account.
2014-04-15 17:21:10 +02:00
Eric Lippmann
d94170372d Let the BaseQuery implement the query interfaces and remove filter functionality
This commit breaks the application as it introduces incompatible changes which
will be adopted bit by bit.

Since the filter functionality is subject to change it's removed from the BaseQuery.
The functions setOrderColumns() and getOrderColumns() are deprecated because they're
replaced by functions in the Sortable interface.
Further the Sortable interface now defines the sort constants ASC and DESC and are
thus removed from the BaseQuery. In addition the sort constants are no longer integers
but strings.
The distinct() and isDistinct() functions are removed because they're database specific.
They have been introduced with changes in the PivotTable implementation which should
actually not call distinct blindly anyway.
2014-04-15 16:40:25 +02:00
Eric Lippmann
659e6f774e Add interface "Queryable" (WIP)
Interface for classes which act as a data source and thus return or are a Fetchable.
The name of the interface is not yet final though.
2014-04-15 16:23:17 +02:00
Eric Lippmann
0f3d70c437 Add interface "Filterable" (WIP)
This interface is empty yet. It's meant to define how to filter a result set.
2014-04-15 16:20:11 +02:00
Eric Lippmann
e5e3dc9c43 Add interface "Sortable" defining how a result set can be sorted
This interface should be used to ensure that sorting a result set
is standardized among the different query implementations.
2014-04-15 16:07:27 +02:00
Eric Lippmann
3e0d254dfd Implement "Limitable" interface for retrieving just a portion of a result set
Defines how to set a limit count and offset and should be used everywhere
where setting limit and offset is supported.
2014-04-15 15:48:51 +02:00
Eric Lippmann
c083747f67 Add "Fetchable" interface for classes providing data retrieval
Classes for retrieving data must implement the Fetchable interface
which defines the usual fetch*() functions.
2014-04-15 15:40:07 +02:00
Eric Lippmann
2cc3823a95 Implement interface "Browsable" for classes providing page turning
This interface is intended to be used everywhere a Zend_Paginator
is returned within our code.
2014-04-15 15:36:13 +02:00
Alexander Klimov
933a851f65 Initial commit
refs #4514
2014-04-02 13:47:01 +02:00
Johannes Meyer
862b50264a Fix that the queryfilter parser cannot handle integer values 2014-04-01 11:44:24 +02:00
Johannes Meyer
b168cf878d Fix type specification in DowntimestarthistoryQuery
refs #4190
2014-04-01 11:44:23 +02:00
Johannes Meyer
ea473cf08a Fix sorting of pivot tables 2014-03-20 13:21:28 +01:00
Johannes Meyer
bf717654f0 Add more consistency to the servicematrix when switching pages 2014-03-20 11:30:55 +01:00
Johannes Meyer
1604f4728b Fix that the TreeToSqlParser cannot handle partial conjunction nodes 2014-03-19 09:11:25 +01:00
Johannes Meyer
e355415164 Fix that queryfilters are being ignored by the parser 2014-03-19 09:11:25 +01:00
Johannes Meyer
617b6822d7 Add pagination support to the servicematrix
refs #4180
2014-03-19 09:11:24 +01:00
Johannes Meyer
dbab546f0a Make page/limit params work if either of those is hardcoded 2014-03-19 09:11:24 +01:00
Johannes Meyer
eae4cd3b2a Add support for distinct database queries
refs #4180
2014-03-19 09:11:24 +01:00
Johannes Meyer
13b509bf4b Do not display hosts without any services in the servicematrix
refs #4180
2014-03-19 09:11:24 +01:00
Johannes Meyer
0a5c2c5bd7 Make filtering/sorting of the servicematrix work
refs #4180
2014-03-19 09:11:24 +01:00
Johannes Meyer
71f4b6960b Add servicematrix view
refs #4180
2014-03-19 09:11:24 +01:00
Thomas Gelf
7fc47ef961 Increase DB-Connection default timeout, 2 secs are sometimes too harsh 2014-03-17 16:17:55 +00:00