From eb14c12d3be2cd31e20988b6abf7585f6af0b34d Mon Sep 17 00:00:00 2001 From: anuko Date: Sat, 9 Sep 2017 18:34:41 +0000 Subject: [PATCH] Added Bcc option for team managers. --- WEB-INF/lib/mail/Mailer.class.php | 12 +++++++++++- WEB-INF/lib/ttReportHelper.class.php | 4 +++- WEB-INF/lib/ttTeamHelper.class.php | 4 +++- WEB-INF/lib/ttUser.class.php | 4 +++- WEB-INF/resources/ca.lang.php | 2 ++ WEB-INF/resources/cs.lang.php | 2 ++ WEB-INF/resources/da.lang.php | 2 ++ WEB-INF/resources/de.lang.php | 2 ++ WEB-INF/resources/en.lang.php | 1 + WEB-INF/resources/es.lang.php | 2 ++ WEB-INF/resources/et.lang.php | 1 + WEB-INF/resources/fa.lang.php | 2 ++ WEB-INF/resources/fi.lang.php | 2 ++ WEB-INF/resources/fr.lang.php | 2 ++ WEB-INF/resources/he.lang.php | 2 ++ WEB-INF/resources/hu.lang.php | 2 ++ WEB-INF/resources/it.lang.php | 2 ++ WEB-INF/resources/ja.lang.php | 2 ++ WEB-INF/resources/ko.lang.php | 2 ++ WEB-INF/resources/nl.lang.php | 2 ++ WEB-INF/resources/no.lang.php | 2 ++ WEB-INF/resources/pl.lang.php | 2 ++ WEB-INF/resources/pt-br.lang.php | 2 ++ WEB-INF/resources/pt.lang.php | 3 ++- WEB-INF/resources/ro.lang.php | 2 ++ WEB-INF/resources/ru.lang.php | 1 + WEB-INF/resources/sk.lang.php | 2 ++ WEB-INF/resources/sl.lang.php | 2 ++ WEB-INF/resources/sr.lang.php | 2 ++ WEB-INF/resources/sv.lang.php | 2 ++ WEB-INF/resources/tr.lang.php | 2 ++ WEB-INF/resources/zh-cn.lang.php | 3 ++- WEB-INF/resources/zh-tw.lang.php | 2 ++ WEB-INF/templates/footer.tpl | 2 +- WEB-INF/templates/profile_edit.tpl | 7 ++++++- dbinstall.php | 1 + invoice_send.php | 2 ++ mysql.sql | 1 + profile_edit.php | 11 +++++++++++ report_send.php | 2 ++ 40 files changed, 99 insertions(+), 8 deletions(-) diff --git a/WEB-INF/lib/mail/Mailer.class.php b/WEB-INF/lib/mail/Mailer.class.php index a52e3c98..2d674ac3 100644 --- a/WEB-INF/lib/mail/Mailer.class.php +++ b/WEB-INF/lib/mail/Mailer.class.php @@ -33,6 +33,7 @@ class Mailer { var $mSender; var $mReceiver; var $mReceiverCC; + var $mReceiverBCC; function __construct($type='mail') { $this->mMailMode = $type; @@ -58,6 +59,10 @@ class Mailer { $this->mReceiverCC = $value; } + function setReceiverBCC($value) { + $this->mReceiverBCC = $value; + } + function setSender($value) { $this->mSender = $value; } @@ -68,6 +73,7 @@ class Mailer { $headers = array('From' => $this->mSender, 'To' => $this->mReceiver); if (isset($this->mReceiverCC)) $headers = array_merge($headers, array('CC' => $this->mReceiverCC)); + if (isset($this->mReceiverBCC)) $headers = array_merge($headers, array('BCC' => $this->mReceiverBCC)); $headers = array_merge($headers, array( 'Subject' => $subject, 'MIME-Version' => '1.0', @@ -84,11 +90,15 @@ class Mailer { break; case 'smtp': - // Mail_smtp does not do CC -> recipients conversion + // Mail_smtp does not do CC or BCC -> recipients conversion. if (!empty($this->mReceiverCC)) { // make exactly one space after a comma $recipients .= ', ' . preg_replace('/,[[:space:]]+/', ', ', $this->mReceiverCC); } + if (!empty($this->mReceiverBCC)) { + // make exactly one space after a comma + $recipients .= ', ' . preg_replace('/,[[:space:]]+/', ', ', $this->mReceiverBCC); + } $host = defined('MAIL_SMTP_HOST') ? MAIL_SMTP_HOST : 'localhost'; $port = defined('MAIL_SMTP_PORT') ? MAIL_SMTP_PORT : '25'; diff --git a/WEB-INF/lib/ttReportHelper.class.php b/WEB-INF/lib/ttReportHelper.class.php index 71cee914..f1fc5908 100644 --- a/WEB-INF/lib/ttReportHelper.class.php +++ b/WEB-INF/lib/ttReportHelper.class.php @@ -1575,7 +1575,7 @@ class ttReportHelper { // sendFavReport - sends a favorite report to a specified email, called from cron.php static function sendFavReport($report, $email) { // We are called from cron.php, we have no $bean in session. - // cron.php set global $user and $i18n objects to match our favorite report user. + // cron.php sets global $user and $i18n objects to match our favorite report user. global $user; global $i18n; @@ -1587,6 +1587,8 @@ class ttReportHelper { $mailer->setCharSet(CHARSET); $mailer->setContentType('text/html'); $mailer->setSender(SENDER); + if (!empty($user->bcc_email)) + $mailer->setReceiverBCC($user->bcc_email); $mailer->setReceiver($email); $mailer->setMailMode(MAIL_MODE); if (!$mailer->send($report['name'], $body)) diff --git a/WEB-INF/lib/ttTeamHelper.class.php b/WEB-INF/lib/ttTeamHelper.class.php index febf0753..92169eb2 100644 --- a/WEB-INF/lib/ttTeamHelper.class.php +++ b/WEB-INF/lib/ttTeamHelper.class.php @@ -776,6 +776,7 @@ class ttTeamHelper { $task_required_part = ' , task_required = '.intval($fields['task_required']); $record_type_part = ''; $uncompleted_indicators_part = ''; + $bcc_email_part = ''; $plugins_part = ''; $lock_spec_part = ''; $workday_hours_part = ''; @@ -790,13 +791,14 @@ class ttTeamHelper { if (isset($fields['tracking_mode'])) $tracking_mode_part = ', tracking_mode = '.intval($fields['tracking_mode']); if (isset($fields['record_type'])) $record_type_part = ', record_type = '.intval($fields['record_type']); if (isset($fields['uncompleted_indicators'])) $uncompleted_indicators_part = ', uncompleted_indicators = '.intval($fields['uncompleted_indicators']); + if (!empty($fields['bcc_email'])) $bcc_email_part = ', bcc_email = '.$mdb2->quote($fields['bcc_email']); if (isset($fields['plugins'])) $plugins_part = ', plugins = '.$mdb2->quote($fields['plugins']); if (isset($fields['lock_spec'])) $lock_spec_part = ', lock_spec = '.$mdb2->quote($fields['lock_spec']); if (isset($fields['workday_hours'])) $workday_hours_part = ', workday_hours = '.$mdb2->quote($fields['workday_hours']); $sql = "update tt_teams set $name_part $addr_part $currency_part $lang_part $decimal_mark_part $date_format_part $time_format_part $week_start_part $tracking_mode_part $task_required_part $record_type_part - $uncompleted_indicators_part $plugins_part $lock_spec_part $workday_hours_part where id = $team_id"; + $uncompleted_indicators_part $bcc_email_part $plugins_part $lock_spec_part $workday_hours_part where id = $team_id"; $affected = $mdb2->exec($sql); if (is_a($affected, 'PEAR_Error')) return false; diff --git a/WEB-INF/lib/ttUser.class.php b/WEB-INF/lib/ttUser.class.php index 50f27eba..7ace196a 100644 --- a/WEB-INF/lib/ttUser.class.php +++ b/WEB-INF/lib/ttUser.class.php @@ -46,6 +46,7 @@ class ttUser { var $task_required = 0; // Whether task selection is required on time entires. var $record_type = 0; // Record type (duration vs start and finish, or both). var $uncompleted_indicators = 0; // Uncompleted time entry indicators (show nowhere or on users page). + var $bcc_email = null; // Bcc email. var $currency = null; // Currency. var $plugins = null; // Comma-separated list of enabled plugins. var $team = null; // Team name. @@ -67,7 +68,7 @@ class ttUser { $sql = "SELECT u.id, u.login, u.name, u.team_id, u.role, u.client_id, u.email, t.name as team_name, t.address, t.currency, t.lang, t.decimal_mark, t.date_format, t.time_format, t.week_start, t.tracking_mode, t.project_required, t.task_required, t.record_type, t.uncompleted_indicators, - t.plugins, t.lock_spec, t.workday_hours, t.custom_logo + t.bcc_email, t.plugins, t.lock_spec, t.workday_hours, t.custom_logo FROM tt_users u LEFT JOIN tt_teams t ON (u.team_id = t.id) WHERE "; if ($id) $sql .= "u.id = $id"; @@ -99,6 +100,7 @@ class ttUser { $this->task_required = $val['task_required']; $this->record_type = $val['record_type']; $this->uncompleted_indicators = $val['uncompleted_indicators']; + $this->bcc_email = $val['bcc_email']; $this->team = $val['team_name']; $this->address = $val['address']; $this->currency = $val['currency']; diff --git a/WEB-INF/resources/ca.lang.php b/WEB-INF/resources/ca.lang.php index d28d319e..0c6ba89c 100644 --- a/WEB-INF/resources/ca.lang.php +++ b/WEB-INF/resources/ca.lang.php @@ -150,6 +150,8 @@ $i18n_key_words = array( 'label.password' => 'Paraula de pas', 'label.confirm_password' => 'Confirmar paraula de pas', 'label.email' => 'E-mail', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Data', // TODO: translate the following. // 'label.start_date' => 'Start date', diff --git a/WEB-INF/resources/cs.lang.php b/WEB-INF/resources/cs.lang.php index be74980b..57d2cdd7 100644 --- a/WEB-INF/resources/cs.lang.php +++ b/WEB-INF/resources/cs.lang.php @@ -140,6 +140,8 @@ $i18n_key_words = array( 'label.password' => 'heslo', 'label.confirm_password' => 'potvrdit heslo', // 'label.email' => 'email', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.total' => 'celkem', // TODO: translate the following. // 'label.page' => 'Page', diff --git a/WEB-INF/resources/da.lang.php b/WEB-INF/resources/da.lang.php index eb747f60..f5129ea2 100644 --- a/WEB-INF/resources/da.lang.php +++ b/WEB-INF/resources/da.lang.php @@ -131,6 +131,8 @@ $i18n_key_words = array( 'label.password' => 'Adgangskode', 'label.confirm_password' => 'Gentag adgangskode', 'label.email' => 'E-mail', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Dato', 'label.start_date' => 'Start dato', 'label.end_date' => 'Slut dato', diff --git a/WEB-INF/resources/de.lang.php b/WEB-INF/resources/de.lang.php index fc3fcd2d..658c32b7 100644 --- a/WEB-INF/resources/de.lang.php +++ b/WEB-INF/resources/de.lang.php @@ -127,6 +127,8 @@ $i18n_key_words = array( 'label.password' => 'Passwort', 'label.confirm_password' => 'Passwort bestätigen', 'label.email' => 'E-Mail', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Datum', 'label.start_date' => 'Anfangsdatum', 'label.end_date' => 'Enddatum', diff --git a/WEB-INF/resources/en.lang.php b/WEB-INF/resources/en.lang.php index 750ca4a6..242437dd 100644 --- a/WEB-INF/resources/en.lang.php +++ b/WEB-INF/resources/en.lang.php @@ -131,6 +131,7 @@ $i18n_key_words = array( 'label.password' => 'Password', 'label.confirm_password' => 'Confirm password', 'label.email' => 'Email', +'label.bcc' => 'Bcc', 'label.date' => 'Date', 'label.start_date' => 'Start date', 'label.end_date' => 'End date', diff --git a/WEB-INF/resources/es.lang.php b/WEB-INF/resources/es.lang.php index 82c1440b..e2fb9228 100644 --- a/WEB-INF/resources/es.lang.php +++ b/WEB-INF/resources/es.lang.php @@ -152,6 +152,8 @@ $i18n_key_words = array( 'label.password' => 'Contraseña', 'label.confirm_password' => 'Confirmar Contraseña', 'label.email' => 'Email', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Fecha', 'label.start_date' => 'Fecha de inicio', 'label.end_date' => 'Fecha de fin', diff --git a/WEB-INF/resources/et.lang.php b/WEB-INF/resources/et.lang.php index 342a43ae..0acbd8a9 100644 --- a/WEB-INF/resources/et.lang.php +++ b/WEB-INF/resources/et.lang.php @@ -153,6 +153,7 @@ $i18n_key_words = array( 'label.confirm_password' => 'Kinnita salasõna', // TODO: translate the following. // 'label.email' => 'Email', +// 'label.bcc' => 'Bcc', // 'label.date' => 'Date', // 'label.start_date' => 'Start date', // 'label.end_date' => 'End date', diff --git a/WEB-INF/resources/fa.lang.php b/WEB-INF/resources/fa.lang.php index 80561404..52831848 100644 --- a/WEB-INF/resources/fa.lang.php +++ b/WEB-INF/resources/fa.lang.php @@ -139,6 +139,8 @@ $i18n_key_words = array( 'label.password' => 'رمز عبور', 'label.confirm_password' => 'تکرار رمزعبور', 'label.email' => 'ایمیل', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'تاریخ', 'label.start_date' => 'تاریخ شروع', 'label.end_date' => 'تاریخ اتمام', diff --git a/WEB-INF/resources/fi.lang.php b/WEB-INF/resources/fi.lang.php index 87f3d1e0..c84bfd3a 100644 --- a/WEB-INF/resources/fi.lang.php +++ b/WEB-INF/resources/fi.lang.php @@ -129,6 +129,8 @@ $i18n_key_words = array( 'label.password' => 'Salasana', 'label.confirm_password' => 'Vahvista salasana', 'label.email' => 'Sähköposti', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Päiväys', 'label.start_date' => 'Aloituspäivä', 'label.end_date' => 'Päättymispäivä', diff --git a/WEB-INF/resources/fr.lang.php b/WEB-INF/resources/fr.lang.php index da31428a..fad8dee4 100644 --- a/WEB-INF/resources/fr.lang.php +++ b/WEB-INF/resources/fr.lang.php @@ -142,6 +142,8 @@ $i18n_key_words = array( 'label.password' => 'Mot de passe', 'label.confirm_password' => 'Confirmez le mot de passe', 'label.email' => 'Email', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Date', 'label.start_date' => 'Date de début', 'label.end_date' => 'Date de fin', diff --git a/WEB-INF/resources/he.lang.php b/WEB-INF/resources/he.lang.php index 3c10a64b..d57e5560 100644 --- a/WEB-INF/resources/he.lang.php +++ b/WEB-INF/resources/he.lang.php @@ -143,6 +143,8 @@ $i18n_key_words = array( 'label.password' => 'סיסמה', 'label.confirm_password' => 'בדיקת סיסמה', 'label.email' => 'דואר אלקטרוני', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'תאריך', 'label.start_date' => 'תאריך התחלה', 'label.end_date' => 'תאריך סיום', diff --git a/WEB-INF/resources/hu.lang.php b/WEB-INF/resources/hu.lang.php index 3d7200fd..dec8e10c 100644 --- a/WEB-INF/resources/hu.lang.php +++ b/WEB-INF/resources/hu.lang.php @@ -133,6 +133,8 @@ $i18n_key_words = array( 'label.password' => 'jelszó', 'label.confirm_password' => 'jelszó megerősítése', // 'label.email' => 'email', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.total' => 'összesen', // Translate the following. // 'label.page' => 'Page', diff --git a/WEB-INF/resources/it.lang.php b/WEB-INF/resources/it.lang.php index d4aeef82..78ed5898 100644 --- a/WEB-INF/resources/it.lang.php +++ b/WEB-INF/resources/it.lang.php @@ -132,6 +132,8 @@ $i18n_key_words = array( 'label.password' => 'password', 'label.confirm_password' => 'conferma password', 'label.email' => 'e-mail', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.total' => 'totale', // Translate the following. // 'label.page' => 'Page', diff --git a/WEB-INF/resources/ja.lang.php b/WEB-INF/resources/ja.lang.php index a12b0f95..a194c71a 100644 --- a/WEB-INF/resources/ja.lang.php +++ b/WEB-INF/resources/ja.lang.php @@ -136,6 +136,8 @@ $i18n_key_words = array( 'label.password' => 'パスワード', 'label.confirm_password' => 'パスワードの確認', 'label.email' => 'Eメール', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.total' => '合計', // Translate the following. // 'label.page' => 'Page', diff --git a/WEB-INF/resources/ko.lang.php b/WEB-INF/resources/ko.lang.php index d498dac3..0f2e2fff 100644 --- a/WEB-INF/resources/ko.lang.php +++ b/WEB-INF/resources/ko.lang.php @@ -132,6 +132,8 @@ $i18n_key_words = array( 'label.password' => '암호', 'label.confirm_password' => '암호 확인', 'label.email' => '이메일', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.total' => '합계', // TODO: translate the following. // 'label.page' => 'Page', diff --git a/WEB-INF/resources/nl.lang.php b/WEB-INF/resources/nl.lang.php index 3c0b3a27..4dd659d1 100644 --- a/WEB-INF/resources/nl.lang.php +++ b/WEB-INF/resources/nl.lang.php @@ -130,6 +130,8 @@ $i18n_key_words = array( 'label.password' => 'Wachtwoord', 'label.confirm_password' => 'Bevestig wachtwoord', 'label.email' => 'E-mailadres', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Datum', 'label.start_date' => 'Begindatum', 'label.end_date' => 'Einddatum', diff --git a/WEB-INF/resources/no.lang.php b/WEB-INF/resources/no.lang.php index 822d45ef..93f4efec 100644 --- a/WEB-INF/resources/no.lang.php +++ b/WEB-INF/resources/no.lang.php @@ -132,6 +132,8 @@ $i18n_key_words = array( 'label.password' => 'Passord', 'label.confirm_password' => 'Bekreft passord', // 'label.email' => 'email', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.total' => 'totalt', // TODO: translate the following. // 'label.page' => 'Page', diff --git a/WEB-INF/resources/pl.lang.php b/WEB-INF/resources/pl.lang.php index d64895c9..281fb62f 100644 --- a/WEB-INF/resources/pl.lang.php +++ b/WEB-INF/resources/pl.lang.php @@ -134,6 +134,8 @@ $i18n_key_words = array( 'label.password' => 'Hasło', 'label.confirm_password' => 'Potwierdź hasło', 'label.email' => 'E-mail', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Data', 'label.start_date' => 'Data początkowa', 'label.end_date' => 'Data końcowa', diff --git a/WEB-INF/resources/pt-br.lang.php b/WEB-INF/resources/pt-br.lang.php index 7eed1604..91794a13 100644 --- a/WEB-INF/resources/pt-br.lang.php +++ b/WEB-INF/resources/pt-br.lang.php @@ -129,6 +129,8 @@ $i18n_key_words = array( 'label.password' => 'Senha', 'label.confirm_password' => 'Confirme a senha', 'label.email' => 'E-mail', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Data', 'label.start_date' => 'Data inicial', 'label.end_date' => 'Data final', diff --git a/WEB-INF/resources/pt.lang.php b/WEB-INF/resources/pt.lang.php index a7de8f7f..488a3d03 100644 --- a/WEB-INF/resources/pt.lang.php +++ b/WEB-INF/resources/pt.lang.php @@ -129,8 +129,9 @@ $i18n_key_words = array( // 'label.manager_login' => 'manager login', 'label.password' => 'senha', 'label.confirm_password' => 'confirme a senha', -// 'label.email' => 'email', // TODO: translate the following. +// 'label.email' => 'email', +// 'label.bcc' => 'Bcc', // 'label.page' => 'Page', // 'label.condition' => 'Condition', diff --git a/WEB-INF/resources/ro.lang.php b/WEB-INF/resources/ro.lang.php index 22fc465f..ea64a58c 100644 --- a/WEB-INF/resources/ro.lang.php +++ b/WEB-INF/resources/ro.lang.php @@ -135,7 +135,9 @@ $i18n_key_words = array( // 'label.manager_login' => 'manager login', 'label.password' => 'parola', 'label.confirm_password' => 'confirma parola', +// TODO: translate the following. // 'label.email' => 'email', +// 'label.bcc' => 'Bcc', 'label.total' => 'total', // TODO: translate the following. // 'label.page' => 'Page', diff --git a/WEB-INF/resources/ru.lang.php b/WEB-INF/resources/ru.lang.php index 69def8e6..a488dc71 100644 --- a/WEB-INF/resources/ru.lang.php +++ b/WEB-INF/resources/ru.lang.php @@ -131,6 +131,7 @@ $i18n_key_words = array( 'label.password' => 'Пароль', 'label.confirm_password' => 'Подтверждение пароля', 'label.email' => 'Адрес e-mail', +'label.bcc' => 'Скрытая копия', 'label.date' => 'Дата', 'label.start_date' => 'Начальная дата', 'label.end_date' => 'Конечная дата', diff --git a/WEB-INF/resources/sk.lang.php b/WEB-INF/resources/sk.lang.php index eb9c8767..0b398f66 100644 --- a/WEB-INF/resources/sk.lang.php +++ b/WEB-INF/resources/sk.lang.php @@ -140,6 +140,8 @@ $i18n_key_words = array( 'label.password' => 'Heslo', 'label.confirm_password' => 'Potvrdenie hesla', 'label.email' => 'E-mail', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Dátum', 'label.start_date' => 'Dátum začiatku', 'label.end_date' => 'Dátum konca', diff --git a/WEB-INF/resources/sl.lang.php b/WEB-INF/resources/sl.lang.php index 6bfa049c..46427656 100644 --- a/WEB-INF/resources/sl.lang.php +++ b/WEB-INF/resources/sl.lang.php @@ -136,6 +136,8 @@ $i18n_key_words = array( 'label.password' => 'geslo', // 'label.confirm_password' => 'confirm password', 'label.email' => 'email', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.total' => 'total', // TODO: translate the following. // 'label.page' => 'Page', diff --git a/WEB-INF/resources/sr.lang.php b/WEB-INF/resources/sr.lang.php index 32011719..3afdbc79 100644 --- a/WEB-INF/resources/sr.lang.php +++ b/WEB-INF/resources/sr.lang.php @@ -131,6 +131,8 @@ $i18n_key_words = array( 'label.password' => 'Lozinka', 'label.confirm_password' => 'Potvrdi lozinku', 'label.email' => 'Email', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Datum', 'label.start_date' => 'Početni datum', 'label.end_date' => 'Krajnji datum', diff --git a/WEB-INF/resources/sv.lang.php b/WEB-INF/resources/sv.lang.php index 119223aa..266ee3e0 100644 --- a/WEB-INF/resources/sv.lang.php +++ b/WEB-INF/resources/sv.lang.php @@ -130,6 +130,8 @@ $i18n_key_words = array( 'label.password' => 'Lösenord', 'label.confirm_password' => 'Bekräfta lösenord', 'label.email' => 'E-postadress', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.date' => 'Datum', 'label.start_date' => 'Startdatum', 'label.end_date' => 'Slutdatum', diff --git a/WEB-INF/resources/tr.lang.php b/WEB-INF/resources/tr.lang.php index 58c19769..0bc3c922 100644 --- a/WEB-INF/resources/tr.lang.php +++ b/WEB-INF/resources/tr.lang.php @@ -136,6 +136,8 @@ $i18n_key_words = array( 'label.password' => 'parola', 'label.confirm_password' => 'parolayı tekrala', 'label.email' => 'e-posta', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.total' => 'toplam', // TODO: translate the following. // 'label.page' => 'Page', diff --git a/WEB-INF/resources/zh-cn.lang.php b/WEB-INF/resources/zh-cn.lang.php index 17355248..80d3fe56 100644 --- a/WEB-INF/resources/zh-cn.lang.php +++ b/WEB-INF/resources/zh-cn.lang.php @@ -146,7 +146,8 @@ $i18n_key_words = array( 'label.password' => '密码', 'label.confirm_password' => '确认密码', 'label.email' => '电子邮件', -// Translate the following. +// TODO: translate the following. +// 'label.bcc' => 'Bcc', // 'label.date' => 'Date', // 'label.start_date' => 'Start date', // 'label.end_date' => 'End date', diff --git a/WEB-INF/resources/zh-tw.lang.php b/WEB-INF/resources/zh-tw.lang.php index dbed304e..69d9e017 100644 --- a/WEB-INF/resources/zh-tw.lang.php +++ b/WEB-INF/resources/zh-tw.lang.php @@ -134,6 +134,8 @@ $i18n_key_words = array( 'label.password' => '密碼', 'label.confirm_password' => '確認密碼', 'label.email' => '電子郵件', +// TODO: translate the following. +// 'label.bcc' => 'Bcc', 'label.total' => '總計', // TODO: translate the following. // 'label.page' => 'Page', diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index 97ae2dfb..1b3cff08 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
- - +{if $user->isManager()} + + + + +{/if} {* initialize preview text *}
 Anuko Time Tracker 1.11.48.3664 | Copyright © Anuko | +  Anuko Time Tracker 1.12.0.3665 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} diff --git a/WEB-INF/templates/profile_edit.tpl b/WEB-INF/templates/profile_edit.tpl index d30d6ca3..c4e0f581 100644 --- a/WEB-INF/templates/profile_edit.tpl +++ b/WEB-INF/templates/profile_edit.tpl @@ -164,7 +164,12 @@ function handlePluginCheckboxes() { {$i18n.form.profile.uncompleted_indicators}: {$forms.profileForm.uncompleted_indicators.control}
{$i18n.label.bcc}:{$forms.profileForm.bcc_email.control} {$i18n.label.what_is_it}