Move Gantt charts to external plugin
This commit is contained in:
parent
253d5a9331
commit
5cc4889473
|
|
@ -4,6 +4,7 @@ Version 1.0.42
|
|||
Breaking Changes:
|
||||
|
||||
* Move calendar to external plugin: https://github.com/kanboard/plugin-calendar
|
||||
* Move Gantt charts to external plugin: https://github.com/kanboard/plugin-gantt
|
||||
|
||||
Version 1.0.41
|
||||
--------------
|
||||
|
|
|
|||
|
|
@ -1,56 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Kanboard\Controller;
|
||||
|
||||
use Kanboard\Filter\ProjectIdsFilter;
|
||||
use Kanboard\Filter\ProjectStatusFilter;
|
||||
use Kanboard\Filter\ProjectTypeFilter;
|
||||
use Kanboard\Model\ProjectModel;
|
||||
|
||||
/**
|
||||
* Projects Gantt Controller
|
||||
*
|
||||
* @package Kanboard\Controller
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class ProjectGanttController extends BaseController
|
||||
{
|
||||
/**
|
||||
* Show Gantt chart for all projects
|
||||
*/
|
||||
public function show()
|
||||
{
|
||||
$project_ids = $this->projectPermissionModel->getActiveProjectIds($this->userSession->getId());
|
||||
$filter = $this->projectQuery
|
||||
->withFilter(new ProjectTypeFilter(ProjectModel::TYPE_TEAM))
|
||||
->withFilter(new ProjectStatusFilter(ProjectModel::ACTIVE))
|
||||
->withFilter(new ProjectIdsFilter($project_ids));
|
||||
|
||||
$filter->getQuery()->asc(ProjectModel::TABLE.'.start_date');
|
||||
|
||||
$this->response->html($this->helper->layout->app('project_gantt/show', array(
|
||||
'projects' => $filter->format($this->projectGanttFormatter),
|
||||
'title' => t('Gantt chart for all projects'),
|
||||
)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Save new project start date and end date
|
||||
*/
|
||||
public function save()
|
||||
{
|
||||
$values = $this->request->getJson();
|
||||
|
||||
$result = $this->projectModel->update(array(
|
||||
'id' => $values['id'],
|
||||
'start_date' => $this->dateParser->getIsoDate(strtotime($values['start'])),
|
||||
'end_date' => $this->dateParser->getIsoDate(strtotime($values['end'])),
|
||||
));
|
||||
|
||||
if (! $result) {
|
||||
$this->response->json(array('message' => 'Unable to save project'), 400);
|
||||
} else {
|
||||
$this->response->json(array('message' => 'OK'), 201);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Kanboard\Controller;
|
||||
|
||||
use Kanboard\Filter\TaskProjectFilter;
|
||||
use Kanboard\Model\TaskModel;
|
||||
|
||||
/**
|
||||
* Tasks Gantt Controller
|
||||
*
|
||||
* @package Kanboard\Controller
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class TaskGanttController extends BaseController
|
||||
{
|
||||
/**
|
||||
* Show Gantt chart for one project
|
||||
*/
|
||||
public function show()
|
||||
{
|
||||
$project = $this->getProject();
|
||||
$search = $this->helper->projectHeader->getSearchQuery($project);
|
||||
$sorting = $this->request->getStringParam('sorting', 'board');
|
||||
$filter = $this->taskLexer->build($search)->withFilter(new TaskProjectFilter($project['id']));
|
||||
|
||||
if ($sorting === 'date') {
|
||||
$filter->getQuery()->asc(TaskModel::TABLE.'.date_started')->asc(TaskModel::TABLE.'.date_creation');
|
||||
} else {
|
||||
$filter->getQuery()->asc('column_position')->asc(TaskModel::TABLE.'.position');
|
||||
}
|
||||
|
||||
$this->response->html($this->helper->layout->app('task_gantt/show', array(
|
||||
'project' => $project,
|
||||
'title' => $project['name'],
|
||||
'description' => $this->helper->projectHeader->getDescription($project),
|
||||
'sorting' => $sorting,
|
||||
'tasks' => $filter->format($this->taskGanttFormatter),
|
||||
)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Save new task start date and due date
|
||||
*/
|
||||
public function save()
|
||||
{
|
||||
$this->getProject();
|
||||
$values = $this->request->getJson();
|
||||
|
||||
$result = $this->taskModificationModel->update(array(
|
||||
'id' => $values['id'],
|
||||
'date_started' => strtotime($values['start']),
|
||||
'date_due' => strtotime($values['end']),
|
||||
));
|
||||
|
||||
if (! $result) {
|
||||
$this->response->json(array('message' => 'Unable to save task'), 400);
|
||||
} else {
|
||||
$this->response->json(array('message' => 'OK'), 201);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -68,11 +68,9 @@ use Pimple\Container;
|
|||
* @property \Kanboard\Formatter\BoardTaskFormatter $boardTaskFormatter
|
||||
* @property \Kanboard\Formatter\GroupAutoCompleteFormatter $groupAutoCompleteFormatter
|
||||
* @property \Kanboard\Formatter\ProjectActivityEventFormatter $projectActivityEventFormatter
|
||||
* @property \Kanboard\Formatter\ProjectGanttFormatter $projectGanttFormatter
|
||||
* @property \Kanboard\Formatter\SubtaskListFormatter $subtaskListFormatter
|
||||
* @property \Kanboard\Formatter\SubtaskTimeTrackingCalendarFormatter $subtaskTimeTrackingCalendarFormatter
|
||||
* @property \Kanboard\Formatter\TaskAutoCompleteFormatter $taskAutoCompleteFormatter
|
||||
* @property \Kanboard\Formatter\TaskGanttFormatter $taskGanttFormatter
|
||||
* @property \Kanboard\Formatter\TaskICalFormatter $taskICalFormatter
|
||||
* @property \Kanboard\Formatter\TaskListFormatter $taskListFormatter
|
||||
* @property \Kanboard\Formatter\TaskListSubtaskFormatter $taskListSubtaskFormatter
|
||||
|
|
|
|||
|
|
@ -1,57 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Kanboard\Formatter;
|
||||
|
||||
use Kanboard\Core\Filter\FormatterInterface;
|
||||
|
||||
/**
|
||||
* Gantt chart formatter for projects
|
||||
*
|
||||
* @package formatter
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class ProjectGanttFormatter extends BaseFormatter implements FormatterInterface
|
||||
{
|
||||
/**
|
||||
* Format projects to be displayed in the Gantt chart
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function format()
|
||||
{
|
||||
$projects = $this->query->findAll();
|
||||
$colors = $this->colorModel->getDefaultColors();
|
||||
$bars = array();
|
||||
|
||||
foreach ($projects as $project) {
|
||||
$start = empty($project['start_date']) ? time() : strtotime($project['start_date']);
|
||||
$end = empty($project['end_date']) ? $start : strtotime($project['end_date']);
|
||||
$color = next($colors) ?: reset($colors);
|
||||
|
||||
$bars[] = array(
|
||||
'type' => 'project',
|
||||
'id' => $project['id'],
|
||||
'title' => $project['name'],
|
||||
'start' => array(
|
||||
(int) date('Y', $start),
|
||||
(int) date('n', $start),
|
||||
(int) date('j', $start),
|
||||
),
|
||||
'end' => array(
|
||||
(int) date('Y', $end),
|
||||
(int) date('n', $end),
|
||||
(int) date('j', $end),
|
||||
),
|
||||
'link' => $this->helper->url->href('ProjectViewController', 'show', array('project_id' => $project['id'])),
|
||||
'board_link' => $this->helper->url->href('BoardViewController', 'show', array('project_id' => $project['id'])),
|
||||
'gantt_link' => $this->helper->url->href('TaskGanttController', 'show', array('project_id' => $project['id'])),
|
||||
'color' => $color,
|
||||
'not_defined' => empty($project['start_date']) || empty($project['end_date']),
|
||||
'users' => $this->projectUserRoleModel->getAllUsersGroupedByRole($project['id']),
|
||||
);
|
||||
}
|
||||
|
||||
return $bars;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Kanboard\Formatter;
|
||||
|
||||
use Kanboard\Core\Filter\FormatterInterface;
|
||||
|
||||
/**
|
||||
* Task Gantt Formatter
|
||||
*
|
||||
* @package formatter
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class TaskGanttFormatter extends BaseFormatter implements FormatterInterface
|
||||
{
|
||||
/**
|
||||
* Local cache for project columns
|
||||
*
|
||||
* @access private
|
||||
* @var array
|
||||
*/
|
||||
private $columns = array();
|
||||
|
||||
/**
|
||||
* Apply formatter
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function format()
|
||||
{
|
||||
$bars = array();
|
||||
|
||||
foreach ($this->query->findAll() as $task) {
|
||||
$bars[] = $this->formatTask($task);
|
||||
}
|
||||
|
||||
return $bars;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a single task
|
||||
*
|
||||
* @access private
|
||||
* @param array $task
|
||||
* @return array
|
||||
*/
|
||||
private function formatTask(array $task)
|
||||
{
|
||||
if (! isset($this->columns[$task['project_id']])) {
|
||||
$this->columns[$task['project_id']] = $this->columnModel->getList($task['project_id']);
|
||||
}
|
||||
|
||||
$start = $task['date_started'] ?: time();
|
||||
$end = $task['date_due'] ?: $start;
|
||||
|
||||
return array(
|
||||
'type' => 'task',
|
||||
'id' => $task['id'],
|
||||
'title' => $task['title'],
|
||||
'start' => array(
|
||||
(int) date('Y', $start),
|
||||
(int) date('n', $start),
|
||||
(int) date('j', $start),
|
||||
),
|
||||
'end' => array(
|
||||
(int) date('Y', $end),
|
||||
(int) date('n', $end),
|
||||
(int) date('j', $end),
|
||||
),
|
||||
'column_title' => $task['column_name'],
|
||||
'assignee' => $task['assignee_name'] ?: $task['assignee_username'],
|
||||
'progress' => $this->taskModel->getProgress($task, $this->columns[$task['project_id']]).'%',
|
||||
'link' => $this->helper->url->href('TaskViewController', 'show', array('project_id' => $task['project_id'], 'task_id' => $task['id'])),
|
||||
'color' => $this->colorModel->getColorProperties($task['color_id']),
|
||||
'not_defined' => empty($task['date_due']) || empty($task['date_started']),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Licenca:',
|
||||
'License' => 'Licenca',
|
||||
'Enter the text below' => 'Unesi tekst ispod',
|
||||
'Sort by position' => 'Sortiraj po poziciji',
|
||||
'Sort by date' => 'Sortiraj po datumu',
|
||||
'Add task' => 'Dodaj zadatak',
|
||||
'Start date:' => 'Početno vrijeme:',
|
||||
'Due date:' => 'Vrijeme do kada treba završiti:',
|
||||
'There is no start date or due date for this task.' => 'Nema početnog datuma ili datuma do kada treba završiti ovaj zadatak.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Premještanje ili promjena veličine zadatka će promijeniti datum početka i datum do kada treba završiti zadatak.',
|
||||
'There is no task in your project.' => 'Nema zadataka u projektu.',
|
||||
'Gantt chart' => 'Gantogram',
|
||||
'People who are project managers' => 'Osobe koji su menadžeri projekta',
|
||||
'People who are project members' => 'Osobe koje su članovi projekta',
|
||||
'NOK - Norwegian Krone' => 'NOK - Norveška kruna',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Članovi',
|
||||
'Shared project' => 'Dijeljeni projekti',
|
||||
'Project managers' => 'Menadžeri projekta',
|
||||
'Gantt chart for all projects' => 'Gantogram za sve projekte',
|
||||
'Projects list' => 'Lista projekata',
|
||||
'Gantt chart for this project' => 'Gantogram za ovaj projekat',
|
||||
'Project board' => 'Ploča projekta',
|
||||
'End date:' => 'Datum završetka:',
|
||||
'There is no start date or end date for this project.' => 'Nema početnog ili krajnjeg datuma za ovaj projekat.',
|
||||
'Projects Gantt chart' => 'Gantogram projekata',
|
||||
'Change task color when using a specific task link' => 'Promijeni boju zadatka kada se koristi određena veza na zadatku',
|
||||
'Task link creation or modification' => 'Veza na zadatku je napravljena ili izmijenjena',
|
||||
'Milestone' => 'Prekretnica',
|
||||
'Documentation: %s' => 'Dokumentacija: %s',
|
||||
'Switch to the Gantt chart view' => 'Promijeni u gantogram pregled',
|
||||
'Reset the search/filter box' => 'Vrati na početno pretragu/filtere',
|
||||
'Documentation' => 'Dokumentacija',
|
||||
'Table of contents' => 'Sadržaj',
|
||||
'Gantt' => 'Gantogram',
|
||||
'Author' => 'Autor',
|
||||
'Version' => 'Verzija',
|
||||
'Plugins' => 'Dodaci',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Licence:',
|
||||
'License' => 'Licence',
|
||||
'Enter the text below' => 'Zadejte text níže',
|
||||
'Sort by position' => 'Třídit podle pozice',
|
||||
'Sort by date' => 'Třídit podle datumu',
|
||||
'Add task' => 'Přidat úkol',
|
||||
'Start date:' => 'Termín zahájení:',
|
||||
'Due date:' => 'Termín dokončení:',
|
||||
'There is no start date or due date for this task.' => 'Úkol nemá nastaven termín zahájení a dokončení.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Posunutím nebo prodloužením úkolu se změní počáteční a konečné datum úkolu. ',
|
||||
'There is no task in your project.' => 'Projekt neobsahuje žádné úkoly.',
|
||||
'Gantt chart' => 'Gantt graf',
|
||||
// 'People who are project managers' => '',
|
||||
// 'People who are project members' => '',
|
||||
// 'NOK - Norwegian Krone' => '',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
// 'Members' => '',
|
||||
// 'Shared project' => '',
|
||||
// 'Project managers' => '',
|
||||
// 'Gantt chart for all projects' => '',
|
||||
// 'Projects list' => '',
|
||||
// 'Gantt chart for this project' => '',
|
||||
// 'Project board' => '',
|
||||
// 'End date:' => '',
|
||||
// 'There is no start date or end date for this project.' => '',
|
||||
// 'Projects Gantt chart' => '',
|
||||
// 'Change task color when using a specific task link' => '',
|
||||
// 'Task link creation or modification' => '',
|
||||
// 'Milestone' => '',
|
||||
// 'Documentation: %s' => '',
|
||||
// 'Switch to the Gantt chart view' => '',
|
||||
// 'Reset the search/filter box' => '',
|
||||
// 'Documentation' => '',
|
||||
// 'Table of contents' => '',
|
||||
// 'Gantt' => '',
|
||||
// 'Author' => '',
|
||||
// 'Version' => '',
|
||||
// 'Plugins' => '',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
// 'License:' => '',
|
||||
// 'License' => '',
|
||||
// 'Enter the text below' => '',
|
||||
'Sort by position' => 'Sorter udfra position',
|
||||
'Sort by date' => 'Sorter ud fra dato',
|
||||
'Add task' => 'Tilføj opgave',
|
||||
'Start date:' => 'Start dato:',
|
||||
'Due date:' => 'Forfaldsdato:',
|
||||
// 'There is no start date or due date for this task.' => '',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Hvis du flytter eller trækker i en opgave vil det ændre start -og forfaldsdato',
|
||||
'There is no task in your project.' => 'Der er ikke nogle opgaver i dette projekt',
|
||||
// 'Gantt chart' => '',
|
||||
// 'People who are project managers' => '',
|
||||
// 'People who are project members' => '',
|
||||
// 'NOK - Norwegian Krone' => '',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Medlemmer',
|
||||
'Shared project' => 'Delt projekt',
|
||||
'Project managers' => 'Projekt managers',
|
||||
'Gantt chart for all projects' => 'Gantt chart for alle projekter',
|
||||
'Projects list' => 'Projekt liste',
|
||||
'Gantt chart for this project' => 'Gantt chart for dette projekt',
|
||||
'Project board' => 'Projekt tavle',
|
||||
'End date:' => 'Slut dato:',
|
||||
'There is no start date or end date for this project.' => 'Der er ikke nogen start eller slut dato for dette projekt.',
|
||||
'Projects Gantt chart' => 'Gantt chart på Projekter',
|
||||
// 'Change task color when using a specific task link' => '',
|
||||
// 'Task link creation or modification' => '',
|
||||
'Milestone' => 'Milepæl',
|
||||
// 'Documentation: %s' => '',
|
||||
// 'Switch to the Gantt chart view' => '',
|
||||
// 'Reset the search/filter box' => '',
|
||||
// 'Documentation' => '',
|
||||
// 'Table of contents' => '',
|
||||
// 'Gantt' => '',
|
||||
'Author' => 'Forfatter',
|
||||
// 'Version' => '',
|
||||
// 'Plugins' => '',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Lizenz:',
|
||||
'License' => 'Lizenz',
|
||||
'Enter the text below' => 'Text unten eingeben',
|
||||
'Sort by position' => 'Nach Position sortieren',
|
||||
'Sort by date' => 'Nach Datum sortieren',
|
||||
'Add task' => 'Aufgabe hinzufügen',
|
||||
'Start date:' => 'Startdatum:',
|
||||
'Due date:' => 'Ablaufdatum:',
|
||||
'There is no start date or due date for this task.' => 'Diese Aufgabe hat kein Start oder Ablaufdatum.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Aufgabe verschieben/ändern, ändert auch Start- und Ablaufdatum der Aufgabe.',
|
||||
'There is no task in your project.' => 'Es gibt keine Aufgabe in deinem Projekt',
|
||||
'Gantt chart' => 'Gantt Diagramm',
|
||||
'People who are project managers' => 'Benutzer die Projektmanager sind',
|
||||
'People who are project members' => 'Benutzer die Projektmitglieder sind',
|
||||
'NOK - Norwegian Krone' => 'NOK - Norwegische Kronen',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Mitglieder',
|
||||
'Shared project' => 'Geteiltes Projekt',
|
||||
'Project managers' => 'Projektmanager',
|
||||
'Gantt chart for all projects' => 'Gantt Diagramm für alle Projekte',
|
||||
'Projects list' => 'Projektliste',
|
||||
'Gantt chart for this project' => 'Gantt Diagramm für dieses Projekt',
|
||||
'Project board' => 'Projekt Pinnwand',
|
||||
'End date:' => 'Endedatum:',
|
||||
'There is no start date or end date for this project.' => 'Es gibt kein Startdatum oder Endedatum für dieses Projekt',
|
||||
'Projects Gantt chart' => 'Projekt Gantt Diagramm',
|
||||
'Change task color when using a specific task link' => 'Aufgabefarbe ändern bei bestimmter Aufgabenverbindung',
|
||||
'Task link creation or modification' => 'Aufgabenverbindung erstellen oder bearbeiten',
|
||||
'Milestone' => 'Meilenstein',
|
||||
'Documentation: %s' => 'Dokumentation: %s',
|
||||
'Switch to the Gantt chart view' => 'Zur Gantt-Diagramm Ansicht wechseln',
|
||||
'Reset the search/filter box' => 'Suche/Filter-Box zurücksetzen',
|
||||
'Documentation' => 'Dokumentation',
|
||||
'Table of contents' => 'Inhaltsverzeichnis',
|
||||
'Gantt' => 'Gantt',
|
||||
'Author' => 'Autor',
|
||||
'Version' => 'Version',
|
||||
'Plugins' => 'Plugins',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Άδεια:',
|
||||
'License' => 'Άδεια',
|
||||
'Enter the text below' => 'Πληκτρολογήστε το παρακάτω κείμενο',
|
||||
'Sort by position' => 'Ταξινόμηση κατά Θέση',
|
||||
'Sort by date' => 'Ταξινόμηση κατά ημέρα',
|
||||
'Add task' => 'Προσθήκη εργασίας',
|
||||
'Start date:' => 'Ημερομηνία εκκίνησης :',
|
||||
'Due date:' => 'Ημερομηνία λήξης:',
|
||||
'There is no start date or due date for this task.' => 'Δεν υπάρχει ημερομηνία έναρξης ή ημερομηνία λήξης καθηκόντων για το έργο αυτό.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Μετακίνηση ή αλλαγή μεγέθους μιας εργασίας θα αλλάξει την ώρα έναρξης και ημερομηνία λήξης της εργασίας.',
|
||||
'There is no task in your project.' => 'Δεν υπάρχει καμία εργασία στο έργο σας.',
|
||||
'Gantt chart' => 'Διαγράμματα Gantt',
|
||||
'People who are project managers' => 'Οι άνθρωποι που είναι οι διευθυντές έργων',
|
||||
'People who are project members' => 'Οι άνθρωποι που είναι μέλη των έργων',
|
||||
'NOK - Norwegian Krone' => 'NOK - Norwegian Krone',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Μέλη',
|
||||
'Shared project' => 'Κοινόχρηστο έργο',
|
||||
'Project managers' => 'Διευθυντές έργου',
|
||||
'Gantt chart for all projects' => 'Διάγραμμα Gantt για όλα τα έργα',
|
||||
'Projects list' => 'Λίστα έργων',
|
||||
'Gantt chart for this project' => 'Διάγραμμα Gantt για το έργο',
|
||||
'Project board' => 'Κεντρικός πίνακας έργου',
|
||||
'End date:' => 'Ημερομηνία λήξης :',
|
||||
'There is no start date or end date for this project.' => 'Δεν υπάρχει ημερομηνία έναρξης ή λήξης για το έργο αυτό.',
|
||||
'Projects Gantt chart' => 'Διάγραμμα Gantt έργων',
|
||||
'Change task color when using a specific task link' => 'Αλλαγή χρώματος εργασίας χρησιμοποιώντας συγκεκριμένο σύνδεσμο εργασίας',
|
||||
'Task link creation or modification' => 'Σύνδεσμος δημιουργίας ή τροποποίησης εργασίας',
|
||||
'Milestone' => 'Ορόσημο',
|
||||
'Documentation: %s' => 'Τεκμηρίωση: %s',
|
||||
'Switch to the Gantt chart view' => 'Μεταφορά σε προβολή διαγράμματος Gantt',
|
||||
'Reset the search/filter box' => 'Αρχικοποίηση του πεδίου αναζήτησης/φιλτραρίσματος',
|
||||
'Documentation' => 'Τεκμηρίωση',
|
||||
'Table of contents' => 'Πίνακας περιεχομένων',
|
||||
'Gantt' => 'Gantt',
|
||||
'Author' => 'Δημιουργός',
|
||||
'Version' => 'Έκδοση',
|
||||
'Plugins' => 'Πρόσθετα',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
// 'License:' => '',
|
||||
// 'License' => '',
|
||||
// 'Enter the text below' => '',
|
||||
// 'Sort by position' => '',
|
||||
// 'Sort by date' => '',
|
||||
// 'Add task' => '',
|
||||
// 'Start date:' => '',
|
||||
// 'Due date:' => '',
|
||||
// 'There is no start date or due date for this task.' => '',
|
||||
// 'Moving or resizing a task will change the start and due date of the task.' => '',
|
||||
// 'There is no task in your project.' => '',
|
||||
// 'Gantt chart' => '',
|
||||
// 'People who are project managers' => '',
|
||||
// 'People who are project members' => '',
|
||||
// 'NOK - Norwegian Krone' => '',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
// 'Members' => '',
|
||||
// 'Shared project' => '',
|
||||
// 'Project managers' => '',
|
||||
// 'Gantt chart for all projects' => '',
|
||||
// 'Projects list' => '',
|
||||
// 'Gantt chart for this project' => '',
|
||||
// 'Project board' => '',
|
||||
// 'End date:' => '',
|
||||
// 'There is no start date or end date for this project.' => '',
|
||||
// 'Projects Gantt chart' => '',
|
||||
// 'Change task color when using a specific task link' => '',
|
||||
// 'Task link creation or modification' => '',
|
||||
// 'Milestone' => '',
|
||||
// 'Documentation: %s' => '',
|
||||
// 'Switch to the Gantt chart view' => '',
|
||||
// 'Reset the search/filter box' => '',
|
||||
// 'Documentation' => '',
|
||||
// 'Table of contents' => '',
|
||||
// 'Gantt' => '',
|
||||
// 'Author' => '',
|
||||
// 'Version' => '',
|
||||
// 'Plugins' => '',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
// 'License:' => '',
|
||||
// 'License' => '',
|
||||
// 'Enter the text below' => '',
|
||||
// 'Sort by position' => '',
|
||||
// 'Sort by date' => '',
|
||||
// 'Add task' => '',
|
||||
// 'Start date:' => '',
|
||||
// 'Due date:' => '',
|
||||
// 'There is no start date or due date for this task.' => '',
|
||||
// 'Moving or resizing a task will change the start and due date of the task.' => '',
|
||||
// 'There is no task in your project.' => '',
|
||||
// 'Gantt chart' => '',
|
||||
// 'People who are project managers' => '',
|
||||
// 'People who are project members' => '',
|
||||
// 'NOK - Norwegian Krone' => '',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
// 'Members' => '',
|
||||
// 'Shared project' => '',
|
||||
// 'Project managers' => '',
|
||||
// 'Gantt chart for all projects' => '',
|
||||
// 'Projects list' => '',
|
||||
// 'Gantt chart for this project' => '',
|
||||
// 'Project board' => '',
|
||||
// 'End date:' => '',
|
||||
// 'There is no start date or end date for this project.' => '',
|
||||
// 'Projects Gantt chart' => '',
|
||||
// 'Change task color when using a specific task link' => '',
|
||||
// 'Task link creation or modification' => '',
|
||||
// 'Milestone' => '',
|
||||
// 'Documentation: %s' => '',
|
||||
// 'Switch to the Gantt chart view' => '',
|
||||
// 'Reset the search/filter box' => '',
|
||||
// 'Documentation' => '',
|
||||
// 'Table of contents' => '',
|
||||
// 'Gantt' => '',
|
||||
// 'Author' => '',
|
||||
// 'Version' => '',
|
||||
// 'Plugins' => '',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Licence :',
|
||||
'License' => 'Licence',
|
||||
'Enter the text below' => 'Entrez le texte ci-dessous',
|
||||
'Sort by position' => 'Trier par position',
|
||||
'Sort by date' => 'Trier par date',
|
||||
'Add task' => 'Ajouter une tâche',
|
||||
'Start date:' => 'Date de début :',
|
||||
'Due date:' => 'Date d\'échéance :',
|
||||
'There is no start date or due date for this task.' => 'Il n\'y a pas de date de début ou de date de fin pour cette tâche.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Déplacer ou redimensionner une tâche va changer la date de début et la date de fin de la tâche.',
|
||||
'There is no task in your project.' => 'Il n\'y a aucune tâche dans votre projet.',
|
||||
'Gantt chart' => 'Diagramme de Gantt',
|
||||
'People who are project managers' => 'Personnes qui sont gestionnaires de projet',
|
||||
'People who are project members' => 'Personnes qui sont membres de projet',
|
||||
'NOK - Norwegian Krone' => 'NOK - Couronne norvégienne',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Membres',
|
||||
'Shared project' => 'Projet partagé',
|
||||
'Project managers' => 'Gestionnaires de projet',
|
||||
'Gantt chart for all projects' => 'Diagramme de Gantt pour tous les projets',
|
||||
'Projects list' => 'Liste des projets',
|
||||
'Gantt chart for this project' => 'Diagramme de Gantt pour ce projet',
|
||||
'Project board' => 'Tableau du projet',
|
||||
'End date:' => 'Date de fin :',
|
||||
'There is no start date or end date for this project.' => 'Il n\'y a pas de date de début ou de date de fin pour ce projet.',
|
||||
'Projects Gantt chart' => 'Diagramme de Gantt des projets',
|
||||
'Change task color when using a specific task link' => 'Changer la couleur de la tâche lorsqu\'un lien spécifique est utilisé',
|
||||
'Task link creation or modification' => 'Création ou modification d\'un lien sur une tâche',
|
||||
'Milestone' => 'Étape importante',
|
||||
'Documentation: %s' => 'Documentation : %s',
|
||||
'Switch to the Gantt chart view' => 'Passer à la vue en diagramme de Gantt',
|
||||
'Reset the search/filter box' => 'Réinitialiser le champ de recherche',
|
||||
'Documentation' => 'Documentation',
|
||||
'Table of contents' => 'Table des matières',
|
||||
'Gantt' => 'Gantt',
|
||||
'Author' => 'Auteur',
|
||||
'Version' => 'Version',
|
||||
'Plugins' => 'Extensions',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
// 'License:' => '',
|
||||
// 'License' => '',
|
||||
// 'Enter the text below' => '',
|
||||
// 'Sort by position' => '',
|
||||
// 'Sort by date' => '',
|
||||
// 'Add task' => '',
|
||||
// 'Start date:' => '',
|
||||
// 'Due date:' => '',
|
||||
// 'There is no start date or due date for this task.' => '',
|
||||
// 'Moving or resizing a task will change the start and due date of the task.' => '',
|
||||
// 'There is no task in your project.' => '',
|
||||
// 'Gantt chart' => '',
|
||||
// 'People who are project managers' => '',
|
||||
// 'People who are project members' => '',
|
||||
// 'NOK - Norwegian Krone' => '',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Članovi',
|
||||
// 'Shared project' => '',
|
||||
// 'Project managers' => '',
|
||||
// 'Gantt chart for all projects' => '',
|
||||
// 'Projects list' => '',
|
||||
// 'Gantt chart for this project' => '',
|
||||
// 'Project board' => '',
|
||||
// 'End date:' => '',
|
||||
// 'There is no start date or end date for this project.' => '',
|
||||
// 'Projects Gantt chart' => '',
|
||||
// 'Change task color when using a specific task link' => '',
|
||||
// 'Task link creation or modification' => '',
|
||||
// 'Milestone' => '',
|
||||
// 'Documentation: %s' => '',
|
||||
// 'Switch to the Gantt chart view' => '',
|
||||
// 'Reset the search/filter box' => '',
|
||||
'Documentation' => 'Dokumentacija',
|
||||
// 'Table of contents' => '',
|
||||
// 'Gantt' => '',
|
||||
// 'Author' => '',
|
||||
// 'Version' => '',
|
||||
// 'Plugins' => '',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Engedély:',
|
||||
'License' => 'Engedély',
|
||||
'Enter the text below' => 'Adja be a lenti szöveget',
|
||||
'Sort by position' => 'Rendezés hely szerint',
|
||||
'Sort by date' => 'Rendezés idő szerint',
|
||||
'Add task' => 'Feladat hozzáadása',
|
||||
'Start date:' => 'Kezdés ideje: ',
|
||||
'Due date:' => 'Határidő: ',
|
||||
'There is no start date or due date for this task.' => 'Ehhez a feladathoz nem adtak meg kezdési időt vagy határidőt.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'A feladat elmozgatása vagy méretének megváltoztatása meg fogja változtatni a feladat kezdési idejét és határidejét.',
|
||||
'There is no task in your project.' => 'Az ön projektjében nincsenek feladatok.',
|
||||
'Gantt chart' => 'Gantt diagram',
|
||||
'People who are project managers' => 'Projekt vezetők',
|
||||
'People who are project members' => 'Projekt tagok',
|
||||
'NOK - Norwegian Krone' => 'NOK - Norvég korona',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Tagok',
|
||||
'Shared project' => 'Közös projekt',
|
||||
'Project managers' => 'Projektvezetők',
|
||||
'Gantt chart for all projects' => 'Gantt diagram az összes projektre vonatkozóan',
|
||||
'Projects list' => 'Projekt lista',
|
||||
'Gantt chart for this project' => 'Gantt diagram erre a projektre vonatkozóan',
|
||||
'Project board' => 'Projekt tábla',
|
||||
'End date:' => 'Befejezés dátuma: ',
|
||||
'There is no start date or end date for this project.' => 'Ennél a projektnél nem adták meg a kezdés és a befejezés dátumát.',
|
||||
'Projects Gantt chart' => 'A projektek Gantt diagramja',
|
||||
'Change task color when using a specific task link' => 'Az egyes specifikus feladat hivatkozások használatakor a feladat színének megváltoztatása',
|
||||
'Task link creation or modification' => 'Feladat hivatkozás létrehozása vagy módosítása',
|
||||
'Milestone' => 'Mérföldkő',
|
||||
'Documentation: %s' => 'Dokumentáció: %s',
|
||||
'Switch to the Gantt chart view' => 'Átkapcsolás a Gantt diagram nézetre',
|
||||
'Reset the search/filter box' => 'A keresés/szűrés doboz alaphelyzetbe állítása',
|
||||
'Documentation' => 'Dokumentáció',
|
||||
'Table of contents' => 'Tartalomjegyzék',
|
||||
'Gantt' => 'Gantt',
|
||||
'Author' => 'Szerző',
|
||||
'Version' => 'Verzió',
|
||||
'Plugins' => 'Plugin-ek',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Lisensi:',
|
||||
'License' => 'Lisensi',
|
||||
'Enter the text below' => 'Masukkan teks di bawah',
|
||||
'Sort by position' => 'Urutkan berdasarkan posisi',
|
||||
'Sort by date' => 'Urutkan berdasarkan tanggal',
|
||||
'Add task' => 'Tambah tugas',
|
||||
'Start date:' => 'Tanggal mulai:',
|
||||
'Due date:' => 'Batas waktu:',
|
||||
'There is no start date or due date for this task.' => 'Tidak ada tanggal mulai dan batas waktu untuk tugas ini.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Memindahkan atau mengubah ukuran tugas anda akan mengubah tanggal mulai dan batas waktu dari tugas ini.',
|
||||
'There is no task in your project.' => 'Tidak ada tugas didalam proyek anda.',
|
||||
'Gantt chart' => 'Grafik Gantt',
|
||||
'People who are project managers' => 'Orang-orang yang menjadi manajer proyek',
|
||||
'People who are project members' => 'Orang-orang yang menjadi anggota proyek',
|
||||
'NOK - Norwegian Krone' => 'NOK - Krone Norwegia',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Anggota',
|
||||
'Shared project' => 'Proyek bersama',
|
||||
'Project managers' => 'Manajer proyek',
|
||||
'Gantt chart for all projects' => 'Grafik Gantt untuk semua proyek',
|
||||
'Projects list' => 'Daftar proyek',
|
||||
'Gantt chart for this project' => 'Grafik Gantt untuk proyek ini',
|
||||
'Project board' => 'Papan proyek',
|
||||
'End date:' => 'Waktu berakhir:',
|
||||
'There is no start date or end date for this project.' => 'Tidak ada waktu mulai atau waktu berakhir untuk proyek ini',
|
||||
'Projects Gantt chart' => 'Grafik Gantt proyek',
|
||||
'Change task color when using a specific task link' => 'Ganti warna tugas ketika menggunakan tautan tugas yang spesifik',
|
||||
'Task link creation or modification' => 'Tautan pembuatan atau modifikasi tugas ',
|
||||
'Milestone' => 'Milestone',
|
||||
'Documentation: %s' => 'Dokumentasi: %s',
|
||||
'Switch to the Gantt chart view' => 'Beralih ke tampilan grafik Gantt',
|
||||
'Reset the search/filter box' => 'Reset kotak pencarian/saringan',
|
||||
'Documentation' => 'Dokumentasi',
|
||||
'Table of contents' => 'Daftar isi',
|
||||
'Gantt' => 'Gantt',
|
||||
'Author' => 'Penulis',
|
||||
'Version' => 'Versi',
|
||||
'Plugins' => 'Plugin',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Licenza:',
|
||||
'License' => 'Licenza',
|
||||
'Enter the text below' => 'Inserisci il testo qui sotto',
|
||||
'Sort by position' => 'Ordina per posizione',
|
||||
'Sort by date' => 'Ordina per data',
|
||||
'Add task' => 'Aggiungi task',
|
||||
'Start date:' => 'Data di inizio:',
|
||||
'Due date:' => 'Data di completamento:',
|
||||
'There is no start date or due date for this task.' => 'Nessuna data di inizio o di scadenza per questo task.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Spostando o ridimensionado un task ne modifca la data di inizio e di scadenza.',
|
||||
'There is no task in your project.' => 'Non ci sono task nel tuo progetto.',
|
||||
'Gantt chart' => 'Grafici Gantt',
|
||||
'People who are project managers' => 'Persone che sono manager di progetto',
|
||||
'People who are project members' => 'Persone che sono membri di progetto',
|
||||
'NOK - Norwegian Krone' => 'NOK - Corone norvegesi',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Membri',
|
||||
'Shared project' => 'Progetto condiviso',
|
||||
'Project managers' => 'Manager di progetto',
|
||||
'Gantt chart for all projects' => 'Grafico Gantt per tutti i progetti',
|
||||
'Projects list' => 'Elenco progetti',
|
||||
'Gantt chart for this project' => 'Grafico Gantt per questo progetto',
|
||||
'Project board' => 'Bacheca del progetto',
|
||||
'End date:' => 'Data di fine:',
|
||||
'There is no start date or end date for this project.' => 'Non è prevista una data di inizio o fine per questo progetto.',
|
||||
'Projects Gantt chart' => 'Grafico Gantt dei progetti',
|
||||
'Change task color when using a specific task link' => 'Cambia colore del task quando si un utilizza una determinata relazione di task',
|
||||
'Task link creation or modification' => 'Creazione o modifica di relazione di task',
|
||||
// 'Milestone' => '',
|
||||
'Documentation: %s' => 'Documentazione: %s',
|
||||
'Switch to the Gantt chart view' => 'Passa alla vista Grafico Gantt',
|
||||
'Reset the search/filter box' => 'Resetta la riceca/filtro',
|
||||
'Documentation' => 'Documentazione',
|
||||
'Table of contents' => 'Indice dei contenuti',
|
||||
'Gantt' => 'Gantt',
|
||||
'Author' => 'Autore',
|
||||
'Version' => 'Versione',
|
||||
'Plugins' => 'Plugin',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
// 'License:' => '',
|
||||
// 'License' => '',
|
||||
// 'Enter the text below' => '',
|
||||
// 'Sort by position' => '',
|
||||
// 'Sort by date' => '',
|
||||
// 'Add task' => '',
|
||||
// 'Start date:' => '',
|
||||
// 'Due date:' => '',
|
||||
// 'There is no start date or due date for this task.' => '',
|
||||
// 'Moving or resizing a task will change the start and due date of the task.' => '',
|
||||
// 'There is no task in your project.' => '',
|
||||
// 'Gantt chart' => '',
|
||||
// 'People who are project managers' => '',
|
||||
// 'People who are project members' => '',
|
||||
// 'NOK - Norwegian Krone' => '',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
// 'Members' => '',
|
||||
// 'Shared project' => '',
|
||||
// 'Project managers' => '',
|
||||
// 'Gantt chart for all projects' => '',
|
||||
// 'Projects list' => '',
|
||||
// 'Gantt chart for this project' => '',
|
||||
// 'Project board' => '',
|
||||
// 'End date:' => '',
|
||||
// 'There is no start date or end date for this project.' => '',
|
||||
// 'Projects Gantt chart' => '',
|
||||
// 'Change task color when using a specific task link' => '',
|
||||
// 'Task link creation or modification' => '',
|
||||
// 'Milestone' => '',
|
||||
// 'Documentation: %s' => '',
|
||||
// 'Switch to the Gantt chart view' => '',
|
||||
// 'Reset the search/filter box' => '',
|
||||
// 'Documentation' => '',
|
||||
// 'Table of contents' => '',
|
||||
// 'Gantt' => '',
|
||||
// 'Author' => '',
|
||||
// 'Version' => '',
|
||||
// 'Plugins' => '',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => '라이센스:',
|
||||
'License' => '라이센스',
|
||||
'Enter the text below' => '아랫글로 들어가기',
|
||||
'Sort by position' => '위치별 정렬',
|
||||
'Sort by date' => '날짜별 정렬',
|
||||
'Add task' => '할일 추가',
|
||||
'Start date:' => '시작일:',
|
||||
'Due date:' => '만기일:',
|
||||
'There is no start date or due date for this task.' => '할일의 시작일 또는 만기일이 없습니다',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => '할일의 이동 혹은 리사이징으로 시작시간과 마감시간이 변경됩니다.',
|
||||
'There is no task in your project.' => '프로젝트에 할일이 없습니다.',
|
||||
'Gantt chart' => '간트 차트',
|
||||
'People who are project managers' => '프로젝트 매니저',
|
||||
'People who are project members' => '프로젝트 멤버',
|
||||
'NOK - Norwegian Krone' => 'NOK - 노르웨이 크로네',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => '멤버',
|
||||
'Shared project' => '프로젝트 공유',
|
||||
'Project managers' => '프로젝트 매니저',
|
||||
'Gantt chart for all projects' => '모든 프로젝트의 간트 차트',
|
||||
'Projects list' => '프로젝트 리스트',
|
||||
'Gantt chart for this project' => '이 프로젝트 간트차트',
|
||||
'Project board' => '프로젝트 보드',
|
||||
'End date:' => '날짜 수정',
|
||||
'There is no start date or end date for this project.' => '이 프로젝트에는 시작날짜와 종료날짜가 없습니다',
|
||||
'Projects Gantt chart' => '프로젝트 간트차트',
|
||||
'Change task color when using a specific task link' => '특정 할일 링크를 사용할때 할일의 색깔 변경',
|
||||
'Task link creation or modification' => '할일 링크 생성 혹은 수정',
|
||||
'Milestone' => '마일스톤',
|
||||
'Documentation: %s' => '문서: %s',
|
||||
'Switch to the Gantt chart view' => '간트 차트 보기로 변경',
|
||||
'Reset the search/filter box' => '찾기/필터 박스 초기화',
|
||||
'Documentation' => '문서',
|
||||
'Table of contents' => '목차',
|
||||
'Gantt' => '간트',
|
||||
'Author' => '글쓴이',
|
||||
'Version' => '버전',
|
||||
'Plugins' => '플러그인',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Lesen:',
|
||||
'License' => 'Lesen',
|
||||
'Enter the text below' => 'Masukkan teks di bawah',
|
||||
'Sort by position' => 'Urutkan berdasarkan posisi',
|
||||
'Sort by date' => 'Urutkan berdasarkan tanggal',
|
||||
'Add task' => 'Tambah tugas',
|
||||
'Start date:' => 'Tanggal mulai:',
|
||||
'Due date:' => 'Batas waktu:',
|
||||
'There is no start date or due date for this task.' => 'Tiada tanggal mulai dan batas waktu untuk tugas ini.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Memindahkan atau mengubah ukuran tugas anda akan mengubah tanggal mulai dan batas waktu dari tugas ini.',
|
||||
'There is no task in your project.' => 'Tiada tugas didalam projek anda.',
|
||||
'Gantt chart' => 'Carta Gantt',
|
||||
'People who are project managers' => 'Orang-orang yang menjadi pengurus projek',
|
||||
'People who are project members' => 'Orang-orang yang menjadi anggota projek',
|
||||
'NOK - Norwegian Krone' => 'NOK - Krone Norwegia',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Anggota',
|
||||
'Shared project' => 'projek bersama',
|
||||
'Project managers' => 'Pengurus projek',
|
||||
'Gantt chart for all projects' => 'Carta Gantt untuk kesemua projek',
|
||||
'Projects list' => 'Senarai projek',
|
||||
'Gantt chart for this project' => 'Carta Gantt untuk projek ini',
|
||||
'Project board' => 'Papan projek',
|
||||
'End date:' => 'Waktu berakhir :',
|
||||
'There is no start date or end date for this project.' => 'Tidak ada waktu mula atau waktu berakhir pada projek ini',
|
||||
'Projects Gantt chart' => 'projekkan carta Gantt',
|
||||
'Change task color when using a specific task link' => 'Rubah warna tugas ketika menggunakan Pautan tugas yang spesifik',
|
||||
'Task link creation or modification' => 'Pautan tugas pada penciptaan atau penyuntingan',
|
||||
'Milestone' => 'Batu Tanda',
|
||||
'Documentation: %s' => 'Dokumentasi : %s',
|
||||
'Switch to the Gantt chart view' => 'Beralih ke tampilan Carta Gantt',
|
||||
'Reset the search/filter box' => 'Tetap semula pencarian/saringan',
|
||||
'Documentation' => 'Dokumentasi',
|
||||
'Table of contents' => 'Isi kandungan',
|
||||
'Gantt' => 'Gantt',
|
||||
// 'Author' => '',
|
||||
// 'Version' => '',
|
||||
// 'Plugins' => '',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Lisens:',
|
||||
'License' => 'Lisens',
|
||||
'Enter the text below' => 'Legg inn teksten nedenfor',
|
||||
// 'Sort by position' => '',
|
||||
'Sort by date' => 'Sorter etter dato',
|
||||
'Add task' => 'Legg til oppgave',
|
||||
'Start date:' => 'Startdato:',
|
||||
'Due date:' => 'Frist:',
|
||||
'There is no start date or due date for this task.' => 'Det er ingen startdato eller frist for denne oppgaven',
|
||||
// 'Moving or resizing a task will change the start and due date of the task.' => '',
|
||||
'There is no task in your project.' => 'Det er ingen oppgaver i dette prosjektet',
|
||||
'Gantt chart' => 'Gantt skjema',
|
||||
'People who are project managers' => 'Prosjektledere',
|
||||
'People who are project members' => 'Prosjektmedlemmer',
|
||||
// 'NOK - Norwegian Krone' => '',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Medlemmer',
|
||||
'Shared project' => 'Delt prosjekt',
|
||||
'Project managers' => 'Prosjektledere',
|
||||
// 'Gantt chart for all projects' => '',
|
||||
'Projects list' => 'Prosjektliste',
|
||||
'Gantt chart for this project' => 'Gantt skjema for dette prosjektet',
|
||||
'Project board' => 'Prosjektsiden',
|
||||
'End date:' => 'Sluttdato:',
|
||||
// 'There is no start date or end date for this project.' => '',
|
||||
'Projects Gantt chart' => 'Gantt skjema for prosjekter',
|
||||
// 'Change task color when using a specific task link' => '',
|
||||
// 'Task link creation or modification' => '',
|
||||
'Milestone' => 'Milepæl',
|
||||
'Documentation: %s' => 'Dokumentasjon: %s',
|
||||
'Switch to the Gantt chart view' => 'Gantt skjema visning',
|
||||
'Reset the search/filter box' => 'Nullstill søk/filter',
|
||||
'Documentation' => 'Dokumentasjon',
|
||||
'Table of contents' => 'Innholdsfortegnelse',
|
||||
'Gantt' => 'Gantt',
|
||||
// 'Author' => '',
|
||||
// 'Version' => '',
|
||||
// 'Plugins' => '',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
// 'License:' => '',
|
||||
// 'License' => '',
|
||||
// 'Enter the text below' => '',
|
||||
// 'Sort by position' => '',
|
||||
// 'Sort by date' => '',
|
||||
// 'Add task' => '',
|
||||
// 'Start date:' => '',
|
||||
// 'Due date:' => '',
|
||||
// 'There is no start date or due date for this task.' => '',
|
||||
// 'Moving or resizing a task will change the start and due date of the task.' => '',
|
||||
// 'There is no task in your project.' => '',
|
||||
// 'Gantt chart' => '',
|
||||
// 'People who are project managers' => '',
|
||||
// 'People who are project members' => '',
|
||||
// 'NOK - Norwegian Krone' => '',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Leden',
|
||||
// 'Shared project' => '',
|
||||
// 'Project managers' => '',
|
||||
// 'Gantt chart for all projects' => '',
|
||||
// 'Projects list' => '',
|
||||
// 'Gantt chart for this project' => '',
|
||||
// 'Project board' => '',
|
||||
// 'End date:' => '',
|
||||
// 'There is no start date or end date for this project.' => '',
|
||||
// 'Projects Gantt chart' => '',
|
||||
// 'Change task color when using a specific task link' => '',
|
||||
// 'Task link creation or modification' => '',
|
||||
'Milestone' => 'Mijlpaal',
|
||||
// 'Documentation: %s' => '',
|
||||
// 'Switch to the Gantt chart view' => '',
|
||||
// 'Reset the search/filter box' => '',
|
||||
// 'Documentation' => '',
|
||||
// 'Table of contents' => '',
|
||||
// 'Gantt' => '',
|
||||
// 'Author' => '',
|
||||
// 'Version' => '',
|
||||
// 'Plugins' => '',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Licencja:',
|
||||
'License' => 'Licencja',
|
||||
'Enter the text below' => 'Wpisz tekst poniżej',
|
||||
'Sort by position' => 'Sortuj wg pozycji',
|
||||
'Sort by date' => 'Sortuj wg daty',
|
||||
'Add task' => 'Dodaj zadanie',
|
||||
'Start date:' => 'Data rozpoczęcia:',
|
||||
'Due date:' => 'Termin',
|
||||
'There is no start date or due date for this task.' => 'Brak daty rozpoczęcia lub terminu zadania',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Przeniesienie bądź edycja zmieni datę rozpoczęcia oraz termin ukończenia zadania.',
|
||||
'There is no task in your project.' => 'Brak zadań w projekcie.',
|
||||
'Gantt chart' => 'Wykres Gantta',
|
||||
'People who are project managers' => 'Użytkownicy będący menedżerami projektu',
|
||||
'People who are project members' => 'Użytkownicy będący uczestnikami projektu',
|
||||
'NOK - Norwegian Krone' => 'NOK - Korona norweska',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Członkowie',
|
||||
'Shared project' => 'Projekt udostępniony',
|
||||
'Project managers' => 'Menedżerowie projektu',
|
||||
'Gantt chart for all projects' => 'Wykres Gantta dla wszystkich projektów',
|
||||
'Projects list' => 'Lista projektów',
|
||||
'Gantt chart for this project' => 'Wykres Gantta dla bieżacego projektu',
|
||||
'Project board' => 'Talica projektu',
|
||||
'End date:' => 'Data zakończenia:',
|
||||
'There is no start date or end date for this project.' => 'Nie zdefiniowano czasu trwania projektu',
|
||||
'Projects Gantt chart' => 'Wykres Gantta dla projektów',
|
||||
'Change task color when using a specific task link' => 'Zmień kolor zadania używając specjalnego adresu URL',
|
||||
'Task link creation or modification' => 'Adres URL do utworzenia zadania lub modyfikacji',
|
||||
'Milestone' => 'Kamień milowy',
|
||||
'Documentation: %s' => 'Dokumentacja: %s',
|
||||
'Switch to the Gantt chart view' => 'Przełącz na wykres Gantta',
|
||||
'Reset the search/filter box' => 'Zresetuj pole wyszukiwania/filtrowania',
|
||||
'Documentation' => 'Dokumentacja',
|
||||
'Table of contents' => 'Tablica zawartości',
|
||||
// 'Gantt' => '',
|
||||
'Author' => 'Autor',
|
||||
'Version' => 'Wersja',
|
||||
'Plugins' => 'Wtyczki',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Licença:',
|
||||
'License' => 'Licença',
|
||||
'Enter the text below' => 'Entre o texto abaixo',
|
||||
'Sort by position' => 'Ordenar por posição',
|
||||
'Sort by date' => 'Ordenar por data',
|
||||
'Add task' => 'Adicionar uma tarefa',
|
||||
'Start date:' => 'Data de início:',
|
||||
'Due date:' => 'Data fim estimada:',
|
||||
'There is no start date or due date for this task.' => 'Não existe data de início ou data fim estimada para esta tarefa.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Mover ou redimensionar uma tarefa irá alterar a data de início e conclusão estimada da tarefa.',
|
||||
'There is no task in your project.' => 'Não há tarefas em seu projeto.',
|
||||
'Gantt chart' => 'Gráfico de Gantt',
|
||||
'People who are project managers' => 'Pessoas que são gerente de projeto',
|
||||
'People who are project members' => 'Pessoas que são membro de projeto',
|
||||
'NOK - Norwegian Krone' => 'NOK - Coroa Norueguesa',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Membros',
|
||||
'Shared project' => 'Projeto compartilhado',
|
||||
'Project managers' => 'Gerentes de projeto',
|
||||
'Gantt chart for all projects' => 'Gráfico de Gantt para todos os projetos',
|
||||
'Projects list' => 'Lista dos projetos',
|
||||
'Gantt chart for this project' => 'Gráfico de Gantt para este projeto',
|
||||
'Project board' => 'Painel do projeto',
|
||||
'End date:' => 'Data de término:',
|
||||
'There is no start date or end date for this project.' => 'Não há data de início ou data de término para este projeto.',
|
||||
'Projects Gantt chart' => 'Gráfico de Gantt dos projetos',
|
||||
'Change task color when using a specific task link' => 'Mudar a cor da tarefa quando um link específico é utilizado',
|
||||
'Task link creation or modification' => 'Criação ou modificação de um link em uma tarefa',
|
||||
'Milestone' => 'Milestone',
|
||||
'Documentation: %s' => 'Documentação: %s',
|
||||
'Switch to the Gantt chart view' => 'Mudar para a vista gráfico de Gantt',
|
||||
'Reset the search/filter box' => 'Reiniciar o campo de pesquisa',
|
||||
'Documentation' => 'Documentação',
|
||||
'Table of contents' => 'Índice',
|
||||
'Gantt' => 'Gantt',
|
||||
'Author' => 'Autor',
|
||||
'Version' => 'Versão',
|
||||
'Plugins' => 'Extensões',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Licença:',
|
||||
'License' => 'Licença',
|
||||
'Enter the text below' => 'Escreva o texto em baixo',
|
||||
'Sort by position' => 'Ordenar por posição',
|
||||
'Sort by date' => 'Ordenar por data',
|
||||
'Add task' => 'Adicionar tarefa',
|
||||
'Start date:' => 'Data de inicio:',
|
||||
'Due date:' => 'Data de vencimento:',
|
||||
'There is no start date or due date for this task.' => 'Não existe data de inicio ou data de vencimento para esta tarefa.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Mover ou redimensionar a tarefa irá alterar a data de inicio e vencimento da tarefa.',
|
||||
'There is no task in your project.' => 'Não existe tarefa no seu projeto.',
|
||||
'Gantt chart' => 'Gráfico de Gantt',
|
||||
'People who are project managers' => 'Pessoas que são gestores do projeto',
|
||||
'People who are project members' => 'Pessoas que são membros do projeto',
|
||||
'NOK - Norwegian Krone' => 'NOK - Coroa Norueguesa',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Membros',
|
||||
'Shared project' => 'Projeto partilhado',
|
||||
'Project managers' => 'Gestores do projeto',
|
||||
'Gantt chart for all projects' => 'Gráfico de Gantt para todos os projetos',
|
||||
'Projects list' => 'Lista de projetos',
|
||||
'Gantt chart for this project' => 'Gráfico de Gantt para este projeto',
|
||||
'Project board' => 'Quadro de projeto',
|
||||
'End date:' => 'Data de fim:',
|
||||
'There is no start date or end date for this project.' => 'Não existe data de inicio ou fim para este projeto.',
|
||||
'Projects Gantt chart' => 'Gráfico de Gantt dos projetos',
|
||||
'Change task color when using a specific task link' => 'Alterar cor da tarefa quando se usar um tipo especifico de ligação de tarefa',
|
||||
'Task link creation or modification' => 'Criação ou modificação de ligação de tarefa',
|
||||
'Milestone' => 'Objectivo',
|
||||
'Documentation: %s' => 'Documentação: %s',
|
||||
'Switch to the Gantt chart view' => 'Mudar para vista de gráfico de Gantt',
|
||||
'Reset the search/filter box' => 'Repor caixa de procura/filtro',
|
||||
'Documentation' => 'Documentação',
|
||||
'Table of contents' => 'Tabela de conteúdos',
|
||||
'Gantt' => 'Gantt',
|
||||
'Author' => 'Autor',
|
||||
'Version' => 'Versão',
|
||||
'Plugins' => 'Plugins',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Лицензия:',
|
||||
'License' => 'Лицензия',
|
||||
'Enter the text below' => 'Введите текст ниже',
|
||||
'Sort by position' => 'Сортировать по позиции',
|
||||
'Sort by date' => 'Сортировать по дате',
|
||||
'Add task' => 'Добавить задачу',
|
||||
'Start date:' => 'Дата начала:',
|
||||
'Due date:' => 'Дата завершения:',
|
||||
'There is no start date or due date for this task.' => 'Для этой задачи нет даты начала или завершения.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Изменение или перемещение задачи повлечет изменение даты начала и завершения задачи.',
|
||||
'There is no task in your project.' => 'В Вашем проекте задач нет.',
|
||||
'Gantt chart' => 'Диаграмма Ганта',
|
||||
'People who are project managers' => 'Люди, которые менеджеры проекта',
|
||||
'People who are project members' => 'Люди, которые участники проекта',
|
||||
'NOK - Norwegian Krone' => 'НК - Норвежская крона',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Участники',
|
||||
'Shared project' => 'Общие/публичные проекты',
|
||||
'Project managers' => 'Менеджер проекта',
|
||||
'Gantt chart for all projects' => 'Диаграмма Ганта для всех проектов',
|
||||
'Projects list' => 'Список проектов',
|
||||
'Gantt chart for this project' => 'Диаграмма Ганта для этого проекта',
|
||||
'Project board' => 'Доска проекта',
|
||||
'End date:' => 'Дата завершения:',
|
||||
'There is no start date or end date for this project.' => 'В проекте не указаны дата начала или завершения.',
|
||||
'Projects Gantt chart' => 'Диаграмма Ганта проектов',
|
||||
'Change task color when using a specific task link' => 'Изменение цвета задач при использовании ссылки на определенные задачи',
|
||||
'Task link creation or modification' => 'Ссылка на создание или модификацию задачи',
|
||||
'Milestone' => 'Веха',
|
||||
'Documentation: %s' => 'Документация: %s',
|
||||
'Switch to the Gantt chart view' => 'Переключиться в режим диаграммы Ганта',
|
||||
'Reset the search/filter box' => 'Сбросить поиск/фильтр',
|
||||
'Documentation' => 'Документация',
|
||||
'Table of contents' => 'Содержание',
|
||||
'Gantt' => 'Гант',
|
||||
'Author' => 'Автор',
|
||||
'Version' => 'Версия',
|
||||
'Plugins' => 'Плагины',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
// 'License:' => '',
|
||||
// 'License' => '',
|
||||
// 'Enter the text below' => '',
|
||||
// 'Sort by position' => '',
|
||||
// 'Sort by date' => '',
|
||||
// 'Add task' => '',
|
||||
// 'Start date:' => '',
|
||||
// 'Due date:' => '',
|
||||
// 'There is no start date or due date for this task.' => '',
|
||||
// 'Moving or resizing a task will change the start and due date of the task.' => '',
|
||||
// 'There is no task in your project.' => '',
|
||||
// 'Gantt chart' => '',
|
||||
// 'People who are project managers' => '',
|
||||
// 'People who are project members' => '',
|
||||
// 'NOK - Norwegian Krone' => '',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
// 'Members' => '',
|
||||
// 'Shared project' => '',
|
||||
// 'Project managers' => '',
|
||||
// 'Gantt chart for all projects' => '',
|
||||
// 'Projects list' => '',
|
||||
// 'Gantt chart for this project' => '',
|
||||
// 'Project board' => '',
|
||||
// 'End date:' => '',
|
||||
// 'There is no start date or end date for this project.' => '',
|
||||
// 'Projects Gantt chart' => '',
|
||||
// 'Change task color when using a specific task link' => '',
|
||||
// 'Task link creation or modification' => '',
|
||||
// 'Milestone' => '',
|
||||
// 'Documentation: %s' => '',
|
||||
// 'Switch to the Gantt chart view' => '',
|
||||
// 'Reset the search/filter box' => '',
|
||||
// 'Documentation' => '',
|
||||
// 'Table of contents' => '',
|
||||
// 'Gantt' => '',
|
||||
// 'Author' => '',
|
||||
// 'Version' => '',
|
||||
// 'Plugins' => '',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Licens:',
|
||||
'License' => 'Licens',
|
||||
'Enter the text below' => 'Fyll i texten nedan',
|
||||
'Sort by position' => 'Sortera efter position',
|
||||
'Sort by date' => 'Sortera efter datum',
|
||||
'Add task' => 'Lägg till uppgift',
|
||||
'Start date:' => 'Startdatum:',
|
||||
'Due date:' => 'Slutdatum:',
|
||||
'There is no start date or due date for this task.' => 'Det finns inget startdatum eller slutdatum för uppgiften.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Flytt eller storleksändring av uppgiften ändrar start och slutdatum för uppgiften',
|
||||
'There is no task in your project.' => 'Det finns ingen uppgift i ditt projekt.',
|
||||
'Gantt chart' => 'Gantt-schema',
|
||||
// 'People who are project managers' => '',
|
||||
// 'People who are project members' => '',
|
||||
// 'NOK - Norwegian Krone' => '',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
// 'Members' => '',
|
||||
// 'Shared project' => '',
|
||||
// 'Project managers' => '',
|
||||
// 'Gantt chart for all projects' => '',
|
||||
// 'Projects list' => '',
|
||||
// 'Gantt chart for this project' => '',
|
||||
// 'Project board' => '',
|
||||
// 'End date:' => '',
|
||||
// 'There is no start date or end date for this project.' => '',
|
||||
// 'Projects Gantt chart' => '',
|
||||
// 'Change task color when using a specific task link' => '',
|
||||
// 'Task link creation or modification' => '',
|
||||
// 'Milestone' => '',
|
||||
// 'Documentation: %s' => '',
|
||||
// 'Switch to the Gantt chart view' => '',
|
||||
// 'Reset the search/filter box' => '',
|
||||
// 'Documentation' => '',
|
||||
// 'Table of contents' => '',
|
||||
// 'Gantt' => '',
|
||||
// 'Author' => '',
|
||||
// 'Version' => '',
|
||||
// 'Plugins' => '',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'สัญญาอนุญาต:',
|
||||
'License' => 'สัญญาอนุญาต',
|
||||
'Enter the text below' => 'พิมพ์ข้อความด้านล่าง',
|
||||
'Sort by position' => 'เรียงตามตำแหน่ง',
|
||||
'Sort by date' => 'เรียงตามวัน',
|
||||
'Add task' => 'เพิ่มงาน',
|
||||
'Start date:' => 'วันที่เริ่ม:',
|
||||
'Due date:' => 'วันครบกำหนด:',
|
||||
'There is no start date or due date for this task.' => 'งานนี้ไม่มีวันที่เริ่มหรือวันครบกำหนด',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'การย้ายหรือปรับขนาดงานจะมีการเปลี่ยนแปลงที่วันเริ่มต้นและวันที่ครบกำหนดของงาน',
|
||||
'There is no task in your project.' => 'โปรเจคนี้ไม่มีงาน',
|
||||
'Gantt chart' => 'แผนภูมิแกรนท์',
|
||||
'People who are project managers' => 'คนที่เป็นผู้จัดการโปรเจค',
|
||||
'People who are project members' => 'คนที่เป็นสมาชิกโปรเจค',
|
||||
'NOK - Norwegian Krone' => 'NOK - โครนนอร์เวย์',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'สมาชิก',
|
||||
'Shared project' => 'แชร์โปรเจค',
|
||||
'Project managers' => 'ผู้จัดการโปรเจค',
|
||||
'Gantt chart for all projects' => 'แผนภูมิแกรนท์สำหรับทุกโปรเจค',
|
||||
'Projects list' => 'รายการโปรเจค',
|
||||
'Gantt chart for this project' => 'แผนภูมิแกรนท์สำหรับโปรเจคนี้',
|
||||
'Project board' => 'บอร์ดโปรเจค',
|
||||
'End date:' => 'วันที่จบ:',
|
||||
'There is no start date or end date for this project.' => 'ไม่มีวันที่เริ่มหรือวันที่จบของโปรเจคนี้',
|
||||
'Projects Gantt chart' => 'แผนภูมิแกรน์ของโปรเจค',
|
||||
'Change task color when using a specific task link' => 'เปลี่ยนสีงานเมื่อมีการใช้การเชื่อมโยงงาน',
|
||||
'Task link creation or modification' => 'การสร้างการเชื่อมโยงงานหรือการปรับเปลี่ยน',
|
||||
'Milestone' => 'ขั้น',
|
||||
'Documentation: %s' => 'เอกสาร: %s',
|
||||
'Switch to the Gantt chart view' => 'เปลี่ยนเป็นมุมมองแผนภูมิแกรนท์',
|
||||
'Reset the search/filter box' => 'รีเซตกล่องค้นหา/ตัวกรอง',
|
||||
'Documentation' => 'เอกสาร',
|
||||
'Table of contents' => 'สารบัญ',
|
||||
'Gantt' => 'แกรนท์',
|
||||
'Author' => 'ผู้แต่ง',
|
||||
'Version' => 'เวอร์ชัน',
|
||||
'Plugins' => 'ปลั๊กอิน',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => 'Lisans:',
|
||||
'License' => 'Lisans',
|
||||
'Enter the text below' => 'Aşağıdaki metni girin',
|
||||
'Sort by position' => 'Pozisyona göre sırala',
|
||||
'Sort by date' => 'Tarihe göre sırala',
|
||||
'Add task' => 'Görev ekle',
|
||||
'Start date:' => 'Başlangıç tarihi:',
|
||||
'Due date:' => 'Tamamlanması gereken tarih:',
|
||||
'There is no start date or due date for this task.' => 'Bu görev için başlangıç veya tamamlanması gereken tarih yok.',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => 'Bir görevin boyutunu değiştirmek, görevin başlangıç ve tamamlanması gereken tarihlerini değiştirir.',
|
||||
'There is no task in your project.' => 'Projenizde hiç görev yok.',
|
||||
'Gantt chart' => 'Gantt diyagramı',
|
||||
'People who are project managers' => 'Proje müdürü olan kişiler',
|
||||
'People who are project members' => 'Proje üyesi olan kişiler',
|
||||
'NOK - Norwegian Krone' => ' NOK - Norveç Kronu',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => 'Üyeler',
|
||||
'Shared project' => 'Paylaşılan proje',
|
||||
'Project managers' => 'Proje müdürleri',
|
||||
'Gantt chart for all projects' => 'Tüm projeler için Gantt diyagramı',
|
||||
'Projects list' => 'Proje listesi',
|
||||
'Gantt chart for this project' => 'Bu proje için Gantt diyagramı',
|
||||
'Project board' => 'Proje Panosu',
|
||||
'End date:' => 'Bitiş tarihi:',
|
||||
'There is no start date or end date for this project.' => 'Bu proje için başlangıç veya bitiş tarihi yok.',
|
||||
'Projects Gantt chart' => 'Projeler Gantt diyagramı',
|
||||
'Change task color when using a specific task link' => 'Belirli bir görev bağlantısı kullanıldığında görevin rengini değiştir',
|
||||
'Task link creation or modification' => 'Görev bağlantısı oluşturulması veya değiştirilmesi',
|
||||
'Milestone' => 'Kilometre taşı',
|
||||
'Documentation: %s' => 'Dokümantasyon: %s',
|
||||
'Switch to the Gantt chart view' => 'Gantt diyagramı görünümüne geç',
|
||||
'Reset the search/filter box' => 'Arama/Filtre kutusunu sıfırla',
|
||||
'Documentation' => 'Dokümantasyon',
|
||||
'Table of contents' => 'İçindekiler',
|
||||
'Gantt' => 'Gantt',
|
||||
'Author' => 'Yazar',
|
||||
'Version' => 'Versiyon',
|
||||
'Plugins' => 'Eklentiler',
|
||||
|
|
|
|||
|
|
@ -729,15 +729,8 @@ return array(
|
|||
'License:' => '授权许可:',
|
||||
'License' => '授权许可',
|
||||
'Enter the text below' => '输入下方的文本',
|
||||
'Sort by position' => '按位置排序',
|
||||
'Sort by date' => '按日期排序',
|
||||
'Add task' => '添加任务',
|
||||
'Start date:' => '开始日期',
|
||||
'Due date:' => '到期日期',
|
||||
'There is no start date or due date for this task.' => '当前任务没有开始或结束时间。',
|
||||
'Moving or resizing a task will change the start and due date of the task.' => '移动或者重设任务将改变任务开始和结束时间。',
|
||||
'There is no task in your project.' => '当前项目还没有任务',
|
||||
'Gantt chart' => '甘特图',
|
||||
'People who are project managers' => '项目管理员',
|
||||
'People who are project members' => '项目成员',
|
||||
'NOK - Norwegian Krone' => '克朗',
|
||||
|
|
@ -749,22 +742,15 @@ return array(
|
|||
'Members' => '成员',
|
||||
'Shared project' => '公开项目',
|
||||
'Project managers' => '项目管理员',
|
||||
'Gantt chart for all projects' => '所有项目的甘特图',
|
||||
'Projects list' => '项目列表',
|
||||
'Gantt chart for this project' => '此项目的甘特图',
|
||||
'Project board' => '项目面板',
|
||||
'End date:' => '结束日期',
|
||||
'There is no start date or end date for this project.' => '当前项目没有开始或结束日期',
|
||||
'Projects Gantt chart' => '项目甘特图',
|
||||
'Change task color when using a specific task link' => '当任务关联到指定任务时改变颜色',
|
||||
'Task link creation or modification' => '任务链接创建或更新时间',
|
||||
'Milestone' => '里程碑',
|
||||
'Documentation: %s' => '文档:%s',
|
||||
'Switch to the Gantt chart view' => '切换到甘特图',
|
||||
'Reset the search/filter box' => '重置搜索/过滤框',
|
||||
'Documentation' => '文档',
|
||||
'Table of contents' => '表内容',
|
||||
'Gantt' => '甘特图',
|
||||
'Author' => '作者',
|
||||
'Version' => '版本',
|
||||
'Plugins' => '插件',
|
||||
|
|
|
|||
|
|
@ -89,7 +89,6 @@ class AuthenticationProvider implements ServiceProviderInterface
|
|||
$acl->add('CustomFilterController', '*', Role::PROJECT_MEMBER);
|
||||
$acl->add('ExportController', '*', Role::PROJECT_MANAGER);
|
||||
$acl->add('TaskFileController', array('screenshot', 'create', 'save', 'remove', 'confirm'), Role::PROJECT_MEMBER);
|
||||
$acl->add('TaskGanttController', '*', Role::PROJECT_MANAGER);
|
||||
$acl->add('ProjectViewController', array('share', 'updateSharing', 'integrations', 'updateIntegrations', 'notifications', 'updateNotifications', 'duplicate', 'doDuplication'), Role::PROJECT_MANAGER);
|
||||
$acl->add('ProjectPermissionController', '*', Role::PROJECT_MANAGER);
|
||||
$acl->add('ProjectEditController', '*', Role::PROJECT_MANAGER);
|
||||
|
|
@ -145,7 +144,6 @@ class AuthenticationProvider implements ServiceProviderInterface
|
|||
$acl->add('TagController', '*', Role::APP_ADMIN);
|
||||
$acl->add('PluginController', '*', Role::APP_ADMIN);
|
||||
$acl->add('CurrencyController', '*', Role::APP_ADMIN);
|
||||
$acl->add('ProjectGanttController', '*', Role::APP_MANAGER);
|
||||
$acl->add('GroupListController', '*', Role::APP_ADMIN);
|
||||
$acl->add('GroupCreationController', '*', Role::APP_ADMIN);
|
||||
$acl->add('GroupModificationController', '*', Role::APP_ADMIN);
|
||||
|
|
|
|||
|
|
@ -22,11 +22,9 @@ class FormatterProvider implements ServiceProviderInterface
|
|||
'BoardTaskFormatter',
|
||||
'GroupAutoCompleteFormatter',
|
||||
'ProjectActivityEventFormatter',
|
||||
'ProjectGanttFormatter',
|
||||
'SubtaskListFormatter',
|
||||
'SubtaskTimeTrackingCalendarFormatter',
|
||||
'TaskAutoCompleteFormatter',
|
||||
'TaskGanttFormatter',
|
||||
'TaskICalFormatter',
|
||||
'TaskListFormatter',
|
||||
'TaskListSubtaskFormatter',
|
||||
|
|
|
|||
|
|
@ -122,10 +122,6 @@ class RouteProvider implements ServiceProviderInterface
|
|||
$container['route']->addRoute('list/:project_id', 'TaskListController', 'show');
|
||||
$container['route']->addRoute('l/:project_id', 'TaskListController', 'show');
|
||||
|
||||
// Gantt routes
|
||||
$container['route']->addRoute('gantt/:project_id', 'TaskGanttController', 'show');
|
||||
$container['route']->addRoute('gantt/:project_id/sort/:sorting', 'TaskGanttController', 'show');
|
||||
|
||||
// Feed routes
|
||||
$container['route']->addRoute('feed/project/:token', 'FeedController', 'project');
|
||||
$container['route']->addRoute('feed/user/:token', 'FeedController', 'user');
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
<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 list view') ?> = <strong>v l</strong></li>
|
||||
<li><?= t('Switch to the Gantt chart view') ?> = <strong>v g</strong></li>
|
||||
</ul>
|
||||
<h3><?= t('Board view') ?></h3>
|
||||
<ul>
|
||||
|
|
|
|||
|
|
@ -7,12 +7,6 @@
|
|||
<li>
|
||||
<?= $this->url->icon('list', t('Listing'), 'TaskListController', 'show', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<?php if ($this->user->hasProjectAccess('TaskGanttController', 'show', $project['id'])): ?>
|
||||
<li>
|
||||
<?= $this->url->icon('sliders', t('Gantt'), 'TaskGanttController', 'show', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
|
||||
<li>
|
||||
<?= $this->modal->medium('dashboard', t('Activity'), 'ActivityController', 'project', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -1,42 +0,0 @@
|
|||
<section id="main">
|
||||
<div class="page-header">
|
||||
<ul>
|
||||
<?php if ($this->user->hasAccess('ProjectCreationController', 'create')): ?>
|
||||
<li>
|
||||
<?= $this->modal->medium('plus', t('New project'), 'ProjectCreationController', 'create') ?>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
<?php if ($this->app->config('disable_private_project', 0) == 0): ?>
|
||||
<li>
|
||||
<?= $this->modal->medium('lock', t('New private project'), 'ProjectCreationController', 'createPrivate') ?>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
<li>
|
||||
<?= $this->url->icon('folder', t('Projects list'), 'ProjectListController', 'show') ?>
|
||||
</li>
|
||||
<?php if ($this->user->hasAccess('ProjectUserOverviewController', 'managers')): ?>
|
||||
<li>
|
||||
<?= $this->url->icon('user', t('Users overview'), 'ProjectUserOverviewController', 'managers') ?>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
</ul>
|
||||
</div>
|
||||
<section>
|
||||
<?php if (empty($projects)): ?>
|
||||
<p class="alert"><?= t('No project') ?></p>
|
||||
<?php else: ?>
|
||||
<div
|
||||
id="gantt-chart"
|
||||
data-records='<?= json_encode($projects, JSON_HEX_APOS) ?>'
|
||||
data-save-url="<?= $this->url->href('ProjectGanttController', 'save') ?>"
|
||||
data-label-project-manager="<?= t('Project managers') ?>"
|
||||
data-label-project-member="<?= t('Project members') ?>"
|
||||
data-label-gantt-link="<?= t('Gantt chart for this project') ?>"
|
||||
data-label-board-link="<?= t('Project board') ?>"
|
||||
data-label-start-date="<?= t('Start date:') ?>"
|
||||
data-label-end-date="<?= t('End date:') ?>"
|
||||
data-label-not-defined="<?= t('There is no start date or end date for this project.') ?>"
|
||||
></div>
|
||||
<?php endif ?>
|
||||
</section>
|
||||
</section>
|
||||
|
|
@ -8,10 +8,6 @@
|
|||
<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>
|
||||
<?php if ($this->user->hasProjectAccess('TaskGanttController', 'show', $project['id'])): ?>
|
||||
<li <?= $this->app->checkMenuSelection('TaskGanttController') ?>>
|
||||
<?= $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>
|
||||
|
|
|
|||
|
|
@ -18,10 +18,6 @@
|
|||
<li><?= $this->url->icon('user', t('Users overview'), 'ProjectUserOverviewController', 'managers') ?></li>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($this->user->hasAccess('ProjectGanttController', 'show')): ?>
|
||||
<li><?= $this->url->icon('sliders', t('Projects Gantt chart'), 'ProjectGanttController', 'show') ?></li>
|
||||
<?php endif ?>
|
||||
|
||||
<?= $this->hook->render('template:project-list:menu:after') ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,11 +14,6 @@
|
|||
<li>
|
||||
<?= $this->url->icon('folder', t('Projects list'), 'ProjectListController', 'show') ?>
|
||||
</li>
|
||||
<?php if ($this->user->hasAccess('ProjectGanttController', 'show')): ?>
|
||||
<li>
|
||||
<?= $this->url->icon('sliders', t('Projects Gantt chart'), 'ProjectGanttController', 'show') ?>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
</ul>
|
||||
</div>
|
||||
<section class="sidebar-container">
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@
|
|||
</td>
|
||||
<td>
|
||||
<?= $this->url->link('<i class="fa fa-th"></i>', 'BoardViewController', 'show', array('project_id' => $project['id']), false, 'dashboard-table-link', t('Board')) ?>
|
||||
<?= $this->url->link('<i class="fa fa-sliders fa-fw"></i>', 'TaskGanttController', 'show', array('project_id' => $project['id']), false, 'dashboard-table-link', t('Gantt chart')) ?>
|
||||
<?= $this->url->link('<i class="fa fa-cog fa-fw"></i>', 'ProjectViewController', 'show', array('project_id' => $project['id']), false, 'dashboard-table-link', t('Project settings')) ?>
|
||||
|
||||
<?= $this->text->e($project['project_name']) ?>
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
<section id="main">
|
||||
<?= $this->projectHeader->render($project, 'TaskGanttController', 'show') ?>
|
||||
<div class="menu-inline">
|
||||
<ul>
|
||||
<li <?= $sorting === 'board' ? 'class="active"' : '' ?>>
|
||||
<?= $this->url->icon('sort-numeric-asc', t('Sort by position'), 'TaskGanttController', 'show', array('project_id' => $project['id'], 'sorting' => 'board')) ?>
|
||||
</li>
|
||||
<li <?= $sorting === 'date' ? 'class="active"' : '' ?>>
|
||||
<?= $this->url->icon('sort-amount-asc', t('Sort by date'), 'TaskGanttController', 'show', array('project_id' => $project['id'], 'sorting' => 'date')) ?>
|
||||
</li>
|
||||
<li>
|
||||
<?= $this->modal->large('plus', t('Add task'), 'TaskCreationController', 'show', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<?php if (! empty($tasks)): ?>
|
||||
<div
|
||||
id="gantt-chart"
|
||||
data-records='<?= json_encode($tasks, JSON_HEX_APOS) ?>'
|
||||
data-save-url="<?= $this->url->href('TaskGanttController', 'save', array('project_id' => $project['id'])) ?>"
|
||||
data-label-start-date="<?= t('Start date:') ?>"
|
||||
data-label-end-date="<?= t('Due date:') ?>"
|
||||
data-label-assignee="<?= t('Assignee:') ?>"
|
||||
data-label-not-defined="<?= t('There is no start date or due date for this task.') ?>"
|
||||
></div>
|
||||
<p class="alert alert-info"><?= t('Moving or resizing a task will change the start and due date of the task.') ?></p>
|
||||
<?php else: ?>
|
||||
<p class="alert"><?= t('There is no task in your project.') ?></p>
|
||||
<?php endif ?>
|
||||
</section>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -120,8 +120,4 @@ KB.keyboardShortcuts = function () {
|
|||
KB.onKey('v+l', function () {
|
||||
goToLink('a.view-listing');
|
||||
});
|
||||
|
||||
KB.onKey('v+g', function () {
|
||||
goToLink('a.view-gantt');
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,489 +0,0 @@
|
|||
// Based on jQuery.ganttView v.0.8.8 Copyright (c) 2010 JC Grubbs - jc.grubbs@devmynd.com - MIT License
|
||||
Kanboard.Gantt = function(app) {
|
||||
this.app = app;
|
||||
this.data = [];
|
||||
|
||||
this.options = {
|
||||
container: "#gantt-chart",
|
||||
showWeekends: true,
|
||||
allowMoves: true,
|
||||
allowResizes: true,
|
||||
cellWidth: 21,
|
||||
cellHeight: 31,
|
||||
slideWidth: 1000,
|
||||
vHeaderWidth: 200
|
||||
};
|
||||
};
|
||||
|
||||
Kanboard.Gantt.prototype.execute = function() {
|
||||
if (this.app.hasId("gantt-chart")) {
|
||||
this.show();
|
||||
}
|
||||
};
|
||||
|
||||
// Save record after a resize or move
|
||||
Kanboard.Gantt.prototype.saveRecord = function(record) {
|
||||
this.app.showLoadingIcon();
|
||||
|
||||
$.ajax({
|
||||
cache: false,
|
||||
url: $(this.options.container).data("save-url"),
|
||||
contentType: "application/json",
|
||||
type: "POST",
|
||||
processData: false,
|
||||
data: JSON.stringify(record),
|
||||
complete: this.app.hideLoadingIcon.bind(this)
|
||||
});
|
||||
};
|
||||
|
||||
// Build the Gantt chart
|
||||
Kanboard.Gantt.prototype.show = function() {
|
||||
this.data = this.prepareData($(this.options.container).data('records'));
|
||||
|
||||
var minDays = Math.floor((this.options.slideWidth / this.options.cellWidth) + 5);
|
||||
var range = this.getDateRange(minDays);
|
||||
var startDate = range[0];
|
||||
var endDate = range[1];
|
||||
var container = $(this.options.container);
|
||||
var chart = jQuery("<div>", { "class": "ganttview" });
|
||||
|
||||
chart.append(this.renderVerticalHeader());
|
||||
chart.append(this.renderSlider(startDate, endDate));
|
||||
container.append(chart);
|
||||
|
||||
jQuery("div.ganttview-grid-row div.ganttview-grid-row-cell:last-child", container).addClass("last");
|
||||
jQuery("div.ganttview-hzheader-days div.ganttview-hzheader-day:last-child", container).addClass("last");
|
||||
jQuery("div.ganttview-hzheader-months div.ganttview-hzheader-month:last-child", container).addClass("last");
|
||||
|
||||
if (! $(this.options.container).data('readonly')) {
|
||||
this.listenForBlockResize(startDate);
|
||||
this.listenForBlockMove(startDate);
|
||||
}
|
||||
else {
|
||||
this.options.allowResizes = false;
|
||||
this.options.allowMoves = false;
|
||||
}
|
||||
};
|
||||
|
||||
// Render record list on the left
|
||||
Kanboard.Gantt.prototype.renderVerticalHeader = function() {
|
||||
var headerDiv = jQuery("<div>", { "class": "ganttview-vtheader" });
|
||||
var itemDiv = jQuery("<div>", { "class": "ganttview-vtheader-item" });
|
||||
var seriesDiv = jQuery("<div>", { "class": "ganttview-vtheader-series" });
|
||||
|
||||
for (var i = 0; i < this.data.length; i++) {
|
||||
var content = jQuery("<span>")
|
||||
.append(jQuery("<i>", {"class": "fa fa-info-circle tooltip", "title": this.getVerticalHeaderTooltip(this.data[i])}))
|
||||
.append(" ");
|
||||
|
||||
if (this.data[i].type == "task") {
|
||||
content.append(jQuery("<a>", {"href": this.data[i].link, "title": this.data[i].title}).text(this.data[i].title));
|
||||
}
|
||||
else {
|
||||
content
|
||||
.append(jQuery("<a>", {"href": this.data[i].board_link, "title": $(this.options.container).data("label-board-link")}).append('<i class="fa fa-th"></i>'))
|
||||
.append(" ")
|
||||
.append(jQuery("<a>", {"href": this.data[i].gantt_link, "title": $(this.options.container).data("label-gantt-link")}).append('<i class="fa fa-sliders"></i>'))
|
||||
.append(" ")
|
||||
.append(jQuery("<a>", {"href": this.data[i].link}).text(this.data[i].title));
|
||||
}
|
||||
|
||||
seriesDiv.append(jQuery("<div>", {"class": "ganttview-vtheader-series-name"}).append(content));
|
||||
}
|
||||
|
||||
itemDiv.append(seriesDiv);
|
||||
headerDiv.append(itemDiv);
|
||||
|
||||
return headerDiv;
|
||||
};
|
||||
|
||||
// Render right part of the chart (top header + grid + bars)
|
||||
Kanboard.Gantt.prototype.renderSlider = function(startDate, endDate) {
|
||||
var slideDiv = jQuery("<div>", {"class": "ganttview-slide-container"});
|
||||
var dates = this.getDates(startDate, endDate);
|
||||
|
||||
slideDiv.append(this.renderHorizontalHeader(dates));
|
||||
slideDiv.append(this.renderGrid(dates));
|
||||
slideDiv.append(this.addBlockContainers());
|
||||
this.addBlocks(slideDiv, startDate);
|
||||
|
||||
return slideDiv;
|
||||
};
|
||||
|
||||
// Render top header (days)
|
||||
Kanboard.Gantt.prototype.renderHorizontalHeader = function(dates) {
|
||||
var headerDiv = jQuery("<div>", { "class": "ganttview-hzheader" });
|
||||
var monthsDiv = jQuery("<div>", { "class": "ganttview-hzheader-months" });
|
||||
var daysDiv = jQuery("<div>", { "class": "ganttview-hzheader-days" });
|
||||
var totalW = 0;
|
||||
|
||||
for (var y in dates) {
|
||||
for (var m in dates[y]) {
|
||||
var w = dates[y][m].length * this.options.cellWidth;
|
||||
totalW = totalW + w;
|
||||
|
||||
monthsDiv.append(jQuery("<div>", {
|
||||
"class": "ganttview-hzheader-month",
|
||||
"css": { "width": (w - 1) + "px" }
|
||||
}).append($.datepicker.regional[$("body").data('js-lang')].monthNames[m] + " " + y));
|
||||
|
||||
for (var d in dates[y][m]) {
|
||||
daysDiv.append(jQuery("<div>", { "class": "ganttview-hzheader-day" }).append(dates[y][m][d].getDate()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
monthsDiv.css("width", totalW + "px");
|
||||
daysDiv.css("width", totalW + "px");
|
||||
headerDiv.append(monthsDiv).append(daysDiv);
|
||||
|
||||
return headerDiv;
|
||||
};
|
||||
|
||||
// Render grid
|
||||
Kanboard.Gantt.prototype.renderGrid = function(dates) {
|
||||
var gridDiv = jQuery("<div>", { "class": "ganttview-grid" });
|
||||
var rowDiv = jQuery("<div>", { "class": "ganttview-grid-row" });
|
||||
|
||||
for (var y in dates) {
|
||||
for (var m in dates[y]) {
|
||||
for (var d in dates[y][m]) {
|
||||
var cellDiv = jQuery("<div>", { "class": "ganttview-grid-row-cell" });
|
||||
if (this.options.showWeekends && this.isWeekend(dates[y][m][d])) {
|
||||
cellDiv.addClass("ganttview-weekend");
|
||||
}
|
||||
rowDiv.append(cellDiv);
|
||||
}
|
||||
}
|
||||
}
|
||||
var w = jQuery("div.ganttview-grid-row-cell", rowDiv).length * this.options.cellWidth;
|
||||
rowDiv.css("width", w + "px");
|
||||
gridDiv.css("width", w + "px");
|
||||
|
||||
for (var i = 0; i < this.data.length; i++) {
|
||||
gridDiv.append(rowDiv.clone());
|
||||
}
|
||||
|
||||
return gridDiv;
|
||||
};
|
||||
|
||||
// Render bar containers
|
||||
Kanboard.Gantt.prototype.addBlockContainers = function() {
|
||||
var blocksDiv = jQuery("<div>", { "class": "ganttview-blocks" });
|
||||
|
||||
for (var i = 0; i < this.data.length; i++) {
|
||||
blocksDiv.append(jQuery("<div>", { "class": "ganttview-block-container" }));
|
||||
}
|
||||
|
||||
return blocksDiv;
|
||||
};
|
||||
|
||||
// Render bars
|
||||
Kanboard.Gantt.prototype.addBlocks = function(slider, start) {
|
||||
var rows = jQuery("div.ganttview-blocks div.ganttview-block-container", slider);
|
||||
var rowIdx = 0;
|
||||
|
||||
for (var i = 0; i < this.data.length; i++) {
|
||||
var series = this.data[i];
|
||||
var size = this.daysBetween(series.start, series.end) + 1;
|
||||
var offset = this.daysBetween(start, series.start);
|
||||
var text = jQuery("<div>", {"class": "ganttview-block-text"});
|
||||
|
||||
var block = jQuery("<div>", {
|
||||
"class": "ganttview-block tooltip" + (this.options.allowMoves ? " ganttview-block-movable" : ""),
|
||||
"title": this.getBarTooltip(series),
|
||||
"css": {
|
||||
"width": ((size * this.options.cellWidth) - 9) + "px",
|
||||
"margin-left": (offset * this.options.cellWidth) + "px"
|
||||
}
|
||||
}).append(text);
|
||||
|
||||
if (size >= 2) {
|
||||
text.append(series.progress);
|
||||
}
|
||||
|
||||
block.data("record", series);
|
||||
this.setBarColor(block, series);
|
||||
|
||||
jQuery(rows[rowIdx]).append(block);
|
||||
rowIdx = rowIdx + 1;
|
||||
}
|
||||
};
|
||||
|
||||
// Get tooltip for vertical header
|
||||
Kanboard.Gantt.prototype.getVerticalHeaderTooltip = function(record) {
|
||||
var tooltip = "";
|
||||
|
||||
if (record.type == "task") {
|
||||
tooltip = jQuery("<span>")
|
||||
.append(jQuery("<strong>").text(record.column_title))
|
||||
.append(document.createTextNode(' (' + record.progress + ')'))
|
||||
.append(jQuery("<br>"))
|
||||
.append(document.createTextNode(record.title)).prop('outerHTML');
|
||||
}
|
||||
else {
|
||||
var types = ["project-manager", "project-member"];
|
||||
|
||||
for (var index in types) {
|
||||
var type = types[index];
|
||||
if (! jQuery.isEmptyObject(record.users[type])) {
|
||||
var list = jQuery("<ul>");
|
||||
|
||||
for (var user_id in record.users[type]) {
|
||||
if (user_id) {
|
||||
list.append(jQuery("<li>").text(record.users[type][user_id]));
|
||||
}
|
||||
}
|
||||
|
||||
tooltip += "<p><strong>" + $(this.options.container).data("label-" + type) + "</strong></p>" + list.prop('outerHTML');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return tooltip;
|
||||
};
|
||||
|
||||
// Get tooltip for bars
|
||||
Kanboard.Gantt.prototype.getBarTooltip = function(record) {
|
||||
var tooltip = "";
|
||||
|
||||
if (record.not_defined) {
|
||||
tooltip = $(this.options.container).data("label-not-defined");
|
||||
}
|
||||
else {
|
||||
if (record.type == "task") {
|
||||
var assigneeLabel = $(this.options.container).data("label-assignee");
|
||||
tooltip += jQuery("<strong>").text(record.progress).prop('outerHTML');
|
||||
tooltip += "<br>";
|
||||
tooltip += jQuery('<span>').append(document.createTextNode(assigneeLabel + " " + (record.assignee ? record.assignee : ''))).prop('outerHTML');
|
||||
tooltip += "<br>";
|
||||
}
|
||||
|
||||
tooltip += $(this.options.container).data("label-start-date") + " " + $.datepicker.formatDate('yy-mm-dd', record.start) + "<br/>";
|
||||
tooltip += $(this.options.container).data("label-end-date") + " " + $.datepicker.formatDate('yy-mm-dd', record.end);
|
||||
}
|
||||
|
||||
return tooltip;
|
||||
};
|
||||
|
||||
// Set bar color
|
||||
Kanboard.Gantt.prototype.setBarColor = function(block, record) {
|
||||
if (record.not_defined) {
|
||||
block.addClass("ganttview-block-not-defined");
|
||||
}
|
||||
else {
|
||||
block.css("background-color", record.color.background);
|
||||
block.css("border-color", record.color.border);
|
||||
|
||||
if (record.progress != "0%") {
|
||||
block.append(jQuery("<div>", {
|
||||
"css": {
|
||||
"z-index": 0,
|
||||
"position": "absolute",
|
||||
"top": 0,
|
||||
"bottom": 0,
|
||||
"background-color": record.color.border,
|
||||
"width": record.progress,
|
||||
"opacity": 0.4
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Setup jquery-ui resizable
|
||||
Kanboard.Gantt.prototype.listenForBlockResize = function(startDate) {
|
||||
var self = this;
|
||||
|
||||
jQuery("div.ganttview-block", this.options.container).resizable({
|
||||
grid: this.options.cellWidth,
|
||||
handles: "e,w",
|
||||
delay: 300,
|
||||
stop: function() {
|
||||
var block = jQuery(this);
|
||||
self.updateDataAndPosition(block, startDate);
|
||||
self.saveRecord(block.data("record"));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Setup jquery-ui drag and drop
|
||||
Kanboard.Gantt.prototype.listenForBlockMove = function(startDate) {
|
||||
var self = this;
|
||||
|
||||
jQuery("div.ganttview-block", this.options.container).draggable({
|
||||
axis: "x",
|
||||
delay: 300,
|
||||
grid: [this.options.cellWidth, this.options.cellWidth],
|
||||
stop: function() {
|
||||
var block = jQuery(this);
|
||||
self.updateDataAndPosition(block, startDate);
|
||||
self.saveRecord(block.data("record"));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Update the record data and the position on the chart
|
||||
Kanboard.Gantt.prototype.updateDataAndPosition = function(block, startDate) {
|
||||
var container = jQuery("div.ganttview-slide-container", this.options.container);
|
||||
var scroll = container.scrollLeft();
|
||||
var offset = block.offset().left - container.offset().left - 1 + scroll;
|
||||
var record = block.data("record");
|
||||
|
||||
// Restore color for defined block
|
||||
record.not_defined = false;
|
||||
this.setBarColor(block, record);
|
||||
|
||||
// Set new start date
|
||||
var daysFromStart = Math.round(offset / this.options.cellWidth);
|
||||
var newStart = this.addDays(this.cloneDate(startDate), daysFromStart);
|
||||
record.start = newStart;
|
||||
|
||||
// Set new end date
|
||||
var width = block.outerWidth();
|
||||
var numberOfDays = Math.round(width / this.options.cellWidth) - 1;
|
||||
record.end = this.addDays(this.cloneDate(newStart), numberOfDays);
|
||||
|
||||
if (record.type === "task" && numberOfDays > 0) {
|
||||
jQuery("div.ganttview-block-text", block).text(record.progress);
|
||||
}
|
||||
|
||||
// Update tooltip
|
||||
block.attr("title", this.getBarTooltip(record));
|
||||
|
||||
block.data("record", record);
|
||||
|
||||
// Remove top and left properties to avoid incorrect block positioning,
|
||||
// set position to relative to keep blocks relative to scrollbar when scrolling
|
||||
block
|
||||
.css("top", "")
|
||||
.css("left", "")
|
||||
.css("position", "relative")
|
||||
.css("margin-left", offset + "px");
|
||||
};
|
||||
|
||||
// Creates a 3 dimensional array [year][month][day] of every day
|
||||
// between the given start and end dates
|
||||
Kanboard.Gantt.prototype.getDates = function(start, end) {
|
||||
var dates = [];
|
||||
dates[start.getFullYear()] = [];
|
||||
dates[start.getFullYear()][start.getMonth()] = [start];
|
||||
var last = start;
|
||||
|
||||
while (this.compareDate(last, end) == -1) {
|
||||
var next = this.addDays(this.cloneDate(last), 1);
|
||||
|
||||
if (! dates[next.getFullYear()]) {
|
||||
dates[next.getFullYear()] = [];
|
||||
}
|
||||
|
||||
if (! dates[next.getFullYear()][next.getMonth()]) {
|
||||
dates[next.getFullYear()][next.getMonth()] = [];
|
||||
}
|
||||
|
||||
dates[next.getFullYear()][next.getMonth()].push(next);
|
||||
last = next;
|
||||
}
|
||||
|
||||
return dates;
|
||||
};
|
||||
|
||||
// Convert data to Date object
|
||||
Kanboard.Gantt.prototype.prepareData = function(data) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var start = new Date(data[i].start[0], data[i].start[1] - 1, data[i].start[2], 0, 0, 0, 0);
|
||||
data[i].start = start;
|
||||
|
||||
var end = new Date(data[i].end[0], data[i].end[1] - 1, data[i].end[2], 0, 0, 0, 0);
|
||||
data[i].end = end;
|
||||
}
|
||||
|
||||
return data;
|
||||
};
|
||||
|
||||
// Get the start and end date from the data provided
|
||||
Kanboard.Gantt.prototype.getDateRange = function(minDays) {
|
||||
var minStart = new Date();
|
||||
var maxEnd = new Date();
|
||||
|
||||
for (var i = 0; i < this.data.length; i++) {
|
||||
var start = new Date();
|
||||
start.setTime(Date.parse(this.data[i].start));
|
||||
|
||||
var end = new Date();
|
||||
end.setTime(Date.parse(this.data[i].end));
|
||||
|
||||
if (i == 0) {
|
||||
minStart = start;
|
||||
maxEnd = end;
|
||||
}
|
||||
|
||||
if (this.compareDate(minStart, start) == 1) {
|
||||
minStart = start;
|
||||
}
|
||||
|
||||
if (this.compareDate(maxEnd, end) == -1) {
|
||||
maxEnd = end;
|
||||
}
|
||||
}
|
||||
|
||||
// Insure that the width of the chart is at least the slide width to avoid empty
|
||||
// whitespace to the right of the grid
|
||||
if (this.daysBetween(minStart, maxEnd) < minDays) {
|
||||
maxEnd = this.addDays(this.cloneDate(minStart), minDays);
|
||||
}
|
||||
|
||||
// Always start one day before the minStart
|
||||
minStart.setDate(minStart.getDate() - 1);
|
||||
|
||||
return [minStart, maxEnd];
|
||||
};
|
||||
|
||||
// Returns the number of day between 2 dates
|
||||
Kanboard.Gantt.prototype.daysBetween = function(start, end) {
|
||||
if (! start || ! end) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
var count = 0, date = this.cloneDate(start);
|
||||
|
||||
while (this.compareDate(date, end) == -1) {
|
||||
count = count + 1;
|
||||
this.addDays(date, 1);
|
||||
}
|
||||
|
||||
return count;
|
||||
};
|
||||
|
||||
// Return true if it's the weekend
|
||||
Kanboard.Gantt.prototype.isWeekend = function(date) {
|
||||
return date.getDay() % 6 == 0;
|
||||
};
|
||||
|
||||
// Clone Date object
|
||||
Kanboard.Gantt.prototype.cloneDate = function(date) {
|
||||
return new Date(date.getTime());
|
||||
};
|
||||
|
||||
// Add days to a Date object
|
||||
Kanboard.Gantt.prototype.addDays = function(date, value) {
|
||||
date.setDate(date.getDate() + value * 1);
|
||||
return date;
|
||||
};
|
||||
|
||||
/**
|
||||
* Compares the first date to the second date and returns an number indication of their relative values.
|
||||
*
|
||||
* -1 = date1 is lessthan date2
|
||||
* 0 = values are equal
|
||||
* 1 = date1 is greaterthan date2.
|
||||
*/
|
||||
Kanboard.Gantt.prototype.compareDate = function(date1, date2) {
|
||||
if (isNaN(date1) || isNaN(date2)) {
|
||||
throw new Error(date1 + " - " + date2);
|
||||
} else if (date1 instanceof Date && date2 instanceof Date) {
|
||||
return (date1 < date2) ? -1 : (date1 > date2) ? 1 : 0;
|
||||
} else {
|
||||
throw new TypeError(date1 + " - " + date2);
|
||||
}
|
||||
};
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
@import variables
|
||||
|
||||
div
|
||||
&.ganttview-hzheader-month, &.ganttview-hzheader-day, &.ganttview-vtheader, &.ganttview-vtheader-item-name, &.ganttview-vtheader-series, &.ganttview-grid, &.ganttview-grid-row-cell
|
||||
float: left
|
||||
&.ganttview-hzheader-month, &.ganttview-hzheader-day
|
||||
text-align: center
|
||||
&.ganttview-grid-row-cell.last, &.ganttview-hzheader-day.last, &.ganttview-hzheader-month.last
|
||||
border-right: none
|
||||
&.ganttview
|
||||
border: 1px solid #999
|
||||
&.ganttview-hzheader-month
|
||||
width: 60px
|
||||
height: 20px
|
||||
border-right: 1px solid #d0d0d0
|
||||
line-height: 20px
|
||||
overflow: hidden
|
||||
&.ganttview-hzheader-day
|
||||
width: 20px
|
||||
height: 20px
|
||||
border-right: 1px solid #f0f0f0
|
||||
border-top: 1px solid #d0d0d0
|
||||
line-height: 20px
|
||||
color: color('medium')
|
||||
&.ganttview-vtheader
|
||||
margin-top: 41px
|
||||
width: 400px
|
||||
overflow: hidden
|
||||
background-color: #fff
|
||||
&.ganttview-vtheader-item
|
||||
color: color('medium')
|
||||
&.ganttview-vtheader-series-name
|
||||
width: 400px
|
||||
height: 31px
|
||||
line-height: 31px
|
||||
padding-left: 3px
|
||||
border-top: 1px solid #d0d0d0
|
||||
text-overflow: ellipsis
|
||||
overflow: hidden
|
||||
white-space: nowrap
|
||||
a
|
||||
color: color('medium')
|
||||
text-decoration: none
|
||||
&:hover
|
||||
color: color('primary')
|
||||
text-decoration: underline
|
||||
i
|
||||
color: color('dark')
|
||||
&:hover i
|
||||
color: color('medium')
|
||||
&.ganttview-slide-container
|
||||
overflow: auto
|
||||
border-left: 1px solid #999
|
||||
&.ganttview-grid-row-cell
|
||||
width: 20px
|
||||
height: 31px
|
||||
border-right: 1px solid #f0f0f0
|
||||
border-top: 1px solid #f0f0f0
|
||||
&.ganttview-weekend
|
||||
background-color: #fafafa
|
||||
&.ganttview-blocks
|
||||
margin-top: 40px
|
||||
&.ganttview-block-container
|
||||
height: 28px
|
||||
padding-top: 4px
|
||||
&.ganttview-block
|
||||
position: relative
|
||||
height: 25px
|
||||
background-color: #E5ECF9
|
||||
border: 1px solid #c0c0c0
|
||||
border-radius: 3px
|
||||
|
||||
.ganttview-block-movable
|
||||
cursor: move
|
||||
|
||||
div
|
||||
&.ganttview-block-not-defined
|
||||
border-color: #000
|
||||
background-color: #000
|
||||
&.ganttview-block-text
|
||||
position: absolute
|
||||
height: 12px
|
||||
font-size: size('tiny')
|
||||
color: color('light')
|
||||
padding: 2px 3px
|
||||
&.ganttview-block div.ui-resizable-handle.ui-resizable-s
|
||||
bottom: -0
|
||||
|
|
@ -50,6 +50,5 @@
|
|||
@import documentation
|
||||
@import panel
|
||||
@import activity_stream
|
||||
@import gantt_chart
|
||||
@import user_mentions
|
||||
@import image_slideshow
|
||||
|
|
|
|||
Loading…
Reference in New Issue