diff options
50 files changed, 944 insertions, 536 deletions
diff --git a/app/Auth/RememberMe.php b/app/Auth/RememberMe.php index e8b20f37..eebf4f4b 100644 --- a/app/Auth/RememberMe.php +++ b/app/Auth/RememberMe.php @@ -119,31 +119,6 @@ class RememberMe extends Base } /** - * Update the database and the cookie with a new sequence - * - * @access public - */ - public function refresh() - { - $credentials = $this->readCookie(); - - if ($credentials !== false) { - - $record = $this->find($credentials['token'], $credentials['sequence']); - - if ($record) { - - // Update the sequence - $this->writeCookie( - $record['token'], - $this->update($record['token']), - $record['expiration'] - ); - } - } - } - - /** * Remove a session record * * @access public @@ -197,9 +172,10 @@ class RememberMe extends Base $this->cleanup($user_id); - $this->db - ->table(self::TABLE) - ->insert(array( + $this + ->db + ->table(self::TABLE) + ->insert(array( 'user_id' => $user_id, 'ip' => $ip, 'user_agent' => $user_agent, @@ -207,7 +183,7 @@ class RememberMe extends Base 'sequence' => $sequence, 'expiration' => $expiration, 'date_creation' => time(), - )); + )); return array( 'token' => $token, diff --git a/app/Controller/Ical.php b/app/Controller/Ical.php index 8a7ed8b5..0129915e 100644 --- a/app/Controller/Ical.php +++ b/app/Controller/Ical.php @@ -78,8 +78,8 @@ class Ical extends Base */ private function renderCalendar(TaskFilter $filter, iCalendar $calendar) { - $start = $this->request->getStringParam('start', strtotime('-1 month')); - $end = $this->request->getStringParam('end', strtotime('+2 months')); + $start = $this->request->getStringParam('start', strtotime('-2 month')); + $end = $this->request->getStringParam('end', strtotime('+6 months')); // Tasks if ($this->config->get('calendar_project_tasks', 'date_started') === 'date_creation') { diff --git a/app/Core/Helper.php b/app/Core/Helper.php index 53084a7e..e4f225b0 100644 --- a/app/Core/Helper.php +++ b/app/Core/Helper.php @@ -2,6 +2,8 @@ namespace Core; +use Pimple\Container; + /** * Helper base class * @@ -19,16 +21,34 @@ namespace Core; * @property \Helper\Url $url * @property \Helper\User $user */ -class Helper extends Base +class Helper { /** * Helper instances * - * @static * @access private * @var array */ - private static $helpers = array(); + private $helpers = array(); + + /** + * Container instance + * + * @access protected + * @var \Pimple\Container + */ + protected $container; + + /** + * Constructor + * + * @access public + * @param \Pimple\Container $container + */ + public function __construct(Container $container) + { + $this->container = $container; + } /** * Load automatically helpers @@ -39,12 +59,12 @@ class Helper extends Base */ public function __get($name) { - if (! isset(self::$helpers[$name])) { + if (! isset($this->helpers[$name])) { $class = '\Helper\\'.ucfirst($name); - self::$helpers[$name] = new $class($this->container); + $this->helpers[$name] = new $class($this->container); } - return self::$helpers[$name]; + return $this->helpers[$name]; } /** diff --git a/app/Core/Lexer.php b/app/Core/Lexer.php index d277f998..3887dc82 100644 --- a/app/Core/Lexer.php +++ b/app/Core/Lexer.php @@ -33,11 +33,14 @@ class Lexer "/^(category:)/" => 'T_CATEGORY', "/^(column:)/" => 'T_COLUMN', "/^(project:)/" => 'T_PROJECT', + "/^(ref:)/" => 'T_REFERENCE', + "/^(reference:)/" => 'T_REFERENCE', "/^(\s+)/" => 'T_WHITESPACE', '/^([<=>]{0,2}[0-9]{4}-[0-9]{2}-[0-9]{2})/' => 'T_DATE', '/^(yesterday|tomorrow|today)/' => 'T_DATE', '/^("(.*?)")/' => 'T_STRING', "/^(\w+)/" => 'T_STRING', + "/^(#\d+)/" => 'T_STRING', ); /** @@ -124,6 +127,7 @@ class Lexer case 'T_STATUS': case 'T_DUE': case 'T_DESCRIPTION': + case 'T_REFERENCE': $next = next($tokens); if ($next !== false && ($next['token'] === 'T_DATE' || $next['token'] === 'T_STRING')) { diff --git a/app/Helper/Url.php b/app/Helper/Url.php index e133f195..8de63f8d 100644 --- a/app/Helper/Url.php +++ b/app/Helper/Url.php @@ -99,6 +99,10 @@ class Url extends \Core\Base */ public function server() { + if (empty($_SERVER['SERVER_NAME'])) { + return 'http://localhost/'; + } + $self = str_replace('\\', '/', dirname($_SERVER['PHP_SELF'])); $url = Request::isHTTPS() ? 'https://' : 'http://'; diff --git a/app/Helper/User.php b/app/Helper/User.php index 1cad6042..c1fff8c6 100644 --- a/app/Helper/User.php +++ b/app/Helper/User.php @@ -11,6 +11,24 @@ namespace Helper; class User extends \Core\Base { /** + * Get initials from a user + * + * @access public + * @param string $name + * @return string + */ + public function getInitials($name) + { + $initials = ''; + + foreach (explode(' ', $name) as $string) { + $initials .= mb_substr($string, 0, 1); + } + + return mb_strtoupper($initials); + } + + /** * Get user id * * @access public diff --git a/app/Locale/da_DK/translations.php b/app/Locale/da_DK/translations.php index ece8a97b..91d7b98a 100644 --- a/app/Locale/da_DK/translations.php +++ b/app/Locale/da_DK/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Dato for oprettelse', 'Date completed' => 'Dato for fuldført', 'Id' => 'ID', - 'Completed tasks' => 'Fuldførte opgaver', - 'Completed tasks for "%s"' => 'Fuldførte opgaver for "%s"', '%d closed tasks' => '%d lukket opgavet', 'No task for this project' => 'Ingen opgaver i dette projekt', 'Public link' => 'Offentligt link', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Udløbsdato', 'Remember Me' => 'Husk mig', 'Creation date' => 'Oprettelsesdato', - 'Filter by user' => 'Filtrer efter bruger', - 'Filter by due date' => 'Filtrer efter forfaldsdato', 'Everybody' => 'Alle', 'Open' => 'Åben', 'Closed' => 'Lukket', 'Search' => 'Søg', 'Nothing found.' => 'Intet fundet.', - 'Search in the project "%s"' => 'Søg i projektet "%s"', 'Due date' => 'Forfaldsdato', 'Others formats accepted: %s and %s' => 'Andre acceptable formater: %s und %s', 'Description' => 'Beskrivelse', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Kategorinavn', 'Add a new category' => 'Tilfæj en ny kategori', 'Do you really want to remove this category: "%s"?' => 'Vil du virkelig fjerne denne kategori: "%s"?', - 'Filter by category' => 'Filter efter kategori', 'All categories' => 'Alle kategorier', 'No category' => 'Ingen kategori', 'The name is required' => 'Navnet er krævet', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s opdateret en kommentar på opgaven %s', '%s commented the task %s' => '%s har kommenteret opgaven %s', '%s\'s activity' => '%s\'s aktvitet', - 'No activity.' => 'Ingen aktivitet', 'RSS feed' => 'RSS feed', '%s updated a comment on the task #%d' => '%s opdaterede en kommentar på opgaven #%d', '%s commented on the task #%d' => '%s kommenteret op opgaven #%d', @@ -605,14 +598,9 @@ return array( // 'Language:' => '', // 'Timezone:' => '', // 'All columns' => '', - // 'Calendar for "%s"' => '', - // 'Filter by column' => '', - // 'Filter by status' => '', // 'Calendar' => '', // 'Next' => '', // '#%d' => '', - // 'Filter by color' => '', - // 'Filter by swimlane' => '', // 'All swimlanes' => '', // 'All colors' => '', // 'All status' => '', @@ -627,14 +615,8 @@ return array( // 'Time Tracking' => '', // 'You already have one subtask in progress' => '', // 'Which parts of the project do you want to duplicate?' => '', - // 'Change dashboard view' => '', - // 'Show/hide activities' => '', - // 'Show/hide projects' => '', - // 'Show/hide subtasks' => '', - // 'Show/hide tasks' => '', // 'Disable login form' => '', // 'Show/hide calendar' => '', - // 'User calendar' => '', // 'Bitbucket commit received' => '', // 'Bitbucket webhooks' => '', // 'Help on Bitbucket webhooks' => '', @@ -688,9 +670,7 @@ return array( // 'Keyboard shortcuts' => '', // 'Open board switcher' => '', // 'Application' => '', - // 'Filter recently updated' => '', // 'since %B %e, %Y at %k:%M %p' => '', - // 'More filters' => '', // 'Compact view' => '', // 'Horizontal scrolling' => '', // 'Compact/wide view' => '', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/de_DE/translations.php b/app/Locale/de_DE/translations.php index bfe9f04c..100335c5 100644 --- a/app/Locale/de_DE/translations.php +++ b/app/Locale/de_DE/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Erstellt am', 'Date completed' => 'Abgeschlossen am', 'Id' => 'ID', - 'Completed tasks' => 'Abgeschlossene Aufgaben', - 'Completed tasks for "%s"' => 'Abgeschlossene Aufgaben für "%s"', '%d closed tasks' => '%d abgeschlossene Aufgaben', 'No task for this project' => 'Keine Aufgaben in diesem Projekt', 'Public link' => 'Öffentlicher Link', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Ablaufdatum', 'Remember Me' => 'Angemeldet bleiben', 'Creation date' => 'Erstellungsdatum', - 'Filter by user' => 'Benutzer filtern', - 'Filter by due date' => 'Fälligkeit filtern', 'Everybody' => 'Alle', 'Open' => 'Offen', 'Closed' => 'Abgeschlossen', 'Search' => 'Suchen', 'Nothing found.' => 'Nichts gefunden.', - 'Search in the project "%s"' => 'Suche in Projekt "%s"', 'Due date' => 'Fälligkeitsdatum', 'Others formats accepted: %s and %s' => 'Andere akzeptierte Formate: %s und %s', 'Description' => 'Beschreibung', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Kategoriename', 'Add a new category' => 'Neue Kategorie', 'Do you really want to remove this category: "%s"?' => 'Soll diese Kategorie wirklich gelöscht werden: "%s"?', - 'Filter by category' => 'Kategorie filtern', 'All categories' => 'Alle Kategorien', 'No category' => 'Keine Kategorie', 'The name is required' => 'Der Name ist erforderlich', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s hat einen Kommentar der Aufgabe %s aktualisiert', '%s commented the task %s' => '%s hat die Aufgabe %s kommentiert', '%s\'s activity' => '%s\'s Aktivität', - 'No activity.' => 'Keine Aktivität.', 'RSS feed' => 'RSS Feed', '%s updated a comment on the task #%d' => '%s hat einen Kommentar der Aufgabe #%d aktualisiert', '%s commented on the task #%d' => '%s hat die Aufgabe #%d kommentiert', @@ -605,14 +598,9 @@ return array( 'Language:' => 'Sprache:', 'Timezone:' => 'Zeitzone:', 'All columns' => 'Alle Spalten', - 'Calendar for "%s"' => 'Kalender für "%s"', - 'Filter by column' => 'Spalte filtern', - 'Filter by status' => 'Status filtern', 'Calendar' => 'Kalender', 'Next' => 'Nächste', // '#%d' => '', - 'Filter by color' => 'Farbe filtern', - 'Filter by swimlane' => 'Swimlane filtern', 'All swimlanes' => 'Alle Swimlanes', 'All colors' => 'Alle Farben', 'All status' => 'Alle Status', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'Zeiterfassung', 'You already have one subtask in progress' => 'Bereits eine Teilaufgabe in bearbeitung', 'Which parts of the project do you want to duplicate?' => 'Welcher Teil des Projekts soll kopiert werden?', - 'Change dashboard view' => 'Dashboardansicht ändern', - 'Show/hide activities' => 'Aktivitäten anzeigen/verbergen', - 'Show/hide projects' => 'Projekte anzeigen/verbergen', - 'Show/hide subtasks' => 'Teilaufgaben anzeigen/verbergen', - 'Show/hide tasks' => 'Aufgaben anzeigen/verbergen', 'Disable login form' => 'Anmeldeformular deaktivieren', 'Show/hide calendar' => 'Kalender anzeigen/verbergen', - 'User calendar' => 'Benutzer Kalender', 'Bitbucket commit received' => 'Bitbucket commit erhalten', 'Bitbucket webhooks' => 'Bitbucket webhooks', 'Help on Bitbucket webhooks' => 'Hilfe für Bitbucket webhooks', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'Tastaturkürzel', 'Open board switcher' => 'Pinnwandauswahl öffnen', 'Application' => 'Anwendung', - 'Filter recently updated' => 'Zuletzt geänderte anzeigen', 'since %B %e, %Y at %k:%M %p' => 'seit %B %e, %Y um %k:%M %p', - 'More filters' => 'Mehr Filter', 'Compact view' => 'Kompaktansicht', 'Horizontal scrolling' => 'Horizontales Scrollen', 'Compact/wide view' => 'Kompakt/Breite-Ansicht', @@ -872,7 +852,7 @@ return array( 'Subtasks time tracking' => 'Teilaufgaben Zeiterfassung', 'User calendar view' => 'Benutzer-Kalendarsicht', 'Automatically update the start date' => 'Beginndatum automatisch aktualisieren', - //'iCal feed' => '', + // 'iCal feed' => '', 'Preferences' => 'Einstellungen', 'Security' => 'Sicherheit', 'Two factor authentication disabled' => 'Zweifaktorauthentifizierung deaktiviert', @@ -921,7 +901,6 @@ return array( 'The task have been moved to the first swimlane' => 'Die Aufgabe wurde in die erste Swimlane verschoben', 'The task have been moved to another swimlane:' => 'Die Aufgaben wurde in ene andere Swimlane verschoben', 'Overdue tasks for the project "%s"' => 'Überfällige Aufgaben für das Projekt "%s"', - 'There is no completed tasks at the moment.' => 'Es gibt keine abgeschlossenen Aufgaben', 'New title: %s' => 'Neuer Titel: %s', 'The task is not assigned anymore' => 'Die Aufgabe ist nicht mehr zugewiesen', 'New assignee: %s' => 'Neue Zuordnung: %s', @@ -938,24 +917,58 @@ return array( 'The description have been modified' => 'Die Beschreibung wurde geändert', 'Do you really want to close the task "%s" as well as all subtasks?' => 'Soll die Aufgabe "%s" wirklich geschlossen werden? (einschließlich Teilaufgaben)', // 'Swimlane: %s' => '', - 'Project calendar' => 'Projektkalendar', 'I want to receive notifications for:' => 'Ich möchte Benachrichtigungn erhalten für:', 'All tasks' => 'Alle Aufgaben', 'Only for tasks assigned to me' => 'nur mir zugeordnete Aufgane', 'Only for tasks created by me' => 'nur von mir erstellte Aufgaben', 'Only for tasks created by me and assigned to me' => 'nur mir zugeordnete und von mir erstellte Aufgaben', - //'%A' => '', - //'%b %e, %Y, %k:%M %p' => '', + // '%A' => '', + // '%b %e, %Y, %k:%M %p' => '', 'New due date: %B %e, %Y' => 'Neues Ablaufdatum: %B %e, %Y', 'Start date changed: %B %e, %Y' => 'Neues Beginndatum: %B %e, %Y', - //'%k:%M %p' => '', - //'%%Y-%%m-%%d' => '', + // '%k:%M %p' => '', + // '%%Y-%%m-%%d' => '', 'Total for all columns' => 'Gesamt für alle Spalten', 'You need at least 2 days of data to show the chart.' => 'Es werden mindestens 2 Tage zur Darstellung benötigt', - //'<15m' => '', - //'<30m' => '', + // '<15m' => '', + // '<30m' => '', 'Stop timer' => 'Stoppe Timer', 'Start timer' => 'Starte Timer', 'Add project member' => 'Projektmitglied hinzufügen', 'Enable notifications' => 'Benachrichtigung aktivieren', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/es_ES/translations.php b/app/Locale/es_ES/translations.php index b6d89ac7..36259a8a 100644 --- a/app/Locale/es_ES/translations.php +++ b/app/Locale/es_ES/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Fecha de creación', 'Date completed' => 'Fecha de terminación', 'Id' => 'Identificador', - 'Completed tasks' => 'Tareas completadas', - 'Completed tasks for "%s"' => 'Tareas completadas por « %s »', '%d closed tasks' => '%d tareas completadas', 'No task for this project' => 'Ninguna tarea para este proyecto', 'Public link' => 'Vinculación pública', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Fecha de expiración', 'Remember Me' => 'Recuérdame', 'Creation date' => 'Fecha de creación', - 'Filter by user' => 'Filtrado mediante usuario', - 'Filter by due date' => 'Filtrado mediante fecha límite', 'Everybody' => 'Todo el mundo', 'Open' => 'Abierto', 'Closed' => 'Cerrado', 'Search' => 'Buscar', 'Nothing found.' => 'Nada hallado.', - 'Search in the project "%s"' => 'Buscar en el proyecto "%s"', 'Due date' => 'Fecha límite', 'Others formats accepted: %s and %s' => 'Otros formatos aceptados: %s y %s', 'Description' => 'Descripción', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Nombre de Categoría', 'Add a new category' => 'Añadir una nueva categoría', 'Do you really want to remove this category: "%s"?' => '¿De verdad que quieres suprimir esta categoría: "%s"?', - 'Filter by category' => 'Filtrar mendiante categoría', 'All categories' => 'Todas las categorías', 'No category' => 'Sin categoría', 'The name is required' => 'El nombre es obligatorio', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s actualizó un comentario de la tarea %s', '%s commented the task %s' => '%s comentó la tarea %s', '%s\'s activity' => 'Actividad de %s', - 'No activity.' => 'Sin actividad', 'RSS feed' => 'Fichero RSS', '%s updated a comment on the task #%d' => '%s actualizó un comentario de la tarea #%d', '%s commented on the task #%d' => '%s comentó la tarea #%d', @@ -605,14 +598,9 @@ return array( 'Language:' => 'Idioma', 'Timezone:' => 'Zona horaria', 'All columns' => 'Todas las columnas', - 'Calendar for "%s"' => 'Calendario para "%s"', - 'Filter by column' => 'Filtrar por columna', - 'Filter by status' => 'Filtrar por estado', 'Calendar' => 'Calendario', 'Next' => 'Siguiente', // '#%d' => '', - 'Filter by color' => 'Filtrar por color', - 'Filter by swimlane' => 'Filtrar por carril', 'All swimlanes' => 'Todos los carriles', 'All colors' => 'Todos los colores', 'All status' => 'Todos los estados', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'Seguimiento Temporal', 'You already have one subtask in progress' => 'Ya dispones de una subtarea en progreso', 'Which parts of the project do you want to duplicate?' => '¿Qué partes del proyecto deseas duplicar?', - 'Change dashboard view' => 'Cambiar vista de tablero', - 'Show/hide activities' => 'Mostrar/ocultar actividades', - 'Show/hide projects' => 'Mostrar/ocultar proyectos', - 'Show/hide subtasks' => 'Mostrar/Ocultar subtareas', - 'Show/hide tasks' => 'Mostrar/ocultar tareas', 'Disable login form' => 'Desactivar formulario de ingreso', 'Show/hide calendar' => 'Mostrar/ocultar calendario', - 'User calendar' => 'Calendario de usuario', 'Bitbucket commit received' => 'Recibida envío desde Bitbucket', 'Bitbucket webhooks' => 'Disparadores Web (webhooks) de Bitbucket', 'Help on Bitbucket webhooks' => 'Ayuda sobre disparadores web (webhooks) de Bitbucket', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'Atajos de teclado', 'Open board switcher' => 'Abrir conmutador de tablero', 'Application' => 'Aplicación', - 'Filter recently updated' => 'Filtro actualizado recientemente', 'since %B %e, %Y at %k:%M %p' => 'desde %B %e, %Y a las %k:%M %p', - 'More filters' => 'Más filtros', 'Compact view' => 'Compactar vista', 'Horizontal scrolling' => 'Desplazamiento horizontal', 'Compact/wide view' => 'Vista compacta/amplia', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/fi_FI/translations.php b/app/Locale/fi_FI/translations.php index 41ebc921..beb61d96 100644 --- a/app/Locale/fi_FI/translations.php +++ b/app/Locale/fi_FI/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Luomispäivä', 'Date completed' => 'Valmistumispäivä', 'Id' => 'Id', - 'Completed tasks' => 'Valmiit tehtävät', - 'Completed tasks for "%s"' => 'Suoritetut tehtävät projektille %s', '%d closed tasks' => '%d suljettua tehtävää', 'No task for this project' => 'Ei tehtävää tälle projektille', 'Public link' => 'Julkinen linkki', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Vanhentumispäivä', 'Remember Me' => 'Muista minut', 'Creation date' => 'Luomispäivä', - 'Filter by user' => 'Rajaa käyttäjän mukaan', - 'Filter by due date' => 'Rajaa deadlinen mukaan', 'Everybody' => 'Kaikki', 'Open' => 'Avoin', 'Closed' => 'Suljettu', 'Search' => 'Etsi', 'Nothing found.' => 'Ei löytynyt.', - 'Search in the project "%s"' => 'Etsi projektista "%s"', 'Due date' => 'Deadline', 'Others formats accepted: %s and %s' => 'Muut hyväksytyt muodot: %s ja %s', 'Description' => 'Kuvaus', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Kategorian nimi', 'Add a new category' => 'Lisää uusi kategoria', 'Do you really want to remove this category: "%s"?' => 'Haluatko varmasti poistaa kategorian: "%s"?', - 'Filter by category' => 'Rajaa kategorian mukaan', 'All categories' => 'Kaikki kategoriat', 'No category' => 'Kategoriaa ei löydy', 'The name is required' => 'Nimi vaaditaan', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s päivitti kommentia tehtävässä %s', '%s commented the task %s' => '%s kommentoi tehtävää %s', '%s\'s activity' => 'Henkilön %s toiminta', - 'No activity.' => 'Ei toimintaa.', 'RSS feed' => 'RSS-syöte', '%s updated a comment on the task #%d' => '%s päivitti kommenttia tehtävässä #%d', '%s commented on the task #%d' => '%s kommentoi tehtävää #%d', @@ -605,14 +598,9 @@ return array( // 'Language:' => '', // 'Timezone:' => '', // 'All columns' => '', - // 'Calendar for "%s"' => '', - // 'Filter by column' => '', - // 'Filter by status' => '', // 'Calendar' => '', // 'Next' => '', // '#%d' => '', - // 'Filter by color' => '', - // 'Filter by swimlane' => '', // 'All swimlanes' => '', // 'All colors' => '', // 'All status' => '', @@ -627,14 +615,8 @@ return array( // 'Time Tracking' => '', // 'You already have one subtask in progress' => '', // 'Which parts of the project do you want to duplicate?' => '', - // 'Change dashboard view' => '', - // 'Show/hide activities' => '', - // 'Show/hide projects' => '', - // 'Show/hide subtasks' => '', - // 'Show/hide tasks' => '', // 'Disable login form' => '', // 'Show/hide calendar' => '', - // 'User calendar' => '', // 'Bitbucket commit received' => '', // 'Bitbucket webhooks' => '', // 'Help on Bitbucket webhooks' => '', @@ -688,9 +670,7 @@ return array( // 'Keyboard shortcuts' => '', // 'Open board switcher' => '', // 'Application' => '', - // 'Filter recently updated' => '', // 'since %B %e, %Y at %k:%M %p' => '', - // 'More filters' => '', // 'Compact view' => '', // 'Horizontal scrolling' => '', // 'Compact/wide view' => '', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/fr_FR/translations.php b/app/Locale/fr_FR/translations.php index c96fecb9..34839a12 100644 --- a/app/Locale/fr_FR/translations.php +++ b/app/Locale/fr_FR/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Date de création', 'Date completed' => 'Date de clôture', 'Id' => 'Identifiant', - 'Completed tasks' => 'Tâches terminées', - 'Completed tasks for "%s"' => 'Tâches terminées pour « %s »', '%d closed tasks' => '%d tâches terminées', 'No task for this project' => 'Aucune tâche pour ce projet', 'Public link' => 'Lien public', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Date d\'expiration', 'Remember Me' => 'Connexion automatique', 'Creation date' => 'Date de création', - 'Filter by user' => 'Filtrer par utilisateur', - 'Filter by due date' => 'Avec une date d\'échéance', 'Everybody' => 'Tout le monde', 'Open' => 'Ouvert', 'Closed' => 'Fermé', 'Search' => 'Rechercher', 'Nothing found.' => 'Rien trouvé.', - 'Search in the project "%s"' => 'Rechercher dans le projet « %s »', 'Due date' => 'Date d\'échéance', 'Others formats accepted: %s and %s' => 'Autres formats acceptés : %s et %s', 'Description' => 'Description', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Nom de la catégorie', 'Add a new category' => 'Ajouter une nouvelle catégorie', 'Do you really want to remove this category: "%s"?' => 'Voulez-vous vraiment supprimer cette catégorie « %s » ?', - 'Filter by category' => 'Filtrer par catégorie', 'All categories' => 'Toutes les catégories', 'No category' => 'Aucune catégorie', 'The name is required' => 'Le nom est requis', @@ -447,7 +441,6 @@ return array( '%s updated a comment on the task %s' => '%s a mis à jour un commentaire appartenant à la tâche %s', '%s commented the task %s' => '%s a ajouté un commentaire sur la tâche %s', '%s\'s activity' => 'Activité du projet %s', - 'No activity.' => 'Aucune activité.', 'RSS feed' => 'Flux RSS', '%s updated a comment on the task #%d' => '%s a mis à jour un commentaire sur la tâche n°%d', '%s commented on the task #%d' => '%s a ajouté un commentaire sur la tâche n°%d', @@ -607,14 +600,9 @@ return array( 'Language:' => 'Langue :', 'Timezone:' => 'Fuseau horaire :', 'All columns' => 'Toutes les colonnes', - 'Calendar for "%s"' => 'Agenda pour le projet « %s »', - 'Filter by column' => 'Filtrer par colonne', - 'Filter by status' => 'Filtrer par status', 'Calendar' => 'Agenda', 'Next' => 'Suivant', '#%d' => 'n˚%d', - 'Filter by color' => 'Filtrer par couleur', - 'Filter by swimlane' => 'Filtrer par swimlanes', 'All swimlanes' => 'Toutes les swimlanes', 'All colors' => 'Toutes les couleurs', 'All status' => 'Tous les états', @@ -629,14 +617,8 @@ return array( 'Time Tracking' => 'Feuille de temps', 'You already have one subtask in progress' => 'Vous avez déjà une sous-tâche en progrès', 'Which parts of the project do you want to duplicate?' => 'Quelles parties du projet voulez-vous dupliquer ?', - 'Change dashboard view' => 'Changer la vue du tableau de bord', - 'Show/hide activities' => 'Afficher/cacher les activités', - 'Show/hide projects' => 'Afficher/cacher les projets', - 'Show/hide subtasks' => 'Afficher/cacher les sous-tâches', - 'Show/hide tasks' => 'Afficher/cacher les tâches', 'Disable login form' => 'Désactiver le formulaire d\'authentification', 'Show/hide calendar' => 'Afficher/cacher le calendrier', - 'User calendar' => 'Calendrier de l\'utilisateur', 'Bitbucket commit received' => 'Commit reçu via Bitbucket', 'Bitbucket webhooks' => 'Webhook Bitbucket', 'Help on Bitbucket webhooks' => 'Aide sur les webhooks Bitbucket', @@ -690,9 +672,7 @@ return array( 'Keyboard shortcuts' => 'Raccourcis clavier', 'Open board switcher' => 'Ouvrir le sélecteur de tableau', 'Application' => 'Application', - 'Filter recently updated' => 'Récemment modifié', 'since %B %e, %Y at %k:%M %p' => 'depuis le %d/%m/%Y à %H:%M', - 'More filters' => 'Plus de filtres', 'Compact view' => 'Vue compacte', 'Horizontal scrolling' => 'Défilement horizontal', 'Compact/wide view' => 'Basculer entre la vue compacte et étendue', @@ -923,7 +903,6 @@ return array( 'The task have been moved to the first swimlane' => 'La tâche a été déplacée dans la première swimlane', 'The task have been moved to another swimlane:' => 'La tâche a été déplacée dans une autre swimlane :', 'Overdue tasks for the project "%s"' => 'Tâches en retard pour le projet « %s »', - 'There is no completed tasks at the moment.' => 'Il n\'y a aucune tâche terminée pour le moment.', 'New title: %s' => 'Nouveau titre : %s', 'The task is not assigned anymore' => 'La tâche n\'est plus assignée maintenant', 'New assignee: %s' => 'Nouvel assigné : %s', @@ -940,7 +919,6 @@ return array( 'The description have been modified' => 'La description a été modifiée', 'Do you really want to close the task "%s" as well as all subtasks?' => 'Voulez-vous vraiment fermer la tâche « %s » ainsi que toutes ses sous-tâches ?', 'Swimlane: %s' => 'Swimlane : %s', - 'Project calendar' => 'Agenda du projet', 'I want to receive notifications for:' => 'Je veux reçevoir les notifications pour :', 'All tasks' => 'Toutes les Tâches', 'Only for tasks assigned to me' => 'Seulement les tâches qui me sont assignées', @@ -960,4 +938,39 @@ return array( 'Start timer' => 'Démarrer le chrono', 'Add project member' => 'Ajouter un membre au projet', 'Enable notifications' => 'Activer les notifications', + 'My activity stream' => 'Mon flux d\'activité', + 'My calendar' => 'Mon agenda', + 'Search tasks' => 'Rechercher des tâches', + 'Back to the calendar' => 'Retour au calendrier', + 'Filters' => 'Filtres', + 'Reset filters' => 'Réinitialiser les filtres', + 'My tasks due tomorrow' => 'Mes tâches qui arrivent à échéance demain', + 'Tasks due today' => 'Tâches qui arrivent à échéance aujourd\'hui', + 'Tasks due tomorrow' => 'Tâches qui arrivent à échéance demain', + 'Tasks due yesterday' => 'Tâches qui sont arrivées à échéance hier', + 'Closed tasks' => 'Tâches fermées', + 'Open tasks' => 'Tâches ouvertes', + 'Not assigned' => 'Non assignées', + 'View advanced search syntax' => 'Voir la syntaxe pour la recherche avancée', + 'Overview' => 'Vue d\'ensemble', + '%b %e %Y' => '%b %e %Y', + 'Board/Calendar/List view' => 'Vue Tableau/Calendrier/Liste', + 'Switch to the board view' => 'Basculer vers le tableau', + 'Switch to the calendar view' => 'Basculer vers le calendrier', + 'Switch to the list view' => 'Basculer vers la vue en liste', + 'Go to the search/filter box' => 'Aller au champ de recherche', + 'There is no activity yet.' => 'Il n\'y a pas encore d\'activité.', + 'No tasks found.' => 'Aucune tâche trouvée.', + 'Keyboard shortcut: "%s"' => 'Raccourci clavier : « %s »', + 'List' => 'Liste', + 'Filter' => 'Filtre', + 'Advanced search' => 'Recherche avancée', + 'Example of query: ' => 'Exemple de requête : ', + 'Search by project: ' => 'Rechercher par project : ', + 'Search by column: ' => 'Rechercher par colonne : ', + 'Search by assignee: ' => 'Rechercher par assigné : ', + 'Search by color: ' => 'Rechercher par couleur : ', + 'Search by category: ' => 'Rechercher par catégorie : ', + 'Search by description: ' => 'Rechercher par description : ', + 'Search by due date: ' => 'Rechercher par date d\'échéance : ', ); diff --git a/app/Locale/hu_HU/translations.php b/app/Locale/hu_HU/translations.php index 9ca5c3fd..73215f89 100644 --- a/app/Locale/hu_HU/translations.php +++ b/app/Locale/hu_HU/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Létrehozás időpontja', 'Date completed' => 'Befejezés időpontja', 'Id' => 'ID', - 'Completed tasks' => 'Elvégzett feladatok', - 'Completed tasks for "%s"' => 'Elvégzett feladatok: %s', '%d closed tasks' => '%d lezárt feladat', 'No task for this project' => 'Nincs feladat ebben a projektben', 'Public link' => 'Nyilvános link', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Lejárati dátum', 'Remember Me' => 'Emlékezz rám', 'Creation date' => 'Létrehozás dátuma', - 'Filter by user' => 'Szűrés felhasználó szerint', - 'Filter by due date' => 'Szűrés határidő szerint', 'Everybody' => 'Minden felhasználó', 'Open' => 'Nyitott', 'Closed' => 'Lezárt', 'Search' => 'Keresés', 'Nothing found.' => 'Nincs találat.', - 'Search in the project "%s"' => 'Keresés a projektben: "%s"', 'Due date' => 'Határidő', 'Others formats accepted: %s and %s' => 'Egyéb érvényes formátumok: "%s" és "%s"', 'Description' => 'Leírás', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Kategória neve', 'Add a new category' => 'Új kategória', 'Do you really want to remove this category: "%s"?' => 'Valóban törölni akarja ezt a kategóriát: "%s"?', - 'Filter by category' => 'Szűrés kategória szerint', 'All categories' => 'Minden kategória', 'No category' => 'Nincs kategória', 'The name is required' => 'A név megadása kötelező', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s frissítette a megjegyzését a feladatban %s', '%s commented the task %s' => '%s megjegyzést fűzött a feladathoz %s', '%s\'s activity' => 'Tevékenységek: %s', - 'No activity.' => 'Nincs tevékenység.', 'RSS feed' => 'RSS feed', '%s updated a comment on the task #%d' => '%s frissített egy megjegyzést a feladatban #%d', '%s commented on the task #%d' => '%s megjegyzést tett a feladathoz #%d', @@ -605,14 +598,9 @@ return array( 'Language:' => 'Nyelv:', 'Timezone:' => 'Időzóna:', 'All columns' => 'Minden oszlop', - 'Calendar for "%s"' => 'Naptár: %s', - 'Filter by column' => 'Szűrés oszlop szerint', - 'Filter by status' => 'Szűrés állapot szerint', 'Calendar' => 'Naptár', 'Next' => 'Következő', '#%d' => '#%d', - 'Filter by color' => 'Szűrés szín szerint', - 'Filter by swimlane' => 'Szűrés folyamat szerint', 'All swimlanes' => 'Minden folyamat', 'All colors' => 'Minden szín', 'All status' => 'Minden állapot', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'Idő követés', 'You already have one subtask in progress' => 'Már van egy folyamatban levő részfeladata', 'Which parts of the project do you want to duplicate?' => 'A projekt mely részeit szeretné másolni?', - 'Change dashboard view' => 'Vezérlőpult megjelenés változtatás', - 'Show/hide activities' => 'Tevékenységek megjelenítése/elrejtése', - 'Show/hide projects' => 'Projektek megjelenítése/elrejtése', - 'Show/hide subtasks' => 'Részfeladatok megjelenítése/elrejtése', - 'Show/hide tasks' => 'Feladatok megjelenítése/elrejtése', 'Disable login form' => 'Bejelentkező képernyő tiltása', 'Show/hide calendar' => 'Naptár megjelenítés/elrejtés', - 'User calendar' => 'Naptár', 'Bitbucket commit received' => 'Bitbucket commit érkezett', 'Bitbucket webhooks' => 'Bitbucket webhooks', 'Help on Bitbucket webhooks' => 'Bitbucket webhooks súgó', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'Billentyű kombinációk', 'Open board switcher' => 'Tábla választó lenyitása', 'Application' => 'Alkalmazás', - 'Filter recently updated' => 'Szűrés az utolsó módosítás ideje szerint', 'since %B %e, %Y at %k:%M %p' => '%Y. %m. %d. %H:%M óta', - 'More filters' => 'További szűrők', 'Compact view' => 'Kompakt nézet', 'Horizontal scrolling' => 'Vízszintes görgetés', 'Compact/wide view' => 'Kompakt/széles nézet', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/it_IT/translations.php b/app/Locale/it_IT/translations.php index e602208d..0fe5547b 100644 --- a/app/Locale/it_IT/translations.php +++ b/app/Locale/it_IT/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Data di creazione', 'Date completed' => 'Data di termine', 'Id' => 'Identificatore', - 'Completed tasks' => 'Compiti fatti', - 'Completed tasks for "%s"' => 'Compiti fatti da « %s »', '%d closed tasks' => '%d compiti chiusi', 'No task for this project' => 'Nessun compito per questo progetto', 'Public link' => 'Link pubblico', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Data di scadenza', 'Remember Me' => 'Ricordami', 'Creation date' => 'Data di creazione', - 'Filter by user' => 'Filtrato mediante utente', - 'Filter by due date' => 'Filtrare attraverso data di scadenza', 'Everybody' => 'Tutti', 'Open' => 'Aperto', 'Closed' => 'Chiuso', 'Search' => 'Cercare', 'Nothing found.' => 'Non si è trovato nulla.', - 'Search in the project "%s"' => 'Cercare nel progetto "%s"', 'Due date' => 'Data di scadenza', 'Others formats accepted: %s and %s' => 'Altri formati accettati: %s y %s', 'Description' => 'Descrizione', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Nome di categoria', 'Add a new category' => 'Aggiungere una nuova categoria', 'Do you really want to remove this category: "%s"?' => 'Vuoi veramente cancellare questa categoria: "%s"?', - 'Filter by category' => 'Filtrare attraverso categoria', 'All categories' => 'Tutte le categorie', 'No category' => 'Senza categoria', 'The name is required' => 'Si richiede un nome', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s ha aggiornato un commento del compito %s', '%s commented the task %s' => '%s ha commentato il compito %s', '%s\'s activity' => 'Attività di %s', - 'No activity.' => 'Nessuna attività.', 'RSS feed' => 'Feed RSS', '%s updated a comment on the task #%d' => '%s ha aggiornato un commento del compito #%d', '%s commented on the task #%d' => '%s ha commentato il compito #%d', @@ -605,14 +598,9 @@ return array( 'Language:' => 'Lingua', 'Timezone:' => 'Fuso Orario', 'All columns' => 'Tutte le colonne', - 'Calendar for "%s"' => 'Calendario per "%s"', - 'Filter by column' => 'Filtra per colonna', - 'Filter by status' => 'Filtra per status', 'Calendar' => 'Calendario', 'Next' => 'Prossimo', // '#%d' => '', - 'Filter by color' => 'Filtra per colore', - 'Filter by swimlane' => 'Filtra per corsia', 'All swimlanes' => 'Tutte le corsie', 'All colors' => 'Tutti i colori', 'All status' => 'Tutti gli stati', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'Gestione del tempo', 'You already have one subtask in progress' => 'Hai già un sotto-compito in progresso', 'Which parts of the project do you want to duplicate?' => 'Quali parti del progetto vuoi duplicare?', - 'Change dashboard view' => 'Cambia la vista della bacheca', - 'Show/hide activities' => 'Mostra/nascondi attività', - 'Show/hide projects' => 'Mostra/nascondi progetti', - 'Show/hide subtasks' => 'Mostra/nascondi sotto-compiti', - 'Show/hide tasks' => 'Mostra/nascondi compiti', 'Disable login form' => 'Disabilita form di login', 'Show/hide calendar' => 'Mostra/nascondi calendario', - 'User calendar' => 'Calendario utente', 'Bitbucket commit received' => 'Commit ricevuto da Bitbucket', 'Bitbucket webhooks' => 'Webhooks di Bitbucket', 'Help on Bitbucket webhooks' => 'Guida ai Webhooks di Bitbucket', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'Scorciatoie da tastiera', 'Open board switcher' => 'Apri il selezionatore di bacheche', 'Application' => 'Applicazione', - 'Filter recently updated' => 'Filtri recentemente aggiornati', 'since %B %e, %Y at %k:%M %p' => 'dal %B %e, %Y alle %k:%M %p', - 'More filters' => 'Più filtri', 'Compact view' => 'Vista compatta', 'Horizontal scrolling' => 'Scrolling orizzontale', 'Compact/wide view' => 'Vista compatta/estesa', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/ja_JP/translations.php b/app/Locale/ja_JP/translations.php index 9397b9b9..6c9a205e 100644 --- a/app/Locale/ja_JP/translations.php +++ b/app/Locale/ja_JP/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => '作成日', 'Date completed' => '完了日', 'Id' => 'ID', - 'Completed tasks' => '完了したタスク', - 'Completed tasks for "%s"' => '「%s」の完了したタスク', '%d closed tasks' => '%d 個のクローズしたタスク', 'No task for this project' => 'このプロジェクトにタスクがありません', 'Public link' => '公開アクセス用リンク', @@ -255,14 +253,11 @@ return array( 'Expiration date' => '有効期限', 'Remember Me' => '次回から自動的にログインする', 'Creation date' => '作成日', - 'Filter by user' => 'ユーザでフィルタリング', - 'Filter by due date' => '期限でフィルタリング', 'Everybody' => '全員', 'Open' => 'オープン', 'Closed' => 'クローズ', 'Search' => '検索', 'Nothing found.' => '結果なし。', - 'Search in the project "%s"' => 'プロジェクト「%s」で検索', 'Due date' => '期限', 'Others formats accepted: %s and %s' => '他の書式: %s または %s', 'Description' => '説明', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'カテゴリ名', 'Add a new category' => 'カテゴリの追加', 'Do you really want to remove this category: "%s"?' => 'カテゴリ「%s」を削除しますか?', - 'Filter by category' => 'カテゴリでフィルタリング', 'All categories' => 'すべてのカテゴリ', 'No category' => 'カテゴリなし', 'The name is required' => '名前を入力してください', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s がタスク %s のコメントを更新しました', '%s commented the task %s' => '%s がタスク %s にコメントしました', '%s\'s activity' => '%s のアクティビティ', - 'No activity.' => 'アクティビティなし。', 'RSS feed' => 'RSS フィード', '%s updated a comment on the task #%d' => '%s がタスク #%d のコメントを更新しました', '%s commented on the task #%d' => '%s がタスク #%d にコメントしました', @@ -605,14 +598,9 @@ return array( 'Language:' => '言語:', 'Timezone:' => 'タイムゾーン:', 'All columns' => '全てのカラム', - 'Calendar for "%s"' => '「%s」のカレンダー', - 'Filter by column' => 'カラムでフィルタ', - 'Filter by status' => 'ステータスでフィルタ', 'Calendar' => 'カレンダー', 'Next' => '次へ', '#%d' => '#%d', - 'Filter by color' => '色でフィルタ', - 'Filter by swimlane' => 'スイムレーンでフィルタ', 'All swimlanes' => '全てのスイムレーン', 'All colors' => '全ての色', 'All status' => '全てのステータス', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'タイムトラッキング', 'You already have one subtask in progress' => 'すでに進行中のサブタスクがあります。', 'Which parts of the project do you want to duplicate?' => 'プロジェクトの何を複製しますか?', - 'Change dashboard view' => 'ダッシュボードビューを変更', - 'Show/hide activities' => 'アクティビティの表示・非表示', - 'Show/hide projects' => 'プロジェクトの表示・非表示', - 'Show/hide subtasks' => 'サブタスクの表示・非表示', - 'Show/hide tasks' => 'タスクの表示・非表示', 'Disable login form' => 'ログインフォームの無効化', 'Show/hide calendar' => 'カレンダーの表示・非表示', - 'User calendar' => 'ユーザカレンダー', 'Bitbucket commit received' => 'Bitbucket コミットを受信しました', 'Bitbucket webhooks' => 'Bitbucket Webhooks', 'Help on Bitbucket webhooks' => 'Bitbucket Webhooks のヘルプ', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'キーボードショートカット', 'Open board switcher' => 'ボード切り替えを開く', 'Application' => 'アプリケーション', - 'Filter recently updated' => 'フィルタがアップデートされました', 'since %B %e, %Y at %k:%M %p' => '%Y/%m/%d %k:%M から', - 'More filters' => '他のフィルタ', 'Compact view' => 'コンパクトビュー', 'Horizontal scrolling' => '縦スクロール', 'Compact/wide view' => 'コンパクト/ワイドビュー', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/nl_NL/translations.php b/app/Locale/nl_NL/translations.php index 9e4302f4..7a31b975 100644 --- a/app/Locale/nl_NL/translations.php +++ b/app/Locale/nl_NL/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Datum aangemaakt', 'Date completed' => 'Datum voltooid', 'Id' => 'Id', - 'Completed tasks' => 'Voltooide taken', - 'Completed tasks for "%s"' => 'Vooltooide taken voor « %s »', '%d closed tasks' => '%d gesloten taken', 'No task for this project' => 'Geen taken voor dit project', 'Public link' => 'Publieke link', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Verloopdatum', 'Remember Me' => 'Onthoud mij', 'Creation date' => 'Aanmaakdatum', - 'Filter by user' => 'Filter op gebruiker', - 'Filter by due date' => 'Filter op vervaldatum', 'Everybody' => 'Iedereen', 'Open' => 'Open', 'Closed' => 'Gesloten', 'Search' => 'Zoek', 'Nothing found.' => 'Niets gevonden.', - 'Search in the project "%s"' => 'Zoek in project « %s »', 'Due date' => 'Vervaldatum', 'Others formats accepted: %s and %s' => 'Andere toegestane formaten : %s en %s', 'Description' => 'Omschrijving', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Categorie naam', 'Add a new category' => 'Categorie toevoegen', 'Do you really want to remove this category: "%s"?' => 'Weet u zeker dat u deze categorie wil verwijderen: « %s » ?', - 'Filter by category' => 'Filter op categorie', 'All categories' => 'Alle categorieën', 'No category' => 'Geen categorie', 'The name is required' => 'De naam is verplicht', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s heeft een commentaar aangepast voor taak %s', '%s commented the task %s' => '%s heeft een commentaar geplaatst voor taak %s', '%s\'s activity' => 'Activiteiten van %s', - 'No activity.' => 'Geen activiteiten.', 'RSS feed' => 'RSS feed', '%s updated a comment on the task #%d' => '%s heeft een commentaar aangepast voor taak %d', '%s commented on the task #%d' => '%s heeft commentaar geplaatst voor taak %d', @@ -605,14 +598,9 @@ return array( 'Language:' => 'Taal :', 'Timezone:' => 'Tijdzone :', 'All columns' => 'Alle kolommen', - 'Calendar for "%s"' => 'Agenda voor « %s »', - 'Filter by column' => 'Filter op kolom', - 'Filter by status' => 'Filter op status', 'Calendar' => 'Agenda', 'Next' => 'Volgende', '#%d' => '%d', - 'Filter by color' => 'Filter op kleur', - 'Filter by swimlane' => 'Filter op swimlane', 'All swimlanes' => 'Alle swimlanes', 'All colors' => 'Alle kleuren', 'All status' => 'Alle statussen', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'Tijdschrijven', 'You already have one subtask in progress' => 'U heeft al een subtaak in behandeling', 'Which parts of the project do you want to duplicate?' => 'Welke onderdelen van het project wilt u dupliceren?', - 'Change dashboard view' => 'Pas dashboard aan', - 'Show/hide activities' => 'Toon/verberg activiteiten', - 'Show/hide projects' => 'Toon/verberg projecten', - 'Show/hide subtasks' => 'Toon/verberg subtaken', - 'Show/hide tasks' => 'Toon/verberg taken', 'Disable login form' => 'Schakel login scherm uit', 'Show/hide calendar' => 'Toon/verberg agenda', - 'User calendar' => 'Agenda gebruiker', 'Bitbucket commit received' => 'Bitbucket commit ontvangen', 'Bitbucket webhooks' => 'Bitbucket webhooks', 'Help on Bitbucket webhooks' => 'Help bij Bitbucket webhooks', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'Keyboard snelkoppelingen', 'Open board switcher' => 'Open bord switcher', 'Application' => 'Applicatie', - 'Filter recently updated' => 'Filter recent aangepast', 'since %B %e, %Y at %k:%M %p' => 'sinds %d/%m/%Y à %H:%M', - 'More filters' => 'Meer filters', // 'Compact view' => '', // 'Horizontal scrolling' => '', // 'Compact/wide view' => '', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/pl_PL/translations.php b/app/Locale/pl_PL/translations.php index 85ba2535..637eefb4 100644 --- a/app/Locale/pl_PL/translations.php +++ b/app/Locale/pl_PL/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Data utworzenia', 'Date completed' => 'Data zakończenia', 'Id' => 'Id', - 'Completed tasks' => 'Ukończone zadania', - 'Completed tasks for "%s"' => 'Zadania zakończone dla "%s"', '%d closed tasks' => '%d zamkniętych zadań', 'No task for this project' => 'Brak zadań dla tego projektu', 'Public link' => 'Link publiczny', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Data zakończenia', 'Remember Me' => 'Pamiętaj mnie', 'Creation date' => 'Data utworzenia', - 'Filter by user' => 'Filtruj według użytkowników', - 'Filter by due date' => 'Filtruj według terminów', 'Everybody' => 'Wszyscy', 'Open' => 'Otwarto', 'Closed' => 'Zamknięto', 'Search' => 'Szukaj', 'Nothing found.' => 'Nic nie znaleziono', - 'Search in the project "%s"' => 'Szukaj w projekcie "%s"', 'Due date' => 'Termin', 'Others formats accepted: %s and %s' => 'Inne akceptowane formaty: %s and %s', 'Description' => 'Opis', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Nazwa kategorii', 'Add a new category' => 'Utwórz nową kategorię', 'Do you really want to remove this category: "%s"?' => 'Czy na pewno chcesz usunąć kategorię: "%s"?', - 'Filter by category' => 'Filtruj według kategorii', 'All categories' => 'Wszystkie kategorie', 'No category' => 'Brak kategorii', 'The name is required' => 'Nazwa jest wymagana', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s zaktualizował komentarz do zadania %s', '%s commented the task %s' => '%s skomentował zadanie %s', '%s\'s activity' => 'Aktywność %s', - 'No activity.' => 'Brak aktywności.', 'RSS feed' => 'Kanał RSS', '%s updated a comment on the task #%d' => '%s zaktualizował komentarz do zadania #%d', '%s commented on the task #%d' => '%s skomentował zadanie #%d', @@ -605,14 +598,9 @@ return array( 'Language:' => 'Język:', 'Timezone:' => 'Strefa czasowa:', 'All columns' => 'Wszystkie kolumny', - 'Calendar for "%s"' => 'Kalendarz dla "%s"', - 'Filter by column' => 'Filtruj według kolumn', - 'Filter by status' => 'Filtruj według statusu', 'Calendar' => 'Kalendarz', 'Next' => 'Następny', '#%d' => 'nr %d', - 'Filter by color' => 'Filtruj według koloru', - 'Filter by swimlane' => 'Filtruj według procesu', 'All swimlanes' => 'Wszystkie procesy', 'All colors' => 'Wszystkie kolory', 'All status' => 'Wszystkie statusy', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'Śledzenie czasu', 'You already have one subtask in progress' => 'Masz już zadanie o statusie "w trakcie"', 'Which parts of the project do you want to duplicate?' => 'Które elementy projektu chcesz zduplikować?', - 'Change dashboard view' => 'Zmień elementy panelu', - 'Show/hide activities' => 'Pokaż/Ukryj aktywność', - 'Show/hide projects' => 'Pokaż/Ukryj projekty', - 'Show/hide subtasks' => 'Pokaż/Ukryj pod-zadania', - 'Show/hide tasks' => 'Pokaż/Ukryj zadania', 'Disable login form' => 'Wyłącz formularz logowania', 'Show/hide calendar' => 'Pokaż/Ukryj kalendarz', - 'User calendar' => 'Kalendarz użytkownika', // 'Bitbucket commit received' => '', // 'Bitbucket webhooks' => '', // 'Help on Bitbucket webhooks' => '', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'Skróty klawiszowe', 'Open board switcher' => 'Przełącz tablice', 'Application' => 'Aplikacja', - 'Filter recently updated' => 'Filtruj ostatnio zmieniane', 'since %B %e, %Y at %k:%M %p' => 'od %e %B %Y o %k:%M', - 'More filters' => 'Więcej filtrów', 'Compact view' => 'Widok kompaktowy', 'Horizontal scrolling' => 'Przewijanie poziome', 'Compact/wide view' => 'Pełny/Kompaktowy widok', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/pt_BR/translations.php b/app/Locale/pt_BR/translations.php index 771958f1..1031f1e2 100644 --- a/app/Locale/pt_BR/translations.php +++ b/app/Locale/pt_BR/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Data de criação', 'Date completed' => 'Data da finalização', 'Id' => 'Id', - 'Completed tasks' => 'Tarefas completadas', - 'Completed tasks for "%s"' => 'Tarefas completadas por "%s"', '%d closed tasks' => '%d tarefas finalizadas', 'No task for this project' => 'Não há tarefa para este projeto', 'Public link' => 'Link público', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Data de expiração', 'Remember Me' => 'Lembre-se de mim', 'Creation date' => 'Data de criação', - 'Filter by user' => 'Filtrar por usuário', - 'Filter by due date' => 'Filtrar por data de vencimento', 'Everybody' => 'Todos', 'Open' => 'Abrir', 'Closed' => 'Finalizado', 'Search' => 'Pesquisar', 'Nothing found.' => 'Nada foi encontrado.', - 'Search in the project "%s"' => 'Pesquisar no projeto "%s"', 'Due date' => 'Data de vencimento', 'Others formats accepted: %s and %s' => 'Outros formatos permitidos: %s e %s', 'Description' => 'Descrição', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Nome da Categoria', 'Add a new category' => 'Adicionar uma nova categoria', 'Do you really want to remove this category: "%s"?' => 'Você realmente deseja remover esta categoria: "%s"', - 'Filter by category' => 'Filtrar por categoria', 'All categories' => 'Todas as categorias', 'No category' => 'Nenhum categoria', 'The name is required' => 'O nome é obrigatório', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s atualizou o comentário na tarefa %s', '%s commented the task %s' => '%s comentou a tarefa %s', '%s\'s activity' => 'Atividades de%s', - 'No activity.' => 'Sem atividade.', 'RSS feed' => 'Feed RSS', '%s updated a comment on the task #%d' => '%s atualizou um comentário sobre a tarefa #%d', '%s commented on the task #%d' => '%s comentou sobre a tarefa #%d', @@ -605,14 +598,9 @@ return array( 'Language:' => 'Idioma', 'Timezone:' => 'Fuso horário', 'All columns' => 'Todas as colunas', - 'Calendar for "%s"' => 'Calendário para "%s"', - 'Filter by column' => 'Filtrar por coluna', - 'Filter by status' => 'Filtrar por status', 'Calendar' => 'Calendário', 'Next' => 'Próximo', // '#%d' => '', - 'Filter by color' => 'Filtrar por cor', - 'Filter by swimlane' => 'Filtrar por swimlane', 'All swimlanes' => 'Todos os swimlane', 'All colors' => 'Todas as cores', 'All status' => 'Todos os status', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'Gestão de tempo', 'You already have one subtask in progress' => 'Você já tem um subtarefa em andamento', 'Which parts of the project do you want to duplicate?' => 'Quais as partes do projeto você deseja duplicar?', - 'Change dashboard view' => 'Alterar a vista do Painel de Controle', - 'Show/hide activities' => 'Mostrar / ocultar as atividades', - 'Show/hide projects' => 'Mostrar / ocultar os projetos', - 'Show/hide subtasks' => 'Mostrar / ocultar as subtarefas', - 'Show/hide tasks' => 'Mostrar / ocultar as tarefas', 'Disable login form' => 'Desativar o formulário de login', 'Show/hide calendar' => 'Mostrar / ocultar calendário', - 'User calendar' => 'Calendário do usuário', 'Bitbucket commit received' => '"Commit" recebido via Bitbucket', 'Bitbucket webhooks' => 'Webhook Bitbucket', 'Help on Bitbucket webhooks' => 'Ajuda sobre os webhooks Bitbucket', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'Atalhos de teclado', 'Open board switcher' => 'Abrir o comutador de painel', 'Application' => 'Aplicação', - 'Filter recently updated' => 'Filtro recentemente atualizado', 'since %B %e, %Y at %k:%M %p' => 'desde o %d/%m/%Y às %H:%M', - 'More filters' => 'Mais filtros', 'Compact view' => 'Vista reduzida', 'Horizontal scrolling' => 'Rolagem horizontal', 'Compact/wide view' => 'Alternar entre a vista compacta e ampliada', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/ru_RU/translations.php b/app/Locale/ru_RU/translations.php index 69ebbf61..9b8b3e4f 100644 --- a/app/Locale/ru_RU/translations.php +++ b/app/Locale/ru_RU/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Дата создания', 'Date completed' => 'Дата завершения', 'Id' => 'ID', - 'Completed tasks' => 'Завершенные задачи', - 'Completed tasks for "%s"' => 'Завершенные задачи для « %s »', '%d closed tasks' => '%d завершенных задач', 'No task for this project' => 'Нет задач для этого проекта', 'Public link' => 'Ссылка для просмотра', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Дата окончания', 'Remember Me' => 'Запомнить меня', 'Creation date' => 'Дата создания', - 'Filter by user' => 'Фильтр по пользователям', - 'Filter by due date' => 'Фильтр по дате', 'Everybody' => 'Все', 'Open' => 'Открытый', 'Closed' => 'Закрытый', 'Search' => 'Поиск', 'Nothing found.' => 'Ничего не найдено.', - 'Search in the project "%s"' => 'Искать в проекте « %s »', 'Due date' => 'Срок', 'Others formats accepted: %s and %s' => 'Другой формат приемлем: %s и %s', 'Description' => 'Описание', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Название категории', 'Add a new category' => 'Добавить новую категорию', 'Do you really want to remove this category: "%s"?' => 'Вы точно хотите удалить категорию « %s » ?', - 'Filter by category' => 'Фильтр по категориям', 'All categories' => 'Все категории', 'No category' => 'Нет категории', 'The name is required' => 'Требуется название', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s обновил комментарий к задаче %s', '%s commented the task %s' => '%s прокомментировал задачу %s', '%s\'s activity' => '%s активность', - 'No activity.' => 'Нет активности', 'RSS feed' => 'RSS лента', '%s updated a comment on the task #%d' => '%s обновил комментарий задачи #%d', '%s commented on the task #%d' => '%s прокомментировал задачу #%d', @@ -605,14 +598,9 @@ return array( 'Language:' => 'Язык:', 'Timezone:' => 'Временная зона:', 'All columns' => 'Все колонки', - 'Calendar for "%s"' => 'Календарь для "%s"', - 'Filter by column' => 'Фильтр по колонке', - 'Filter by status' => 'Фильтр по статусу', 'Calendar' => 'Календарь', 'Next' => 'Следующий', // '#%d' => '', - 'Filter by color' => 'Фильтрация по цвету', - 'Filter by swimlane' => 'Фильтрация по дорожкам', 'All swimlanes' => 'Все дорожки', 'All colors' => 'Все цвета', 'All status' => 'Все статусы', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'Учет времени', 'You already have one subtask in progress' => 'У вас уже есть одна задача в разработке', 'Which parts of the project do you want to duplicate?' => 'Какие части проекта должны быть дублированы?', - 'Change dashboard view' => 'Изменить отображение панели мониторинга', - 'Show/hide activities' => 'Показать/скрыть активность', - 'Show/hide projects' => 'Показать/скрыть проекты', - 'Show/hide subtasks' => 'Показать/скрыть подзадачи', - 'Show/hide tasks' => 'Показать/скрыть задачи', 'Disable login form' => 'Выключить форму авторизации', 'Show/hide calendar' => 'Показать/скрыть календарь', - 'User calendar' => 'Пользовательский календарь', // 'Bitbucket commit received' => '', 'Bitbucket webhooks' => 'BitBucket webhooks', 'Help on Bitbucket webhooks' => 'Помощь по BitBucket webhooks', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'Горячие клавиши', 'Open board switcher' => 'Открыть переключатель доски', 'Application' => 'Приложение', - 'Filter recently updated' => 'Сортировать по дате обновления', // 'since %B %e, %Y at %k:%M %p' => '', - 'More filters' => 'Дополнительные фильтры', 'Compact view' => 'Компактный вид', 'Horizontal scrolling' => 'Широкий вид', 'Compact/wide view' => 'Компактный/широкий вид', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/sr_Latn_RS/translations.php b/app/Locale/sr_Latn_RS/translations.php index 8cc6f05d..758689c4 100644 --- a/app/Locale/sr_Latn_RS/translations.php +++ b/app/Locale/sr_Latn_RS/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Kreiran dana', 'Date completed' => 'Završen dana', 'Id' => 'Id', - 'Completed tasks' => 'Zatvoreni zadaci', - 'Completed tasks for "%s"' => 'zatvoreni zadaci za "%s"', '%d closed tasks' => '%d zatvorenih zadataka', 'No task for this project' => 'Nema dodeljenih zadataka ovom projektu', 'Public link' => 'Javni link', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Ističe', 'Remember Me' => 'Zapamti me', 'Creation date' => 'Datum kreiranja', - 'Filter by user' => 'Po korisniku', - 'Filter by due date' => 'Po terminu', 'Everybody' => 'Svi', 'Open' => 'Otvoreni', 'Closed' => 'Zatvoreni', 'Search' => 'Traži', 'Nothing found.' => 'Ništa nije pronađeno', - 'Search in the project "%s"' => 'Traži u prijektu "%s"', 'Due date' => 'Termin', 'Others formats accepted: %s and %s' => 'Ostali formati: %s i %s', 'Description' => 'Opis', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Naziv kategorije', 'Add a new category' => 'Dodaj novu kategoriju', 'Do you really want to remove this category: "%s"?' => 'Da li zaista želiš da ukloniš kategoriju: "%s"?', - 'Filter by category' => 'Po kategoriji', 'All categories' => 'Sve kategorije', 'No category' => 'Bez kategorije', 'The name is required' => 'Naziv je obavezan', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s izmenjen komentar zadatka %s', '%s commented the task %s' => '%s komentarisao zadatak %s', '%s\'s activity' => 'Aktivnosti %s', - 'No activity.' => 'Bez aktivnosti.', 'RSS feed' => 'RSS kanal', '%s updated a comment on the task #%d' => '%s izmenjen komentar zadatka #%d', '%s commented on the task #%d' => '%s komentarisao zadatak #%d', @@ -605,14 +598,9 @@ return array( 'Language:' => 'Jezik:', 'Timezone:' => 'Vremenska zona:', 'All columns' => 'Sve kolone', - 'Calendar for "%s"' => 'Kalendar za "%s"', - 'Filter by column' => 'Po koloni', - 'Filter by status' => 'Po statusu', 'Calendar' => 'Kalendar', 'Next' => 'Sledeći', // '#%d' => '', - 'Filter by color' => 'Po boji', - 'Filter by swimlane' => 'Po razdelniku', 'All swimlanes' => 'Svi razdelniki', 'All colors' => 'Sve boje', 'All status' => 'Svi statusi', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'Praćenje vremena', // 'You already have one subtask in progress' => '', 'Which parts of the project do you want to duplicate?' => 'Koje delove projekta želite da kopirate', - // 'Change dashboard view' => '', - // 'Show/hide activities' => '', - // 'Show/hide projects' => '', - // 'Show/hide subtasks' => '', - // 'Show/hide tasks' => '', // 'Disable login form' => '', // 'Show/hide calendar' => '', - // 'User calendar' => '', // 'Bitbucket commit received' => '', // 'Bitbucket webhooks' => '', // 'Help on Bitbucket webhooks' => '', @@ -688,9 +670,7 @@ return array( // 'Keyboard shortcuts' => '', // 'Open board switcher' => '', // 'Application' => '', - // 'Filter recently updated' => '', // 'since %B %e, %Y at %k:%M %p' => '', - // 'More filters' => '', // 'Compact view' => '', // 'Horizontal scrolling' => '', // 'Compact/wide view' => '', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/sv_SE/translations.php b/app/Locale/sv_SE/translations.php index f54a5178..33c14c02 100644 --- a/app/Locale/sv_SE/translations.php +++ b/app/Locale/sv_SE/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Skapat datum', 'Date completed' => 'Slutfört datum', 'Id' => 'ID', - 'Completed tasks' => 'Slutförda uppgifter', - 'Completed tasks for "%s"' => 'Slutföra uppgifter för "%s"', '%d closed tasks' => '%d stängda uppgifter', 'No task for this project' => 'Inga uppgifter i detta projekt', 'Public link' => 'Publik länk', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Förfallodatum', 'Remember Me' => 'Kom ihåg mig', 'Creation date' => 'Skapatdatum', - 'Filter by user' => 'Filtrera på användare', - 'Filter by due date' => 'Filtrera på slutdatum', 'Everybody' => 'Alla', 'Open' => 'Öppen', 'Closed' => 'Stängd', 'Search' => 'Sök', 'Nothing found.' => 'Inget kunde hittas.', - 'Search in the project "%s"' => 'Sök i projektet "%s"', 'Due date' => 'Måldatum', 'Others formats accepted: %s and %s' => 'Andra format som accepteras: %s and %s', 'Description' => 'Beskrivning', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Kategorinamn', 'Add a new category' => 'Lägg till en kategori', 'Do you really want to remove this category: "%s"?' => 'Vill du verkligen ta bort denna kategori: "%s"?', - 'Filter by category' => 'Filtrera på kategori', 'All categories' => 'Alla kategorier', 'No category' => 'Ingen kategori', 'The name is required' => 'Namnet måste anges', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s uppdaterade en kommentar till uppgiften %s', '%s commented the task %s' => '%s kommenterade uppgiften %s', '%s\'s activity' => '%s\'s aktivitet', - 'No activity.' => 'Ingen aktivitet.', 'RSS feed' => 'RSS flöde', '%s updated a comment on the task #%d' => '%s uppdaterade en kommentar på uppgiften #%d', '%s commented on the task #%d' => '%s kommenterade uppgiften #%d', @@ -605,14 +598,9 @@ return array( 'Language:' => 'Språk', 'Timezone:' => 'Tidszon', 'All columns' => 'Alla kolumner', - 'Calendar for "%s"' => 'Kalender för "%s"', - 'Filter by column' => 'Filtrera på kolumn', - 'Filter by status' => 'Filtrera på status', 'Calendar' => 'Kalender', 'Next' => 'Nästa', '#%d' => '#%d', - 'Filter by color' => 'Filtrera på färg', - 'Filter by swimlane' => 'Filtrera på swimlane', 'All swimlanes' => 'Alla swimlanes', 'All colors' => 'Alla färger', 'All status' => 'Alla status', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'Tidsbevakning', 'You already have one subtask in progress' => 'Du har redan en deluppgift igång', 'Which parts of the project do you want to duplicate?' => 'Vilka delar av projektet vill du duplicera?', - 'Change dashboard view' => 'Ändra dashboard vy', - 'Show/hide activities' => 'Visa/dölj aktiviteter', - 'Show/hide projects' => 'Visa/dölj projekt', - 'Show/hide subtasks' => 'Visa/dölj deluppgifter', - 'Show/hide tasks' => 'Visa/dölj uppgifter', 'Disable login form' => 'Inaktivera loginformuläret', 'Show/hide calendar' => 'Visa/dölj kalender', - 'User calendar' => 'Användarkalender', 'Bitbucket commit received' => 'Bitbucket bidrag mottaget', 'Bitbucket webhooks' => 'Bitbucket webhooks', 'Help on Bitbucket webhooks' => 'Hjälp för Bitbucket webhooks', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'Tangentbordsgenvägar', 'Open board switcher' => 'Växling av öppen tavla', 'Application' => 'Applikation', - 'Filter recently updated' => 'Filter som uppdaterats nyligen', 'since %B %e, %Y at %k:%M %p' => 'sedan %B %e, %Y at %k:%M %p', - 'More filters' => 'Fler filter', 'Compact view' => 'Kompakt vy', 'Horizontal scrolling' => 'Horisontell scroll', 'Compact/wide view' => 'Kompakt/bred vy', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/th_TH/translations.php b/app/Locale/th_TH/translations.php index 6c21c41b..c1eb3183 100644 --- a/app/Locale/th_TH/translations.php +++ b/app/Locale/th_TH/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'สร้างวันที่', 'Date completed' => 'เรียบร้อยวันที่', 'Id' => 'ไอดี', - 'Completed tasks' => 'งานที่เสร็จแล้ว', - 'Completed tasks for "%s"' => 'งานที่เสร็จแล้วสำหรับ « %s »', '%d closed tasks' => '%d งานที่ปิด', 'No task for this project' => 'ไม่มีงานสำหรับโปรเจคนี้', 'Public link' => 'ลิงค์สาธารณะ', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'หมดอายุวันที่', 'Remember Me' => 'จดจำฉัน', 'Creation date' => 'สร้างวันที่', - 'Filter by user' => 'กรองตามผู้ใช้', - 'Filter by due date' => 'กรองตามวันครบกำหนด', 'Everybody' => 'ทุกคน', 'Open' => 'เปิด', 'Closed' => 'ปิด', 'Search' => 'ค้นหา', 'Nothing found.' => 'ค้นหาไม่พบ.', - 'Search in the project "%s"' => 'ค้นหาในโปรเจค "%s"', 'Due date' => 'วันที่ครบกำหนด', 'Others formats accepted: %s and %s' => 'รูปแบบอื่นที่ได้รับการยอมรับ: %s และ %s', 'Description' => 'คำอธิบาย', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'ชื่อกลุ่ม', 'Add a new category' => 'เพิ่มกลุ่มใหม่', 'Do you really want to remove this category: "%s"?' => 'คุณต้องการลบกลุ่ม "%s" ใช่หรือไม่?', - 'Filter by category' => 'กรองตามกลุ่ม', 'All categories' => 'กลุ่มทั้งหมด', 'No category' => 'ไม่มีกลุ่ม', 'The name is required' => 'ต้องการชื่อ', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s ปรับปรุงความคิดเห็นในงานแล้ว %s', '%s commented the task %s' => '%s แสดงความคิดเห็นของงานแล้ว %s', '%s\'s activity' => 'กิจกรรม %s', - 'No activity.' => 'ไม่มีกิจกรรม', 'RSS feed' => 'RSS feed', '%s updated a comment on the task #%d' => '%s ปรับปรุงความคิดเห็นบนงานแล้ว #%d', '%s commented on the task #%d' => '%s แสดงความคิดเห็นบนงานแล้ว #%d', @@ -605,14 +598,9 @@ return array( 'Language:' => 'ภาษา:', 'Timezone:' => 'เขตเวลา:', 'All columns' => 'คอลัมน์ทั้งหมด', - 'Calendar for "%s"' => 'ปฏิทินสำหรับ "%s"', - 'Filter by column' => 'กรองโดยคอลัมน์', - 'Filter by status' => 'กรองโดยสถานะ', 'Calendar' => 'ปฏิทิน', 'Next' => 'ต่อไป', // '#%d' => '', - 'Filter by color' => 'กรองโดยสี', - 'Filter by swimlane' => 'กรองโดยสวิมเลน', 'All swimlanes' => 'สวิมเลนทั้งหมด', 'All colors' => 'สีทั้งหมด', 'All status' => 'สถานะทั้งหมด', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'ติดตามเวลา', 'You already have one subtask in progress' => 'คุณมีหนึ่งงานย่อยที่กำลังทำงาน', // 'Which parts of the project do you want to duplicate?' => '', - 'Change dashboard view' => 'เปลี่ยนมุมมองแดชบอร์ด', - 'Show/hide activities' => 'แสดง/ซ่อน กิจกรรม', - 'Show/hide projects' => 'แสดง/ซ่อน โปรเจค', - 'Show/hide subtasks' => 'แสดง/ซ่อน งานย่อย', - 'Show/hide tasks' => 'แสดง/ซ่อน งาน', // 'Disable login form' => '', 'Show/hide calendar' => 'แสดง/ซ่อน ปฎิทิน', - 'User calendar' => 'ปฏิทินผู้ใช้', // 'Bitbucket commit received' => '', // 'Bitbucket webhooks' => '', // 'Help on Bitbucket webhooks' => '', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'คีย์ลัด', 'Open board switcher' => 'เปิดการสลับบอร์ด', 'Application' => 'แอพพลิเคชัน', - 'Filter recently updated' => 'ตัวกรองที่ปรับปรุงเร็วๆ นี้', 'since %B %e, %Y at %k:%M %p' => 'เริ่ม %B %e, %Y เวลา %k:%M %p', - 'More filters' => 'ตัวกรองเพิ่มเติม', 'Compact view' => 'มุมมองพอดี', 'Horizontal scrolling' => 'เลื่อนตามแนวนอน', 'Compact/wide view' => 'พอดี/กว้าง มุมมอง', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/tr_TR/translations.php b/app/Locale/tr_TR/translations.php index a8440407..9335c201 100644 --- a/app/Locale/tr_TR/translations.php +++ b/app/Locale/tr_TR/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => 'Oluşturulma tarihi', 'Date completed' => 'Tamamlanma tarihi', 'Id' => 'Kod', - 'Completed tasks' => 'Tamamlanan görevler', - 'Completed tasks for "%s"' => '"%s" için tamamlanan görevler', '%d closed tasks' => '%d kapatılmış görevler', // 'No task for this project' => '', 'Public link' => 'Dışa açık link', @@ -255,14 +253,11 @@ return array( 'Expiration date' => 'Geçerlilik sonu', 'Remember Me' => 'Beni hatırla', 'Creation date' => 'Oluşturulma tarihi', - 'Filter by user' => 'Kullanıcıya göre filtrele', - 'Filter by due date' => 'Termine göre filtrele', 'Everybody' => 'Herkes', 'Open' => 'Açık', 'Closed' => 'Kapalı', 'Search' => 'Ara', 'Nothing found.' => 'Hiçbir şey bulunamadı', - 'Search in the project "%s"' => '"%s" Projesinde ara', 'Due date' => 'Termin', 'Others formats accepted: %s and %s' => 'Diğer kabul edilen formatlar: %s ve %s', 'Description' => 'Açıklama', @@ -301,7 +296,6 @@ return array( 'Category Name' => 'Kategori adı', 'Add a new category' => 'Yeni kategori ekle', 'Do you really want to remove this category: "%s"?' => 'Bu kategoriyi silmek istediğinize emin misiniz: "%s"?', - 'Filter by category' => 'Kategoriye göre filtrele', 'All categories' => 'Tüm kategoriler', 'No category' => 'Kategori Yok', 'The name is required' => 'İsim gerekli', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s kullanıcısı %s görevinde bir yorumu güncelledi', '%s commented the task %s' => '%s kullanıcısı %s görevine yorum ekledi', '%s\'s activity' => '%s\'in aktivitesi', - 'No activity.' => 'Aktivite yok.', 'RSS feed' => 'RSS kaynağı', '%s updated a comment on the task #%d' => '%s kullanıcısı #%d nolu görevde bir yorumu güncelledi', '%s commented on the task #%d' => '%s kullanıcısı #%d nolu göreve yorum ekledi', @@ -605,14 +598,9 @@ return array( 'Language:' => 'Dil:', 'Timezone:' => 'Saat dilimi:', 'All columns' => 'Tüm sütunlar', - 'Calendar for "%s"' => '"%s" için takvim', - 'Filter by column' => 'Sütuna göre filtrele', - 'Filter by status' => 'Duruma göre filtrele', 'Calendar' => 'Takvim', 'Next' => 'Sonraki', '#%d' => '#%d', - 'Filter by color' => 'Renklere göre filtrele', - 'Filter by swimlane' => 'Kulvara göre filtrele', 'All swimlanes' => 'Tüm Kulvarlar', 'All colors' => 'Tüm Renkler', 'All status' => 'Tüm Durumlar', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => 'Zaman takibi', 'You already have one subtask in progress' => 'Zaten işlemde olan bir alt görev var', 'Which parts of the project do you want to duplicate?' => 'Projenin hangi kısımlarının kopyasını oluşturmak istiyorsunuz?', - 'Change dashboard view' => 'Anasayfa görünümünü değiştir', - 'Show/hide activities' => 'Aktiviteleri göster/gizle', - 'Show/hide projects' => 'Projeleri göster/gizle', - 'Show/hide subtasks' => 'Alt görevleri göster/gizle', - 'Show/hide tasks' => 'Görevleri göster/gizle', 'Disable login form' => 'Giriş formunu devre dışı bırak', 'Show/hide calendar' => 'Takvimi göster/gizle', - 'User calendar' => 'Kullanıcı takvimi', 'Bitbucket commit received' => 'Bitbucket commit alındı', 'Bitbucket webhooks' => 'Bitbucket webhooks', 'Help on Bitbucket webhooks' => 'Bitbucket webhooks için yardım', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => 'Klavye kısayolları', 'Open board switcher' => 'Tablo seçim listesini aç', 'Application' => 'Uygulama', - 'Filter recently updated' => 'Son güncellenenleri göster', 'since %B %e, %Y at %k:%M %p' => '%B %e, %Y saat %k:%M %p\'den beri', - 'More filters' => 'Daha fazla filtre', 'Compact view' => 'Ekrana sığdır', 'Horizontal scrolling' => 'Geniş görünüm', 'Compact/wide view' => 'Ekrana sığdır / Geniş görünüm', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Locale/zh_CN/translations.php b/app/Locale/zh_CN/translations.php index f46a63d0..155628dc 100644 --- a/app/Locale/zh_CN/translations.php +++ b/app/Locale/zh_CN/translations.php @@ -165,8 +165,6 @@ return array( 'Date created' => '创建时间', 'Date completed' => '完成时间', 'Id' => '编号', - 'Completed tasks' => '已完成任务', - 'Completed tasks for "%s"' => '"%s"已经完成的任务', '%d closed tasks' => '%d个已关闭任务', 'No task for this project' => '该项目尚无任务', 'Public link' => '公开链接', @@ -255,14 +253,11 @@ return array( 'Expiration date' => '过期', 'Remember Me' => '记住我', 'Creation date' => '创建日期', - 'Filter by user' => '按用户过滤', - 'Filter by due date' => '按到期时间过滤', 'Everybody' => '所有人', 'Open' => '打开', 'Closed' => '关闭', 'Search' => '查找', 'Nothing found.' => '没找到。', - 'Search in the project "%s"' => '在项目"%s"中查找', 'Due date' => '到期时间', 'Others formats accepted: %s and %s' => '可以使用的其它格式:%s 和 %s', 'Description' => '描述', @@ -301,7 +296,6 @@ return array( 'Category Name' => '分类名称', 'Add a new category' => '加入新分类', 'Do you really want to remove this category: "%s"?' => '确定要移除分类"%s"吗?', - 'Filter by category' => '按分类过滤', 'All categories' => '所有分类', 'No category' => '无分类', 'The name is required' => '必须要有名字', @@ -445,7 +439,6 @@ return array( '%s updated a comment on the task %s' => '%s 更新了任务 %s的评论', '%s commented the task %s' => '%s 评论了任务 %s', '%s\'s activity' => '%s的动态', - 'No activity.' => '无动态', 'RSS feed' => 'RSS 链接', '%s updated a comment on the task #%d' => '%s 更新了任务 #%d 的评论', '%s commented on the task #%d' => '%s 评论了任务 #%d', @@ -605,14 +598,9 @@ return array( 'Language:' => '语言:', 'Timezone:' => '时区:', 'All columns' => '全部栏目', - 'Calendar for "%s"' => '"%s"的日程表', - 'Filter by column' => '按栏目过滤', - 'Filter by status' => '按状态过滤', 'Calendar' => '日程表', 'Next' => '前进', '#%d' => '#%d', - 'Filter by color' => '按颜色过滤', - 'Filter by swimlane' => '按泳道过滤', 'All swimlanes' => '全部泳道', 'All colors' => '全部颜色', 'All status' => '全部状态', @@ -627,14 +615,8 @@ return array( 'Time Tracking' => '时间记录', 'You already have one subtask in progress' => '你已经有了一个进行中的子任务', 'Which parts of the project do you want to duplicate?' => '要复制项目的哪些内容?', - 'Change dashboard view' => '修改仪表板视图', - 'Show/hide activities' => '显示/隐藏活动', - 'Show/hide projects' => '显示/隐藏项目', - 'Show/hide subtasks' => '显示/隐藏子任务', - 'Show/hide tasks' => '显示/隐藏任务', 'Disable login form' => '禁用登录界面', 'Show/hide calendar' => '显示/隐藏日程表', - 'User calendar' => '用户日程表', 'Bitbucket commit received' => '收到Bitbucket提交', 'Bitbucket webhooks' => 'Bitbucket网络钩子', 'Help on Bitbucket webhooks' => 'Bitbucket网络钩子帮助', @@ -688,9 +670,7 @@ return array( 'Keyboard shortcuts' => '键盘快捷方式', 'Open board switcher' => '打开面板切换器', 'Application' => '应用程序', - 'Filter recently updated' => '过滤最近的更新', // 'since %B %e, %Y at %k:%M %p' => '', - 'More filters' => '更多过滤', 'Compact view' => '紧凑视图', 'Horizontal scrolling' => '水平滚动', 'Compact/wide view' => '紧凑/宽视图', @@ -921,7 +901,6 @@ return array( // 'The task have been moved to the first swimlane' => '', // 'The task have been moved to another swimlane:' => '', // 'Overdue tasks for the project "%s"' => '', - // 'There is no completed tasks at the moment.' => '', // 'New title: %s' => '', // 'The task is not assigned anymore' => '', // 'New assignee: %s' => '', @@ -938,7 +917,6 @@ return array( // 'The description have been modified' => '', // 'Do you really want to close the task "%s" as well as all subtasks?' => '', // 'Swimlane: %s' => '', - // 'Project calendar' => '', // 'I want to receive notifications for:' => '', // 'All tasks' => '', // 'Only for tasks assigned to me' => '', @@ -958,4 +936,39 @@ return array( // 'Start timer' => '', // 'Add project member' => '', // 'Enable notifications' => '', + // 'My activity stream' => '', + // 'My calendar' => '', + // 'Search tasks' => '', + // 'Back to the calendar' => '', + // 'Filters' => '', + // 'Reset filters' => '', + // 'My tasks due tomorrow' => '', + // 'Tasks due today' => '', + // 'Tasks due tomorrow' => '', + // 'Tasks due yesterday' => '', + // 'Closed tasks' => '', + // 'Open tasks' => '', + // 'Not assigned' => '', + // 'View advanced search syntax' => '', + // 'Overview' => '', + // '%b %e %Y' => '', + // 'Board/Calendar/List view' => '', + // 'Switch to the board view' => '', + // 'Switch to the calendar view' => '', + // 'Switch to the list view' => '', + // 'Go to the search/filter box' => '', + // 'There is no activity yet.' => '', + // 'No tasks found.' => '', + // 'Keyboard shortcut: "%s"' => '', + // 'List' => '', + // 'Filter' => '', + // 'Advanced search' => '', + // 'Example of query: ' => '', + // 'Search by project: ' => '', + // 'Search by column: ' => '', + // 'Search by assignee: ' => '', + // 'Search by color: ' => '', + // 'Search by category: ' => '', + // 'Search by description: ' => '', + // 'Search by due date: ' => '', ); diff --git a/app/Model/Authentication.php b/app/Model/Authentication.php index 86c1c43f..31969b57 100644 --- a/app/Model/Authentication.php +++ b/app/Model/Authentication.php @@ -49,11 +49,6 @@ class Authentication extends Base return false; } - // We update each time the RememberMe cookie tokens - if ($this->backend('rememberMe')->hasCookie()) { - $this->backend('rememberMe')->refresh(); - } - return true; } diff --git a/app/Model/TaskFilter.php b/app/Model/TaskFilter.php index e9d9ccbd..082318f1 100644 --- a/app/Model/TaskFilter.php +++ b/app/Model/TaskFilter.php @@ -68,6 +68,9 @@ class TaskFilter extends Base case 'T_COLUMN': $this->filterByColumnName($value); break; + case 'T_REFERENCE': + $this->filterByReference($value); + break; } } @@ -141,6 +144,22 @@ class TaskFilter extends Base } /** + * Filter by reference + * + * @access public + * @param string $reference + * @return TaskFilter + */ + public function filterByReference($reference) + { + if (! empty($reference)) { + $this->query->eq(Task::TABLE.'.reference', $reference); + } + + return $this; + } + + /** * Filter by title * * @access public @@ -154,7 +173,7 @@ class TaskFilter extends Base } /** - * Filter by title + * Filter by title or id if the string is like #123 or an integer * * @access public * @param string $title @@ -162,7 +181,16 @@ class TaskFilter extends Base */ public function filterByTitle($title) { - $this->query->ilike(Task::TABLE.'.title', '%'.$title.'%'); + if (strlen($title) > 1 && $title{0} === '#' && ctype_digit(substr($title, 1))) { + $this->query->eq(Task::TABLE.'.id', substr($title, 1)); + } + else if (ctype_digit($title)) { + $this->query->eq(Task::TABLE.'.id', $title); + } + else { + $this->query->ilike(Task::TABLE.'.title', '%'.$title.'%'); + } + return $this; } @@ -688,11 +716,11 @@ class TaskFilter extends Base $vEvent->setSummary(t('#%d', $task['id']).' '.$task['title']); $vEvent->setUrl($this->helper->url->base().$this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']))); - if (! empty($task['creator_id'])) { - $vEvent->setOrganizer('MAILTO:'.($task['creator_email'] ?: $task['creator_username'].'@kanboard.local')); + if (! empty($task['owner_id'])) { + $vEvent->setOrganizer('MAILTO:'.($task['assignee_email'] ?: $task['assignee_username'].'@kanboard.local')); } - if (! empty($task['owner_id'])) { + if (! empty($task['creator_id'])) { $attendees = new Attendees; $attendees->add('MAILTO:'.($task['creator_email'] ?: $task['creator_username'].'@kanboard.local')); $vEvent->setAttendees($attendees); diff --git a/app/Template/app/projects.php b/app/Template/app/projects.php index 61839cee..627ad21b 100644 --- a/app/Template/app/projects.php +++ b/app/Template/app/projects.php @@ -24,7 +24,7 @@ <?= $this->url->link($this->e($project['name']), 'board', 'show', array('project_id' => $project['id'])) ?> <?php if (! empty($project['description'])): ?> - <span class="column-tooltip" title='<?= $this->e($this->text->markdown($project['description'])) ?>'> + <span class="tooltip" title='<?= $this->e($this->text->markdown($project['description'])) ?>'> <i class="fa fa-info-circle"></i> </span> <?php endif ?> diff --git a/app/Template/board/popover_category.php b/app/Template/board/popover_category.php index b38758d3..f391f492 100644 --- a/app/Template/board/popover_category.php +++ b/app/Template/board/popover_category.php @@ -9,7 +9,7 @@ <?= $this->form->hidden('project_id', $values) ?> <?= $this->form->label(t('Category'), 'category_id') ?> - <?= $this->form->select('category_id', $categories_list, $values) ?><br/> + <?= $this->form->select('category_id', $categories_list, $values, array(), array('autofocus')) ?><br/> <div class="form-actions"> <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> @@ -18,5 +18,4 @@ </div> </form> </section> - </section>
\ No newline at end of file diff --git a/app/Template/board/table_swimlane.php b/app/Template/board/table_swimlane.php index b86fc446..436c53b5 100644 --- a/app/Template/board/table_swimlane.php +++ b/app/Template/board/table_swimlane.php @@ -22,7 +22,7 @@ <?= $this->e($column['title']) ?> <?php if (! $not_editable && ! empty($column['description'])): ?> - <span class="column-tooltip pull-right" title='<?= $this->e($this->text->markdown($column['description'])) ?>'> + <span class="tooltip pull-right" title='<?= $this->e($this->text->markdown($column['description'])) ?>'> <i class="fa fa-info-circle"></i> </span> <?php endif ?> diff --git a/app/Template/board/task_footer.php b/app/Template/board/task_footer.php index e9f22b7b..69bf97c1 100644 --- a/app/Template/board/task_footer.php +++ b/app/Template/board/task_footer.php @@ -10,7 +10,7 @@ 'changeCategory', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, - 'task-board-popover' . (! empty($task['category_description']) ? ' column-tooltip' : ''), + 'task-board-popover' . (! empty($task['category_description']) ? ' tooltip' : ''), ! empty($task['category_description']) ? $this->text->markdown($task['category_description']) : t('Change category') ) ?> <?php endif ?> diff --git a/app/Template/board/task_private.php b/app/Template/board/task_private.php index 3cd471d7..87121f2c 100644 --- a/app/Template/board/task_private.php +++ b/app/Template/board/task_private.php @@ -11,7 +11,14 @@ <?= $this->render('board/task_menu', array('task' => $task)) ?> <div class="task-board-collapsed" style="display: none"> - <?= $this->url->link($this->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'task-board-collapsed-title') ?> + <?php if (! empty($task['assignee_username'])): ?> + <span title="<?= $this->e($task['assignee_name'] ?: $task['assignee_username']) ?>"> + <?= $this->e($this->user->getInitials($task['assignee_name'] ?: $task['assignee_username'])) ?> + </span> - + <?php endif ?> + <span class="tooltip" title="<?= $this->e($task['title']) ?>" + <?= $this->url->link($this->e($task['title']), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'task-board-collapsed-title') ?> + </span> </div> <div class="task-board-expanded"> diff --git a/app/Template/column/index.php b/app/Template/column/index.php index 18e7f284..a394ee67 100644 --- a/app/Template/column/index.php +++ b/app/Template/column/index.php @@ -18,7 +18,7 @@ <tr> <td class="column-60"><?= $this->e($column['title']) ?> <?php if (! empty($column['description'])): ?> - <span class="column-tooltip" title='<?= $this->e($this->text->markdown($column['description'])) ?>'> + <span class="tooltip" title='<?= $this->e($this->text->markdown($column['description'])) ?>'> <i class="fa fa-info-circle"></i> </span> <?php endif ?> diff --git a/app/Template/file/show.php b/app/Template/file/show.php index 7d5dc96f..9281c352 100644 --- a/app/Template/file/show.php +++ b/app/Template/file/show.php @@ -16,7 +16,7 @@ <?php endif ?> <p> <?= $this->e($file['name']) ?> - <span class="column-tooltip" title='<?= t('uploaded by: %s', $file['user_name'] ?: $file['username']).'<br>'.t('uploaded on: %s', dt('%B %e, %Y at %k:%M %p', $file['date'])).'<br>'.t('size: %s', $this->text->bytes($file['size'])) ?>'> + <span class="tooltip" title='<?= t('uploaded by: %s', $file['user_name'] ?: $file['username']).'<br>'.t('uploaded on: %s', dt('%B %e, %Y at %k:%M %p', $file['date'])).'<br>'.t('size: %s', $this->text->bytes($file['size'])) ?>'> <i class="fa fa-info-circle"></i> </span> </p> @@ -38,7 +38,7 @@ <td><i class="fa <?= $this->file->icon($file['name']) ?> fa-fw"></i></td> <td> <?= $this->e($file['name']) ?> - <span class="column-tooltip" title='<?= t('uploaded by: %s', $file['user_name'] ?: $file['username']).'<br>'.t('uploaded on: %s', dt('%B %e, %Y at %k:%M %p', $file['date'])).'<br>'.t('size: %s', $this->text->bytes($file['size'])) ?>'> + <span class="tooltip" title='<?= t('uploaded by: %s', $file['user_name'] ?: $file['username']).'<br>'.t('uploaded on: %s', dt('%B %e, %Y at %k:%M %p', $file['date'])).'<br>'.t('size: %s', $this->text->bytes($file['size'])) ?>'> <i class="fa fa-info-circle"></i> </span> </td> diff --git a/app/Template/layout.php b/app/Template/layout.php index a6d00470..d804d3d5 100644 --- a/app/Template/layout.php +++ b/app/Template/layout.php @@ -40,7 +40,7 @@ <nav> <h1><?= $this->url->link('K<span>B</span>', 'app', 'index', array(), false, 'logo', t('Dashboard')).' '.$this->e($title) ?> <?php if (! empty($description)): ?> - <span class="column-tooltip" title='<?= $this->e($this->text->markdown($description)) ?>'> + <span class="tooltip" title='<?= $this->e($this->text->markdown($description)) ?>'> <i class="fa fa-info-circle"></i> </span> <?php endif ?> diff --git a/app/Template/project/index.php b/app/Template/project/index.php index 7a03ec16..971ba2ae 100644 --- a/app/Template/project/index.php +++ b/app/Template/project/index.php @@ -46,7 +46,7 @@ <?= $this->url->link($this->e($project['name']), 'project', 'show', array('project_id' => $project['id'])) ?> <?php if (! empty($project['description'])): ?> - <span class="column-tooltip" title='<?= $this->e($this->text->markdown($project['description'])) ?>'> + <span class="tooltip" title='<?= $this->e($this->text->markdown($project['description'])) ?>'> <i class="fa fa-info-circle"></i> </span> <?php endif ?> diff --git a/app/Template/project/show.php b/app/Template/project/show.php index beb5a1fa..969dda17 100644 --- a/app/Template/project/show.php +++ b/app/Template/project/show.php @@ -51,7 +51,7 @@ <td> <?= $this->e($column['title']) ?> <?php if (! empty($column['description'])): ?> - <span class="column-tooltip" title='<?= $this->e($this->text->markdown($column['description'])) ?>'> + <span class="tooltip" title='<?= $this->e($this->text->markdown($column['description'])) ?>'> <i class="fa fa-info-circle"></i> </span> <?php endif ?> diff --git a/app/Template/search/index.php b/app/Template/search/index.php index 4d7f5ed3..3d0d6ff9 100644 --- a/app/Template/search/index.php +++ b/app/Template/search/index.php @@ -31,7 +31,7 @@ <li><?= t('Search by description: ') ?><strong>description:"Something to find"</strong></li> <li><?= t('Search by due date: ') ?><strong>due:2015-07-01</strong></li> </ul> - <p><i class="fa fa-external-link fa-fw"></i><a href="http://kanboard.net/documentation/search" target="_blank"><?= t('More examples in the documentation') ?></a></p> + <p><i class="fa fa-external-link fa-fw"></i><a href="http://kanboard.net/documentation/search" target="_blank"><?= t('View advanced search syntax') ?></a></p> </div> <?php elseif (! empty($values['search']) && $paginator->isEmpty()): ?> <p class="alert"><?= t('Nothing found.') ?></p> diff --git a/assets/css/app.css b/assets/css/app.css index e141cd25..9a2ab4bf 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -494,9 +494,14 @@ a.btn-blue:focus, background: #f7f7f7; } /* alerts */ +#main .alert, +.page .alert { + margin-top: 10px; +} + .alert { padding: 8px 35px 8px 14px; - margin-bottom: 20px; + margin-bottom: 10px; color: #c09853; background-color: #fcf8e3; border: 1px solid #fbeed5; @@ -535,44 +540,6 @@ a.btn-blue:focus, .alert li { margin-left: 25px; } - -/* fade out animation */ -.alert-fade-out { - animation: fadeOut 1s forwards; - -webkit-animation: fadeOut 1s forwards; - animation-delay: 7s; - -webkit-animation-delay: 7s; - cursor: pointer; -} - -@-webkit-keyframes fadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - margin: 0; - padding: 0; - height: 0; - } -} - -@keyframes fadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - margin: 0; - padding: 0; - height: 0; - } -} - -#main .alert, -.page .alert { - margin-top: 10px; -} /* tooltip */ .tooltip-arrow:after { background: #fff; @@ -643,7 +610,7 @@ div.ui-tooltip { margin-bottom: 0px; } -.column-tooltip { +.tooltip .fa-info-circle { color: #999; font-size: 0.95em; } @@ -1558,7 +1525,7 @@ span.task-board-date-overdue { position: absolute; left: 0; z-index: 1000; - min-width: 230px; + min-width: 300px; list-style: none; margin: 3px 0 0 1px; padding: 6px 0; diff --git a/assets/css/src/alert.css b/assets/css/src/alert.css index 99dc417c..0a5a35ee 100644 --- a/assets/css/src/alert.css +++ b/assets/css/src/alert.css @@ -1,7 +1,12 @@ /* alerts */ +#main .alert, +.page .alert { + margin-top: 10px; +} + .alert { padding: 8px 35px 8px 14px; - margin-bottom: 20px; + margin-bottom: 10px; color: #c09853; background-color: #fcf8e3; border: 1px solid #fbeed5; @@ -40,41 +45,3 @@ .alert li { margin-left: 25px; } - -/* fade out animation */ -.alert-fade-out { - animation: fadeOut 1s forwards; - -webkit-animation: fadeOut 1s forwards; - animation-delay: 7s; - -webkit-animation-delay: 7s; - cursor: pointer; -} - -@-webkit-keyframes fadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - margin: 0; - padding: 0; - height: 0; - } -} - -@keyframes fadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - margin: 0; - padding: 0; - height: 0; - } -} - -#main .alert, -.page .alert { - margin-top: 10px; -} diff --git a/assets/css/src/dropdown.css b/assets/css/src/dropdown.css index 15ba2ae0..f5010cd8 100644 --- a/assets/css/src/dropdown.css +++ b/assets/css/src/dropdown.css @@ -12,7 +12,7 @@ position: absolute; left: 0; z-index: 1000; - min-width: 230px; + min-width: 300px; list-style: none; margin: 3px 0 0 1px; padding: 6px 0; diff --git a/assets/css/src/tooltip.css b/assets/css/src/tooltip.css index f6fa8f15..dca31813 100644 --- a/assets/css/src/tooltip.css +++ b/assets/css/src/tooltip.css @@ -68,7 +68,7 @@ div.ui-tooltip { margin-bottom: 0px; } -.column-tooltip { +.tooltip .fa-info-circle { color: #999; font-size: 0.95em; } diff --git a/assets/js/app.js b/assets/js/app.js index ef1a4961..b60498df 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -142,14 +142,14 @@ return""!=a?"visible"==document[a]:!0},SetStorageItem:function(a,c){"undefined"! c.parent().addClass("form-tab-selected");e.find(".markdown").html(a);e.css("height",f.css("height"));e.css("width",f.css("width"));d.hide();e.show()})},MarkdownWriter:function(a){a.preventDefault();$(this).closest("ul").find("li").removeClass("form-tab-selected");$(this).parent().addClass("form-tab-selected");$(".write-area").show();$(".preview-area").hide()},CheckSession:function(){$(".form-login").length||$.ajax({cache:!1,url:$("body").data("status-url"),statusCode:{401:function(){window.location= $("body").data("login-url")}}})},Init:function(){$(".chosen-select").chosen({width:"200px",no_results_text:$(".chosen-select").data("notfound"),disable_search_threshold:10});$("#board-selector").chosen({width:180,no_results_text:$("#board-selector").data("notfound")});$("#board-selector").change(function(){window.location=$(this).attr("data-board-url").replace(/PROJECT_ID/g,$(this).val())});window.setInterval(Kanboard.CheckSession,6E4);Mousetrap.bindGlobal("mod+enter",function(){$("form").submit()}); Mousetrap.bind("b",function(a){a.preventDefault();$("#board-selector").trigger("chosen:open")});Mousetrap.bind("f",function(a){a.preventDefault();(a=document.getElementById("form-search"))&&a.focus()});Mousetrap.bind("v b",function(a){a=$(".view-board");a.length&&(window.location=a.attr("href"))});Mousetrap.bind("v c",function(a){a=$(".view-calendar");a.length&&(window.location=a.attr("href"))});Mousetrap.bind("v l",function(a){a=$(".view-listing");a.length&&(window.location=a.attr("href"))});$(document).on("focus", -"#form-search",function(){$(this).val($(this).val())});$(document).on("click",".filter-helper",function(a){a.preventDefault();$("#form-search").val($(this).data("filter"));$("form.search").submit()});$.datepicker.setDefaults($.datepicker.regional[$("body").data("js-lang")]);Kanboard.InitAfterAjax()},InitAfterAjax:function(){$(document).on("click",".popover",Kanboard.Popover);$("[autofocus]").each(function(a,c){$(this).focus()});$(".form-date").datepicker({showOtherMonths:!0,selectOtherMonths:!0,dateFormat:"yy-mm-dd", -constrainInput:!1});$("#markdown-preview").click(Kanboard.MarkdownPreview);$("#markdown-write").click(Kanboard.MarkdownWriter);$(".auto-select").focus(function(){$(this).select()});$(".dropit-submenu").hide();$(".dropdown").not(".dropit").dropit({triggerParentEl:"span"});$(".task-autocomplete").length&&(""==$(".opposite_task_id").val()&&$(".task-autocomplete").parent().find("input[type=submit]").attr("disabled","disabled"),$(".task-autocomplete").autocomplete({source:$(".task-autocomplete").data("search-url"), -minLength:1,select:function(a,c){var b=$(".task-autocomplete").data("dst-field");$("input[name="+b+"]").val(c.item.id);$(".task-autocomplete").parent().find("input[type=submit]").removeAttr("disabled")}}));$(".column-tooltip").tooltip({content:function(){return'<div class="markdown">'+$(this).attr("title")+"</div>"},position:{my:"left-20 top",at:"center bottom+9",using:function(a,c){$(this).css(a);var b=c.target.left+c.target.width/2-c.element.left-20;$("<div>").addClass("tooltip-arrow").addClass(c.vertical).addClass(0== -b?"align-left":"align-right").appendTo(this)}}});Kanboard.Exists("screenshot-zone")&&Kanboard.Screenshot.Init()}}}(); +"#form-search",function(){$("#form-search")[0].setSelectionRange&&$("#form-search")[0].setSelectionRange($("#form-search").val().length,$("#form-search").val().length)});$(document).on("click",".filter-helper",function(a){a.preventDefault();$("#form-search").val($(this).data("filter"));$("form.search").submit()});$.datepicker.setDefaults($.datepicker.regional[$("body").data("js-lang")]);$(".alert-fade-out").delay(4E3).fadeOut(800,function(){$(this).remove()});Kanboard.InitAfterAjax()},InitAfterAjax:function(){$(document).on("click", +".popover",Kanboard.Popover);$("[autofocus]").each(function(a,c){$(this).focus()});$(".form-date").datepicker({showOtherMonths:!0,selectOtherMonths:!0,dateFormat:"yy-mm-dd",constrainInput:!1});$("#markdown-preview").click(Kanboard.MarkdownPreview);$("#markdown-write").click(Kanboard.MarkdownWriter);$(".auto-select").focus(function(){$(this).select()});$(".dropit-submenu").hide();$(".dropdown").not(".dropit").dropit({triggerParentEl:"span"});$(".task-autocomplete").length&&(""==$(".opposite_task_id").val()&& +$(".task-autocomplete").parent().find("input[type=submit]").attr("disabled","disabled"),$(".task-autocomplete").autocomplete({source:$(".task-autocomplete").data("search-url"),minLength:1,select:function(a,c){var b=$(".task-autocomplete").data("dst-field");$("input[name="+b+"]").val(c.item.id);$(".task-autocomplete").parent().find("input[type=submit]").removeAttr("disabled")}}));$(".tooltip").tooltip({content:function(){return'<div class="markdown">'+$(this).attr("title")+"</div>"},position:{my:"left-20 top", +at:"center bottom+9",using:function(a,c){$(this).css(a);var b=c.target.left+c.target.width/2-c.element.left-20;$("<div>").addClass("tooltip-arrow").addClass(c.vertical).addClass(1>b?"align-left":"align-right").appendTo(this)}}});Kanboard.Exists("screenshot-zone")&&Kanboard.Screenshot.Init()}}}(); (function(){function a(a){a.preventDefault();a.stopPropagation();Kanboard.Popover(a,Kanboard.InitAfterAjax)}function c(){Mousetrap.bind("n",function(){Kanboard.OpenPopover($("#board").data("task-creation-url"),Kanboard.InitAfterAjax)});Mousetrap.bind("s",function(){"expanded"===(Kanboard.GetStorageItem(d())||"expanded")?(e(),Kanboard.SetStorageItem(d(),"collapsed")):(f(),Kanboard.SetStorageItem(d(),"expanded"))});Mousetrap.bind("c",function(){n()})}function b(){$(".filter-expand-link").click(function(a){a.preventDefault(); f();Kanboard.SetStorageItem(d(),"expanded")});$(".filter-collapse-link").click(function(a){a.preventDefault();e();Kanboard.SetStorageItem(d(),"collapsed")});k()}function d(){return"board_stacking_"+$("#board").data("project-id")}function e(){$(".filter-collapse").hide();$(".task-board-collapsed").show();$(".filter-expand").show();$(".task-board-expanded").hide()}function f(){$(".filter-collapse").show();$(".task-board-collapsed").hide();$(".filter-expand").hide();$(".task-board-expanded").show()} function k(){"expanded"===(Kanboard.GetStorageItem(d())||"expanded")?f():e()}function l(){$(".column").sortable({delay:300,distance:5,connectWith:".column",placeholder:"draggable-placeholder",items:".draggable-item",stop:function(a,b){g(b.item.attr("data-task-id"),b.item.parent().attr("data-column-id"),b.item.index()+1,b.item.parent().attr("data-swimlane-id"))}});$("#board").on("click",".task-board-popover",a);$("#board").on("click",".task-board",function(){window.location=$(this).data("task-url")}); -$(".task-board-tooltip").tooltip({track:!1,position:{my:"left-20 top",at:"center bottom+9",using:function(a,b){$(this).css(a);var c=b.target.left+b.target.width/2-b.element.left-20;$("<div>").addClass("tooltip-arrow").addClass(b.vertical).addClass(0==c?"align-left":"align-right").appendTo(this)}},content:function(a){if(a=$(this).attr("data-href")){var b=this;$.get(a,function p(a){$(".ui-tooltip-content:visible").html(a);a=$(".ui-tooltip:visible");a.css({top:"",left:""});a.children(".tooltip-arrow").remove(); +$(".task-board-tooltip").tooltip({track:!1,position:{my:"left-20 top",at:"center bottom+9",using:function(a,b){$(this).css(a);var c=b.target.left+b.target.width/2-b.element.left-20;$("<div>").addClass("tooltip-arrow").addClass(b.vertical).addClass(1>c?"align-left":"align-right").appendTo(this)}},content:function(a){if(a=$(this).attr("data-href")){var b=this;$.get(a,function p(a){$(".ui-tooltip-content:visible").html(a);a=$(".ui-tooltip:visible");a.css({top:"",left:""});a.children(".tooltip-arrow").remove(); var c=$(b).tooltip("option","position");c.of=$(b);a.position(c);$("#tooltip-subtasks a").not(".popover").click(function(a){a.preventDefault();a.stopPropagation();$(this).hasClass("popover-subtask-restriction")?(Kanboard.OpenPopover($(this).attr("href")),$(b).tooltip("close")):$.get($(this).attr("href"),p)})});return'<i class="fa fa-refresh fa-spin fa-2x"></i>'}}}).on("mouseenter",function(){var a=this;$(this).tooltip("open");$(".ui-tooltip").on("mouseleave",function(){$(a).tooltip("close")})}).on("mouseleave focusout", function(a){a.stopImmediatePropagation();var b=this;setTimeout(function(){$(".ui-tooltip:hover").length||$(b).tooltip("close")},100)});var b=parseInt($("#board").attr("data-check-interval"));0<b&&(m=window.setInterval(q,1E3*b))}function g(a,b,c,d){clearInterval(m);$.ajax({cache:!1,url:$("#board").attr("data-save-url"),contentType:"application/json",type:"POST",processData:!1,data:JSON.stringify({task_id:a,column_id:b,swimlane_id:d,position:c}),success:function(a){$("#board-container").remove();$("#main").append(a); Kanboard.InitAfterAjax();l();k();h()}})}function q(){Kanboard.IsVisible()&&$.ajax({cache:!1,url:$("#board").attr("data-check-url"),statusCode:{200:function(a){$("#board-container").remove();$("#main").append(a);Kanboard.InitAfterAjax();clearInterval(m);l();k();h()}}})}function r(){jQuery(document).on("click",".filter-toggle-scrolling",function(a){a.preventDefault();n()});h()}function n(){var a=Kanboard.GetStorageItem("horizontal_scroll")||1;Kanboard.SetStorageItem("horizontal_scroll",0==a?1:0);h()} diff --git a/assets/js/src/base.js b/assets/js/src/base.js index 043b78f7..2540f084 100644 --- a/assets/js/src/base.js +++ b/assets/js/src/base.js @@ -236,7 +236,9 @@ var Kanboard = (function() { // Place cursor at the end when focusing on the search box $(document).on("focus", "#form-search", function() { - $(this).val($(this).val()); + if ($("#form-search")[0].setSelectionRange) { + $('#form-search')[0].setSelectionRange($('#form-search').val().length, $('#form-search').val().length); + } }); // Filter helper for search @@ -249,6 +251,11 @@ var Kanboard = (function() { // Datepicker translation $.datepicker.setDefaults($.datepicker.regional[$("body").data("js-lang")]); + // Alert box fadeout + $(".alert-fade-out").delay(4000).fadeOut(800, function() { + $(this).remove(); + }); + Kanboard.InitAfterAjax(); }, @@ -303,7 +310,7 @@ var Kanboard = (function() { } // Tooltip for column description - $(".column-tooltip").tooltip({ + $(".tooltip").tooltip({ content: function() { return '<div class="markdown">' + $(this).attr("title") + '</div>'; }, @@ -319,7 +326,7 @@ var Kanboard = (function() { $("<div>") .addClass("tooltip-arrow") .addClass(feedback.vertical) - .addClass(arrow_pos == 0 ? "align-left" : "align-right") + .addClass(arrow_pos < 1 ? "align-left" : "align-right") .appendTo(this); } } diff --git a/assets/js/src/board.js b/assets/js/src/board.js index 853511ff..01a16d59 100644 --- a/assets/js/src/board.js +++ b/assets/js/src/board.js @@ -139,7 +139,7 @@ $("<div>") .addClass("tooltip-arrow") .addClass(feedback.vertical) - .addClass(arrow_pos == 0 ? "align-left" : "align-right") + .addClass(arrow_pos < 1 ? "align-left" : "align-right") .appendTo(this); } }, diff --git a/docs/ical.markdown b/docs/ical.markdown index e5f2f936..5c52bf82 100644 --- a/docs/ical.markdown +++ b/docs/ical.markdown @@ -7,6 +7,8 @@ This feature allow you to import Kanboard tasks in almost any calendar program ( Calendar subscriptions are **read-only** access, you cannot create tasks from an external calendar software. The Calendar feed export follow the iCal standard. +Note: Only tasks within the date range of -2 months to +6 months are exported to the iCalendar feed. + Project calendars ----------------- diff --git a/docs/search.markdown b/docs/search.markdown index 1d254b29..3d00b158 100644 --- a/docs/search.markdown +++ b/docs/search.markdown @@ -12,6 +12,12 @@ This example will returns all tasks assigned to me with a due date for tomorrow assigne:me due:tomorrow my title ``` +Search by task id or title +-------------------------- + +- Search by task id: `#123` or `123` +- Search by task title: anything that don't match any search attributes mentioned below + Search by status ---------------- @@ -144,3 +150,10 @@ Attribute: **column** - Find tasks by column name: `column:"Work in progress"` - Find tasks for several columns: `column:"Backlog" column:ready` + +Search by external reference +---------------------------- + +The task reference is an external id of your task, by example a ticket number from another software. + +- Find tasks with a reference: `ref:1234` or `reference:TICKET-1234` diff --git a/tests/units/Base.php b/tests/units/Base.php index 7ad4e626..0a045a09 100644 --- a/tests/units/Base.php +++ b/tests/units/Base.php @@ -58,6 +58,8 @@ abstract class Base extends PHPUnit_Framework_TestCase public function setUp() { + date_default_timezone_set('UTC'); + if (DB_DRIVER === 'mysql') { $pdo = new PDO('mysql:host='.DB_HOSTNAME, DB_USERNAME, DB_PASSWORD); $pdo->exec('DROP DATABASE '.DB_NAME); diff --git a/tests/units/LexerTest.php b/tests/units/LexerTest.php index 38974357..bf0ffdd0 100644 --- a/tests/units/LexerTest.php +++ b/tests/units/LexerTest.php @@ -171,6 +171,36 @@ class LexerTest extends Base ); } + public function testReferenceQuery() + { + $lexer = new Lexer; + + $this->assertEquals( + array(array('match' => 'ref:', 'token' => 'T_REFERENCE'), array('match' => '123', 'token' => 'T_STRING')), + $lexer->tokenize('ref:123') + ); + + $this->assertEquals( + array(array('match' => 'reference:', 'token' => 'T_REFERENCE'), array('match' => '456', 'token' => 'T_STRING')), + $lexer->tokenize('reference:456') + ); + + $this->assertEquals( + array('T_REFERENCE' => '123'), + $lexer->map($lexer->tokenize('reference:123')) + ); + + $this->assertEquals( + array('T_REFERENCE' => '456'), + $lexer->map($lexer->tokenize('ref:456')) + ); + + $this->assertEquals( + array(), + $lexer->map($lexer->tokenize('ref: ')) + ); + } + public function testDescriptionQuery() { $lexer = new Lexer; @@ -311,6 +341,11 @@ class LexerTest extends Base ); $this->assertEquals( + array('T_TITLE' => '#123'), + $lexer->map($lexer->tokenize('#123')) + ); + + $this->assertEquals( array(), $lexer->map($lexer->tokenize('color:assignee:')) ); diff --git a/tests/units/TaskFilterTest.php b/tests/units/TaskFilterTest.php index c68e8880..14a9b1c0 100644 --- a/tests/units/TaskFilterTest.php +++ b/tests/units/TaskFilterTest.php @@ -8,9 +8,60 @@ use Model\TaskFilter; use Model\TaskCreation; use Model\DateParser; use Model\Category; +use Model\Config; class TaskFilterTest extends Base { + public function testIcalEventsWithCreatorAndDueDate() + { + $dp = new DateParser($this->container); + $p = new Project($this->container); + $tc = new TaskCreation($this->container); + $tf = new TaskFilter($this->container); + + $this->assertEquals(1, $p->create(array('name' => 'test'))); + $this->assertNotFalse($tc->create(array('project_id' => 1, 'title' => 'task1', 'creator_id' => 1, 'date_due' => $dp->getTimestampFromIsoFormat('-2 days')))); + + $events = $tf->create()->filterByDueDateRange(strtotime('-1 month'), strtotime('+1 month'))->addAllDayIcalEvents(); + $ics = $events->render(); + + $this->assertContains('UID:task-#1-date_due', $ics); + $this->assertContains('DTSTART;TZID=UTC;VALUE=DATE:'.date('Ymd', strtotime('-2 days')), $ics); + $this->assertContains('DTEND;TZID=UTC;VALUE=DATE:'.date('Ymd', strtotime('-2 days')), $ics); + $this->assertContains('URL:http://localhost/?controller=task&action=show&task_id=1&project_id=1', $ics); + $this->assertContains('SUMMARY:#1 task1', $ics); + $this->assertContains('ATTENDEE:MAILTO:admin@kanboard.local', $ics); + $this->assertContains('X-MICROSOFT-CDO-ALLDAYEVENT:TRUE', $ics); + } + + public function testIcalEventsWithAssigneeAndDueDate() + { + $dp = new DateParser($this->container); + $p = new Project($this->container); + $tc = new TaskCreation($this->container); + $tf = new TaskFilter($this->container); + $u = new User($this->container); + $c = new Config($this->container); + + $this->assertNotFalse($c->save(array('application_url' => 'http://kb/'))); + $this->assertEquals('http://kb/', $c->get('application_url')); + + $this->assertNotFalse($u->update(array('id' => 1, 'email' => 'bob@localhost'))); + $this->assertEquals(1, $p->create(array('name' => 'test'))); + $this->assertNotFalse($tc->create(array('project_id' => 1, 'title' => 'task1', 'owner_id' => 1, 'date_due' => $dp->getTimestampFromIsoFormat('+5 days')))); + + $events = $tf->create()->filterByDueDateRange(strtotime('-1 month'), strtotime('+1 month'))->addAllDayIcalEvents(); + $ics = $events->render(); + + $this->assertContains('UID:task-#1-date_due', $ics); + $this->assertContains('DTSTART;TZID=UTC;VALUE=DATE:'.date('Ymd', strtotime('+5 days')), $ics); + $this->assertContains('DTEND;TZID=UTC;VALUE=DATE:'.date('Ymd', strtotime('+5 days')), $ics); + $this->assertContains('URL:http://kb/?controller=task&action=show&task_id=1&project_id=1', $ics); + $this->assertContains('SUMMARY:#1 task1', $ics); + $this->assertContains('ORGANIZER:MAILTO:bob@localhost', $ics); + $this->assertContains('X-MICROSOFT-CDO-ALLDAYEVENT:TRUE', $ics); + } + public function testSearchWithEmptyResult() { $dp = new DateParser($this->container); @@ -27,6 +78,78 @@ class TaskFilterTest extends Base $this->assertEmpty($tf->search('search something')->findAll()); } + public function testSearchById() + { + $p = new Project($this->container); + $tc = new TaskCreation($this->container); + $tf = new TaskFilter($this->container); + + $this->assertEquals(1, $p->create(array('name' => 'test'))); + $this->assertNotFalse($tc->create(array('project_id' => 1, 'title' => 'task1'))); + $this->assertNotFalse($tc->create(array('project_id' => 1, 'title' => 'task2'))); + + $tf->search('#2'); + $tasks = $tf->findAll(); + $this->assertNotEmpty($tasks); + $this->assertCount(1, $tasks); + $this->assertEquals('task2', $tasks[0]['title']); + + $tf->search('1'); + $tasks = $tf->findAll(); + $this->assertNotEmpty($tasks); + $this->assertCount(1, $tasks); + $this->assertEquals('task1', $tasks[0]['title']); + + $tf->search('something'); + $tasks = $tf->findAll(); + $this->assertEmpty($tasks); + + $tf->search('#'); + $tasks = $tf->findAll(); + $this->assertEmpty($tasks); + + $tf->search('#abcd'); + $tasks = $tf->findAll(); + $this->assertEmpty($tasks); + + $tf->search('task1'); + $tasks = $tf->findAll(); + $this->assertNotEmpty($tasks); + $this->assertCount(1, $tasks); + $this->assertEquals('task1', $tasks[0]['title']); + } + + public function testSearchWithReference() + { + $p = new Project($this->container); + $tc = new TaskCreation($this->container); + $tf = new TaskFilter($this->container); + + $this->assertEquals(1, $p->create(array('name' => 'test'))); + $this->assertNotFalse($tc->create(array('project_id' => 1, 'title' => 'task1'))); + $this->assertNotFalse($tc->create(array('project_id' => 1, 'title' => 'task2', 'reference' => 123))); + + $tf->search('ref:123'); + $tasks = $tf->findAll(); + $this->assertNotEmpty($tasks); + $this->assertCount(1, $tasks); + $this->assertEquals('task2', $tasks[0]['title']); + + $tf->search('reference:123'); + $tasks = $tf->findAll(); + $this->assertNotEmpty($tasks); + $this->assertCount(1, $tasks); + $this->assertEquals('task2', $tasks[0]['title']); + + $tf->search('ref:plop'); + $tasks = $tf->findAll(); + $this->assertEmpty($tasks); + + $tf->search('ref:'); + $tasks = $tf->findAll(); + $this->assertEmpty($tasks); + } + public function testSearchWithStatus() { $p = new Project($this->container); diff --git a/tests/units/UrlHelperTest.php b/tests/units/UrlHelperTest.php index d70842aa..3ef3402a 100644 --- a/tests/units/UrlHelperTest.php +++ b/tests/units/UrlHelperTest.php @@ -38,22 +38,26 @@ class UrlHelperTest extends Base { $h = new Url($this->container); + $this->assertEquals('http://localhost/', $h->server()); + $_SERVER['PHP_SELF'] = '/'; - $_SERVER['SERVER_NAME'] = 'localhost'; + $_SERVER['SERVER_NAME'] = 'kb'; $_SERVER['SERVER_PORT'] = 1234; - $this->assertEquals('http://localhost:1234/', $h->server()); + $this->assertEquals('http://kb:1234/', $h->server()); } public function testBase() { $h = new Url($this->container); + $this->assertEquals('http://localhost/', $h->base()); + $_SERVER['PHP_SELF'] = '/'; - $_SERVER['SERVER_NAME'] = 'localhost'; + $_SERVER['SERVER_NAME'] = 'kb'; $_SERVER['SERVER_PORT'] = 1234; - $this->assertEquals('http://localhost:1234/', $h->base()); + $this->assertEquals('http://kb:1234/', $h->base()); $c = new Config($this->container); $c->save(array('application_url' => 'https://mykanboard/')); diff --git a/tests/units/UserHelperTest.php b/tests/units/UserHelperTest.php new file mode 100644 index 00000000..9129edd9 --- /dev/null +++ b/tests/units/UserHelperTest.php @@ -0,0 +1,16 @@ +<?php + +require_once __DIR__.'/Base.php'; + +use Helper\User; + +class UserHelperTest extends Base +{ + public function testInitials() + { + $h = new User($this->container); + + $this->assertEquals('CN', $h->getInitials('chuck norris')); + $this->assertEquals('A', $h->getInitials('admin')); + } +} |