X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2FttGroup.class.php;h=2a5eb1dcff3c18c5b89a0c2d219a20d0a8009275;hb=8bc57bab34ec45117348070eec17fb3d00f327fd;hp=e232a0e1af30cd180d63ddce36b16dc7b24c8995;hpb=52efa3cc9f8ad94f363f41cc2bca472b6492268d;p=timetracker.git diff --git a/WEB-INF/lib/ttGroup.class.php b/WEB-INF/lib/ttGroup.class.php index e232a0e1..2a5eb1dc 100644 --- a/WEB-INF/lib/ttGroup.class.php +++ b/WEB-INF/lib/ttGroup.class.php @@ -41,7 +41,6 @@ class ttGroup { var $date_format = null; // Date format. var $time_format = null; // Time format. var $week_start = 0; // Week start day. - var $show_holidays = 0; // Whether to show holidays in calendar. var $tracking_mode = 0; // Tracking mode. var $project_required = 0; // Whether project selection is required on time entires. var $task_required = 0; // Whether task selection is required on time entires. @@ -49,21 +48,26 @@ class ttGroup { var $punch_mode = 0; // Whether punch mode is enabled for user. var $allow_overlap = 0; // Whether to allow overlapping time entries. var $future_entries = 0; // Whether to allow creating future entries. - var $uncompleted_indicators = 0; // Uncompleted time entry indicators (show nowhere or on users page). var $bcc_email = null; // Bcc email. var $allow_ip = null; // Specification from where user is allowed access. var $password_complexity = null; // Password complexity example. var $currency = null; // Currency. var $plugins = null; // Comma-separated list of enabled plugins. + var $config = null; // Comma-separated list of miscellaneous config options. + var $configHelper = null; // An instance of ttConfigHelper class. + var $custom_logo = 0; // Whether to use a custom logo for group. var $lock_spec = null; // Cron specification for record locking. + var $holidays = null; // Holidays specification. var $workday_minutes = 480; // Number of work minutes in a regular day. - var $minutes_in_unit = 15; // Number of minutes in unit for Work units plugin. - var $first_unit_threshold = 0;// Threshold for 1st unit for Work units plugin. - var $unit_totals_only = 0; // Totals only option for the Work units plugin. + + var $active_users = 0; // Count of active users in group. + // We need a non-zero count to display some menus. // Constructor. + // Note: org_id is needed because we construct an object in ttUser constructor, + // when global $user object does not yet exist. function __construct($id, $org_id) { $mdb2 = getConnection(); @@ -95,31 +99,35 @@ class ttGroup { $this->allow_ip = $val['allow_ip']; $this->password_complexity = $val['password_complexity']; $this->group_name = $val['group_name']; - $this->currency = $val['currency']; */ + $this->currency = $val['currency']; $this->plugins = $val['plugins']; - /* $this->lock_spec = $val['lock_spec']; + $this->holidays = $val['holidays']; $this->workday_minutes = $val['workday_minutes']; + /* $this->custom_logo = $val['custom_logo']; */ + + // TODO: refactor this. $this->config = $val['config']; - /* - $config = new ttConfigHelper($this->config); + $this->configHelper = new ttConfigHelper($val['config']); // Set user config options. - $this->show_holidays = $config->getDefinedValue('show_holidays'); - $this->punch_mode = $config->getDefinedValue('punch_mode'); - $this->allow_overlap = $config->getDefinedValue('allow_overlap'); - $this->future_entries = $config->getDefinedValue('future_entries'); - $this->uncompleted_indicators = $config->getDefinedValue('uncompleted_indicators'); - if ($this->isPluginEnabled('wu')) { - $minutes_in_unit = $config->getIntValue('minutes_in_unit'); - if ($minutes_in_unit) $this->minutes_in_unit = $minutes_in_unit; - $first_unit_threshold = $config->getIntValue('1st_unit_threshold'); - if ($first_unit_threshold) $this->first_unit_threshold = $first_unit_threshold; - $this->unit_totals_only = $config->getDefinedValue('unit_totals_only'); - } - */ + $this->punch_mode = $this->configHelper->getDefinedValue('punch_mode'); + $this->allow_overlap = $this->configHelper->getDefinedValue('allow_overlap'); + $this->future_entries = $this->configHelper->getDefinedValue('future_entries'); + } + + // Determine active user count in a separate query. + // TODO: If performance becomes an issue, investigate combining 2 queries in one. + // At this time we only need to know if at least 1 active user exists. + $sql = "select count(*) as user_count from tt_users". + " where group_id = $id and org_id = $org_id and status = 1"; + $res = $mdb2->query($sql); + if (is_a($res, 'PEAR_Error')) { + return; } + $val = $res->fetchRow(); + $this->active_users = $val['user_count']; } }