Merge branch '2015.11' into 2015.11-develop
[tine20] / tine20 / Projects / Frontend / Json.php
1 <?php
2 /**
3  * Tine 2.0
4  * @package     Projects
5  * @subpackage  Frontend
6  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
7  * @author      Philipp Schüle <p.schuele@metaways.de>
8  * @copyright   Copyright (c) 2011 Metaways Infosystems GmbH (http://www.metaways.de)
9  *
10  */
11
12 /**
13  *
14  * This class handles all Json requests for the Projects application
15  *
16  * @package     Projects
17  * @subpackage  Frontend
18  */
19 class Projects_Frontend_Json extends Tinebase_Frontend_Json_Abstract
20 {
21     /**
22      * the controller
23      *
24      * @var Projects_Controller_Project
25      */
26     protected $_controller = NULL;
27     
28     protected $_relatableModels = array('Projects_Model_Project');
29     /**
30      * the constructor
31      *
32      */
33     public function __construct()
34     {
35         $this->_applicationName = 'Projects';
36         $this->_controller = Projects_Controller_Project::getInstance();
37     }
38     
39     /**
40      * Search for records matching given arguments
41      *
42      * @param  array $filter
43      * @param  array $paging
44      * @return array
45      */
46     public function searchProjects($filter, $paging)
47     {
48         return $this->_search($filter, $paging, $this->_controller, 'Projects_Model_ProjectFilter', TRUE);
49     }
50     
51     /**
52      * Return a single record
53      *
54      * @param   string $id
55      * @return  array record data
56      */
57     public function getProject($id)
58     {
59         return $this->_get($id, $this->_controller);
60     }
61
62     /**
63      * creates/updates a record
64      *
65      * @param  array $recordData
66      * @return array created/updated record
67      */
68     public function saveProject($recordData)
69     {
70         return $this->_save($recordData, $this->_controller, 'Project');
71     }
72     
73     /**
74      * deletes existing records
75      *
76      * @param  array  $ids
77      * @return string
78      */
79     public function deleteProjects($ids)
80     {
81         return $this->_delete($ids, $this->_controller);
82     }
83
84     /**
85      * Returns registry data
86      *
87      * @return array
88      */
89     public function getRegistryData()
90     {
91         $defaultContainerArray = Tinebase_Container::getInstance()->getDefaultContainer($this->_applicationName)->toArray();
92         $defaultContainerArray['account_grants'] = Tinebase_Container::getInstance()->getGrantsOfAccount(Tinebase_Core::getUser(), $defaultContainerArray['id'])->toArray();
93         
94         return array(
95             'defaultContainer' => $defaultContainerArray
96         );
97     }
98 }