Move calendar to external plugin

This commit is contained in:
Frederic Guillot 2017-04-01 15:43:36 -04:00
parent 99015d08fa
commit 253d5a9331
53 changed files with 17 additions and 769 deletions

View File

@ -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
--------------

View File

@ -1,120 +0,0 @@
<?php
namespace Kanboard\Controller;
use Kanboard\Filter\TaskAssigneeFilter;
use Kanboard\Filter\TaskProjectFilter;
use Kanboard\Filter\TaskStatusFilter;
use Kanboard\Model\TaskModel;
/**
* Calendar Controller
*
* @package Kanboard\Controller
* @author Frederic Guillot
* @author Timo Litzbarski
*/
class CalendarController extends BaseController
{
/**
* Show calendar view for a user
*
* @access public
*/
public function user()
{
$user = $this->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),
));
}
}
}

View File

@ -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').' &gt; '.t('Calendar settings'),
)));
}
/**
* Display the integration settings page
*

View File

@ -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

View File

@ -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

View File

@ -1,74 +0,0 @@
<?php
namespace Kanboard\Formatter;
use Kanboard\Core\Filter\FormatterInterface;
/**
* Calendar event formatter for task filter
*
* @package formatter
* @author Frederic Guillot
*/
class TaskCalendarFormatter extends BaseTaskCalendarFormatter implements FormatterInterface
{
/**
* Full day event flag
*
* @access private
* @var boolean
*/
private $fullDay = false;
/**
* When called calendar events will be full day
*
* @access public
* @return FormatterInterface
*/
public function setFullDay()
{
$this->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';
}
}

View File

