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 $workday_minutes = 480; // Number of work minutes in a regular day.
/*
$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->show_holidays = $this->configHelper->getDefinedValue('show_holidays');
+ $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.
var $password_complexity = null; // Password complexity example.
var $currency = null; // Currency.
var $plugins = null; // Comma-separated list of enabled plugins.
+
+ // Refactoring ongoing. Towards using helper instead of config string?
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 $workday_minutes = 480; // Number of work minutes in a regular day.
$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->show_holidays = $this->configHelper->getDefinedValue('show_holidays');
+ $this->punch_mode = $this->configHelper->getDefinedValue('punch_mode');
+ $this->allow_overlap = $this->configHelper->getDefinedValue('allow_overlap');
+ $this->future_entries = $this->configHelper->getDefinedValue('future_entries');
// Set "on behalf" id and name (user).
if (isset($_SESSION['behalf_id'])) {
// getConfig returns config string for active group.
function getConfig() {
- return ($this->behalfGroup ? $this->behalfGroup->config : $this->config);
+ return ($this->behalfGroup ? $this->behalfGroup->configHelper->getConfig() : $this->configHelper->getConfig());
}
// getConfigOption returns true if an option is defined for group.
return in_array($plugin, explode(',', $this->getPlugins()));
}
+ // isOptionEnabled checks whether a config option is enabled for user.
+ function isOptionEnabled($option)
+ {
+ return $this->behalfGroup ? $this->behalfGroup->configHelper->getDefinedValue($option) : $this->configHelper->getDefinedValue($option);
+ }
+
+ // setOption sets an option inside of ttConfigHelper instance.
+ // Note that it does not write to the database.
+ function setOption($option, $enable = true)
+ {
+ return $this->behalfGroup ? $this->behalfGroup->configHelper->setDefinedValue($option, $enable) : $this->configHelper->setDefinedValue($option, $enable);
+ }
+
// getAssignedProjects - returns an array of assigned projects.
function getAssignedProjects($includeFiles = false)
{
<table border="0">
{if $user->isPluginEnabled('cl')}
<tr>
- <td align="right">{$i18n.label.client} {if $user->isPluginEnabled('cm')}(*){/if}:</td>
+ <td align="right">{$i18n.label.client} {if $user->isOptionEnabled('client_required')}(*){/if}:</td>
<td>{$forms.expenseItemForm.client.control}</td>
</tr>
{/if}
{/if}
{if $user->isPluginEnabled('cl')}
<tr>
- <td align="right">{$i18n.label.client}{if $user->isPluginEnabled('cm')} (*){/if}:</td>
+ <td align="right">{$i18n.label.client}{if $user->isOptionEnabled('client_required')} (*){/if}:</td>
<td>{$forms.expensesForm.client.control}</td>
</tr>
{/if}
<br>
<table cellspacing="0" cellpadding="4" width="100%" border="0">
<tr>
- <td align="center"> Anuko Time Tracker 1.19.3.4986 | Copyright © <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+ <td align="center"> Anuko Time Tracker 1.19.3.4987 | 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>
<table border="0">
{if $user->isPluginEnabled('cl')}
<tr>
- <td align="right">{$i18n.label.client} {if $user->isPluginEnabled('cm')}(*){/if}:</td>
+ <td align="right">{$i18n.label.client} {if $user->isOptionEnabled('client_required')}(*){/if}:</td>
<td>{$forms.expenseItemForm.client.control}</td>
</tr>
{/if}
{/if}
{if $user->isPluginEnabled('cl')}
<tr>
- <td align="right">{$i18n.label.client}{if $user->isPluginEnabled('cm')} (*){/if}:</td>
+ <td align="right">{$i18n.label.client}{if $user->isOptionEnabled('client_required')} (*){/if}:</td>
<td>{$forms.expensesForm.client.control}</td>
</tr>
{/if}
{/if}
{if $show_client}
<tr>
- <td align="right">{$i18n.label.client}{if $user->isPluginEnabled('cm')} (*){/if}:</td>
+ <td align="right">{$i18n.label.client}{if $user->isOptionEnabled('client_required')} (*){/if}:</td>
<td>{$forms.timeRecordForm.client.control}</td>
</tr>
{/if}
<table border="0">
{if $user->isPluginEnabled('cl')}
<tr>
- <td align="right">{$i18n.label.client}{if $user->isPluginEnabled('cm')} (*){/if}:</td>
+ <td align="right">{$i18n.label.client}{if $user->isOptionEnabled('client_required')} (*){/if}:</td>
<td>{$forms.timeRecordForm.client.control}</td>
</tr>
{/if}
{/if}
{if $show_client}
<tr>
- <td align="right">{$i18n.label.client}{if $user->isPluginEnabled('cm')} (*){/if}:</td>
+ <td align="right">{$i18n.label.client}{if $user->isOptionEnabled('client_required')} (*){/if}:</td>
<td>{$forms.weekTimeForm.client.control}</td>
</tr>
{/if}
if ($request->isPost()) {
// Validate user input.
- if ($user->isPluginEnabled('cl') && $user->isPluginEnabled('cm') && !$cl_client)
+ if ($user->isPluginEnabled('cl') && $user->isOptionEnabled('client_required') && !$cl_client)
$err->add($i18n->get('error.client'));
if ($show_project && !$cl_project)
$err->add($i18n->get('error.project'));
if ($request->isPost()) {
if ($request->getParameter('btn_submit')) {
// Validate user input.
- if ($user->isPluginEnabled('cl') && $user->isPluginEnabled('cm') && !$cl_client)
+ if ($user->isPluginEnabled('cl') && $user->isOptionEnabled('client_required') && !$cl_client)
$err->add($i18n->get('error.client'));
if ($show_project && !$cl_project)
$err->add($i18n->get('error.project'));
if ($request->isPost()) {
// Validate user input.
- if ($user->isPluginEnabled('cl') && $user->isPluginEnabled('cm') && !$cl_client)
+ if ($user->isPluginEnabled('cl') && $user->isOptionEnabled('client_required') && !$cl_client)
$err->add($i18n->get('error.client'));
if ($show_project && !$cl_project)
$err->add($i18n->get('error.project'));
if ($request->isPost()) {
if ($request->getParameter('btn_submit')) {
// Validate user input.
- if ($user->isPluginEnabled('cl') && $user->isPluginEnabled('cm') && !$cl_client)
+ if ($user->isPluginEnabled('cl') && $user->isOptionEnabled('client_required') && !$cl_client)
$err->add($i18n->get('error.client'));
if ($show_project && !$cl_project)
$err->add($i18n->get('error.project'));
if ($request->getParameter('btn_submit')) {
// Validate user input.
- if ($user->isPluginEnabled('cl') && $user->isPluginEnabled('cm') && !$cl_client)
+ if ($user->isPluginEnabled('cl') && $user->isOptionEnabled('client_required') && !$cl_client)
$err->add($i18n->get('error.client'));
if ($custom_fields) {
if (!ttValidString($cl_cf_1, !$custom_fields->fields[0]['required'])) $err->add($i18n->get('error.field'), $custom_fields->fields[0]['label']);
if ($request->isPost()) {
// Validate user input.
- if ($user->isPluginEnabled('cl') && $user->isPluginEnabled('cm') && !$cl_client)
+ if ($user->isPluginEnabled('cl') && $user->isOptionEnabled('client_required') && !$cl_client)
$err->add($i18n->get('error.client'));
if ($custom_fields) {
if (!ttValidString($cl_cf_1, !$custom_fields->fields[0]['required'])) $err->add($i18n->get('error.field'), $custom_fields->fields[0]['label']);
$cl_finish = null;
// Validate user input.
- if ($user->isPluginEnabled('cl') && $user->isPluginEnabled('cm') && !$cl_client)
+ if ($user->isPluginEnabled('cl') && $user->isOptionEnabled('client_required') && !$cl_client)
$err->add($i18n->get('error.client'));
if ($custom_fields) {
if (!ttValidString($cl_cf_1, !$custom_fields->fields[0]['required'])) $err->add($i18n->get('error.field'), $custom_fields->fields[0]['label']);
$plugins = explode(',', $user->getPlugins());
$cl_charts = in_array('ch', $plugins);
$cl_clients = in_array('cl', $plugins);
- $cl_client_required = in_array('cm', $plugins);
+ $cl_client_required = $user->isOptionEnabled('client_required');
$cl_invoices = in_array('iv', $plugins);
$cl_paid_status = in_array('ps', $plugins);
$cl_custom_fields = in_array('cf', $plugins);
$plugins .= ',ch';
if ($cl_clients)
$plugins .= ',cl';
- if ($cl_client_required)
- $plugins .= ',cm';
if ($cl_invoices)
$plugins .= ',iv';
if ($cl_paid_status)
$plugins = trim($plugins, ',');
+ // Prepare a new config string.
+ $user->setOption('client_required', $cl_client_required);
+ $user->setOption('tax_expenses', $cl_tax_expenses);
+ $config = $user->getConfig();
+
if ($user->updateGroup(array(
- 'plugins' => $plugins))) {
+ 'plugins' => $plugins,
+ 'config' => $config))) {
header('Location: success.php');
exit();
} else
if ($request->getParameter('btn_submit')) {
// Validate user input.
- if ($showClient && $user->isPluginEnabled('cm') && !$cl_client)
+ if ($showClient && $user->isOptionEnabled('client_required') && !$cl_client)
$err->add($i18n->get('error.client'));
if ($custom_fields) {
if (!ttValidString($cl_cf_1, !$custom_fields->fields[0]['required'])) $err->add($i18n->get('error.field'), $custom_fields->fields[0]['label']);
if ($request->isPost()) {
// Validate user input.
- if ($user->isPluginEnabled('cl') && $user->isPluginEnabled('cm') && !$cl_client)
+ if ($user->isPluginEnabled('cl') && $user->isOptionEnabled('client_required') && !$cl_client)
$err->add($i18n->get('error.client'));
if ($custom_fields) {
if (!ttValidString($cl_cf_1, !$custom_fields->fields[0]['required'])) $err->add($i18n->get('error.field'), $custom_fields->fields[0]['label']);
}
}
if ($newEntryPosted) {
- if ($user->isPluginEnabled('cl') && $user->isPluginEnabled('cm') && !$cl_client)
+ if ($user->isPluginEnabled('cl') && $user->isOptionEnabled('client_required') && !$cl_client)
$err->add($i18n->get('error.client'));
if ($custom_fields) {
if (!ttValidString($cl_cf_1, !$custom_fields->fields[0]['required'])) $err->add($i18n->get('error.field'), $custom_fields->fields[0]['label']);