Merge branch '2015.11' into 2015.11-develop
[tine20] / tine20 / Projects / Preference.php
1 <?php
2 /**
3  * Tine 2.0
4  * 
5  * @package     Projects
6  * @subpackage  Preference
7  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
8  * @author      Philipp Schüle <p.schuele@metaways.de>
9  * @copyright   Copyright (c) 2011 Metaways Infosystems GmbH (http://www.metaways.de)
10  */
11
12 /**
13  * Projects preferences
14  *
15  * @package     Projects
16  * @subpackage  Preference
17  */
18 class Projects_Preference extends Tinebase_Preference_Abstract
19 {
20     /**************************** application preferences/settings *****************/
21     
22     /**
23      * have name of default favorite on a central place
24      * _("All my projects")
25      */
26     const DEFAULTPERSISTENTFILTER_NAME = "All my projects";
27     
28     /**
29      * @var string application
30      */
31     protected $_application = 'Projects';
32         
33     /**************************** public functions *********************************/
34     
35     /**
36      * get all possible application prefs
37      *
38      * @return  array   all application prefs
39      */
40     public function getAllApplicationPreferences()
41     {
42         $allPrefs = array(
43             self::DEFAULTPERSISTENTFILTER,
44         );
45             
46         return $allPrefs;
47     }
48     
49     /**
50      * get translated right descriptions
51      * 
52      * @return  array with translated descriptions for this applications preferences
53      */
54     public function getTranslatedPreferences()
55     {
56         $translate = Tinebase_Translation::getTranslation($this->_application);
57
58         $prefDescriptions = array(
59             self::DEFAULTPERSISTENTFILTER  => array(
60                 'label'         => $translate->_('Default Favorite'),
61                 'description'   => $translate->_('The default favorite which is loaded on Projects startup'),
62             ),
63         );
64         
65         return $prefDescriptions;
66     }
67     
68     /**
69      * get preference defaults if no default is found in the database
70      *
71      * @param string $_preferenceName
72      * @param string|Tinebase_Model_User $_accountId
73      * @param string $_accountType
74      * @return Tinebase_Model_Preference
75      */
76     public function getApplicationPreferenceDefaults($_preferenceName, $_accountId = NULL, $_accountType = Tinebase_Acl_Rights::ACCOUNT_TYPE_USER)
77     {
78         $preference = $this->_getDefaultBasePreference($_preferenceName);
79         
80         switch($_preferenceName) {
81             case self::DEFAULTPERSISTENTFILTER:
82                 $preference->value          = Tinebase_PersistentFilter::getPreferenceValues('Projects', $_accountId, self::DEFAULTPERSISTENTFILTER_NAME);
83                 break;
84             default:
85                 throw new Tinebase_Exception_NotFound('Default preference with name ' . $_preferenceName . ' not found.');
86         }
87         
88         return $preference;
89     }
90 }