update selection on store data changes
[tine20] / tine20 / Calendar / Frontend / Http.php
1 <?php
2 /**
3  * backend class for Tinebase_Http_Server
4  *
5  * @package     Calendar
6  * @subpackage  Server
7  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
8  * @author      Cornelius Weiss <c.weiss@metaways.de>
9  * @copyright   Copyright (c) 2007-2008 Metaways Infosystems GmbH (http://www.metaways.de)
10  *
11  */
12
13 /**
14  * backend class for Tinebase_Http_Server
15  *
16  * This class handles all Http requests for the calendar application
17  *
18  * @package     Calendar
19  * @subpackage  Server
20  */
21 class Calendar_Frontend_Http extends Tinebase_Frontend_Http_Abstract
22 {
23     protected $_applicationName = 'Calendar';
24
25     /**
26      * export events
27      *
28      * @param string $filter JSON encoded string with items ids for multi export or item filter
29      * @param string $options format or export definition id
30      */
31     public function exportEvents($filter, $options)
32     {
33         $decodedFilter = Zend_Json::decode($filter);
34         if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Export filter: ' . print_r($decodedFilter, TRUE));
35
36         if (! is_array($decodedFilter)) {
37             $decodedFilter = array(array('field' => 'id', 'operator' => 'equals', 'value' => $decodedFilter));
38         }
39
40         $filter = new Calendar_Model_EventFilter();
41         $filter->setFromArrayInUsersTimezone($decodedFilter);
42
43         parent::_export($filter, Zend_Json::decode($options), Calendar_Controller_Event::getInstance());
44     }
45
46     /**
47      * export resources
48      *
49      * @param string $filter JSON encoded string with items ids for multi export or item filter
50      * @param string $options format or export definition id
51      */
52     public function exportResources($filter, $options)
53     {
54         $decodedFilter = Zend_Json::decode($filter);
55         if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Export filter: ' . print_r($decodedFilter, TRUE));
56
57         if (! is_array($decodedFilter)) {
58             $decodedFilter = array(array('field' => 'id', 'operator' => 'equals', 'value' => $decodedFilter));
59         }
60
61         $filter = new Calendar_Model_ResourceFilter();
62         $filter->setFromArrayInUsersTimezone($decodedFilter);
63
64         parent::_export($filter, Zend_Json::decode($options), Calendar_Controller_Resource::getInstance());
65     }
66 }