summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/Controller/CommentMailController.php23
-rw-r--r--app/Controller/TaskMailController.php23
-rw-r--r--app/Import/TaskImport.php4
-rw-r--r--app/Locale/bs_BA/translations.php2
-rw-r--r--app/Locale/ca_ES/translations.php2
-rw-r--r--app/Locale/cs_CZ/translations.php2
-rw-r--r--app/Locale/da_DK/translations.php2
-rw-r--r--app/Locale/de_DE/translations.php2
-rw-r--r--app/Locale/el_GR/translations.php2
-rw-r--r--app/Locale/es_ES/translations.php2
-rw-r--r--app/Locale/fi_FI/translations.php2
-rw-r--r--app/Locale/fr_FR/translations.php2
-rw-r--r--app/Locale/hr_HR/translations.php2
-rw-r--r--app/Locale/hu_HU/translations.php2
-rw-r--r--app/Locale/id_ID/translations.php2
-rw-r--r--app/Locale/it_IT/translations.php2
-rw-r--r--app/Locale/ja_JP/translations.php2
-rw-r--r--app/Locale/ko_KR/translations.php2
-rw-r--r--app/Locale/my_MY/translations.php2
-rw-r--r--app/Locale/nb_NO/translations.php2
-rw-r--r--app/Locale/nl_NL/translations.php2
-rw-r--r--app/Locale/pl_PL/translations.php2
-rw-r--r--app/Locale/pt_BR/translations.php2
-rw-r--r--app/Locale/pt_PT/translations.php2
-rw-r--r--app/Locale/ro_RO/translations.php2
-rw-r--r--app/Locale/ru_RU/translations.php2
-rw-r--r--app/Locale/sr_Latn_RS/translations.php2
-rw-r--r--app/Locale/sv_SE/translations.php2
-rw-r--r--app/Locale/th_TH/translations.php2
-rw-r--r--app/Locale/tr_TR/translations.php2
-rw-r--r--app/Locale/vi_VN/translations.php2
-rw-r--r--app/Locale/zh_CN/translations.php2
-rw-r--r--app/Template/comment_mail/create.php4
-rw-r--r--app/Template/task_mail/create.php4
-rw-r--r--app/Validator/CommentValidator.php3
-rw-r--r--app/Validator/TaskValidator.php3
-rw-r--r--app/functions.php7
37 files changed, 67 insertions, 62 deletions
diff --git a/app/Controller/CommentMailController.php b/app/Controller/CommentMailController.php
index 144c9a13..94947027 100644
--- a/app/Controller/CommentMailController.php
+++ b/app/Controller/CommentMailController.php
@@ -51,24 +51,25 @@ class CommentMailController extends BaseController
protected function sendByEmail(array $values)
{
- $html = $this->template->render('comment_mail/email', array(
- 'email' => $values,
- ));
+ $html = $this->template->render('comment_mail/email', array('email' => $values));
+ $emails = explode_csv_field($values['emails']);
- $this->emailClient->send(
- $values['email'],
- $values['email'],
- $values['subject'],
- $html
- );
+ foreach ($emails as $email) {
+ $this->emailClient->send(
+ $email,
+ $email,
+ $values['subject'],
+ $html
+ );
+ }
}
protected function prepareComment(array $values)
{
- $values['comment'] .= "\n\n_".t('Sent by email to [%s](mailto:%s) (%s)', $values['email'], $values['email'], $values['subject']).'_';
+ $values['comment'] .= "\n\n_".t('Sent by email to "%s" (%s)', $values['emails'], $values['subject']).'_';
unset($values['subject']);
- unset($values['email']);
+ unset($values['emails']);
return $values;
}
diff --git a/app/Controller/TaskMailController.php b/app/Controller/TaskMailController.php
index feb96a68..9e753af1 100644
--- a/app/Controller/TaskMailController.php
+++ b/app/Controller/TaskMailController.php
@@ -36,7 +36,7 @@ class TaskMailController extends BaseController
$this->flash->success(t('Task sent by email successfully.'));
$this->commentModel->create(array(
- 'comment' => t('This task was sent by email to "%s" with subject "%s".', $values['email'], $values['subject']),
+ 'comment' => t('This task was sent by email to "%s" with subject "%s".', $values['emails'], $values['subject']),
'user_id' => $this->userSession->getId(),
'task_id' => $task['id'],
));
@@ -49,15 +49,16 @@ class TaskMailController extends BaseController
protected function sendByEmail(array $values, array $task)
{
- $html = $this->template->render('task_mail/email', array(
- 'task' => $task,
- ));
-
- $this->emailClient->send(
- $values['email'],
- $values['email'],
- $values['subject'],
- $html
- );
+ $emails = explode_csv_field($values['emails']);
+ $html = $this->template->render('task_mail/email', array('task' => $task));
+
+ foreach ($emails as $email) {
+ $this->emailClient->send(
+ $email,
+ $email,
+ $values['subject'],
+ $html
+ );
+ }
}
}
diff --git a/app/Import/TaskImport.php b/app/Import/TaskImport.php
index 4f89962b..8278ed26 100644
--- a/app/Import/TaskImport.php
+++ b/app/Import/TaskImport.php
@@ -67,9 +67,7 @@ class TaskImport extends Base
$this->nbImportedTasks++;
if (! empty($row['tags'])) {
- $tagsList = explode(',', $row['tags']);
- array_walk($tagsList, function (&$value) { $value = trim($value); });
- $this->taskTagModel->save($this->projectId, $taskId, $tagsList);
+ $this->taskTagModel->save($this->projectId, $taskId, explode_csv_field($row['tags']));
}
if (! empty($row['external_link'])) {
diff --git a/app/Locale/bs_BA/translations.php b/app/Locale/bs_BA/translations.php
index 12b96009..06e3f9f9 100644
--- a/app/Locale/bs_BA/translations.php
+++ b/app/Locale/bs_BA/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'Nemoguće priložiti datoteke, provjeri prava na "data" direktoriju na serveru.',
'Another category with the same name exists in this project' => 'Kategorija sa ovim imenom već postoji na ovom projektu',
'Comment sent by email successfully.' => 'Komentar je uspješno poslan email-om.',
- 'Sent by email to [%s](mailto:%s) (%s)' => 'Pošalji email-om [%s](mailto:%s) (%s)',
+ 'Sent by email to "%s" (%s)' => 'Pošalji email-om "%s" (%s)',
'Unable to read uploaded file.' => 'Nemoguće pročitati dodanu datoteku.',
'Database uploaded successfully.' => 'Baza podataka je uspješno dodana.',
'Task sent by email successfully.' => 'Zadatak je uspješno poslan email-om.',
diff --git a/app/Locale/ca_ES/translations.php b/app/Locale/ca_ES/translations.php
index 60769225..d72bd4d1 100644
--- a/app/Locale/ca_ES/translations.php
+++ b/app/Locale/ca_ES/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'No es pot pujar arxius, comprovar els permisos de la carpeta de dades.',
'Another category with the same name exists in this project' => 'Una altra categoria amb el mateix nom existeix en aquest projecte',
'Comment sent by email successfully.' => 'Comentar enviat per correu electrònic amb èxit.',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
'Unable to read uploaded file.' => 'No es pot llegir el fitxer pujat.',
'Database uploaded successfully.' => 'Base de dades carregat correctament.',
'Task sent by email successfully.' => 'Tasca enviat per correu electrònic amb èxit.',
diff --git a/app/Locale/cs_CZ/translations.php b/app/Locale/cs_CZ/translations.php
index c21b22f7..c7fc0e4e 100644
--- a/app/Locale/cs_CZ/translations.php
+++ b/app/Locale/cs_CZ/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/da_DK/translations.php b/app/Locale/da_DK/translations.php
index 1d58fe84..66f7d571 100644
--- a/app/Locale/da_DK/translations.php
+++ b/app/Locale/da_DK/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/de_DE/translations.php b/app/Locale/de_DE/translations.php
index 71b6ae76..174582c0 100644
--- a/app/Locale/de_DE/translations.php
+++ b/app/Locale/de_DE/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'Dateien können nicht hochgeladen werden, überprüfen Sie die Berechtigungen Ihres Datenordners.',
'Another category with the same name exists in this project' => 'Eine weitere Kategorie mit demselben Namen existiert in diesem Projekt',
'Comment sent by email successfully.' => 'Kommentar wurde erfolgreich per E-Mail gesendet.',
- 'Sent by email to [%s](mailto:%s) (%s)' => 'Wurde per E-Mail an [%s] gesendet (mailto:%s) (%s)',
+ 'Sent by email to "%s" (%s)' => 'Wurde per E-Mail an [%s] gesendet "%s"',
'Unable to read uploaded file.' => 'Die hochgeladene Datei konnte nicht gelesen werden.',
'Database uploaded successfully.' => 'Die Datenbank wurde erfolgreich hochgeladen.',
'Task sent by email successfully.' => 'Aufgabe wurde erfolgreich per E-Mail gesendet.',
diff --git a/app/Locale/el_GR/translations.php b/app/Locale/el_GR/translations.php
index ce53ef59..61d4e449 100644
--- a/app/Locale/el_GR/translations.php
+++ b/app/Locale/el_GR/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/es_ES/translations.php b/app/Locale/es_ES/translations.php
index df9dee49..ac1b82ec 100644
--- a/app/Locale/es_ES/translations.php
+++ b/app/Locale/es_ES/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'No se pueden cargar archivos, verifique los permisos de su carpeta de datos (data)',
'Another category with the same name exists in this project' => 'Ya existe otra categoría con el mismo nombre en este proyecto',
'Comment sent by email successfully.' => 'Comentario enviado exitosamente por email',
- 'Sent by email to [%s](mailto:%s) (%s)' => 'Enviado por email a [%s](mailto:%s) (%s)',
+ 'Sent by email to "%s" (%s)' => 'Enviado por email a "%s" (%s)',
'Unable to read uploaded file.' => 'No se pudo leer el archivo cargado',
'Database uploaded successfully.' => 'Base de datos cargada exitosamente',
'Task sent by email successfully.' => 'Tarea enviada exitosamente por email',
diff --git a/app/Locale/fi_FI/translations.php b/app/Locale/fi_FI/translations.php
index edfa7dd8..25f8ecec 100644
--- a/app/Locale/fi_FI/translations.php
+++ b/app/Locale/fi_FI/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/fr_FR/translations.php b/app/Locale/fr_FR/translations.php
index adb88eb0..3768839f 100644
--- a/app/Locale/fr_FR/translations.php
+++ b/app/Locale/fr_FR/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'Impossible de transférer le ou les fichiers, vérifiez les permissions du répertoire de données.',
'Another category with the same name exists in this project' => 'Une autre catégorie avec le même nom existe dans ce projet',
'Comment sent by email successfully.' => 'Commentaire envoyé par email avec succès.',
- 'Sent by email to [%s](mailto:%s) (%s)' => 'Envoyé par email à [%s](mailto:%s) (%s)',
+ 'Sent by email to "%s" (%s)' => 'Envoyé par email à « %s » (%s)',
'Unable to read uploaded file.' => 'Impossible de lire le fichier téléversé.',
'Database uploaded successfully.' => 'Base de données téléversée avec succès.',
'Task sent by email successfully.' => 'Tâche envoyée par email avec succès.',
diff --git a/app/Locale/hr_HR/translations.php b/app/Locale/hr_HR/translations.php
index 39159c53..9ff7ae72 100644
--- a/app/Locale/hr_HR/translations.php
+++ b/app/Locale/hr_HR/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/hu_HU/translations.php b/app/Locale/hu_HU/translations.php
index c0bd0a70..a90662d5 100644
--- a/app/Locale/hu_HU/translations.php
+++ b/app/Locale/hu_HU/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'Nem lehet feltölteni fájlokat. Ellenőrizze az adatkönyvtár jogosultságait.',
'Another category with the same name exists in this project' => 'Már létezik egy ugyanilyen nevű kategória ebben a projektben',
'Comment sent by email successfully.' => 'A megjegyzés sikeresen elküldve e-mailben.',
- 'Sent by email to [%s](mailto:%s) (%s)' => 'E-mail küldve neki: [%s](mailto:%s) (%s)',
+ 'Sent by email to "%s" (%s)' => 'E-mail küldve neki: "%s" (%s)',
'Unable to read uploaded file.' => 'Nem lehet beolvasni a feltöltött fájlt.',
'Database uploaded successfully.' => 'Az adatbázis sikeresen feltöltve.',
'Task sent by email successfully.' => 'A feladat sikeresen elküldve e-mailben.',
diff --git a/app/Locale/id_ID/translations.php b/app/Locale/id_ID/translations.php
index 59c92695..701c3410 100644
--- a/app/Locale/id_ID/translations.php
+++ b/app/Locale/id_ID/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/it_IT/translations.php b/app/Locale/it_IT/translations.php
index 5e925c29..4cf1831e 100644
--- a/app/Locale/it_IT/translations.php
+++ b/app/Locale/it_IT/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/ja_JP/translations.php b/app/Locale/ja_JP/translations.php
index f8635aa4..6aaf2571 100644
--- a/app/Locale/ja_JP/translations.php
+++ b/app/Locale/ja_JP/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'ファイルをアップロードできません。データフォルダのアクセス権を確認してください。',
'Another category with the same name exists in this project' => '同じ名前の別のカテゴリがプロジェクトに存在します',
'Comment sent by email successfully.' => 'メールでコメントを送信しました',
- 'Sent by email to [%s](mailto:%s) (%s)' => '%s をメールで送信しました(mailto:%s) (%s)',
+ 'Sent by email to "%s" (%s)' => '%s をメールで送信しました "%s"',
'Unable to read uploaded file.' => 'アップロードされたファイルを読み込めません',
'Database uploaded successfully.' => 'データベースをアップロードしました',
'Task sent by email successfully.' => 'タスクをメールで送信しました',
diff --git a/app/Locale/ko_KR/translations.php b/app/Locale/ko_KR/translations.php
index c83690b5..8a139def 100644
--- a/app/Locale/ko_KR/translations.php
+++ b/app/Locale/ko_KR/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/my_MY/translations.php b/app/Locale/my_MY/translations.php
index 587721ce..7ce542a2 100644
--- a/app/Locale/my_MY/translations.php
+++ b/app/Locale/my_MY/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/nb_NO/translations.php b/app/Locale/nb_NO/translations.php
index 49f39bd3..49ba2ae6 100644
--- a/app/Locale/nb_NO/translations.php
+++ b/app/Locale/nb_NO/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/nl_NL/translations.php b/app/Locale/nl_NL/translations.php
index 6a7a9782..d1bc66a8 100644
--- a/app/Locale/nl_NL/translations.php
+++ b/app/Locale/nl_NL/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/pl_PL/translations.php b/app/Locale/pl_PL/translations.php
index 0eeae221..78285ba3 100644
--- a/app/Locale/pl_PL/translations.php
+++ b/app/Locale/pl_PL/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/pt_BR/translations.php b/app/Locale/pt_BR/translations.php
index a7568b6b..61ad9eb7 100644
--- a/app/Locale/pt_BR/translations.php
+++ b/app/Locale/pt_BR/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'Incapaz de enviar arquivos. Verifique as permissões da sua pasta de dados.',
'Another category with the same name exists in this project' => 'Outra categoria com o mesmo nome existe neste projeto',
'Comment sent by email successfully.' => 'Comentário enviado por e-mail com sucesso.',
- 'Sent by email to [%s](mailto:%s) (%s)' => 'Enviar por e-mail para [%s](mailto:%s) (%s)',
+ 'Sent by email to "%s" (%s)' => 'Enviar por e-mail para "%s" (%s)',
'Unable to read uploaded file.' => 'Incapaz de ler arquivos enviados.',
'Database uploaded successfully.' => 'Base de dados enviado com sucesso.',
'Task sent by email successfully.' => 'Tarefa enviada por e-mail com sucesso.',
diff --git a/app/Locale/pt_PT/translations.php b/app/Locale/pt_PT/translations.php
index 92a1503b..824979b3 100644
--- a/app/Locale/pt_PT/translations.php
+++ b/app/Locale/pt_PT/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'Impossivel enviar ficheiros, verifique as permissões da pasta data',
'Another category with the same name exists in this project' => 'Outra categoria com o mesmo nome já existe neste projecto',
'Comment sent by email successfully.' => 'Comentário enviado por email com sucesso.',
- 'Sent by email to [%s](mailto:%s) (%s)' => 'Enviado por email para [%s](mailto:%s) (%s)',
+ 'Sent by email to "%s" (%s)' => 'Enviado por email para "%s" (%s)',
'Unable to read uploaded file.' => 'Não foi possivel ler ficheiro enviado.',
'Database uploaded successfully.' => 'Base de dados enviada com sucesso.',
'Task sent by email successfully.' => 'Tarefa enviada por email com sucesso.',
diff --git a/app/Locale/ro_RO/translations.php b/app/Locale/ro_RO/translations.php
index bbe6cffb..6a09c3d7 100644
--- a/app/Locale/ro_RO/translations.php
+++ b/app/Locale/ro_RO/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'Nu am putut încărca fișierele, verifică permisiunile directorului de date.',
'Another category with the same name exists in this project' => 'Altă categorie cu același nume există deja în proiect',
'Comment sent by email successfully.' => 'Comentariul a fost trimis prin e-mail.',
- 'Sent by email to [%s](mailto:%s) (%s)' => 'Trimite prin e-mail la [%s](mailto:%s) (%s)',
+ 'Sent by email to "%s" (%s)' => 'Trimite prin e-mail la "%s" (%s)',
'Unable to read uploaded file.' => 'Nu pot citi fișierul încărcat.',
'Database uploaded successfully.' => 'Baza de date a fost încărcată cu succes.',
'Task sent by email successfully.' => 'Sarcina a fost trimisă prin e-mail.',
diff --git a/app/Locale/ru_RU/translations.php b/app/Locale/ru_RU/translations.php
index f35c36bd..d04d73f1 100644
--- a/app/Locale/ru_RU/translations.php
+++ b/app/Locale/ru_RU/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'Невозможно загрузить файлы, проверьте права доступа на папку "data".',
'Another category with the same name exists in this project' => 'Другая категория с таким же именем уже существует в этом проекте',
'Comment sent by email successfully.' => 'Комментарий успешно отправлен по e-mail.',
- 'Sent by email to [%s](mailto:%s) (%s)' => 'Отправлен по e-mail для [%s](mailto:%s) (%s)',
+ 'Sent by email to "%s" (%s)' => 'Отправлен по e-mail для "%s" (%s)',
'Unable to read uploaded file.' => 'Не удаётся прочитать загруженный файл.',
'Database uploaded successfully.' => 'База данных успешно импортирована.',
'Task sent by email successfully.' => 'Задача успешно отправлена по e-mail.',
diff --git a/app/Locale/sr_Latn_RS/translations.php b/app/Locale/sr_Latn_RS/translations.php
index 5d85e1d6..f7060da2 100644
--- a/app/Locale/sr_Latn_RS/translations.php
+++ b/app/Locale/sr_Latn_RS/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/sv_SE/translations.php b/app/Locale/sv_SE/translations.php
index b8f9dbf6..a497a857 100644
--- a/app/Locale/sv_SE/translations.php
+++ b/app/Locale/sv_SE/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/th_TH/translations.php b/app/Locale/th_TH/translations.php
index 4f4de735..4c6f45b7 100644
--- a/app/Locale/th_TH/translations.php
+++ b/app/Locale/th_TH/translations.php
@@ -1266,7 +1266,7 @@ return array(
// 'Unable to upload files, check the permissions of your data folder.' => '',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Locale/tr_TR/translations.php b/app/Locale/tr_TR/translations.php
index 82853a92..df95d2b3 100644
--- a/app/Locale/tr_TR/translations.php
+++ b/app/Locale/tr_TR/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'Dosya yüklenemedi. Lütfen yükleme dizine yazma izninizi kontrol ediniz.',
'Another category with the same name exists in this project' => 'Bu projede aynı ada sahip başka bir kategori var',
'Comment sent by email successfully.' => 'Yorum ePosta ile başarıyla gönderildi.',
- 'Sent by email to [%s](mailto:%s) (%s)' => 'ePostayı gönder [%s](mailto:%s) (%s)',
+ 'Sent by email to "%s" (%s)' => 'ePostayı gönder "%s" (%s)',
'Unable to read uploaded file.' => 'Yüklenen dosya okunamadı.',
'Database uploaded successfully.' => 'Veritabanı başarıyla yüklendi.',
'Task sent by email successfully.' => 'Görev ePosta ile başarıyla gönderildi.',
diff --git a/app/Locale/vi_VN/translations.php b/app/Locale/vi_VN/translations.php
index 13ed8f6b..f18577ce 100644
--- a/app/Locale/vi_VN/translations.php
+++ b/app/Locale/vi_VN/translations.php
@@ -1272,7 +1272,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => 'Không thể tải tệp lên, hãy kiểm tra quyền của thư mục dữ liệu của bạn.',
'Another category with the same name exists in this project' => 'Một thể loại khác có cùng tên tồn tại trong dự án này',
'Comment sent by email successfully.' => 'Thảo luận gửi qua email thành công.',
- 'Sent by email to [%s](mailto:%s) (%s)' => 'Gửi qua email tới [ %s] (mailto: %s) ( %s)',
+ 'Sent by email to "%s" (%s)' => 'Gửi qua email tới "%s" ( %s)',
'Unable to read uploaded file.' => 'Không thể đọc tập tin được tải lên.',
'Database uploaded successfully.' => 'Cơ sở dữ liệu được tải lên thành công.',
'Task sent by email successfully.' => 'Nhiệm vụ gửi qua email thành công.',
diff --git a/app/Locale/zh_CN/translations.php b/app/Locale/zh_CN/translations.php
index 1ec8ac4d..be761e5d 100644
--- a/app/Locale/zh_CN/translations.php
+++ b/app/Locale/zh_CN/translations.php
@@ -1266,7 +1266,7 @@ return array(
'Unable to upload files, check the permissions of your data folder.' => '无法上传文件,请检查你的data目录权限。',
// 'Another category with the same name exists in this project' => '',
// 'Comment sent by email successfully.' => '',
- // 'Sent by email to [%s](mailto:%s) (%s)' => '',
+ // 'Sent by email to "%s" (%s)' => '',
// 'Unable to read uploaded file.' => '',
// 'Database uploaded successfully.' => '',
// 'Task sent by email successfully.' => '',
diff --git a/app/Template/comment_mail/create.php b/app/Template/comment_mail/create.php
index 8732080a..84c241d3 100644
--- a/app/Template/comment_mail/create.php
+++ b/app/Template/comment_mail/create.php
@@ -6,8 +6,8 @@
<?= $this->form->hidden('task_id', $values) ?>
<?= $this->form->hidden('user_id', $values) ?>
- <?= $this->form->label(t('Email'), 'email') ?>
- <?= $this->form->email('email', $values, $errors, array('autofocus', 'required', 'tabindex="1"')) ?>
+ <?= $this->form->label(t('Email'), 'emails') ?>
+ <?= $this->form->text('emails', $values, $errors, array('autofocus', 'required', 'tabindex="1"')) ?>
<?php if (! empty($members)): ?>
<div class="dropdown">
diff --git a/app/Template/task_mail/create.php b/app/Template/task_mail/create.php
index f369ef99..3985dddf 100644
--- a/app/Template/task_mail/create.php
+++ b/app/Template/task_mail/create.php
@@ -4,8 +4,8 @@
<form method="post" action="<?= $this->url->href('TaskMailController', 'send', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>" autocomplete="off" class="js-mail-form">
<?= $this->form->csrf() ?>
- <?= $this->form->label(t('Email'), 'email') ?>
- <?= $this->form->email('email', $values, $errors, array('autofocus', 'required', 'tabindex="1"')) ?>
+ <?= $this->form->label(t('Email'), 'emails') ?>
+ <?= $this->form->text('emails', $values, $errors, array('autofocus', 'required', 'tabindex="1"')) ?>
<?php if (! empty($members)): ?>
<div class="dropdown">
diff --git a/app/Validator/CommentValidator.php b/app/Validator/CommentValidator.php
index 29994afc..9c883c00 100644
--- a/app/Validator/CommentValidator.php
+++ b/app/Validator/CommentValidator.php
@@ -26,8 +26,7 @@ class CommentValidator extends BaseValidator
new Validators\Required('task_id', t('This value is required')),
new Validators\Required('user_id', t('This value is required')),
new Validators\Required('subject', t('This field is required')),
- new Validators\Required('email', t('This field is required')),
- new Validators\Email('email', t('Email address invalid')),
+ new Validators\Required('emails', t('This field is required')),
);
$v = new Validator($values, array_merge($rules, $this->commonValidationRules()));
diff --git a/app/Validator/TaskValidator.php b/app/Validator/TaskValidator.php
index 3fc70317..2bf148f4 100644
--- a/app/Validator/TaskValidator.php
+++ b/app/Validator/TaskValidator.php
@@ -217,8 +217,7 @@ class TaskValidator extends BaseValidator
{
$rules = array(
new Validators\Required('subject', t('This field is required')),
- new Validators\Required('email', t('This field is required')),
- new Validators\Email('email', t('Email address invalid')),
+ new Validators\Required('emails', t('This field is required')),
);
$v = new Validator($values, $rules);
diff --git a/app/functions.php b/app/functions.php
index 7cd59c41..94530af8 100644
--- a/app/functions.php
+++ b/app/functions.php
@@ -2,6 +2,13 @@
use Kanboard\Core\Translator;
+function explode_csv_field($field)
+{
+ $fields = explode(',', $field);
+ array_walk($fields, function (&$value) { $value = trim($value); });
+ return array_filter($fields);
+}
+
/**
* Associate another dict to a dict based on a common key
*