//
// 1) Users may mark some of them deleted during their work.
// If we mark all of them deleted here, we can't recover nicely
- // as we'll lose track of what was deleted by user.
+ // as we'll lose track of what was accidentally deleted by user.
//
// 2) DB maintenance script (Clean up DB from inactive groups) should
// get rid of these items permanently eventually.
// This is a planned replacement for ttTeamHelper as we move forward with subgroups.
class ttGroupHelper {
- // The getTopGroups function returns an array of all active top groups on the server.
- static function getTopGroups() {
- $result = array();
- $mdb2 = getConnection();
-
- $sql = "select id, name, created, lang from tt_groups".
- " where status = 1 and org_id = id order by id desc";
- $res = $mdb2->query($sql);
- $result = array();
- if (!is_a($res, 'PEAR_Error')) {
- while ($val = $res->fetchRow()) {
- $val['date'] = substr($val['created'], 0, 10); // Strip the time.
- $result[] = $val;
- }
- return $result;
- }
- return false;
- }
-
// The getGroupName function returns group name.
static function getGroupName($group_id) {
$mdb2 = getConnection();
--- /dev/null
+<?php
+// +----------------------------------------------------------------------+
+// | Anuko Time Tracker
+// +----------------------------------------------------------------------+
+// | Copyright (c) Anuko International Ltd. (https://www.anuko.com)
+// +----------------------------------------------------------------------+
+// | LIBERAL FREEWARE LICENSE: This source code document may be used
+// | by anyone for any purpose, and freely redistributed alone or in
+// | combination with other software, provided that the license is obeyed.
+// |
+// | There are only two ways to violate the license:
+// |
+// | 1. To redistribute this code in source form, with the copyright
+// | notice or license removed or altered. (Distributing in compiled
+// | forms without embedded copyright notices is permitted).
+// |
+// | 2. To redistribute modified versions of this code in *any* form
+// | that bears insufficient indications that the modifications are
+// | not the work of the original author(s).
+// |
+// | This license applies to this document only, not any other software
+// | that it may be combined with.
+// |
+// +----------------------------------------------------------------------+
+// | Contributors:
+// | https://www.anuko.com/time_tracker/credits.htm
+// +----------------------------------------------------------------------+
+
+// Class ttOrgHelper contains helper functions that operate with organizations.
+// Organizations are collections of nested groups of users.
+class ttOrgHelper {
+
+ // The getOrgs function returns an array of all active organizations on the server.
+ static function getOrgs() {
+ $result = array();
+ $mdb2 = getConnection();
+
+ $sql = "select id, name, created, lang from tt_groups".
+ " where status = 1 and org_id = id and parent_id is NULL order by id desc";
+ $res = $mdb2->query($sql);
+ $result = array();
+ if (!is_a($res, 'PEAR_Error')) {
+ while ($val = $res->fetchRow()) {
+ $val['date'] = substr($val['created'], 0, 10); // Strip the time.
+ $result[] = $val;
+ }
+ return $result;
+ }
+ return false;
+ }
+
+ // The getName function returns organization name (which is a name of its top group).
+ static function getName($org_id) {
+ $mdb2 = getConnection();
+
+ $sql = "select name from tt_groups where id = $org_id and (status = 1 or status = 0) and parent_id is NULL";
+ $res = $mdb2->query($sql);
+
+ if (!is_a($res, 'PEAR_Error')) {
+ $val = $res->fetchRow();
+ return $val['name'];
+ }
+ return false;
+ }
+}
<br>
<table cellspacing="0" cellpadding="4" width="100%" border="0">
<tr>
- <td align="center"> Anuko Time Tracker 1.18.14.4432 | Copyright © <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+ <td align="center"> Anuko Time Tracker 1.18.14.4433 | Copyright © <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
<a href="https://www.anuko.com/lp/tt_4.htm" target="_blank">{$i18n.footer.credits}</a> |
<a href="https://www.anuko.com/lp/tt_5.htm" target="_blank">{$i18n.footer.license}</a> |
<a href="https://www.anuko.com/lp/tt_7.htm" target="_blank">{$i18n.footer.improve}</a>
// +----------------------------------------------------------------------+
require_once('initialize.php');
-import('ttGroupHelper');
+import('ttOrgHelper');
// Access checks.
if (!ttAccessAllowed('administer_site')) {
}
// End of access checks.
-$smarty->assign('groups', ttGroupHelper::getTopGroups());
+$smarty->assign('groups', ttOrgHelper::getOrgs());
$smarty->assign('title', $i18n->get('title.groups'));
$smarty->assign('content_page_name', 'admin_groups.tpl');
$smarty->display('index.tpl');
require_once('initialize.php');
import('form.Form');
-import('ttGroupHelper');
+import('ttOrgHelper');
import('ttUser');
$cl_login = $request->getParameter('login');
}
} // isPost
-if(!isTrue(MULTITEAM_MODE) && !ttGroupHelper::getTopGroups())
+if(!isTrue(MULTITEAM_MODE) && !ttOrgHelper::getOrgs())
$err->add($i18n->get('error.no_groups'));
// Determine whether to show login hint. It is currently used only for Windows LDAP authentication.
require_once('../initialize.php');
import('form.Form');
-import('ttGroupHelper');
+import('ttOrgHelper');
import('ttUser');
if ($request->isPost()) {
}
} // isPost
-if(!isTrue(MULTITEAM_MODE) && !ttGroupHelper::getTopGroups())
+if(!isTrue(MULTITEAM_MODE) && !ttOrgHelper::getOrgs())
$err->add($i18n->get('error.no_groups'));
// Determine whether to show login hint. It is currently used only for Windows LDAP authentication.