@ -1,126 +0,0 @@
<?php
namespace Kanboard\Helper;
use Kanboard\Core\Base;
use Kanboard\Core\Filter\QueryBuilder;
use Kanboard\Filter\TaskDueDateRangeFilter;
/**
* Calendar Helper
*
* @package helper
* @author Frederic Guillot
*/
class CalendarHelper extends Base
{
/**
* Render calendar component
*
* @param string $checkUrl
* @param string $saveUrl
* @return string
*/
public function render($checkUrl, $saveUrl)
{
$params = array(
'checkUrl' => $checkUrl,
'saveUrl' => $saveUrl,
);
return '<div class="js-calendar" data-params=\''.json_encode($params, JSON_HEX_APOS).'\'></div>';
}
/**
* 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).')';
}
}

View File

@ -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(

View File

@ -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.',

View File

@ -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.',

View File

@ -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.' => '',

View File

@ -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.',

View File

@ -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.' => 'Δεν υπάρχει καμία δραστηριότητα ακόμα.',

View File

@ -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.' => '',

View File

@ -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.' => '',

View File

@ -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é.',

View File

@ -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.' => '',

View File

@ -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',

View File

@ -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.',

View File

@ -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à.',

View File

@ -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.' => '',

View File

@ -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.' => '활동이 없습니다',

View File

@ -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.',

View File

@ -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å.',

View File

@ -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.' => '',

View File

@ -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ń',

View File

@ -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.',

View File

@ -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.',

View File

@ -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.' => 'Активности еще не было',

View File

@ -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.' => '',

View File

@ -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.',

View File

@ -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.' => 'ตอนนี้ไม่มีกิจกรรม',

View File

@ -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.',

View File

@ -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.' => '当前无任何活动.',

View File

@ -26,7 +26,6 @@ class FormatterProvider implements ServiceProviderInterface
'SubtaskListFormatter',
'SubtaskTimeTrackingCalendarFormatter',
'TaskAutoCompleteFormatter',
'TaskCalendarFormatter',
'TaskGanttFormatter',
'TaskICalFormatter',
'TaskListFormatter',

View File

@ -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');

View File

@ -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');

View File

@ -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']))
) ?>

View File

@ -1,4 +0,0 @@
<?= $this->calendar->render(
$this->url->href('CalendarController', 'userEvents', array('user_id' => $user['id'])),
$this->url->href('CalendarController', 'save')
) ?>

View File

@ -1,36 +0,0 @@
<div class="page-header">
<h2><?= t('Calendar settings') ?></h2>
</div>
<form method="post" action="<?= $this->url->href('ConfigController', 'save', array('redirect' => 'calendar')) ?>" autocomplete="off">
<?= $this->form->csrf() ?>
<fieldset>
<legend><?= t('Project calendar view') ?></legend>
<?= $this->form->radios('calendar_project_tasks', array(
'date_creation' => t('Show tasks based on the creation date'),
'date_started' => t('Show tasks based on the start date'),
),
$values
) ?>
</fieldset>
<fieldset>
<legend><?= t('User calendar view') ?></legend>
<?= $this->form->radios('calendar_user_tasks', array(
'date_creation' => t('Show tasks based on the creation date'),
'date_started' => t('Show tasks based on the start date'),
),
$values
) ?>
</fieldset>
<fieldset>
<legend><?= t('Subtasks time tracking') ?></legend>
<?= $this->form->checkbox('calendar_user_subtasks_time_tracking', t('Show subtasks based on the time tracking'), 1, $values['calendar_user_subtasks_time_tracking'] == 1) ?>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
</div>
</form>

View File

@ -6,7 +6,6 @@
<ul>
<li><?= t('Switch to the project overview') ?> = <strong>v o</strong></li>
<li><?= t('Switch to the board view') ?> = <strong>v b</strong></li>
<li><?= t('Switch to the calendar view') ?> = <strong>v c</strong></li>
<li><?= t('Switch to the list view') ?> = <strong>v l</strong></li>
<li><?= t('Switch to the Gantt chart view') ?> = <strong>v g</strong></li>
</ul>

View File

@ -15,9 +15,6 @@
<li <?= $this->app->checkMenuSelection('ConfigController', 'board') ?>>
<?= $this->url->link(t('Board settings'), 'ConfigController', 'board') ?>
</li>
<li <?= $this->app->checkMenuSelection('ConfigController', 'calendar') ?>>
<?= $this->url->link(t('Calendar settings'), 'ConfigController', 'calendar') ?>
</li>
<li <?= $this->app->checkMenuSelection('TagController', 'index') ?>>
<?= $this->url->link(t('Tags management'), 'TagController', 'index') ?>
</li>

View File

@ -16,9 +16,7 @@
<li>
<?= $this->modal->medium('dashboard', t('My activity stream'), 'ActivityController', 'user') ?>
</li>
<li>
<?= $this->modal->medium('calendar', t('My calendar'), 'CalendarController', 'user') ?>
</li>
<?= $this->hook->render('template:dashboard:page-header:menu', array('user' => $user)) ?>
</ul>
</div>

View File

@ -4,9 +4,6 @@
<li>
<?= $this->url->icon('th', t('Board'), 'BoardViewController', 'show', array('project_id' => $project['id'])) ?>
</li>
<li>
<?= $this->url->icon('calendar', t('Calendar'), 'CalendarController', 'show', array('project_id' => $project['id'])) ?>
</li>
<li>
<?= $this->url->icon('list', t('Listing'), 'TaskListController', 'show', array('project_id' => $project['id'])) ?>
</li>

View File

@ -5,9 +5,6 @@
<li <?= $this->app->checkMenuSelection('BoardViewController') ?>>
<?= $this->url->icon('th', t('Board'), 'BoardViewController', 'show', array('project_id' => $project['id'], 'search' => $filters['search']), false, 'view-board', t('Keyboard shortcut: "%s"', 'v b')) ?>
</li>
<li <?= $this->app->checkMenuSelection('CalendarController') ?>>
<?= $this->url->icon('calendar', t('Calendar'), 'CalendarController', 'project', array('project_id' => $project['id'], 'search' => $filters['search']), false, 'view-calendar', t('Keyboard shortcut: "%s"', 'v c')) ?>
</li>
<li <?= $this->app->checkMenuSelection('TaskListController') ?>>
<?= $this->url->icon('list', t('List'), 'TaskListController', 'show', array('project_id' => $project['id'], 'search' => $filters['search']), false, 'view-listing', t('Keyboard shortcut: "%s"', 'v l')) ?>
</li>
@ -16,4 +13,5 @@
<?= $this->url->icon('sliders', t('Gantt'), 'TaskGanttController', 'show', array('project_id' => $project['id'], 'search' => $filters['search']), false, 'view-gantt', t('Keyboard shortcut: "%s"', 'v g')) ?>
</li>
<?php endif ?>
<?= $this->hook->render('template:project-header:view-switcher', array('project' => $project, 'filters' => $filters)) ?>
</ul>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,65 +0,0 @@
KB.component('calendar', function (containerElement, options) {
var modeMapping = { // Let's have bookable pretty mode names
month: 'month',
week: 'agendaWeek',
day: 'agendaDay'
};
this.render = function () {
var calendar = $(containerElement);
var mode = 'month';
if (window.location.hash) { // Check if hash contains mode
var hashMode = window.location.hash.substr(1);
mode = modeMapping[hashMode] || mode;
}
calendar.fullCalendar({
locale: $("body").data("js-lang"),
editable: true,
eventLimit: true,
defaultView: mode,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
eventDrop: function(event) {
$.ajax({
cache: false,
url: options.saveUrl,
contentType: "application/json",
type: "POST",
processData: false,
data: JSON.stringify({
"task_id": event.id,
"date_due": event.start.format()
})
});
},
viewRender: function(view) {
// Map view.name back and update location.hash
for (var id in modeMapping) {
if (modeMapping[id] === view.name) { // Found
window.location.hash = id;
break;
}
}
var url = options.checkUrl;
var params = {
"start": calendar.fullCalendar('getView').start.format(),
"end": calendar.fullCalendar('getView').end.format()
};
for (var key in params) {
url += "&" + key + "=" + params[key];
}
$.getJSON(url, function(events) {
calendar.fullCalendar('removeEvents');
calendar.fullCalendar('addEventSource', events);
calendar.fullCalendar('rerenderEvents');
});
}
});
};
});

View File

@ -117,10 +117,6 @@ KB.keyboardShortcuts = function () {
goToLink('a.view-board');
});
KB.onKey('v+c', function () {
goToLink('a.view-calendar');
});
KB.onKey('v+l', function () {
goToLink('a.view-listing');
});

File diff suppressed because one or more lines are too long

View File

@ -9,7 +9,6 @@
],
"dependencies": {
"jquery": "^2.2.3",
"fullcalendar": "^3.0.1",
"c3": "^0.4.11",
"jquery-ui": "^1.11.4",
"jqueryui-touch-punch": "*",

View File

@ -212,6 +212,7 @@ List of template hooks:
| `template:config:email` | Email settings page |
| `template:config:integrations` | Integration page in global settings |
| `template:dashboard:show` | Main page of the dashboard |
| `template:dashboard:page-header:menu` | Dashboard submenu |
| `template:header:dropdown` | Page header dropdown menu (user avatar icon) |
| `template:header:creation-dropdown` | Page header dropdown menu (plus icon) |
| `template:layout:head` | Page layout `<head/>` tag |
@ -226,6 +227,7 @@ List of template hooks:
| `template:project-list:menu:before` | Project list: before menu entries |
| `template:project-list:menu:after` | Project list: after menu entries |
| `template:project-overview:before-description` | Project overview: before description |
| `template:project-header:view-switcher` | Project view switcher |
| `template:task:layout:top` | Task layout top (after page header) |
| `template:task:details:top` | Task summary top |
| `template:task:details:bottom` | Task summary bottom |

View File

@ -24,7 +24,6 @@ var vendor = {
'bower_components/jquery-ui/themes/base/jquery-ui.min.css',
'bower_components/jqueryui-timepicker-addon/dist/jquery-ui-timepicker-addon.min.css',
'bower_components/select2/dist/css/select2.min.css',
'bower_components/fullcalendar/dist/fullcalendar.min.css',
'bower_components/font-awesome/css/font-awesome.min.css',
'bower_components/c3/c3.min.css'
],
@ -44,9 +43,6 @@ var vendor = {
'bower_components/jqueryui-timepicker-addon/dist/i18n/jquery-ui-timepicker-addon-i18n.min.js',
'bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.min.js',
'bower_components/select2/dist/js/select2.min.js',
'bower_components/moment/min/moment.min.js',
'bower_components/fullcalendar/dist/fullcalendar.min.js',
'bower_components/fullcalendar/dist/locale-all.js',
'bower_components/d3/d3.min.js',
'bower_components/c3/c3.min.js',
'bower_components/isMobile/isMobile.min.js',