diff --git a/ChangeLog b/ChangeLog index cd369e2bf..09f3ad7f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Version 1.0.42 +-------------- + +Breaking Changes: + +* Move calendar to external plugin: https://github.com/kanboard/plugin-calendar + Version 1.0.41 -------------- diff --git a/app/Controller/CalendarController.php b/app/Controller/CalendarController.php deleted file mode 100644 index e764549d5..000000000 --- a/app/Controller/CalendarController.php +++ /dev/null @@ -1,120 +0,0 @@ -getUser(); - - $this->response->html($this->helper->layout->app('calendar/user', array( - 'user' => $user, - ))); - } - - /** - * Show calendar view for a project - * - * @access public - */ - public function project() - { - $project = $this->getProject(); - - $this->response->html($this->helper->layout->app('calendar/project', array( - 'project' => $project, - 'title' => $project['name'], - 'description' => $this->helper->projectHeader->getDescription($project), - ))); - } - - /** - * Get tasks to display on the calendar (project view) - * - * @access public - */ - public function projectEvents() - { - $project_id = $this->request->getIntegerParam('project_id'); - $start = $this->request->getStringParam('start'); - $end = $this->request->getStringParam('end'); - $search = $this->userSession->getFilters($project_id); - $queryBuilder = $this->taskLexer->build($search)->withFilter(new TaskProjectFilter($project_id)); - - $events = $this->helper->calendar->getTaskDateDueEvents(clone($queryBuilder), $start, $end); - $events = array_merge($events, $this->helper->calendar->getTaskEvents(clone($queryBuilder), $start, $end)); - - $events = $this->hook->merge('controller:calendar:project:events', $events, array( - 'project_id' => $project_id, - 'start' => $start, - 'end' => $end, - )); - - $this->response->json($events); - } - - /** - * Get tasks to display on the calendar (user view) - * - * @access public - */ - public function userEvents() - { - $user_id = $this->request->getIntegerParam('user_id'); - $start = $this->request->getStringParam('start'); - $end = $this->request->getStringParam('end'); - $queryBuilder = $this->taskQuery - ->withFilter(new TaskAssigneeFilter($user_id)) - ->withFilter(new TaskStatusFilter(TaskModel::STATUS_OPEN)); - - $events = $this->helper->calendar->getTaskDateDueEvents(clone($queryBuilder), $start, $end); - $events = array_merge($events, $this->helper->calendar->getTaskEvents(clone($queryBuilder), $start, $end)); - - if ($this->configModel->get('calendar_user_subtasks_time_tracking') == 1) { - $events = array_merge($events, $this->helper->calendar->getSubtaskTimeTrackingEvents($user_id, $start, $end)); - } - - $events = $this->hook->merge('controller:calendar:user:events', $events, array( - 'user_id' => $user_id, - 'start' => $start, - 'end' => $end, - )); - - $this->response->json($events); - } - - /** - * Update task due date - * - * @access public - */ - public function save() - { - if ($this->request->isAjax() && $this->request->isPost()) { - $values = $this->request->getJson(); - - $this->taskModificationModel->update(array( - 'id' => $values['task_id'], - 'date_due' => substr($values['date_due'], 0, 10), - )); - } - } -} diff --git a/app/Controller/ConfigController.php b/app/Controller/ConfigController.php index 6b85d1f9e..6c2bc44b7 100644 --- a/app/Controller/ConfigController.php +++ b/app/Controller/ConfigController.php @@ -49,9 +49,6 @@ class ConfigController extends BaseController case 'integrations': $values += array('integration_gravatar' => 0); break; - case 'calendar': - $values += array('calendar_user_subtasks_time_tracking' => 0); - break; } if ($this->configModel->save($values)) { @@ -127,18 +124,6 @@ class ConfigController extends BaseController ))); } - /** - * Display the calendar settings page - * - * @access public - */ - public function calendar() - { - $this->response->html($this->helper->layout->config('config/calendar', array( - 'title' => t('Settings').' > '.t('Calendar settings'), - ))); - } - /** * Display the integration settings page * diff --git a/app/Core/Base.php b/app/Core/Base.php index b9cdf5ad2..ba610be64 100644 --- a/app/Core/Base.php +++ b/app/Core/Base.php @@ -72,7 +72,6 @@ use Pimple\Container; * @property \Kanboard\Formatter\SubtaskListFormatter $subtaskListFormatter * @property \Kanboard\Formatter\SubtaskTimeTrackingCalendarFormatter $subtaskTimeTrackingCalendarFormatter * @property \Kanboard\Formatter\TaskAutoCompleteFormatter $taskAutoCompleteFormatter - * @property \Kanboard\Formatter\TaskCalendarFormatter $taskCalendarFormatter * @property \Kanboard\Formatter\TaskGanttFormatter $taskGanttFormatter * @property \Kanboard\Formatter\TaskICalFormatter $taskICalFormatter * @property \Kanboard\Formatter\TaskListFormatter $taskListFormatter diff --git a/app/Core/Helper.php b/app/Core/Helper.php index 1b53ae2bc..cb9c50f64 100644 --- a/app/Core/Helper.php +++ b/app/Core/Helper.php @@ -14,7 +14,6 @@ use Pimple\Container; * @property \Kanboard\Helper\AssetHelper $asset * @property \Kanboard\Helper\AvatarHelper $avatar * @property \Kanboard\Helper\BoardHelper $board - * @property \Kanboard\Helper\CalendarHelper $calendar * @property \Kanboard\Helper\CommentHelper $comment * @property \Kanboard\Helper\DateHelper $dt * @property \Kanboard\Helper\FileHelper $file diff --git a/app/Formatter/TaskCalendarFormatter.php b/app/Formatter/TaskCalendarFormatter.php deleted file mode 100644 index 75d2a83e1..000000000 --- a/app/Formatter/TaskCalendarFormatter.php +++ /dev/null @@ -1,74 +0,0 @@ -fullDay = true; - return $this; - } - - /** - * Transform tasks to calendar events - * - * @access public - * @return array - */ - public function format() - { - $events = array(); - - foreach ($this->query->findAll() as $task) { - $events[] = array( - 'timezoneParam' => $this->timezoneModel->getCurrentTimezone(), - 'id' => $task['id'], - 'title' => t('#%d', $task['id']).' '.$task['title'], - 'backgroundColor' => $this->colorModel->getBackgroundColor($task['color_id']), - 'borderColor' => $this->colorModel->getBorderColor($task['color_id']), - 'textColor' => 'black', - 'url' => $this->helper->url->to('TaskViewController', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])), - 'start' => date($this->getDateTimeFormat(), $task[$this->startColumn]), - 'end' => date($this->getDateTimeFormat(), $task[$this->endColumn] ?: time()), - 'editable' => $this->fullDay, - 'allday' => $this->fullDay, - ); - } - - return $events; - } - - /** - * Get DateTime format for event - * - * @access private - * @return string - */ - private function getDateTimeFormat() - { - return $this->fullDay ? 'Y-m-d' : 'Y-m-d\TH:i:s'; - } -} diff --git a/app/Helper/CalendarHelper.php b/app/Helper/CalendarHelper.php deleted file mode 100644 index 0942177d3..000000000 --- a/app/Helper/CalendarHelper.php +++ /dev/null @@ -1,126 +0,0 @@ - $checkUrl, - 'saveUrl' => $saveUrl, - ); - - return '
'; - } - - /** - * Get formatted calendar task due events - * - * @access public - * @param QueryBuilder $queryBuilder - * @param string $start - * @param string $end - * @return array - */ - public function getTaskDateDueEvents(QueryBuilder $queryBuilder, $start, $end) - { - $formatter = $this->taskCalendarFormatter; - $formatter->setFullDay(); - $formatter->setColumns('date_due'); - - return $queryBuilder - ->withFilter(new TaskDueDateRangeFilter(array($start, $end))) - ->format($formatter); - } - - /** - * Get formatted calendar task events - * - * @access public - * @param QueryBuilder $queryBuilder - * @param string $start - * @param string $end - * @return array - */ - public function getTaskEvents(QueryBuilder $queryBuilder, $start, $end) - { - $startColumn = $this->configModel->get('calendar_project_tasks', 'date_started'); - - $queryBuilder->getQuery()->addCondition($this->getCalendarCondition( - $this->dateParser->getTimestampFromIsoFormat($start), - $this->dateParser->getTimestampFromIsoFormat($end), - $startColumn, - 'date_due' - )); - - $formatter = $this->taskCalendarFormatter; - $formatter->setColumns($startColumn, 'date_due'); - - return $queryBuilder->format($formatter); - } - - /** - * Get formatted calendar subtask time tracking events - * - * @access public - * @param integer $user_id - * @param string $start - * @param string $end - * @return array - */ - public function getSubtaskTimeTrackingEvents($user_id, $start, $end) - { - return $this->subtaskTimeTrackingCalendarFormatter - ->withQuery($this->subtaskTimeTrackingModel->getUserQuery($user_id) - ->addCondition($this->getCalendarCondition( - $this->dateParser->getTimestampFromIsoFormat($start), - $this->dateParser->getTimestampFromIsoFormat($end), - 'start', - 'end' - )) - ) - ->format(); - } - - /** - * Build SQL condition for a given time range - * - * @access public - * @param string $start_time Start timestamp - * @param string $end_time End timestamp - * @param string $start_column Start column name - * @param string $end_column End column name - * @return string - */ - public function getCalendarCondition($start_time, $end_time, $start_column, $end_column) - { - $start_column = $this->db->escapeIdentifier($start_column); - $end_column = $this->db->escapeIdentifier($end_column); - - $conditions = array( - "($start_column >= '$start_time' AND $start_column <= '$end_time')", - "($start_column <= '$start_time' AND $end_column >= '$start_time')", - "($start_column <= '$start_time' AND ($end_column = '0' OR $end_column IS NULL))", - ); - - return $start_column.' IS NOT NULL AND '.$start_column.' > 0 AND ('.implode(' OR ', $conditions).')'; - } -} diff --git a/app/Helper/ProjectHeaderHelper.php b/app/Helper/ProjectHeaderHelper.php index 9514f4f28..e4f961078 100644 --- a/app/Helper/ProjectHeaderHelper.php +++ b/app/Helper/ProjectHeaderHelper.php @@ -34,15 +34,17 @@ class ProjectHeaderHelper extends Base * @param string $controller * @param string $action * @param bool $boardView + * @param string $plugin * @return string */ - public function render(array $project, $controller, $action, $boardView = false) + public function render(array $project, $controller, $action, $boardView = false, $plugin = '') { $filters = array( 'controller' => $controller, 'action' => $action, 'project_id' => $project['id'], 'search' => $this->getSearchQuery($project), + 'plugin' => $plugin, ); return $this->template->render('project_header/header', array( diff --git a/app/Locale/bs_BA/translations.php b/app/Locale/bs_BA/translations.php index a0354e2e9..fc771db5e 100644 --- a/app/Locale/bs_BA/translations.php +++ b/app/Locale/bs_BA/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Jezik:', 'Timezone:' => 'Vremenska zona:', 'All columns' => 'Sve kolone', - 'Calendar' => 'Kalendar', 'Next' => 'Slijedeći', '#%d' => '#%d', 'All swimlanes' => 'Sve swimlane trake', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Kada je zadatak premješten iz prve kolone', 'When task is moved to last column' => 'Kada je zadatak premješten u posljednju kolonu', 'Year(s)' => 'Godina/e', - 'Calendar settings' => 'Postavke kalendara', - 'Project calendar view' => 'Pregled kalendara projekta', 'Project settings' => 'Postavke projekta', - 'Show subtasks based on the time tracking' => 'Prikaži pod-zadatke bazirano na vremenskom praćenju', - 'Show tasks based on the creation date' => 'Prikaži zadatke bazirano na vremenu otvaranja', - 'Show tasks based on the start date' => 'Prikaži zadatke bazirano na vremenu početka rada', - 'Subtasks time tracking' => 'Vremensko praćenje pod-zadataka', - 'User calendar view' => 'Pregled korisničkog kalendara', 'Automatically update the start date' => 'Automatski ažuriraj početni datum', 'iCal feed' => 'iCal kanal', 'Preferences' => 'Postavke', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Zaustavi tajmer', 'Start timer' => 'Pokreni tajmer', 'My activity stream' => 'Tok mojih aktivnosti', - 'My calendar' => 'Moj kalendar', 'Search tasks' => 'Pretraga zadataka', 'Reset filters' => 'Vrati filtere na početno', 'My tasks due tomorrow' => 'Moji zadaci koje treba završiti sutra', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Opšti pregled', 'Board/Calendar/List view' => 'Pregled Ploče/Kalendara/Liste', 'Switch to the board view' => 'Promijeni da vidim ploču', - 'Switch to the calendar view' => 'Promijeni da vidim kalendar', 'Switch to the list view' => 'Promijeni da vidim listu', 'Go to the search/filter box' => 'Idi na kutiju s pretragom/filterima', 'There is no activity yet.' => 'Još uvijek nema aktivnosti.', diff --git a/app/Locale/cs_CZ/translations.php b/app/Locale/cs_CZ/translations.php index a324a77ea..b308987a9 100644 --- a/app/Locale/cs_CZ/translations.php +++ b/app/Locale/cs_CZ/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Jazyk:', 'Timezone:' => 'Časová zóna:', 'All columns' => 'Všechny sloupce', - 'Calendar' => 'Kalendář', 'Next' => 'Další', // '#%d' => '', 'All swimlanes' => 'Alle Swimlanes', @@ -607,14 +606,7 @@ return array( // 'When task is moved from first column' => '', // 'When task is moved to last column' => '', // 'Year(s)' => '', - 'Calendar settings' => 'Nastavení kalendáře', - // 'Project calendar view' => '', 'Project settings' => 'Nastavení projektu', - 'Show subtasks based on the time tracking' => 'Zobrazit dílčí úkoly závislé na sledování času', - 'Show tasks based on the creation date' => 'Zobrazit úkoly podle datumu vytvoření', - 'Show tasks based on the start date' => 'Zobrazit úkoly podle datumu zahájení', - 'Subtasks time tracking' => 'Dílčí úkoly s časovačem', - 'User calendar view' => 'Zobrazení kalendáře uživatele', 'Automatically update the start date' => 'Automaticky aktualizovat počáteční datum', // 'iCal feed' => '', 'Preferences' => 'Předvolby', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Zastavit časovač', 'Start timer' => 'Spustit časovač', 'My activity stream' => 'Přehled mých aktivit', - 'My calendar' => 'Můj kalendář', 'Search tasks' => 'Hledání úkolů', 'Reset filters' => 'Resetovat filtry', 'My tasks due tomorrow' => 'Moje zítřejší úkoly', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Přehled', 'Board/Calendar/List view' => 'Nástěnka/Kalendář/Zobrazení seznamu', 'Switch to the board view' => 'Přepnout na nástěnku', - 'Switch to the calendar view' => 'Přepnout na kalendář', 'Switch to the list view' => 'Přepnout na seznam zobrazení', 'Go to the search/filter box' => 'Zobrazit vyhledávání/filtrování', 'There is no activity yet.' => 'Doposud nejsou žádné aktivity.', diff --git a/app/Locale/da_DK/translations.php b/app/Locale/da_DK/translations.php index d7d92d25c..ff60ae0b3 100644 --- a/app/Locale/da_DK/translations.php +++ b/app/Locale/da_DK/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Sprog', 'Timezone:' => 'Tidszone', 'All columns' => 'Alle kolonner', - 'Calendar' => 'Kalender', 'Next' => 'Næste', // '#%d' => '', 'All swimlanes' => 'Alle spor', @@ -607,14 +606,7 @@ return array( // 'When task is moved from first column' => '', // 'When task is moved to last column' => '', 'Year(s)' => 'År', - 'Calendar settings' => 'Kalender indstillinger', - 'Project calendar view' => 'Projekt kalender visning', 'Project settings' => 'Projekt indstillinger', - // 'Show subtasks based on the time tracking' => '', - // 'Show tasks based on the creation date' => '', - // 'Show tasks based on the start date' => '', - // 'Subtasks time tracking' => '', - 'User calendar view' => 'Bruger kalender visning', // 'Automatically update the start date' => '', // 'iCal feed' => '', 'Preferences' => 'Præferencer', @@ -670,7 +662,6 @@ return array( // 'Stop timer' => '', // 'Start timer' => '', 'My activity stream' => 'Min aktivitets strøm', - 'My calendar' => 'Min kalender', 'Search tasks' => 'Søg opgaver', // 'Reset filters' => '', // 'My tasks due tomorrow' => '', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Overblik', 'Board/Calendar/List view' => 'Tavle/Kalender/Liste visning', 'Switch to the board view' => 'Skift til tavle visning', - 'Switch to the calendar view' => 'Skift til kalender visning', 'Switch to the list view' => 'Skift til liste visning', // 'Go to the search/filter box' => '', // 'There is no activity yet.' => '', diff --git a/app/Locale/de_DE/translations.php b/app/Locale/de_DE/translations.php index 7ff59e5d2..6a8024f5c 100644 --- a/app/Locale/de_DE/translations.php +++ b/app/Locale/de_DE/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Sprache:', 'Timezone:' => 'Zeitzone:', 'All columns' => 'Alle Spalten', - 'Calendar' => 'Kalender', 'Next' => 'Nächste', '#%d' => 'Nr %d', 'All swimlanes' => 'Alle Swimlanes', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Wenn Aufgabe von erster Spalte verschoben wird', 'When task is moved to last column' => 'Wenn Aufgabe in letzte Spalte verschoben wird', 'Year(s)' => 'Jahr(e)', - 'Calendar settings' => 'Kalender-Einstellungen', - 'Project calendar view' => 'Projekt-Kalendarsicht', 'Project settings' => 'Projekteinstellungen', - 'Show subtasks based on the time tracking' => 'Zeige Teilaufgaben basierend auf Zeiterfassung', - 'Show tasks based on the creation date' => 'Zeige Aufgaben basierend auf Erstelldatum', - 'Show tasks based on the start date' => 'Zeige Aufgaben basierend auf Beginndatum', - 'Subtasks time tracking' => 'Teilaufgaben-Zeiterfassung', - 'User calendar view' => 'Benutzer-Kalendersicht', 'Automatically update the start date' => 'Beginndatum automatisch aktualisieren', 'iCal feed' => 'iCal Feed', 'Preferences' => 'Einstellungen', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Stoppe Timer', 'Start timer' => 'Starte Timer', 'My activity stream' => 'Aktivitätsstream', - 'My calendar' => 'Mein Kalender', 'Search tasks' => 'Suche nach Aufgaben', 'Reset filters' => 'Filter zurücksetzen', 'My tasks due tomorrow' => 'Meine morgen fälligen Aufgaben', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Überblick', 'Board/Calendar/List view' => 'Board-/Kalender-/Listen-Ansicht', 'Switch to the board view' => 'Zur Board-Ansicht', - 'Switch to the calendar view' => 'Zur Kalender-Ansicht', 'Switch to the list view' => 'Zur Listen-Ansicht', 'Go to the search/filter box' => 'Zum Such- und Filterfeld', 'There is no activity yet.' => 'Es gibt bislang keine Aktivitäten.', diff --git a/app/Locale/el_GR/translations.php b/app/Locale/el_GR/translations.php index 2e4ba7787..3938413b5 100644 --- a/app/Locale/el_GR/translations.php +++ b/app/Locale/el_GR/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Γλώσσα:', 'Timezone:' => 'Timezone:', 'All columns' => 'Όλες οι στήλες', - 'Calendar' => 'Ημερολόγιο', 'Next' => 'Επόμενο', '#%d' => 'n˚%d', 'All swimlanes' => 'Όλες οι λωρίδες', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Όταν το έργο έχει μετακινηθεί στην 1η στήλη', 'When task is moved to last column' => 'Όταν το έργο έχει μετακινηθεί στην τελευταία στήλη', 'Year(s)' => 'Χρόνος(οι)', - 'Calendar settings' => 'Ρυθμίσεις ημερολογίου', - 'Project calendar view' => 'Προβολή ημερολογίου έργων', 'Project settings' => 'Ρυθμίσεις έργου', - 'Show subtasks based on the time tracking' => 'Εμφάνιση υπο-εργασίων με βάση την παρακολούθηση του χρόνου', - 'Show tasks based on the creation date' => 'Εμφάνιση έργων με βάση την ημερομηνία δημιουργίας', - 'Show tasks based on the start date' => 'Εμφάνιση έργων με βάση την ημερομηνία δημιουργίας ', - 'Subtasks time tracking' => 'Παρακολούθηση χρόνου υπο-εργασίων', - 'User calendar view' => 'Προβολή του ημερολογίου του χρήστη', 'Automatically update the start date' => 'Αυτόματη ενημέρωση της ημερομηνίας έναρξης', 'iCal feed' => 'iCal feed', 'Preferences' => 'Προτιμήσεις', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Διακοπή ρολογιού', 'Start timer' => 'Έναρξη ρολογιού', 'My activity stream' => 'Η ροή δραστηριοτήτων μου', - 'My calendar' => 'Το ημερολόγιο μου', 'Search tasks' => 'Αναζήτηση εργασιών', 'Reset filters' => 'Επαναφορά φίλτρων', 'My tasks due tomorrow' => 'Οι εργασίες καθηκόντων μου αύριο', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Επισκόπηση', '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.' => 'Δεν υπάρχει καμία δραστηριότητα ακόμα.', diff --git a/app/Locale/es_ES/translations.php b/app/Locale/es_ES/translations.php index 2990d4ee9..7b3d2255c 100644 --- a/app/Locale/es_ES/translations.php +++ b/app/Locale/es_ES/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Idioma', 'Timezone:' => 'Zona horaria', 'All columns' => 'Todas las columnas', - 'Calendar' => 'Calendario', 'Next' => 'Siguiente', // '#%d' => '', 'All swimlanes' => 'Todos los carriles', @@ -607,14 +606,7 @@ return array( // 'When task is moved from first column' => '', // 'When task is moved to last column' => '', // 'Year(s)' => '', - // 'Calendar settings' => '', - // 'Project calendar view' => '', // 'Project settings' => '', - // 'Show subtasks based on the time tracking' => '', - // 'Show tasks based on the creation date' => '', - // 'Show tasks based on the start date' => '', - // 'Subtasks time tracking' => '', - // 'User calendar view' => '', // 'Automatically update the start date' => '', // 'iCal feed' => '', // 'Preferences' => '', @@ -670,7 +662,6 @@ return array( // 'Stop timer' => '', // 'Start timer' => '', // 'My activity stream' => '', - // 'My calendar' => '', // 'Search tasks' => '', // 'Reset filters' => '', // 'My tasks due tomorrow' => '', @@ -684,7 +675,6 @@ return array( // 'Overview' => '', // '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.' => '', diff --git a/app/Locale/fi_FI/translations.php b/app/Locale/fi_FI/translations.php index 043e48803..2566fa7b8 100644 --- a/app/Locale/fi_FI/translations.php +++ b/app/Locale/fi_FI/translations.php @@ -455,7 +455,6 @@ return array( // 'Language:' => '', // 'Timezone:' => '', // 'All columns' => '', - // 'Calendar' => '', // 'Next' => '', // '#%d' => '', // 'All swimlanes' => '', @@ -607,14 +606,7 @@ return array( // 'When task is moved from first column' => '', // 'When task is moved to last column' => '', // 'Year(s)' => '', - // 'Calendar settings' => '', - // 'Project calendar view' => '', // 'Project settings' => '', - // 'Show subtasks based on the time tracking' => '', - // 'Show tasks based on the creation date' => '', - // 'Show tasks based on the start date' => '', - // 'Subtasks time tracking' => '', - // 'User calendar view' => '', // 'Automatically update the start date' => '', // 'iCal feed' => '', // 'Preferences' => '', @@ -670,7 +662,6 @@ return array( // 'Stop timer' => '', // 'Start timer' => '', // 'My activity stream' => '', - // 'My calendar' => '', // 'Search tasks' => '', // 'Reset filters' => '', // 'My tasks due tomorrow' => '', @@ -684,7 +675,6 @@ return array( // 'Overview' => '', // '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.' => '', diff --git a/app/Locale/fr_FR/translations.php b/app/Locale/fr_FR/translations.php index 31c61801b..3bb5b0bee 100644 --- a/app/Locale/fr_FR/translations.php +++ b/app/Locale/fr_FR/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Langue :', 'Timezone:' => 'Fuseau horaire :', 'All columns' => 'Toutes les colonnes', - 'Calendar' => 'Agenda', 'Next' => 'Suivant', '#%d' => 'n˚%d', 'All swimlanes' => 'Toutes les swimlanes', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Lorsque la tâche est déplacée en dehors de la première colonne', 'When task is moved to last column' => 'Lorsque la tâche est déplacée dans la dernière colonne', 'Year(s)' => 'Année(s)', - 'Calendar settings' => 'Paramètres du calendrier', - 'Project calendar view' => 'Vue en mode projet du calendrier', 'Project settings' => 'Paramètres du projet', - 'Show subtasks based on the time tracking' => 'Afficher les sous-tâches basé sur le suivi du temps', - 'Show tasks based on the creation date' => 'Afficher les tâches en fonction de la date de création', - 'Show tasks based on the start date' => 'Afficher les tâches en fonction de la date de début', - 'Subtasks time tracking' => 'Suivi du temps par rapport aux sous-tâches', - 'User calendar view' => 'Vue en mode utilisateur du calendrier', 'Automatically update the start date' => 'Mettre à jour automatiquement la date de début', 'iCal feed' => 'Abonnement iCal', 'Preferences' => 'Préférences', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Stopper le chrono', 'Start timer' => 'Démarrer le chrono', 'My activity stream' => 'Mon flux d\'activité', - 'My calendar' => 'Mon agenda', 'Search tasks' => 'Rechercher des tâches', 'Reset filters' => 'Réinitialiser les filtres', 'My tasks due tomorrow' => 'Mes tâches qui arrivent à échéance demain', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Vue d\'ensemble', '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é.', diff --git a/app/Locale/hr_HR/translations.php b/app/Locale/hr_HR/translations.php index ac09848b4..8965623da 100644 --- a/app/Locale/hr_HR/translations.php +++ b/app/Locale/hr_HR/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Jezik:', 'Timezone:' => 'Vremenska zona:', 'All columns' => 'Svi stupci', - 'Calendar' => 'Kalendar', 'Next' => 'Idući', // '#%d' => '', 'All swimlanes' => 'Sve staze', @@ -607,14 +606,7 @@ return array( // 'When task is moved from first column' => '', // 'When task is moved to last column' => '', // 'Year(s)' => '', - 'Calendar settings' => 'Postavke kalendara', - 'Project calendar view' => 'Projektni kalendar', 'Project settings' => 'Postavke projekta', - 'Show subtasks based on the time tracking' => 'Prikaz pod-zadataka po evidenciji vremena', - 'Show tasks based on the creation date' => 'Prikaz zadataka po datumu kreiranja', - 'Show tasks based on the start date' => 'Prikaz zadataka po datumu početka', - 'Subtasks time tracking' => 'Evidencija vremena pod-zadataka', - 'User calendar view' => 'Korisnički kalendar', // 'Automatically update the start date' => '', // 'iCal feed' => '', 'Preferences' => 'Postavke', @@ -670,7 +662,6 @@ return array( // 'Stop timer' => '', // 'Start timer' => '', 'My activity stream' => 'Moje aktivnosti', - 'My calendar' => 'Moj kalendar', 'Search tasks' => 'Pretraživanje zadataka', 'Reset filters' => 'Obriši filtere', 'My tasks due tomorrow' => 'Moji zadaci sa rokom sutra', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Pregled', // '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.' => '', diff --git a/app/Locale/hu_HU/translations.php b/app/Locale/hu_HU/translations.php index a0c5360aa..9685486ba 100644 --- a/app/Locale/hu_HU/translations.php +++ b/app/Locale/hu_HU/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Nyelv:', 'Timezone:' => 'Időzóna:', 'All columns' => 'Minden oszlop', - 'Calendar' => 'Naptár', 'Next' => 'Következő', '#%d' => '#%d', 'All swimlanes' => 'Minden sáv', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Mikor a feladat az első oszlopból el lett mozgatva', 'When task is moved to last column' => 'Mikor a feladat az utolsó oszlopba lett elmozgatva', 'Year(s)' => 'Év(ek)', - 'Calendar settings' => 'Naptár beállítások', - 'Project calendar view' => 'A projekt megjelenítése naptári formában', 'Project settings' => 'Projekt beállítások', - 'Show subtasks based on the time tracking' => 'A részfeladatok megjelenítése az idő nyomkövetés alapján', - 'Show tasks based on the creation date' => 'A feladatok megjelenítése a létrehozás dátuma alapján', - 'Show tasks based on the start date' => 'A feladatok megjelenítése a kezdő dátum alapján', - 'Subtasks time tracking' => 'A részfeladatok idejének megjelenítése', - 'User calendar view' => 'A felhasználó naptárának megjelenítése', 'Automatically update the start date' => 'A kezdő dátum automatikus módosítása', // 'iCal feed' => '', 'Preferences' => 'Preferenciák', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Időmérő leállítása', 'Start timer' => 'Időmérő elindítása', 'My activity stream' => 'Tevékenységem', - 'My calendar' => 'Naptáram', 'Search tasks' => 'Feladatok közötti keresés', 'Reset filters' => 'Szűrő alaphelyzetbe állítás', 'My tasks due tomorrow' => 'Holnapi határidejű feladataim', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Áttekintés', 'Board/Calendar/List view' => 'Tábla/Naptár/Lista nézet', 'Switch to the board view' => 'Átkapcsolás tábla nézetbe', - 'Switch to the calendar view' => 'Átkapcsolás naptár nézetbe', 'Switch to the list view' => 'Átkapcsolás lista nézetbe', 'Go to the search/filter box' => 'Ugrás a keresés/szűrés dobozhoz', 'There is no activity yet.' => 'Még nincs tevékenység', diff --git a/app/Locale/id_ID/translations.php b/app/Locale/id_ID/translations.php index 511a795e9..e0c402c3b 100644 --- a/app/Locale/id_ID/translations.php +++ b/app/Locale/id_ID/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Bahasa:', 'Timezone:' => 'Zona waktu:', 'All columns' => 'Semua kolom', - 'Calendar' => 'Kalender', 'Next' => 'Selanjutnya', '#%d' => '#%d', 'All swimlanes' => 'Semua swimlane', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Saat tugas dipindahkan dari kolom pertama', 'When task is moved to last column' => 'Saat tugas dipindahkan ke kolom terakhir', 'Year(s)' => 'Tahun', - 'Calendar settings' => 'Pengaturan kalender', - 'Project calendar view' => 'Tampilan kalender proyek', 'Project settings' => 'Pengaturan proyek', - 'Show subtasks based on the time tracking' => 'Tampilkan sub-tugas berdasarkan pelacakan waktu', - 'Show tasks based on the creation date' => 'Tampilkan tugas berdasarkan tanggal pembuatan', - 'Show tasks based on the start date' => 'Tampilkan tugas berdasarkan tanggal mulai', - 'Subtasks time tracking' => 'Pelacakan waktu sub-tugas', - 'User calendar view' => 'Tampilan kalender pengguna', 'Automatically update the start date' => 'Otomatis memperbarui tanggal permulaan', 'iCal feed' => 'Umpan iCal', 'Preferences' => 'Preferensi', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Hentikan timer', 'Start timer' => 'Mulai timer', 'My activity stream' => 'Aliran kegiatan saya', - 'My calendar' => 'Kalender saya', 'Search tasks' => 'Cari tugas', 'Reset filters' => 'Reset saringan', 'My tasks due tomorrow' => 'Tugas saya yang berakhir besok', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Ringkasan', 'Board/Calendar/List view' => 'Tampilan Papan/Kalender/Daftar', 'Switch to the board view' => 'Beralih ke tampilan papan', - 'Switch to the calendar view' => 'Beralih ke tampilan kalender', 'Switch to the list view' => 'Beralih ke tampilan daftar', 'Go to the search/filter box' => 'Pergi ke kotak pencarian/saringan', 'There is no activity yet.' => 'Belum ada aktifitas.', diff --git a/app/Locale/it_IT/translations.php b/app/Locale/it_IT/translations.php index f664f8b11..db9174fe0 100644 --- a/app/Locale/it_IT/translations.php +++ b/app/Locale/it_IT/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Lingua', 'Timezone:' => 'Fuso Orario', 'All columns' => 'Tutte le colonne', - 'Calendar' => 'Calendario', 'Next' => 'Prossimo', // '#%d' => '', 'All swimlanes' => 'Tutte le corsie', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Quando un task è spostato dalla prima colonna', 'When task is moved to last column' => 'Quando un task è spostato nell\'ultima colonna', 'Year(s)' => 'Anno/i', - 'Calendar settings' => 'Impostazioni del calendario', - 'Project calendar view' => 'Vista di progetto a calendario', 'Project settings' => 'Impostazioni di progetto', - 'Show subtasks based on the time tracking' => 'Mostra i sotto-task in base al time tracking', - 'Show tasks based on the creation date' => 'Mostra i task in base alla data di creazione', - 'Show tasks based on the start date' => 'Mostra i task in base alla data di inizio', - 'Subtasks time tracking' => 'Time tracking per i sotto-task', - 'User calendar view' => 'Vista utente a calendario', 'Automatically update the start date' => 'Aggiorna automaticamente la data di inizio', 'iCal feed' => 'feed iCal', 'Preferences' => 'Preferenze', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Ferma il timer', 'Start timer' => 'Avvia il timer', 'My activity stream' => 'Il mio flusso attività', - 'My calendar' => 'Il mio calendario', 'Search tasks' => 'Ricerca task', 'Reset filters' => 'Annulla filtri', 'My tasks due tomorrow' => 'I miei task da completare per domani', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Panoramica', 'Board/Calendar/List view' => 'Vista Bacheca/Calendario/Lista', 'Switch to the board view' => 'Passa alla vista "bacheca"', - 'Switch to the calendar view' => 'Passa alla vista "calendario"', 'Switch to the list view' => 'Passa alla vista "elenco"', 'Go to the search/filter box' => 'Vai alla casella di ricerca/filtro', 'There is no activity yet.' => 'Non è presente ancora nessuna attività.', diff --git a/app/Locale/ja_JP/translations.php b/app/Locale/ja_JP/translations.php index b9cc20ea7..8114afb90 100644 --- a/app/Locale/ja_JP/translations.php +++ b/app/Locale/ja_JP/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => '言語:', 'Timezone:' => 'タイムゾーン:', 'All columns' => '全てのカラム', - 'Calendar' => 'カレンダー', 'Next' => '次へ', '#%d' => '#%d', 'All swimlanes' => '全てのスイムレーン', @@ -607,14 +606,7 @@ return array( // 'When task is moved from first column' => '', // 'When task is moved to last column' => '', // 'Year(s)' => '', - // 'Calendar settings' => '', - // 'Project calendar view' => '', // 'Project settings' => '', - // 'Show subtasks based on the time tracking' => '', - // 'Show tasks based on the creation date' => '', - // 'Show tasks based on the start date' => '', - // 'Subtasks time tracking' => '', - // 'User calendar view' => '', // 'Automatically update the start date' => '', // 'iCal feed' => '', // 'Preferences' => '', @@ -670,7 +662,6 @@ return array( // 'Stop timer' => '', // 'Start timer' => '', // 'My activity stream' => '', - // 'My calendar' => '', // 'Search tasks' => '', // 'Reset filters' => '', // 'My tasks due tomorrow' => '', @@ -684,7 +675,6 @@ return array( // 'Overview' => '', // '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.' => '', diff --git a/app/Locale/ko_KR/translations.php b/app/Locale/ko_KR/translations.php index 02ea9c962..c5c3b669c 100644 --- a/app/Locale/ko_KR/translations.php +++ b/app/Locale/ko_KR/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => '언어:', 'Timezone:' => '시간대:', 'All columns' => '모든 컬럼', - 'Calendar' => '달력', 'Next' => '다음에 ', '#%d' => '#%d', 'All swimlanes' => '모든 스윔레인', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => '할일이 첫번째 컬럼으로 옮겨졌을때', 'When task is moved to last column' => '할일이 마지막 컬럼으로 옮겨졌을때', 'Year(s)' => '년', - 'Calendar settings' => '달력 설정', - 'Project calendar view' => '프로젝트 달력 보기', 'Project settings' => '프로젝트 설정', - 'Show subtasks based on the time tracking' => '시간 트래킹의 서브 할일 보기', - 'Show tasks based on the creation date' => '생성 날짜로 할일 보기', - 'Show tasks based on the start date' => '시작 날짜로 할일 보기', - 'Subtasks time tracking' => '서브 할일 시간 트래킹', - 'User calendar view' => '담당자 달력 보기', 'Automatically update the start date' => '시작일에 자동 갱신', 'iCal feed' => 'iCal 피드', 'Preferences' => '우선권', @@ -670,7 +662,6 @@ return array( 'Stop timer' => '타이머 정지', 'Start timer' => '타이머 시작', 'My activity stream' => '내 활동기록', - 'My calendar' => '내 캘린더', 'Search tasks' => '할일 찾기', 'Reset filters' => '필터 리셋', 'My tasks due tomorrow' => '내일까지 내 할일', @@ -684,7 +675,6 @@ return array( 'Overview' => '개요', '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.' => '활동이 없습니다', diff --git a/app/Locale/my_MY/translations.php b/app/Locale/my_MY/translations.php index 2b71d8116..40327f6c6 100644 --- a/app/Locale/my_MY/translations.php +++ b/app/Locale/my_MY/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Bahasa:', 'Timezone:' => 'Zon masa:', 'All columns' => 'Semua kolom', - 'Calendar' => 'Kalender', 'Next' => 'Selanjutnya', '#%d' => 'n°%d', 'All swimlanes' => 'Semua swimlane', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Ketika tugas dipindahkan dari kolom pertama', 'When task is moved to last column' => 'Ketika tugas dipindahkan ke kolom terakhir', 'Year(s)' => 'Tahun', - 'Calendar settings' => 'Pengaturan kalender', - 'Project calendar view' => 'Tampilan kalender projek', 'Project settings' => 'Pengaturan projek', - 'Show subtasks based on the time tracking' => 'Tampilkan subtugas berdasarkan pelacakan waktu', - 'Show tasks based on the creation date' => 'Tampilkan tugas berdasarkan tanggal pembuatan', - 'Show tasks based on the start date' => 'Tampilkan tugas berdasarkan tanggal mulai', - 'Subtasks time tracking' => 'Pelacakan waktu subtgas', - 'User calendar view' => 'Pengguna tampilan kalender', 'Automatically update the start date' => 'Otomatikkan pengemaskinian tanggal', 'iCal feed' => 'iCal feed', 'Preferences' => 'Keutamaan', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Hentikan timer', 'Start timer' => 'Mulai timer', 'My activity stream' => 'Aliran kegiatan saya', - 'My calendar' => 'Kalender saya', 'Search tasks' => 'Cari tugas', 'Reset filters' => 'Reset ulang filter', 'My tasks due tomorrow' => 'Tugas saya yang berakhir besok', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Ikhtisar', 'Board/Calendar/List view' => 'Tampilan Papan/Kalender/Daftar', 'Switch to the board view' => 'Beralih ke tampilan papan', - 'Switch to the calendar view' => 'Beralih ke tampilan kalender', 'Switch to the list view' => 'Beralih ke tampilan daftar', 'Go to the search/filter box' => 'Pergi ke kotak pencarian/filter', 'There is no activity yet.' => 'Tidak ada aktifitas saat ini.', diff --git a/app/Locale/nb_NO/translations.php b/app/Locale/nb_NO/translations.php index 4e52428d8..3f1f211ac 100644 --- a/app/Locale/nb_NO/translations.php +++ b/app/Locale/nb_NO/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Språk', 'Timezone:' => 'Tidssone', 'All columns' => 'Alle kolonner', - 'Calendar' => 'Kalender', 'Next' => 'Neste', // '#%d' => '', 'All swimlanes' => 'Alle svømmebaner', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Når oppgaven er flyttet fra første kolon', 'When task is moved to last column' => 'Når oppgaven er flyttet til siste kolonne', 'Year(s)' => 'år', - 'Calendar settings' => 'Kalenderinstillinger', - 'Project calendar view' => 'Visning prosjektkalender', 'Project settings' => 'Prosjektinnstillinger', - // 'Show subtasks based on the time tracking' => '', - // 'Show tasks based on the creation date' => '', - // 'Show tasks based on the start date' => '', - // 'Subtasks time tracking' => '', - // 'User calendar view' => '', 'Automatically update the start date' => 'Oppdater automatisk start-datoen', // 'iCal feed' => '', 'Preferences' => 'Preferanser', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Stopp timer', 'Start timer' => 'Start timer', 'My activity stream' => 'Aktivitetslogg', - 'My calendar' => 'Min kalender', 'Search tasks' => 'Søk oppgave', 'Reset filters' => 'Nullstill filter', 'My tasks due tomorrow' => 'Mine oppgaver med frist i morgen', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Oversikt', 'Board/Calendar/List view' => 'Oversikt/kalender/listevisning', 'Switch to the board view' => 'Oversiktsvisning', - 'Switch to the calendar view' => 'Kalendevisning', 'Switch to the list view' => 'Listevisning', 'Go to the search/filter box' => 'Gå til søk/filter', 'There is no activity yet.' => 'Ingen aktiviteter ennå.', diff --git a/app/Locale/nl_NL/translations.php b/app/Locale/nl_NL/translations.php index 623cdb3a0..2b8fdbc44 100644 --- a/app/Locale/nl_NL/translations.php +++ b/app/Locale/nl_NL/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Taal :', 'Timezone:' => 'Tijdzone :', 'All columns' => 'Alle kolommen', - 'Calendar' => 'Agenda', 'Next' => 'Volgende', '#%d' => '%d', 'All swimlanes' => 'Alle swimlanes', @@ -607,14 +606,7 @@ return array( // 'When task is moved from first column' => '', // 'When task is moved to last column' => '', 'Year(s)' => 'Jaar/Jaren', - 'Calendar settings' => 'Kalender instellingen', - // 'Project calendar view' => '', 'Project settings' => 'Project instellingen', - // 'Show subtasks based on the time tracking' => '', - // 'Show tasks based on the creation date' => '', - // 'Show tasks based on the start date' => '', - // 'Subtasks time tracking' => '', - // 'User calendar view' => '', // 'Automatically update the start date' => '', // 'iCal feed' => '', 'Preferences' => 'Voorkeuren', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Stop timer', 'Start timer' => 'Start timer', 'My activity stream' => 'Mijn activiteiten', - 'My calendar' => 'Mijn kalender', 'Search tasks' => 'Zoek taken', 'Reset filters' => 'Reset filters', // 'My tasks due tomorrow' => '', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Overzicht', // '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.' => '', diff --git a/app/Locale/pl_PL/translations.php b/app/Locale/pl_PL/translations.php index 3e8a8c86a..d23df58e9 100644 --- a/app/Locale/pl_PL/translations.php +++ b/app/Locale/pl_PL/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Język:', 'Timezone:' => 'Strefa czasowa:', 'All columns' => 'Wszystkie kolumny', - 'Calendar' => 'Kalendarz', 'Next' => 'Następny', '#%d' => 'nr %d', 'All swimlanes' => 'Wszystkie tory', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Przeniesienie zadania z pierwszej kolumny', 'When task is moved to last column' => 'Przeniesienie zadania do ostatniej kolumny', 'Year(s)' => 'Lat', - 'Calendar settings' => 'Ustawienia kalendarza', - 'Project calendar view' => 'Widok kalendarza projektu', 'Project settings' => 'Ustawienia Projektu', - 'Show subtasks based on the time tracking' => 'Pokaż pod-zadania w śledzeniu czasu', - 'Show tasks based on the creation date' => 'Pokaż zadania względem daty utworzenia', - 'Show tasks based on the start date' => 'Pokaż zadania względem daty rozpoczęcia', - 'Subtasks time tracking' => 'Śledzenie czasu pod-zadań', - 'User calendar view' => 'Widok kalendarza użytkownika', 'Automatically update the start date' => 'Automatycznie aktualizuj datę rozpoczęcia', // 'iCal feed' => '', 'Preferences' => 'Ustawienia', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Zatrzymaj pomiar czasu', 'Start timer' => 'Uruchom pomiar czasu', 'My activity stream' => 'Moja aktywność', - 'My calendar' => 'Mój kalendarz', 'Search tasks' => 'Szukaj zadań', 'Reset filters' => 'Resetuj zastosowane filtry', 'My tasks due tomorrow' => 'Moje zadania do jutra', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Podsumowanie', 'Board/Calendar/List view' => 'Widok: Tablica/Kalendarz/Lista', 'Switch to the board view' => 'Przełącz na tablicę', - 'Switch to the calendar view' => 'Przełącz na kalendarz', 'Switch to the list view' => 'Przełącz na listę', 'Go to the search/filter box' => 'Użyj pola wyszukiwania/filtrów', 'There is no activity yet.' => 'Brak powiadomień', diff --git a/app/Locale/pt_BR/translations.php b/app/Locale/pt_BR/translations.php index 694e7c5e9..4a8202de2 100644 --- a/app/Locale/pt_BR/translations.php +++ b/app/Locale/pt_BR/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Idioma', 'Timezone:' => 'Fuso horário', 'All columns' => 'Todas as colunas', - 'Calendar' => 'Calendário', 'Next' => 'Próximo', '#%d' => '#%d', 'All swimlanes' => 'Todas as swimlanes', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Quando a tarefa é movida fora da primeira coluna', 'When task is moved to last column' => 'Quando a tarefa é movida para a última coluna', 'Year(s)' => 'Ano(s)', - 'Calendar settings' => 'Configurações do calendário', - 'Project calendar view' => 'Vista em modo projeto do calendário', 'Project settings' => 'Configurações dos projetos', - 'Show subtasks based on the time tracking' => 'Mostrar as subtarefas com base no controle de tempo', - 'Show tasks based on the creation date' => 'Mostrar as tarefas em função da data de criação', - 'Show tasks based on the start date' => 'Mostrar as tarefas em função da data de início', - 'Subtasks time tracking' => 'Monitoramento do tempo comparado as subtarefas', - 'User calendar view' => 'Vista em modo utilizador do calendário', 'Automatically update the start date' => 'Atualizar automaticamente a data de início', 'iCal feed' => 'Subscrição iCal', 'Preferences' => 'Preferências', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Stop timer', 'Start timer' => 'Start timer', 'My activity stream' => 'Meu feed de atividades', - 'My calendar' => 'Minha agenda', 'Search tasks' => 'Pesquisar tarefas', 'Reset filters' => 'Redefinir os filtros', 'My tasks due tomorrow' => 'Minhas tarefas que expirarão amanhã', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Visão global', 'Board/Calendar/List view' => 'Vista Painel/Calendário/Lista', 'Switch to the board view' => 'Mudar para o modo Painel', - 'Switch to the calendar view' => 'Mudar par o modo Calendário', 'Switch to the list view' => 'Mudar par o modo Lista', 'Go to the search/filter box' => 'Ir para o campo de pesquisa', 'There is no activity yet.' => 'Não há nenhuma atividade ainda.', diff --git a/app/Locale/pt_PT/translations.php b/app/Locale/pt_PT/translations.php index 0c1b7106f..769ab8c56 100644 --- a/app/Locale/pt_PT/translations.php +++ b/app/Locale/pt_PT/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Idioma:', 'Timezone:' => 'Fuso horário:', 'All columns' => 'Todas as colunas', - 'Calendar' => 'Calendário', 'Next' => 'Próximo', // '#%d' => '', 'All swimlanes' => 'Todos os swimlane', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Quando a tarefa é movida fora da primeira coluna', 'When task is moved to last column' => 'Quando a tarefa é movida para a última coluna', 'Year(s)' => 'Ano(s)', - 'Calendar settings' => 'Configurações do calendário', - 'Project calendar view' => 'Vista em modo projeto do calendário', 'Project settings' => 'Configurações dos projetos', - 'Show subtasks based on the time tracking' => 'Mostrar as subtarefas com base no controle de tempo', - 'Show tasks based on the creation date' => 'Mostrar as tarefas em função da data de criação', - 'Show tasks based on the start date' => 'Mostrar as tarefas em função da data de início', - 'Subtasks time tracking' => 'Monitoramento do tempo comparado as subtarefas', - 'User calendar view' => 'Vista em modo utilizador do calendário', 'Automatically update the start date' => 'Actualizar automaticamente a data de início', 'iCal feed' => 'Subscrição iCal', 'Preferences' => 'Preferências', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Parar temporizador', 'Start timer' => 'Iniciar temporizador', 'My activity stream' => 'O meu feed de actividade', - 'My calendar' => 'A minha agenda', 'Search tasks' => 'Pesquisar tarefas', 'Reset filters' => 'Redefinir os filtros', 'My tasks due tomorrow' => 'A minhas tarefas que expiram amanhã', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Visão global', 'Board/Calendar/List view' => 'Vista Painel/Calendário/Lista', 'Switch to the board view' => 'Mudar para o modo Painel', - 'Switch to the calendar view' => 'Mudar para o modo Calendário', 'Switch to the list view' => 'Mudar para o modo Lista', 'Go to the search/filter box' => 'Ir para o campo de pesquisa', 'There is no activity yet.' => 'Ainda não há nenhuma actividade.', diff --git a/app/Locale/ru_RU/translations.php b/app/Locale/ru_RU/translations.php index 36cb4357c..122013ff6 100644 --- a/app/Locale/ru_RU/translations.php +++ b/app/Locale/ru_RU/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Язык:', 'Timezone:' => 'Временная зона:', 'All columns' => 'Все колонки', - 'Calendar' => 'Календарь', 'Next' => 'Следующий', '#%d' => '#%d', 'All swimlanes' => 'Все дорожки', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Когда задача перемещается из первой колонки', 'When task is moved to last column' => 'Когда задача перемещается в последнюю колонку', 'Year(s)' => 'Год(а)', - 'Calendar settings' => 'Настройки календаря', - 'Project calendar view' => 'Вид календаря проекта', 'Project settings' => 'Настройки проекта', - 'Show subtasks based on the time tracking' => 'Показать подзадачи, основанные на отслеживании времени', - 'Show tasks based on the creation date' => 'Показать задачи в зависимости от даты создания', - 'Show tasks based on the start date' => 'Показать задачи в зависимости от даты начала', - 'Subtasks time tracking' => 'Отслеживание времени подзадач', - 'User calendar view' => 'Просмотреть календарь пользователя', 'Automatically update the start date' => 'Автоматическое обновление даты начала', 'iCal feed' => 'iCal данные', 'Preferences' => 'Предпочтения', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Остановить таймер', 'Start timer' => 'Запустить таймер', 'My activity stream' => 'Лента моей активности', - 'My calendar' => 'Мой календарь', 'Search tasks' => 'Поиск задачи', 'Reset filters' => 'Сбросить фильтры', 'My tasks due tomorrow' => 'Мои задачи на завтра', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Обзор', '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.' => 'Активности еще не было', diff --git a/app/Locale/sr_Latn_RS/translations.php b/app/Locale/sr_Latn_RS/translations.php index 0dedda0a3..0a8cd77fd 100644 --- a/app/Locale/sr_Latn_RS/translations.php +++ b/app/Locale/sr_Latn_RS/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Jezik:', 'Timezone:' => 'Vremenska zona:', 'All columns' => 'Sve kolone', - 'Calendar' => 'Kalendar', 'Next' => 'Sledeći', // '#%d' => '', 'All swimlanes' => 'Svi razdelniki', @@ -607,14 +606,7 @@ return array( // 'When task is moved from first column' => '', // 'When task is moved to last column' => '', // 'Year(s)' => '', - // 'Calendar settings' => '', - // 'Project calendar view' => '', // 'Project settings' => '', - // 'Show subtasks based on the time tracking' => '', - // 'Show tasks based on the creation date' => '', - // 'Show tasks based on the start date' => '', - // 'Subtasks time tracking' => '', - // 'User calendar view' => '', // 'Automatically update the start date' => '', // 'iCal feed' => '', // 'Preferences' => '', @@ -670,7 +662,6 @@ return array( // 'Stop timer' => '', // 'Start timer' => '', // 'My activity stream' => '', - // 'My calendar' => '', // 'Search tasks' => '', // 'Reset filters' => '', // 'My tasks due tomorrow' => '', @@ -684,7 +675,6 @@ return array( // 'Overview' => '', // '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.' => '', diff --git a/app/Locale/sv_SE/translations.php b/app/Locale/sv_SE/translations.php index 2ff818d56..27ba52a99 100644 --- a/app/Locale/sv_SE/translations.php +++ b/app/Locale/sv_SE/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Språk', 'Timezone:' => 'Tidszon', 'All columns' => 'Alla kolumner', - 'Calendar' => 'Kalender', 'Next' => 'Nästa', '#%d' => '#%d', 'All swimlanes' => 'Alla swimlanes', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'När uppgiften flyttas från första kolumnen', 'When task is moved to last column' => 'När uppgiften flyttas till sista kolumnen', 'Year(s)' => 'År', - 'Calendar settings' => 'Inställningar för kalendern', - 'Project calendar view' => 'Projektkalendervy', 'Project settings' => 'Projektinställningar', - 'Show subtasks based on the time tracking' => 'Visa deluppgifter baserade på tidsspårning', - 'Show tasks based on the creation date' => 'Visa uppgifter baserade på skapat datum', - 'Show tasks based on the start date' => 'Visa uppgifter baserade på startdatum', - 'Subtasks time tracking' => 'Deluppgifter tidsspårning', - 'User calendar view' => 'Användarkalendervy', 'Automatically update the start date' => 'Automatisk uppdatering av startdatum', 'iCal feed' => 'iCal flöde', 'Preferences' => 'Preferenser', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Stoppa timer', 'Start timer' => 'Starta timer', 'My activity stream' => 'Min aktivitetsström', - 'My calendar' => 'Min kalender', 'Search tasks' => 'Sök uppgifter', 'Reset filters' => 'Återställ filter', 'My tasks due tomorrow' => 'Mina uppgifter förfaller imorgon', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Översikts', 'Board/Calendar/List view' => 'Tavla/Kalender/Listvy', 'Switch to the board view' => 'Växla till tavelvy', - 'Switch to the calendar view' => 'Växla till kalendervy', 'Switch to the list view' => 'Växla till listvy', 'Go to the search/filter box' => 'Gå till sök/filter box', 'There is no activity yet.' => 'Det finns ingen aktivitet ännu.', diff --git a/app/Locale/th_TH/translations.php b/app/Locale/th_TH/translations.php index 4d8c7fd8c..f9a537f0b 100644 --- a/app/Locale/th_TH/translations.php +++ b/app/Locale/th_TH/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'ภาษา:', 'Timezone:' => 'เขตเวลา:', 'All columns' => 'คอลัมน์ทั้งหมด', - 'Calendar' => 'ปฏิทิน', 'Next' => 'ต่อไป', '#%d' => '#%d', 'All swimlanes' => 'สวิมเลนทั้งหมด', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'เมื่องานถูกย้ายจากคอลัมน์แรก', 'When task is moved to last column' => 'เมื่องานถูกย้ายไปคอลัมน์สุดท้าย', 'Year(s)' => 'ปี', - 'Calendar settings' => 'ตั้งค่าปฏิทิน', - 'Project calendar view' => 'มุมมองปฏิทินของโปรเจค', 'Project settings' => 'ตั้งค่าโปรเจค', - 'Show subtasks based on the time tracking' => 'แสดงงานย่อยในการติดตามเวลา', - 'Show tasks based on the creation date' => 'แสดงงานจากวันที่สร้าง', - 'Show tasks based on the start date' => 'แสดงงานจากวันที่เริ่ม', - 'Subtasks time tracking' => 'การติดตามเวลางานย่อย', - 'User calendar view' => 'มุมมองปฏิทินของผู้ใช้', 'Automatically update the start date' => 'ปรับปรุงวันที่เริ่มอัตโนมมัติ', // 'iCal feed' => '', // 'Preferences' => '', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'หยุดจับเวลา', 'Start timer' => 'เริ่มจับเวลา', 'My activity stream' => 'กิจกรรมที่เกิดขึ้นของฉัน', - 'My calendar' => 'ปฎิทินของฉัน', 'Search tasks' => 'ค้นหางาน', 'Reset filters' => 'ล้างตัวกรอง', 'My tasks due tomorrow' => 'งานถึงกำหนดของฉันวันพรุ่งนี้', @@ -684,7 +675,6 @@ return array( 'Overview' => 'ภาพรวม', '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.' => 'ตอนนี้ไม่มีกิจกรรม', diff --git a/app/Locale/tr_TR/translations.php b/app/Locale/tr_TR/translations.php index 2b21c1ce0..56971fd2a 100644 --- a/app/Locale/tr_TR/translations.php +++ b/app/Locale/tr_TR/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => 'Dil:', 'Timezone:' => 'Saat dilimi:', 'All columns' => 'Tüm sütunlar', - 'Calendar' => 'Takvim', 'Next' => 'Sonraki', '#%d' => '#%d', 'All swimlanes' => 'Tüm Kulvarlar', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => 'Görev ilk sütundan taşındığı zaman', 'When task is moved to last column' => 'Görev son sütuna taşındığı zaman', 'Year(s)' => 'Yıl(lar)', - 'Calendar settings' => 'Takvim ayarları', - 'Project calendar view' => 'Proje takvim görünümü', 'Project settings' => 'Proje ayarları', - 'Show subtasks based on the time tracking' => 'Zaman takibi bazında alt görevleri göster', - 'Show tasks based on the creation date' => 'Oluşturulma zamanına göre görevleri göster', - 'Show tasks based on the start date' => 'Başlangıç zamanına göre görevleri göster', - 'Subtasks time tracking' => 'Alt görevler zaman takibi', - 'User calendar view' => 'Kullanıcı takvim görünümü', 'Automatically update the start date' => 'Başlangıç tarihini otomatik olarak güncelle', 'iCal feed' => 'iCal akışı', 'Preferences' => 'Ayarlar', @@ -670,7 +662,6 @@ return array( 'Stop timer' => 'Zamanlayıcıyı durdur', 'Start timer' => 'Zamanlayıcıyı başlat', 'My activity stream' => 'Olay akışım', - 'My calendar' => 'Takvimim', 'Search tasks' => 'Görevleri ara', 'Reset filters' => 'Filtreleri sıfırla', 'My tasks due tomorrow' => 'Yarına tamamlanması gereken görevlerim', @@ -684,7 +675,6 @@ return array( 'Overview' => 'Özet Görünüm', 'Board/Calendar/List view' => 'Pano/Takvim/Liste görünümü', 'Switch to the board view' => 'Pano görünümüne geç', - 'Switch to the calendar view' => 'Takvim görünümüne geç', 'Switch to the list view' => 'Liste görünümüne geç', 'Go to the search/filter box' => 'Arama/Filtreleme kutusuna git', 'There is no activity yet.' => 'Henüz bir aktivite yok.', diff --git a/app/Locale/zh_CN/translations.php b/app/Locale/zh_CN/translations.php index 2ca486739..908f7989f 100644 --- a/app/Locale/zh_CN/translations.php +++ b/app/Locale/zh_CN/translations.php @@ -455,7 +455,6 @@ return array( 'Language:' => '语言:', 'Timezone:' => '时区:', 'All columns' => '全部栏目', - 'Calendar' => '日程表', 'Next' => '前进', '#%d' => '#%d', 'All swimlanes' => '全部里程碑', @@ -607,14 +606,7 @@ return array( 'When task is moved from first column' => '当任务从第一列任务栏移走时', 'When task is moved to last column' => '当任务移动到最后一列任务栏时', 'Year(s)' => '年', - 'Calendar settings' => '日程设置', - 'Project calendar view' => '项目日历表', 'Project settings' => '项目设置', - 'Show subtasks based on the time tracking' => '在时间跟踪上显示子任务', - 'Show tasks based on the creation date' => '显示任务创建日期于', - 'Show tasks based on the start date' => '显示任务开始日期于', - 'Subtasks time tracking' => '子任务时间跟踪', - 'User calendar view' => '用户日程视图', 'Automatically update the start date' => '自动更新开始日期', 'iCal feed' => '日历订阅', 'Preferences' => '偏好', @@ -670,7 +662,6 @@ return array( 'Stop timer' => '停止计时器', 'Start timer' => '开启计时器', 'My activity stream' => '我的活动流', - 'My calendar' => '我的日程表', 'Search tasks' => '搜索任务', 'Reset filters' => '重置过滤器', 'My tasks due tomorrow' => '我的明天到期的任务', @@ -684,7 +675,6 @@ return array( 'Overview' => '概览', '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.' => '当前无任何活动.', diff --git a/app/ServiceProvider/FormatterProvider.php b/app/ServiceProvider/FormatterProvider.php index 8af5f9faa..a65b11621 100644 --- a/app/ServiceProvider/FormatterProvider.php +++ b/app/ServiceProvider/FormatterProvider.php @@ -26,7 +26,6 @@ class FormatterProvider implements ServiceProviderInterface 'SubtaskListFormatter', 'SubtaskTimeTrackingCalendarFormatter', 'TaskAutoCompleteFormatter', - 'TaskCalendarFormatter', 'TaskGanttFormatter', 'TaskICalFormatter', 'TaskListFormatter', diff --git a/app/ServiceProvider/HelperProvider.php b/app/ServiceProvider/HelperProvider.php index 82b175cbb..054c4009b 100644 --- a/app/ServiceProvider/HelperProvider.php +++ b/app/ServiceProvider/HelperProvider.php @@ -19,7 +19,6 @@ class HelperProvider implements ServiceProviderInterface { $container['helper'] = new Helper($container); $container['helper']->register('app', '\Kanboard\Helper\AppHelper'); - $container['helper']->register('calendar', '\Kanboard\Helper\CalendarHelper'); $container['helper']->register('asset', '\Kanboard\Helper\AssetHelper'); $container['helper']->register('board', '\Kanboard\Helper\BoardHelper'); $container['helper']->register('comment', '\Kanboard\Helper\CommentHelper'); diff --git a/app/ServiceProvider/RouteProvider.php b/app/ServiceProvider/RouteProvider.php index 08759b22d..28ced7fe4 100644 --- a/app/ServiceProvider/RouteProvider.php +++ b/app/ServiceProvider/RouteProvider.php @@ -36,7 +36,6 @@ class RouteProvider implements ServiceProviderInterface $container['route']->addRoute('dashboard/:user_id/projects', 'DashboardController', 'projects'); $container['route']->addRoute('dashboard/:user_id/tasks', 'DashboardController', 'tasks'); $container['route']->addRoute('dashboard/:user_id/subtasks', 'DashboardController', 'subtasks'); - $container['route']->addRoute('dashboard/:user_id/calendar', 'DashboardController', 'calendar'); $container['route']->addRoute('dashboard/:user_id/activity', 'DashboardController', 'activity'); $container['route']->addRoute('dashboard/:user_id/notifications', 'DashboardController', 'notifications'); @@ -119,10 +118,6 @@ class RouteProvider implements ServiceProviderInterface $container['route']->addRoute('b/:project_id', 'BoardViewController', 'show'); $container['route']->addRoute('public/board/:token', 'BoardViewController', 'readonly'); - // Calendar routes - $container['route']->addRoute('calendar/:project_id', 'CalendarController', 'show'); - $container['route']->addRoute('c/:project_id', 'CalendarController', 'show'); - // Listing routes $container['route']->addRoute('list/:project_id', 'TaskListController', 'show'); $container['route']->addRoute('l/:project_id', 'TaskListController', 'show'); @@ -167,7 +162,6 @@ class RouteProvider implements ServiceProviderInterface $container['route']->addRoute('settings/project', 'ConfigController', 'project'); $container['route']->addRoute('settings/project', 'ConfigController', 'project'); $container['route']->addRoute('settings/board', 'ConfigController', 'board'); - $container['route']->addRoute('settings/calendar', 'ConfigController', 'calendar'); $container['route']->addRoute('settings/integrations', 'ConfigController', 'integrations'); $container['route']->addRoute('settings/webhook', 'ConfigController', 'webhook'); $container['route']->addRoute('settings/api', 'ConfigController', 'api'); diff --git a/app/Template/calendar/project.php b/app/Template/calendar/project.php deleted file mode 100644 index 769e019bf..000000000 --- a/app/Template/calendar/project.php +++ /dev/null @@ -1,6 +0,0 @@ -= $this->projectHeader->render($project, 'CalendarController', 'show') ?> - -= $this->calendar->render( - $this->url->href('CalendarController', 'projectEvents', array('project_id' => $project['id'])), - $this->url->href('CalendarController', 'save', array('project_id' => $project['id'])) -) ?> diff --git a/app/Template/calendar/user.php b/app/Template/calendar/user.php deleted file mode 100644 index c68bd32d7..000000000 --- a/app/Template/calendar/user.php +++ /dev/null @@ -1,4 +0,0 @@ -= $this->calendar->render( - $this->url->href('CalendarController', 'userEvents', array('user_id' => $user['id'])), - $this->url->href('CalendarController', 'save') -) ?> diff --git a/app/Template/config/calendar.php b/app/Template/config/calendar.php deleted file mode 100644 index 0cc3d064d..000000000 --- a/app/Template/config/calendar.php +++ /dev/null @@ -1,36 +0,0 @@ -"+$(this.options.container).data("label-"+a)+"
"+i.prop("outerHTML")}}}return e},Kanboard.Gantt.prototype.getBarTooltip=function(t){var e="";if(t.not_defined)e=$(this.options.container).data("label-not-defined");else{if("task"==t.type){var n=$(this.options.container).data("label-assignee");e+=jQuery("").text(t.progress).prop("outerHTML"),e+=""+$(this.options.container).data("label-"+a)+"
"+i.prop("outerHTML")}}}return e},Kanboard.Gantt.prototype.getBarTooltip=function(t){var e="";if(t.not_defined)e=$(this.options.container).data("label-not-defined");else{if("task"==t.type){var n=$(this.options.container).data("label-assignee");e+=jQuery("").text(t.progress).prop("outerHTML"),e+="Z}function o(t,e){return q=t,Z=e,l()}function l(){return u(tt,"reset")}function a(t){return u(E(t))}function u(t,e){var n,i;for("reset"===e?nt=[]:"add"!==e&&(nt=C(nt,t)),n=0;ns&&(!a[o]||u.isSame(c,a[o]))&&(o-1!==s||"."!==f[o]);o--)v=f[o]+v;for(l=s;l<=o;l++)m+=f[l],y+=g[l];return(m||y)&&(S=r?y+i+m:m+i+y),h(p+S+v)}function r(t){return w[t]||(w[t]=s(t))}function s(t){var e=o(t);return{fakeFormatString:a(e),sameUnits:u(e)}}function o(t){for(var e,n=[],i=/\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g;e=i.exec(t);)e[1]?n.push.apply(n,l(e[1])):e[2]?n.push({maybe:o(e[2])}):e[3]?n.push({token:e[3]}):e[5]&&n.push.apply(n,l(e[5]));return n}function l(t){return". "===t?["."," "]:[t]}function a(t){var e,n,i=[];for(e=0;e r.value)&&(r=i));return r?r.unit:null}Ot.formatDate=t,Ot.formatRange=n,Ot.oldMomentFormat=e,Ot.queryMostGranularFormatUnit=f;var g="\v",p="",v="",m=new RegExp(v+"([^"+v+"]*)"+v,"g"),y={t:function(t){return e(t,"a").charAt(0)},T:function(t){return e(t,"A").charAt(0)}},S={Y:{value:1,unit:"year"},M:{value:2,unit:"month"},W:{value:3,unit:"week"},w:{value:3,unit:"week"},D:{value:4,unit:"day"},d:{value:4,unit:"day"}},w={}}();var Qt=Ot.formatDate,Xt=Ot.formatRange,Kt=Ot.oldMomentFormat;Ot.Class=ct,ct.extend=function(){var t,e,n=arguments.length;for(t=0;t ').addClass(n.className||"").css({top:0,left:0}).append(n.content).appendTo(n.parentEl),this.el.on("click",".fc-close",function(){e.hide()}),n.autoHide&&this.listenTo(t(document),"mousedown",this.documentMousedown)},documentMousedown:function(e){this.el&&!t(e.target).closest(this.el).length&&this.hide()},removeElement:function(){this.hide(),this.el&&(this.el.remove(),this.el=null),this.stopListeningTo(t(document),"mousedown")},position:function(){var e,n,i,r,s,o=this.options,l=this.el.offsetParent().offset(),a=this.el.outerWidth(),u=this.el.outerHeight(),c=t(window),h=d(this.el);r=o.top||0,s=void 0!==o.left?o.left:void 0!==o.right?o.right-a:0,h.is(window)||h.is(document)?(h=c,e=0,n=0):(i=h.offset(),e=i.top,n=i.left),e+=c.scrollTop(),n+=c.scrollLeft(),o.viewportConstrain!==!1&&(r=Math.min(r,e+h.outerHeight()-u-this.margin),r=Math.max(r,e+this.margin),s=Math.min(s,n+h.outerWidth()-a-this.margin),s=Math.max(s,n+this.margin)),this.el.css({top:r-l.top,left:s-l.left})},trigger:function(t){this.options[t]&&this.options[t].apply(this,Array.prototype.slice.call(arguments,1))}}),ne=Ot.CoordCache=ct.extend({els:null,forcedOffsetParentEl:null,origin:null,boundingRect:null,isHorizontal:!1,isVertical:!1,lefts:null,rights:null,tops:null,bottoms:null,constructor:function(e){this.els=t(e.els),this.isHorizontal=e.isHorizontal,this.isVertical=e.isVertical,this.forcedOffsetParentEl=e.offsetParent?t(e.offsetParent):null},build:function(){var t=this.forcedOffsetParentEl;!t&&this.els.length>0&&(t=this.els.eq(0).offsetParent()),this.origin=t?t.offset():null,this.boundingRect=this.queryBoundingRect(),this.isHorizontal&&this.buildElHorizontals(),this.isVertical&&this.buildElVerticals()},clear:function(){this.origin=null,this.boundingRect=null,this.lefts=null,this.rights=null,this.tops=null,this.bottoms=null},ensureBuilt:function(){this.origin||this.build()},buildElHorizontals:function(){var e=[],n=[];this.els.each(function(i,r){var s=t(r),o=s.offset().left,l=s.outerWidth();e.push(o),n.push(o+l)}),this.lefts=e,this.rights=n},buildElVerticals:function(){var e=[],n=[];this.els.each(function(i,r){var s=t(r),o=s.offset().top,l=s.outerHeight();e.push(o),n.push(o+l)}),this.tops=e,this.bottoms=n},getHorizontalIndex:function(t){this.ensureBuilt();var e,n=this.lefts,i=this.rights,r=n.length;for(e=0;e =n[e]&&t=n[e]&&t0&&(t=d(this.els.eq(0)),!t.is(document))?f(t):null},isPointInBounds:function(t,e){return this.isLeftInBounds(t)&&this.isTopInBounds(e)},isLeftInBounds:function(t){return!this.boundingRect||t>=this.boundingRect.left&&t =this.boundingRect.top&&t =r*r&&this.handleDistanceSurpassed(t)),this.isDragging&&this.handleDrag(n,i,t)},handleDrag:function(t,e,n){this.trigger("drag",t,e,n),this.updateAutoScroll(n)},endDrag:function(t){this.isDragging&&(this.isDragging=!1,this.handleDragEnd(t))},handleDragEnd:function(t){this.trigger("dragEnd",t)},startDelay:function(t){var e=this;this.delay?this.delayTimeoutId=setTimeout(function(){e.handleDelayEnd(t)},this.delay):this.handleDelayEnd(t)},handleDelayEnd:function(t){this.isDelayEnded=!0,this.isDistanceSurpassed&&this.startDrag(t)},handleDistanceSurpassed:function(t){this.isDistanceSurpassed=!0,this.isDelayEnded&&this.startDrag(t)},handleTouchMove:function(t){this.isDragging&&this.shouldCancelTouchScroll&&t.preventDefault(),this.handleMove(t)},handleMouseMove:function(t){this.handleMove(t)},handleTouchScroll:function(t){this.isDragging&&!this.scrollAlwaysKills||this.endInteraction(t,!0)},trigger:function(t){this.options[t]&&this.options[t].apply(this,Array.prototype.slice.call(arguments,1)),this["_"+t]&&this["_"+t].apply(this,Array.prototype.slice.call(arguments,1))}});ie.mixin({isAutoScroll:!1,scrollBounds:null,scrollTopVel:null,scrollLeftVel:null,scrollIntervalId:null,scrollSensitivity:30,scrollSpeed:200,scrollIntervalMs:50,initAutoScroll:function(){var t=this.scrollEl;this.isAutoScroll=this.options.scroll&&t&&!t.is(window)&&!t.is(document),this.isAutoScroll&&this.listenTo(t,"scroll",at(this.handleDebouncedScroll,100))},destroyAutoScroll:function(){this.endAutoScroll(),this.isAutoScroll&&this.stopListeningTo(this.scrollEl,"scroll")},computeScrollBounds:function(){this.isAutoScroll&&(this.scrollBounds=h(this.scrollEl))},updateAutoScroll:function(t){var e,n,i,r,s=this.scrollSensitivity,o=this.scrollBounds,l=0,a=0;o&&(e=(s-(b(t)-o.top))/s,n=(s-(o.bottom-b(t)))/s,i=(s-(E(t)-o.left))/s,r=(s-(o.right-E(t)))/s,e>=0&&e<=1?l=e*this.scrollSpeed*-1:n>=0&&n<=1&&(l=n*this.scrollSpeed),i>=0&&i<=1?a=i*this.scrollSpeed*-1:r>=0&&r<=1&&(a=r*this.scrollSpeed)),this.setScrollVel(l,a)},setScrollVel:function(t,e){this.scrollTopVel=t,this.scrollLeftVel=e,this.constrainScrollVel(),!this.scrollTopVel&&!this.scrollLeftVel||this.scrollIntervalId||(this.scrollIntervalId=setInterval(lt(this,"scrollIntervalFunc"),this.scrollIntervalMs))},constrainScrollVel:function(){var t=this.scrollEl;this.scrollTopVel<0?t.scrollTop()<=0&&(this.scrollTopVel=0):this.scrollTopVel>0&&t.scrollTop()+t[0].clientHeight>=t[0].scrollHeight&&(this.scrollTopVel=0),this.scrollLeftVel<0?t.scrollLeft()<=0&&(this.scrollLeftVel=0):this.scrollLeftVel>0&&t.scrollLeft()+t[0].clientWidth>=t[0].scrollWidth&&(this.scrollLeftVel=0)},scrollIntervalFunc:function(){var t=this.scrollEl,e=this.scrollIntervalMs/1e3;this.scrollTopVel&&t.scrollTop(t.scrollTop()+this.scrollTopVel*e),this.scrollLeftVel&&t.scrollLeft(t.scrollLeft()+this.scrollLeftVel*e),this.constrainScrollVel(),this.scrollTopVel||this.scrollLeftVel||this.endAutoScroll()},endAutoScroll:function(){this.scrollIntervalId&&(clearInterval(this.scrollIntervalId),this.scrollIntervalId=null,this.handleScrollEnd())},handleDebouncedScroll:function(){this.scrollIntervalId||this.handleScrollEnd()},handleScrollEnd:function(){}});var re=ie.extend({component:null,origHit:null,hit:null,coordAdjust:null,constructor:function(t,e){ie.call(this,e),this.component=t},handleInteractionStart:function(t){var e,n,i,r=this.subjectEl;this.component.hitsNeeded(),this.computeScrollBounds(),t?(n={left:E(t),top:b(t)},i=n,r&&(e=h(r),i=R(i,e)),this.origHit=this.queryHit(i.left,i.top),r&&this.options.subjectCenter&&(this.origHit&&(e=x(this.origHit,e)||e),i=I(e)),this.coordAdjust=k(i,n)):(this.origHit=null,this.coordAdjust=null),ie.prototype.handleInteractionStart.apply(this,arguments)},handleDragStart:function(t){var e;ie.prototype.handleDragStart.apply(this,arguments),e=this.queryHit(E(t),b(t)),e&&this.handleHitOver(e)},handleDrag:function(t,e,n){var i;ie.prototype.handleDrag.apply(this,arguments),i=this.queryHit(E(n),b(n)),pt(i,this.hit)||(this.hit&&this.handleHitOut(),i&&this.handleHitOver(i))},handleDragEnd:function(){this.handleHitDone(),ie.prototype.handleDragEnd.apply(this,arguments)},handleHitOver:function(t){var e=pt(t,this.origHit);this.hit=t,this.trigger("hitOver",this.hit,e,this.origHit)},handleHitOut:function(){this.hit&&(this.trigger("hitOut",this.hit),this.handleHitDone(),this.hit=null)},handleHitDone:function(){this.hit&&this.trigger("hitDone",this.hit)},handleInteractionEnd:function(){ie.prototype.handleInteractionEnd.apply(this,arguments),this.origHit=null,this.hit=null,this.component.hitsNotNeeded()},handleScrollEnd:function(){ie.prototype.handleScrollEnd.apply(this,arguments),this.isDragging&&(this.component.releaseHits(),this.component.prepareHits())},queryHit:function(t,e){return this.coordAdjust&&(t+=this.coordAdjust.left,e+=this.coordAdjust.top),this.component.queryHit(t,e)}});Ot.touchMouseIgnoreWait=500;var se=ct.extend(te,Jt,{isTouching:!1,mouseIgnoreDepth:0,handleScrollProxy:null,bind:function(){var e=this;this.listenTo(t(document),{touchstart:this.handleTouchStart,touchcancel:this.handleTouchCancel,touchend:this.handleTouchEnd,mousedown:this.handleMouseDown,mousemove:this.handleMouseMove,mouseup:this.handleMouseUp,click:this.handleClick,selectstart:this.handleSelectStart,contextmenu:this.handleContextMenu}),window.addEventListener("touchmove",this.handleTouchMoveProxy=function(n){e.handleTouchMove(t.Event(n))},{passive:!1}),window.addEventListener("scroll",this.handleScrollProxy=function(n){e.handleScroll(t.Event(n))},!0)},unbind:function(){this.stopListeningTo(t(document)),window.removeEventListener("touchmove",this.handleTouchMoveProxy),window.removeEventListener("scroll",this.handleScrollProxy,!0)},handleTouchStart:function(t){this.stopTouch(t,!0),this.isTouching=!0,this.trigger("touchstart",t)},handleTouchMove:function(t){this.isTouching&&this.trigger("touchmove",t)},handleTouchCancel:function(t){this.isTouching&&(this.trigger("touchcancel",t),this.stopTouch(t))},handleTouchEnd:function(t){this.stopTouch(t)},handleMouseDown:function(t){this.shouldIgnoreMouse()||this.trigger("mousedown",t)},handleMouseMove:function(t){this.shouldIgnoreMouse()||this.trigger("mousemove",t)},handleMouseUp:function(t){this.shouldIgnoreMouse()||this.trigger("mouseup",t)},handleClick:function(t){this.shouldIgnoreMouse()||this.trigger("click",t)},handleSelectStart:function(t){this.trigger("selectstart",t)},handleContextMenu:function(t){this.trigger("contextmenu",t)},handleScroll:function(t){this.trigger("scroll",t)},stopTouch:function(t,e){this.isTouching&&(this.isTouching=!1,this.trigger("touchend",t),e||this.startTouchMouseIgnore())},startTouchMouseIgnore:function(){var t=this,e=Ot.touchMouseIgnoreWait;e&&(this.mouseIgnoreDepth++,setTimeout(function(){t.mouseIgnoreDepth--},e))},shouldIgnoreMouse:function(){return this.isTouching||Boolean(this.mouseIgnoreDepth)}});!function(){var t=null,e=0;se.get=function(){return t||(t=new se,t.bind()),t},se.needed=function(){se.get(),e++},se.unneeded=function(){e--,e||(t.unbind(),t=null)}}();var oe=ct.extend(te,{options:null,sourceEl:null,el:null,parentEl:null,top0:null,left0:null,y0:null,x0:null,topDelta:null,leftDelta:null,isFollowing:!1,isHidden:!1,isAnimating:!1,constructor:function(e,n){this.options=n=n||{},this.sourceEl=e,this.parentEl=n.parentEl?t(n.parentEl):e.parent()},start:function(e){this.isFollowing||(this.isFollowing=!0,this.y0=b(e),this.x0=E(e),this.topDelta=0,this.leftDelta=0,this.isHidden||this.updatePosition(),D(e)?this.listenTo(t(document),"touchmove",this.handleMove):this.listenTo(t(document),"mousemove",this.handleMove))},stop:function(e,n){function i(){r.isAnimating=!1,r.removeElement(),r.top0=r.left0=null,n&&n()}var r=this,s=this.options.revertDuration;this.isFollowing&&!this.isAnimating&&(this.isFollowing=!1,this.stopListeningTo(t(document)),e&&s&&!this.isHidden?(this.isAnimating=!0,this.el.animate({top:this.top0,left:this.left0},{duration:s,complete:i})):i())},getEl:function(){var t=this.el;return t||(t=this.el=this.sourceEl.clone().addClass(this.options.additionalClass||"").css({position:"absolute",visibility:"",display:this.isHidden?"none":"",margin:0,right:"auto",bottom:"auto",width:this.sourceEl.width(),height:this.sourceEl.height(),opacity:this.options.opacity||"",zIndex:this.options.zIndex}),t.addClass("fc-unselectable"),t.appendTo(this.parentEl)),t},removeElement:function(){this.el&&(this.el.remove(),this.el=null)},updatePosition:function(){var t,e;this.getEl(),null===this.top0&&(t=this.sourceEl.offset(),e=this.el.offsetParent().offset(),this.top0=t.top-e.top,this.left0=t.left-e.left),this.el.css({top:this.top0+this.topDelta,left:this.left0+this.leftDelta})},handleMove:function(t){this.topDelta=b(t)-this.y0,this.leftDelta=E(t)-this.x0,this.isHidden||this.updatePosition()},hide:function(){this.isHidden||(this.isHidden=!0,this.el&&this.el.hide())},show:function(){this.isHidden&&(this.isHidden=!1,this.updatePosition(),this.getEl().show())}}),le=Ot.Grid=ct.extend(te,{hasDayInteractions:!0,view:null,isRTL:null,start:null,end:null,el:null,elsByFill:null,eventTimeFormat:null,displayEventTime:null,displayEventEnd:null,minResizeDuration:null,largeUnit:null,dayClickListener:null,daySelectListener:null,segDragListener:null,segResizeListener:null,externalDragListener:null,constructor:function(t){this.view=t,this.isRTL=t.opt("isRTL"),this.elsByFill={},this.dayClickListener=this.buildDayClickListener(),this.daySelectListener=this.buildDaySelectListener()},computeEventTimeFormat:function(){return this.view.opt("smallTimeFormat")},computeDisplayEventTime:function(){return!0},computeDisplayEventEnd:function(){return!0},setRange:function(t){this.start=t.start.clone(),this.end=t.end.clone(),this.rangeUpdated(),this.processRangeOptions()},rangeUpdated:function(){},processRangeOptions:function(){var t,e,n=this.view;this.eventTimeFormat=n.opt("eventTimeFormat")||n.opt("timeFormat")||this.computeEventTimeFormat(),t=n.opt("displayEventTime"),null==t&&(t=this.computeDisplayEventTime()),e=n.opt("displayEventEnd"),null==e&&(e=this.computeDisplayEventEnd()),this.displayEventTime=t,this.displayEventEnd=e},spanToSegs:function(t){},diffDates:function(t,e){return this.largeUnit?O(t,e,this.largeUnit):z(t,e)},hitsNeededDepth:0,hitsNeeded:function(){this.hitsNeededDepth++||this.prepareHits()},hitsNotNeeded:function(){this.hitsNeededDepth&&!--this.hitsNeededDepth&&this.releaseHits()},prepareHits:function(){},releaseHits:function(){},queryHit:function(t,e){},getHitSpan:function(t){},getHitEl:function(t){},setElement:function(t){this.el=t,this.hasDayInteractions&&(T(t),this.bindDayHandler("touchstart",this.dayTouchStart),this.bindDayHandler("mousedown",this.dayMousedown)),this.bindSegHandlers(),this.bindGlobalHandlers()},bindDayHandler:function(e,n){var i=this;this.el.on(e,function(e){if(!t(e.target).is(i.segSelector+","+i.segSelector+" *,.fc-more,a[data-goto]"))return n.call(i,e)})},removeElement:function(){this.unbindGlobalHandlers(),this.clearDragListeners(),this.el.remove()},renderSkeleton:function(){},renderDates:function(){},unrenderDates:function(){},bindGlobalHandlers:function(){this.listenTo(t(document),{dragstart:this.externalDragStart,sortstart:this.externalDragStart})},unbindGlobalHandlers:function(){this.stopListeningTo(t(document))},dayMousedown:function(t){var e=this.view;e.isSelected||e.selectedEvent||(this.dayClickListener.startInteraction(t),e.opt("selectable")&&this.daySelectListener.startInteraction(t,{distance:e.opt("selectMinDistance")}))},dayTouchStart:function(t){var e,n=this.view;n.isSelected||n.selectedEvent||(e=n.opt("selectLongPressDelay"),null==e&&(e=n.opt("longPressDelay")),this.dayClickListener.startInteraction(t),n.opt("selectable")&&this.daySelectListener.startInteraction(t,{delay:e}))},buildDayClickListener:function(){var t,e=this,n=this.view,i=new re(this,{scroll:n.opt("dragScroll"),interactionStart:function(){t=i.origHit},hitOver:function(e,n,i){n||(t=null)},hitOut:function(){t=null},interactionEnd:function(i,r){!r&&t&&n.triggerDayClick(e.getHitSpan(t),e.getHitEl(t),i)}});return i.shouldCancelTouchScroll=!1,i.scrollAlwaysKills=!0,i},buildDaySelectListener:function(){var t,e=this,n=this.view,i=new re(this,{scroll:n.opt("dragScroll"),interactionStart:function(){t=null},dragStart:function(){n.unselect()},hitOver:function(n,i,r){r&&(t=e.computeSelection(e.getHitSpan(r),e.getHitSpan(n)),t?e.renderSelection(t):t===!1&&s())},hitOut:function(){t=null,e.unrenderSelection()},hitDone:function(){o()},interactionEnd:function(e,i){!i&&t&&n.reportSelection(t,e)}});return i},clearDragListeners:function(){this.dayClickListener.endInteraction(),this.daySelectListener.endInteraction(),this.segDragListener&&this.segDragListener.endInteraction(),this.segResizeListener&&this.segResizeListener.endInteraction(),this.externalDragListener&&this.externalDragListener.endInteraction()},renderEventLocationHelper:function(t,e){var n=this.fabricateHelperEvent(t,e);return this.renderHelper(n,e)},fabricateHelperEvent:function(t,e){var n=e?Z(e.event):{};return n.start=t.start.clone(),n.end=t.end?t.end.clone():null,n.allDay=null,this.view.calendar.normalizeEventDates(n),n.className=(n.className||[]).concat("fc-helper"),e||(n.editable=!1),n},renderHelper:function(t,e){},unrenderHelper:function(){},renderSelection:function(t){this.renderHighlight(t)},unrenderSelection:function(){this.unrenderHighlight()},computeSelection:function(t,e){var n=this.computeSelectionSpan(t,e);return!(n&&!this.view.calendar.isSelectionSpanAllowed(n))&&n},computeSelectionSpan:function(t,e){var n=[t.start,t.end,e.start,e.end];return n.sort(st),{start:n[0].clone(),end:n[3].clone()}},renderHighlight:function(t){this.renderFill("highlight",this.spanToSegs(t))},unrenderHighlight:function(){this.unrenderFill("highlight")},highlightSegClasses:function(){return["fc-highlight"]},renderBusinessHours:function(){},unrenderBusinessHours:function(){},getNowIndicatorUnit:function(){},renderNowIndicator:function(t){},unrenderNowIndicator:function(){},renderFill:function(t,e){},unrenderFill:function(t){var e=this.elsByFill[t];e&&(e.remove(),delete this.elsByFill[t])},renderFillSegEls:function(e,n){var i,r=this,s=this[e+"SegEl"],o="",l=[];if(n.length){for(i=0;i "},getDayClasses:function(t,e){var n=this.view,i=n.calendar.getNow(),r=["fc-"+_t[t.day()]];return 1==n.intervalDuration.as("months")&&t.month()!=n.intervalStart.month()&&r.push("fc-other-month"),t.isSame(i,"day")?(r.push("fc-today"),e!==!0&&r.push(n.highlightStateClass)):t *",mousedOverSeg:null,isDraggingSeg:!1,isResizingSeg:!1,isDraggingExternal:!1,segs:null,renderEvents:function(t){var e,n=[],i=[];for(e=0;e l&&o.push({start:l,end:n.start}),l=n.end;return l =e.length?e[e.length-1]+1:e[n]},computeColHeadFormat:function(){return this.rowCnt>1||this.colCnt>10?"ddd":this.colCnt>1?this.view.opt("dayOfMonthFormat"):"dddd"},sliceRangeByRow:function(t){var e,n,i,r,s,o=this.daysPerRow,l=this.view.computeDayRange(t),a=this.getDateDayIndex(l.start),u=this.getDateDayIndex(l.end.clone().subtract(1,"days")),c=[];for(e=0;e'+this.renderHeadTrHtml()+"
| '+(this.dayGrid?' ':"")+" |