Merge branch '2015.11' into 2015.11-develop
[tine20] / tine20 / Projects / Config.php
1 <?php
2 /**
3  * @package     Projects
4  * @subpackage  Config
5  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
6  * @author      Philipp Schüle <p.schuele@metaways.de>
7  * @copyright   Copyright (c) 2011 Metaways Infosystems GmbH (http://www.metaways.de)
8  */
9
10 /**
11  * Projects config class
12  * 
13  * @package     Projects
14  * @subpackage  Config
15  */
16 class Projects_Config extends Tinebase_Config_Abstract
17 {
18     /**
19      * Projects Status
20      * 
21      * @var string
22      */
23     const PROJECT_STATUS = 'projectStatus';
24     
25     /**
26      * Project attendee role
27      * 
28      * @var string
29      */
30     const PROJECT_ATTENDEE_ROLE = 'projectAttendeeRole';
31     
32     /**
33      * (non-PHPdoc)
34      * @see tine20/Tinebase/Config/Definition::$_properties
35      */
36     protected static $_properties = array(
37         self::PROJECT_STATUS => array(
38                                    //_('Project Status Available')
39             'label'                 => 'Project Status Available',
40                                    //_('Possible Project status. Please note that additional project status might impact other Projects systems on export or syncronisation.')
41             'description'           => 'Possible Project status. Please note that additional project status might impact other Projects systems on export or syncronisation.',
42             'type'                  => 'keyFieldConfig',
43             'options'               => array('recordModel' => 'Projects_Model_Status'),
44             'clientRegistryInclude' => TRUE,
45             'default'               => array(
46                 'records' => array(
47                     array('id' => 'NEEDS-ACTION', 'value' => 'On hold',     'is_open' => 1, 'icon' => 'images/oxygen/16x16/actions/mail-mark-unread-new.png', 'system' => true),  //_('On hold')
48                     array('id' => 'COMPLETED',    'value' => 'Completed',   'is_open' => 0, 'icon' => 'images/oxygen/16x16/actions/ok.png',                   'system' => true),  //_('Completed')
49                     array('id' => 'CANCELLED',    'value' => 'Cancelled',   'is_open' => 0, 'icon' => 'images/oxygen/16x16/actions/dialog-cancel.png',        'system' => true),  //_('Cancelled')
50                     array('id' => 'IN-PROCESS',   'value' => 'In process',  'is_open' => 1, 'icon' => 'images/oxygen/16x16/actions/view-refresh.png',         'system' => true),  //_('In process')
51                 ),
52                 'default' => 'IN-PROCESS'
53             )
54         ),
55         self::PROJECT_ATTENDEE_ROLE => array(
56                                    //_('Project Attendee Role Available')
57             'label'                 => 'Project Attendee Role Available',
58                                    //_('Possible Project attendee roles. Please note that additional project attendee roles might impact other Projects systems on export or syncronisation.')
59             'description'           => 'Possible Project attendee roles. Please note that additional project attendee roles might impact other Projects systems on export or syncronisation.',
60             'type'                  => 'keyFieldConfig',
61             'options'               => array('recordModel' => 'Projects_Model_AttendeeRole'),
62             'clientRegistryInclude' => TRUE,
63             'default'               => array(
64                 'records' => array(
65                     array('id' => 'COWORKER',    'value' => 'Coworker',    'icon' => 'images/oxygen/16x16/apps/system-users.png',               'system' => true), //_('Coworker')
66                     array('id' => 'RESPONSIBLE', 'value' => 'Responsible', 'icon' => 'images/oxygen/16x16/apps/preferences-desktop-user.png',   'system' => true), //_('Responsible')
67                 ),
68                 'default' => 'COWORKER'
69             )
70         ),
71     );
72     
73     /**
74      * (non-PHPdoc)
75      * @see tine20/Tinebase/Config/Abstract::$_appName
76      */
77     protected $_appName = 'Projects';
78     
79     /**
80      * holds the instance of the singleton
81      *
82      * @var Tinebase_Config
83      */
84     private static $_instance = NULL;
85     
86     /**
87      * the constructor
88      *
89      * don't use the constructor. use the singleton 
90      */    
91     private function __construct() {}
92     
93     /**
94      * the constructor
95      *
96      * don't use the constructor. use the singleton 
97      */    
98     private function __clone() {}
99     
100     /**
101      * Returns instance of Tinebase_Config
102      *
103      * @return Tinebase_Config
104      */
105     public static function getInstance() 
106     {
107         if (self::$_instance === NULL) {
108             self::$_instance = new self();
109         }
110         
111         return self::$_instance;
112     }
113     
114     /**
115      * (non-PHPdoc)
116      * @see tine20/Tinebase/Config/Abstract::getProperties()
117      */
118     public static function getProperties()
119     {
120         return self::$_properties;
121     }
122 }